Compare commits
2 Commits
main
...
dendritic-
| Author | SHA1 | Date | |
|---|---|---|---|
| dff9e94470 | |||
| 92dba21fd8 |
819
flake.lock
generated
819
flake.lock
generated
@@ -1,819 +0,0 @@
|
||||
{
|
||||
"nodes": {
|
||||
"affinity-nix": {
|
||||
"inputs": {
|
||||
"elemental-wine-source": "elemental-wine-source",
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts",
|
||||
"git-hooks": "git-hooks",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-wine": "nixpkgs-wine",
|
||||
"on-linux": "on-linux",
|
||||
"plugin-loader": "plugin-loader",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1773962509,
|
||||
"narHash": "sha256-DAHcc8ghdDEX+xHPjuKf7qXSL/5G9NqP3mrq5jAKFi0=",
|
||||
"owner": "mrshmllow",
|
||||
"repo": "affinity-nix",
|
||||
"rev": "494090443b8086f14ce851ecba8463800176c1c1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "mrshmllow",
|
||||
"repo": "affinity-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16": {
|
||||
"inputs": {
|
||||
"fromYaml": "fromYaml"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755819240,
|
||||
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-fish": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1765809053,
|
||||
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tomyun",
|
||||
"repo": "base16-fish",
|
||||
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-helix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1760703920,
|
||||
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-helix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-vim": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1732806396,
|
||||
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-vim",
|
||||
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-vim",
|
||||
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"elemental-wine-source": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"host": "gitlab.winehq.org",
|
||||
"lastModified": 1722747031,
|
||||
"narHash": "sha256-XVhz9p2kgFBoJ376vg8OaFXxcMEjAe9AK1hk0I1rb1Q=",
|
||||
"owner": "ElementalWarrior",
|
||||
"repo": "wine",
|
||||
"rev": "a7c9b19e1a26cf49c63a7c19189a3e2bbe2c6ac2",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"host": "gitlab.winehq.org",
|
||||
"owner": "ElementalWarrior",
|
||||
"ref": "affinity-photo3-wine9.13-part3",
|
||||
"repo": "wine",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"fenix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"garandos-tui",
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-analyzer-src": "rust-analyzer-src"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762929886,
|
||||
"narHash": "sha256-TQZ3Ugb1FoHpTSc8KLrzN4njIZU4FemAMHyS4M3mt6s=",
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"rev": "6998514dce2c365142a0a119a95ef95d89b84086",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "fenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-addons": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1774152686,
|
||||
"narHash": "sha256-RlEgsdHr9IQm79SsXKNT8iU+ZjjIOPTJXcatMqgSfwk=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "4c83dbe717272428562a33db817f492195e227ae",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1764873433,
|
||||
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"locked": {
|
||||
"lastModified": 1751685974,
|
||||
"narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
|
||||
"rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/flake-compat/archive/549f2762aebeff29a2e5ece7a7dc0f955281a1d1.tar.gz?rev=549f2762aebeff29a2e5ece7a7dc0f955281a1d1"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/lix-project/flake-compat/archive/main.tar.gz"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767039857,
|
||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769996383,
|
||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767609335,
|
||||
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fromYaml": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1731966426,
|
||||
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "fromYaml",
|
||||
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "SenchoPens",
|
||||
"repo": "fromYaml",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"garandos-tui": {
|
||||
"inputs": {
|
||||
"fenix": "fenix",
|
||||
"naersk": "naersk",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765060905,
|
||||
"narHash": "sha256-YLU5g2aSs1Sh+6j301BtQYUdQ8IqLvoeR4Eivr4eVYc=",
|
||||
"ref": "main",
|
||||
"rev": "028b50c9e4d7160cfa8fac8150a54a52680f4ff5",
|
||||
"revCount": 13,
|
||||
"type": "git",
|
||||
"url": "https://gitea.garandplg.com/GarandPLG/garandos-tui"
|
||||
},
|
||||
"original": {
|
||||
"ref": "main",
|
||||
"type": "git",
|
||||
"url": "https://gitea.garandplg.com/GarandPLG/garandos-tui"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769939035,
|
||||
"narHash": "sha256-Fok2AmefgVA0+eprw2NDwqKkPGEI5wvR+twiZagBvrg=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "a8ca480175326551d6c4121498316261cbb5b260",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gnome-shell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"host": "gitlab.gnome.org",
|
||||
"lastModified": 1767737596,
|
||||
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"host": "gitlab.gnome.org",
|
||||
"owner": "GNOME",
|
||||
"ref": "gnome-49",
|
||||
"repo": "gnome-shell",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774201162,
|
||||
"narHash": "sha256-th4i3X3P3yikPk3qu1A5DQ40tIztZKvAKPaa9hjXF+U=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "932ca46013acabbedd13c27dc278e3d043707e46",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "master",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"libnbtplusplus": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1744811532,
|
||||
"narHash": "sha256-qhmjaRkt+O7A+gu6HjUkl7QzOEb4r8y8vWZMG2R/C6o=",
|
||||
"owner": "PrismLauncher",
|
||||
"repo": "libnbtplusplus",
|
||||
"rev": "531449ba1c930c98e0bcf5d332b237a8566f9d78",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "PrismLauncher",
|
||||
"repo": "libnbtplusplus",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"naersk": {
|
||||
"inputs": {
|
||||
"fenix": [
|
||||
"garandos-tui",
|
||||
"fenix"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"garandos-tui",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752689277,
|
||||
"narHash": "sha256-uldUBFkZe/E7qbvxa3mH1ItrWZyT6w1dBKJQF/3ZSsc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "naersk",
|
||||
"rev": "0e72363d0938b0208d6c646d10649164c43f4d64",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "naersk",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-flatpak": {
|
||||
"locked": {
|
||||
"lastModified": 1767983141,
|
||||
"narHash": "sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs=",
|
||||
"owner": "gmodena",
|
||||
"repo": "nix-flatpak",
|
||||
"rev": "440818969ac2cbd77bfe025e884d0aa528991374",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "gmodena",
|
||||
"ref": "latest",
|
||||
"repo": "nix-flatpak",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1773821835,
|
||||
"narHash": "sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1769909678,
|
||||
"narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "72716169fe93074c333e8d0173151350670b824c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-wine": {
|
||||
"locked": {
|
||||
"lastModified": 1735834308,
|
||||
"narHash": "sha256-dklw3AXr3OGO4/XT1Tu3Xz9n/we8GctZZ75ZWVqAVhk=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6df24922a1400241dae323af55f30e4318a6ca65",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6df24922a1400241dae323af55f30e4318a6ca65",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1770107345,
|
||||
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"noctalia": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"noctalia-qs": "noctalia-qs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774202729,
|
||||
"narHash": "sha256-rSyMyO1xwqOUwYYQz8R89VKygYMNhvpiqOXp9Fp0mEA=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"rev": "56c0904dc6f1c1b2fbfc06756252eda5c8828a60",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"noctalia-qs": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"noctalia",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems",
|
||||
"treefmt-nix": "treefmt-nix_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774059741,
|
||||
"narHash": "sha256-ObYsrf7XLJDqWVbJ+GWH5JYV/EUc7SVdhGx5r5wWKno=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-qs",
|
||||
"rev": "c9beee5c634ec784af128b8e7c56db14012ab17f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-qs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": [
|
||||
"stylix",
|
||||
"flake-parts"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767810917,
|
||||
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"on-linux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1769366983,
|
||||
"narHash": "sha256-uBLHcm0WP8n4ms7eV05wt4mc9uvUo9OVMM/41lW+u8Q=",
|
||||
"owner": "seapear",
|
||||
"repo": "AffinityOnLinux",
|
||||
"rev": "c3909c9e265f8091b9b0b26d8f51815a0a19e547",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "seapear",
|
||||
"repo": "AffinityOnLinux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"plugin-loader": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-mixBa/xIfSIrSS3+bGqznXxSE6h8s7e2xoJM2g4eXhg=",
|
||||
"type": "file",
|
||||
"url": "https://github.com/noahc3/AffinityPluginLoader/releases/download/v0.2.0/affinitypluginloader-plus-winefix.tar.xz"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "https://github.com/noahc3/AffinityPluginLoader/releases/download/v0.2.0/affinitypluginloader-plus-winefix.tar.xz"
|
||||
}
|
||||
},
|
||||
"prismlauncher-cracked": {
|
||||
"inputs": {
|
||||
"libnbtplusplus": "libnbtplusplus",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1771797779,
|
||||
"narHash": "sha256-VjN8CBG3KLaqP7yFYWvLQuCwivh4RBjzWkWlMlxYjdI=",
|
||||
"owner": "Diegiwg",
|
||||
"repo": "PrismLauncher-Cracked",
|
||||
"rev": "356e6d7edc4a1b8b28d1a9a04057a2a3ea8655e4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Diegiwg",
|
||||
"repo": "PrismLauncher-Cracked",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"affinity-nix": "affinity-nix",
|
||||
"firefox-addons": "firefox-addons",
|
||||
"garandos-tui": "garandos-tui",
|
||||
"home-manager": "home-manager",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"noctalia": "noctalia",
|
||||
"prismlauncher-cracked": "prismlauncher-cracked",
|
||||
"stylix": "stylix"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1762860488,
|
||||
"narHash": "sha256-rMfWMCOo/pPefM2We0iMBLi2kLBAnYoB9thi4qS7uk4=",
|
||||
"owner": "rust-lang",
|
||||
"repo": "rust-analyzer",
|
||||
"rev": "2efc80078029894eec0699f62ec8d5c1a56af763",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rust-lang",
|
||||
"ref": "nightly",
|
||||
"repo": "rust-analyzer",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"stylix": {
|
||||
"inputs": {
|
||||
"base16": "base16",
|
||||
"base16-fish": "base16-fish",
|
||||
"base16-helix": "base16-helix",
|
||||
"base16-vim": "base16-vim",
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nur": "nur",
|
||||
"systems": "systems_2",
|
||||
"tinted-foot": "tinted-foot",
|
||||
"tinted-kitty": "tinted-kitty",
|
||||
"tinted-schemes": "tinted-schemes",
|
||||
"tinted-tmux": "tinted-tmux",
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774124764,
|
||||
"narHash": "sha256-Poz9WTjiRlqZIf197CrMMJfTifZhrZpbHFv0eU1Nhtg=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "e31c79f571c5595a155f84b9d77ce53a84745494",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-foot": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1726913040,
|
||||
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-foot",
|
||||
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-foot",
|
||||
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-kitty": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1735730497,
|
||||
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-kitty",
|
||||
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-kitty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767710407,
|
||||
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767489635,
|
||||
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-zed": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767488740,
|
||||
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769691507,
|
||||
"narHash": "sha256-8aAYwyVzSSwIhP2glDhw/G0i5+wOrren3v6WmxkVonM=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "28b19c5844cc6e2257801d43f2772a4b4c050a1b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772660329,
|
||||
"narHash": "sha256-IjU1FxYqm+VDe5qIOxoW+pISBlGvVApRjiw/Y/ttJzY=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "3710e0e1218041bbad640352a0440114b1e10428",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
93
flake.nix
93
flake.nix
@@ -1,94 +1,15 @@
|
||||
{
|
||||
description = "GarandOS";
|
||||
description = "GarandOS flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/master";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
|
||||
import-tree.url = "github:vic/import-tree";
|
||||
};
|
||||
|
||||
stylix = {
|
||||
url = "github:danth/stylix";
|
||||
inputs = {
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs";
|
||||
nur.inputs = {
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
flake-parts.follows = "stylix/flake-parts";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
noctalia = {
|
||||
url = "github:noctalia-dev/noctalia-shell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
firefox-addons = {
|
||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
prismlauncher-cracked = {
|
||||
url = "github:Diegiwg/PrismLauncher-Cracked";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
affinity-nix = {
|
||||
url = "github:mrshmllow/affinity-nix";
|
||||
inputs = {
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
treefmt-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
git-hooks.inputs = {
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
gitignore.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak?ref=latest";
|
||||
|
||||
garandos-tui = {
|
||||
url = "git+https://gitea.garandplg.com/GarandPLG/garandos-tui?ref=main";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
nixpkgs,
|
||||
nix-flatpak,
|
||||
garandos-tui,
|
||||
...
|
||||
} @ inputs: let
|
||||
hostDirs = builtins.attrNames (builtins.readDir ./hosts);
|
||||
|
||||
mkHost = hostName: let
|
||||
inherit
|
||||
(import ./hosts/${hostName}/variables.nix)
|
||||
host
|
||||
username
|
||||
profile
|
||||
system
|
||||
;
|
||||
in
|
||||
nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
outputs = inputs: inputs.flake-parts.lib.mkFlake {
|
||||
inherit inputs;
|
||||
inherit username;
|
||||
inherit host;
|
||||
inherit profile;
|
||||
inherit system;
|
||||
};
|
||||
modules = [
|
||||
./profiles/${profile}
|
||||
nix-flatpak.nixosModules.nix-flatpak
|
||||
garandos-tui.nixosModules.garandos-tui
|
||||
];
|
||||
};
|
||||
in {
|
||||
nixosConfigurations = nixpkgs.lib.genAttrs hostDirs mkHost;
|
||||
};
|
||||
} (inputs.import-tree ./src);
|
||||
}
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./host-packages.nix
|
||||
./system-modules.nix
|
||||
];
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"nvme"
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"usbhid"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
];
|
||||
kernelModules = ["dm-snapshot"];
|
||||
luks.devices = {
|
||||
cryptroot = {
|
||||
device = "/dev/disk/by-uuid/7c018698-d35c-4ee6-92a8-5e4edf914065";
|
||||
preLVM = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
kernelModules = ["kvm-amd"];
|
||||
extraModulePackages = [];
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/e3ac1df3-ce8f-44cd-901f-a8cd3f6955b7";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/home" = {
|
||||
device = "/dev/disk/by-uuid/0713b82c-bf8c-424f-96e1-5d883e50b451";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/783D-A507";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = lib.mkForce [
|
||||
{
|
||||
device = "/dev/disk/by-uuid/8e8cc3dc-5754-4757-a2d7-53e6a2c3b5a4";
|
||||
}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
_: {
|
||||
/*
|
||||
Development editors and IDEs
|
||||
*/
|
||||
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||
zed-editor = {
|
||||
enable = true; # Zed Editor: a modern, high‑performance code editor
|
||||
remote-server.enable = true; # Remote Server: enable remote editing capabilities
|
||||
};
|
||||
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
|
||||
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
|
||||
|
||||
/*
|
||||
System utilities
|
||||
*/
|
||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
||||
cava.enable = false; # Cava: terminal audio visualizer
|
||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||
|
||||
/*
|
||||
Communication and synchronization
|
||||
*/
|
||||
kdeconnect.enable = true; # KDE Connect: integrate your phone and desktop
|
||||
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
lutris.enable = false; # Lutris: an open gaming platform
|
||||
|
||||
/*
|
||||
Media recording and streaming
|
||||
*/
|
||||
obs-studio.enable = false; # OBS Studio: streaming and recording software
|
||||
|
||||
/*
|
||||
Office suite
|
||||
*/
|
||||
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
|
||||
|
||||
/*
|
||||
Learning tools
|
||||
*/
|
||||
anki.enable = true; # Anki: spaced‑repetition flashcard program
|
||||
|
||||
/*
|
||||
XDG desktop entries (PWA)
|
||||
*/
|
||||
xdgDesktopEntries = {
|
||||
enable = true; # Enable XDG desktop entries
|
||||
entries = {
|
||||
messenger.enable = true; # Messenger: Facebook Messenger
|
||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
||||
chatgpt.enable = true; # ChatGPT: a large language model
|
||||
claude.enable = true; # Claude: a large language model
|
||||
glance.enable = true; # Glance: my home server dashboard
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# audacity
|
||||
];
|
||||
}
|
||||
@@ -1,95 +0,0 @@
|
||||
_: {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
docker.enable = true; # Docker: container runtime and management
|
||||
virtualbox.enable = false; # VirtualBox: PC emulator
|
||||
flatpak = {
|
||||
enable = true; # Flatpak: universal packaging system for Linux
|
||||
packages = {
|
||||
sober.enable = false; # Roblox client
|
||||
warehouse.enable = true; # Flatpak manager
|
||||
flatseal.enable = true; # Flatpak permissions manager
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
Networking
|
||||
*/
|
||||
tailscale.enable = true; # Tailscale: secure network for remote access
|
||||
|
||||
/*
|
||||
Calendar & Contacts
|
||||
*/
|
||||
calendar.enable = true; # GNOME Calendar: calendar and contacts application
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
gamemode.enable = true; # GameMode: optimizes system performance for gaming
|
||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||
steam.enable = true; # Steam: platform for buying and playing games
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
distrobox.enable = false; # Distrobox: containerized development environments
|
||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
prismlauncher.enable = true; # Prism Launcher: Minecraft modded launcher
|
||||
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire game
|
||||
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||
|
||||
/*
|
||||
Development Tools
|
||||
*/
|
||||
exercism.enable = true; # Exercism: coding practice platform
|
||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
||||
opencode.enable = false; # OpenCode: tools for coding and development
|
||||
jan.enable = true; # Jan: AI chat UI
|
||||
logisim-evolution.enable = true; # Logisim-Evolution: Digital logic designer and simulator
|
||||
|
||||
/*
|
||||
Communication & Collaboration
|
||||
*/
|
||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
||||
slack.enable = false; # Slack: team communication and collaboration tool
|
||||
tutanota.enable = true; # Tutanota: secure email client
|
||||
signal.enable = true; # Signal: secure messaging app
|
||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
*/
|
||||
bitwarden.enable = false; # Bitwarden: password manager (desktop)
|
||||
iotas.enable = true; # Iotas: lightweight notes manager
|
||||
logseq.enable = false; # Logseq: knowledge base and outliner
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = true; # Affinity: professional graphics suite
|
||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||
kdenlive.enable = false; # Kdenlive: video editing software
|
||||
pixieditor.enable = true; # Pixieditor: Universal editor for all your 2D needs
|
||||
plex.enable = true; # Plex: media player and server client
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
||||
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
|
||||
gedit.enable = true; # Gedit: GNOME text editor
|
||||
winboat.enable = true; # Winboat: Windows remote desktop via RDP
|
||||
adb.enable = false; # ADB: Android SDK platform tools
|
||||
};
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
{
|
||||
# CPU Architecture
|
||||
# Available options: "x86_64-linux", "aarch64-linux", etc.
|
||||
system = "x86_64-linux";
|
||||
|
||||
# Host Configuration
|
||||
host = "Garand-Desktop";
|
||||
username = "garand_plg";
|
||||
|
||||
# GPU Profile
|
||||
# Available options: "amd", "nvidia", "nvidia-laptop", "intel", "vm"
|
||||
profile = "nvidia";
|
||||
|
||||
# Git Configuration ( For Pulling Software Repos )
|
||||
gitUsername = "GarandPLG";
|
||||
gitEmail = "garandplg@garandplg.com";
|
||||
|
||||
# Hyprland Settings
|
||||
# Examples:
|
||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||
# extraMonitorSettings = "monitor = HDMI-A-1,1920x1080@60,auto,1";
|
||||
# You can configure multiple monitors.
|
||||
# Inside the quotes, create a new line for each monitor.
|
||||
extraMonitorSettings = "monitor = DP-1,1920x1080@144,auto,1";
|
||||
|
||||
keyboardLayout = "pl";
|
||||
consoleKeyMap = "pl";
|
||||
|
||||
location = "Żywiec, PL";
|
||||
|
||||
# For Nvidia Prime support
|
||||
intelID = "PCI:1:0:0";
|
||||
nvidiaID = "PCI:0:2:0";
|
||||
|
||||
# Enable NFS
|
||||
enableNFS = true;
|
||||
|
||||
# Enable Printing Support
|
||||
printEnable = true;
|
||||
|
||||
# Set Stylix Image
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
||||
#stylixImage = "DW_Pacts.jpg";
|
||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
||||
#stylixImage = "fire-nation.jpg";
|
||||
#stylixImage = "four-elements.jpg";
|
||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
||||
#stylixImage = "jablon.jpg";
|
||||
#stylixImage = "rammstein-log-two.jpg";
|
||||
#stylixImage = "rammstein-logo-one.jpg";
|
||||
#stylixImage = "rammstein-logo-three.jpg";
|
||||
#stylixImage = "rammstein-one.jpg";
|
||||
#stylixImage = "1346530.jpeg";
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
hostId = "5ab03f50";
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./host-packages.nix
|
||||
./system-modules.nix
|
||||
];
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"nvme"
|
||||
"xhci_pci"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
];
|
||||
kernelModules = ["dm-snapshot"];
|
||||
luks.devices.cryptroot = {
|
||||
device = "/dev/disk/by-uuid/6abc2228-823e-42b0-94c7-48fda757732c";
|
||||
preLVM = true;
|
||||
};
|
||||
};
|
||||
kernelModules = ["kvm-amd"];
|
||||
extraModulePackages = [];
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/d30939d0-53ed-4728-9190-6a5b9dec8fb4";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/home" = {
|
||||
device = "/dev/disk/by-uuid/3df34a25-7e42-433d-b723-be80f1738ba5";
|
||||
fsType = "ext4";
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/0E68-9A34";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{device = "/dev/disk/by-uuid/5da7c845-7dd3-4882-93af-2d679cdb5e7a";}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
_: {
|
||||
/*
|
||||
Development editors and IDEs
|
||||
*/
|
||||
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||
zed-editor = {
|
||||
enable = true; # Zed Editor: a modern, high‑performance code editor
|
||||
remote-server.enable = true; # Remote Server: enable remote editing capabilities
|
||||
};
|
||||
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
|
||||
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
|
||||
|
||||
/*
|
||||
System utilities
|
||||
*/
|
||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
||||
cava.enable = false; # Cava: terminal audio visualizer
|
||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||
|
||||
/*
|
||||
Communication and synchronization
|
||||
*/
|
||||
kdeconnect.enable = true; # KDE Connect: integrate your phone and desktop
|
||||
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
lutris.enable = false; # Lutris: an open gaming platform
|
||||
|
||||
/*
|
||||
Media recording and streaming
|
||||
*/
|
||||
obs-studio.enable = false; # OBS Studio: streaming and recording software
|
||||
|
||||
/*
|
||||
Office suite
|
||||
*/
|
||||
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
|
||||
|
||||
/*
|
||||
Learning tools
|
||||
*/
|
||||
anki.enable = true; # Anki: spaced‑repetition flashcard program
|
||||
|
||||
/*
|
||||
XDG desktop entries (PWA)
|
||||
*/
|
||||
xdgDesktopEntries = {
|
||||
enable = true; # Enable XDG desktop entries
|
||||
entries = {
|
||||
messenger.enable = true; # Messenger: Facebook Messenger
|
||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
||||
chatgpt.enable = true; # ChatGPT: a large language model
|
||||
claude.enable = true; # Claude: a large language model
|
||||
glance.enable = true; # Glance: my home server dashboard
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# audacity
|
||||
];
|
||||
}
|
||||
@@ -1,95 +0,0 @@
|
||||
_: {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
docker.enable = true; # Docker: container runtime and management
|
||||
virtualbox.enable = true; # VirtualBox: PC emulator
|
||||
flatpak = {
|
||||
enable = true; # Flatpak: universal packaging system for Linux
|
||||
packages = {
|
||||
sober.enable = false; # Roblox client
|
||||
warehouse.enable = true; # Flatpak manager
|
||||
flatseal.enable = true; # Flatpak permissions manager
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
Networking
|
||||
*/
|
||||
tailscale.enable = true; # Tailscale: secure network for remote access
|
||||
|
||||
/*
|
||||
Calendar & Contacts
|
||||
*/
|
||||
calendar.enable = true; # GNOME Calendar: calendar and contacts application
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
gamemode.enable = true; # GameMode: optimizes system performance for gaming
|
||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||
steam.enable = true; # Steam: platform for buying and playing games
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
distrobox.enable = false; # Distrobox: containerized development environments
|
||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
prismlauncher.enable = true; # Prism Launcher: Minecraft modded launcher
|
||||
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire game
|
||||
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||
|
||||
/*
|
||||
Development Tools
|
||||
*/
|
||||
exercism.enable = true; # Exercism: coding practice platform
|
||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
||||
opencode.enable = false; # OpenCode: tools for coding and development
|
||||
jan.enable = true; # Jan: AI chat UI
|
||||
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
|
||||
|
||||
/*
|
||||
Communication & Collaboration
|
||||
*/
|
||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
||||
slack.enable = false; # Slack: team communication and collaboration tool
|
||||
tutanota.enable = true; # Tutanota: secure email client
|
||||
signal.enable = true; # Signal: secure messaging app
|
||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
*/
|
||||
bitwarden.enable = false; # Bitwarden: password manager (desktop)
|
||||
iotas.enable = true; # Iotas: lightweight notes manager
|
||||
logseq.enable = false; # Logseq: knowledge base and outliner
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = true; # Affinity: professional graphics suite
|
||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||
kdenlive.enable = false; # Kdenlive: video editing software
|
||||
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
|
||||
plex.enable = true; # Plex: media player and server client
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
||||
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
|
||||
gedit.enable = false; # Gedit: GNOME text editor
|
||||
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
||||
adb.enable = false; # ADB: Android SDK platform tools
|
||||
};
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
{
|
||||
# CPU Architecture
|
||||
# Available options: "x86_64-linux", "aarch64-linux", etc.
|
||||
system = "x86_64-linux";
|
||||
|
||||
# Host Configuration
|
||||
host = "Garand-Laptop";
|
||||
username = "garand_plg";
|
||||
|
||||
# GPU Profile
|
||||
# Available options: "amd", "nvidia", "nvidia-laptop", "intel", "vm"
|
||||
profile = "amd";
|
||||
|
||||
# Git Configuration ( For Pulling Software Repos )
|
||||
gitUsername = "GarandPLG";
|
||||
gitEmail = "garandplg@garandplg.com";
|
||||
|
||||
# Hyprland Settings
|
||||
# Examples:
|
||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||
# extraMonitorSettings = "monitor = HDMI-A-1,1920x1080@60,auto,1";
|
||||
# You can configure multiple monitors.
|
||||
# Inside the quotes, create a new line for each monitor.
|
||||
extraMonitorSettings = "monitor = eDP-1,1920x1080@60,auto,1";
|
||||
|
||||
keyboardLayout = "pl";
|
||||
consoleKeyMap = "pl";
|
||||
|
||||
location = "Żywiec, PL";
|
||||
|
||||
# For Nvidia Prime support
|
||||
intelID = "PCI:1:0:0";
|
||||
nvidiaID = "PCI:0:2:0";
|
||||
|
||||
# Enable NFS
|
||||
enableNFS = true;
|
||||
|
||||
# Enable Printing Support
|
||||
printEnable = false;
|
||||
|
||||
# Set Stylix Image
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
||||
#stylixImage = "DW_Pacts.jpg";
|
||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
||||
#stylixImage = "fire-nation.jpg";
|
||||
#stylixImage = "four-elements.jpg";
|
||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
||||
#stylixImage = "jablon.jpg";
|
||||
#stylixImage = "rammstein-log-two.jpg";
|
||||
#stylixImage = "rammstein-logo-one.jpg";
|
||||
#stylixImage = "rammstein-logo-three.jpg";
|
||||
#stylixImage = "rammstein-one.jpg";
|
||||
#stylixImage = "1346530.jpeg";
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
hostId = "7bc04e61";
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./host-packages.nix
|
||||
./system-modules.nix
|
||||
];
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"nvme"
|
||||
"usbhid"
|
||||
];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["kvm-intel"];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/dd005850-6230-40c4-9d70-8c8cf443658d";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-b7565781-148e-4c94-9c76-36c84dd93dc8".device = "/dev/disk/by-uuid/b7565781-148e-4c94-9c76-36c84dd93dc8";
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/C2A6-DF56";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = lib.mkForce [
|
||||
{
|
||||
device = "/dev/vg0/swap";
|
||||
}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.docker0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.eno2.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
_: {
|
||||
/*
|
||||
Development editors and IDEs
|
||||
*/
|
||||
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||
zed-editor = {
|
||||
enable = true; # Zed Editor: a modern, high‑performance code editor
|
||||
remote-server.enable = true; # Remote Server: enable remote editing capabilities
|
||||
};
|
||||
|
||||
/*
|
||||
Web browsers
|
||||
*/
|
||||
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
|
||||
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
|
||||
|
||||
/*
|
||||
System utilities
|
||||
*/
|
||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
||||
cava.enable = false; # Cava: terminal audio visualizer
|
||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||
|
||||
/*
|
||||
Communication and synchronization
|
||||
*/
|
||||
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
|
||||
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
lutris.enable = false; # Lutris: an open gaming platform
|
||||
|
||||
/*
|
||||
Media recording and streaming
|
||||
*/
|
||||
obs-studio.enable = false; # OBS Studio: streaming and recording software
|
||||
|
||||
/*
|
||||
Office suite
|
||||
*/
|
||||
onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats
|
||||
|
||||
/*
|
||||
Learning tools
|
||||
*/
|
||||
anki.enable = true; # Anki: spaced‑repetition flashcard program
|
||||
|
||||
/*
|
||||
XDG desktop entries (PWA)
|
||||
*/
|
||||
xdgDesktopEntries = {
|
||||
enable = true; # Enable XDG desktop entries
|
||||
entries = {
|
||||
messenger.enable = true; # Messenger: Facebook Messenger
|
||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
||||
chatgpt.enable = true; # ChatGPT: a large language model
|
||||
claude.enable = true; # Claude: a large language model
|
||||
glance.enable = true; # Glance: my home server dashboard
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# audacity
|
||||
];
|
||||
}
|
||||
@@ -1,95 +0,0 @@
|
||||
_: {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
docker.enable = true; # Docker: container runtime and management
|
||||
virtualbox.enable = false; # VirtualBox: PC emulator
|
||||
flatpak = {
|
||||
enable = true; # Flatpak: universal packaging system for Linux
|
||||
packages = {
|
||||
sober.enable = false; # Roblox client
|
||||
warehouse.enable = true; # Flatpak manager
|
||||
flatseal.enable = true; # Flatpak permissions manager
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
Networking
|
||||
*/
|
||||
tailscale.enable = false; # Tailscale: secure network for remote access
|
||||
|
||||
/*
|
||||
Calendar & Contacts
|
||||
*/
|
||||
calendar.enable = true; # GNOME Calendar: calendar and contacts application
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
gamemode.enable = true; # GameMode: optimizes system performance for gaming
|
||||
gamescope.enable = false; # Gamescope: micro‑compositor for games
|
||||
steam.enable = true; # Steam: platform for buying and playing games
|
||||
|
||||
packages = {
|
||||
/*
|
||||
Container & Packaging
|
||||
*/
|
||||
distrobox.enable = false; # Distrobox: containerized development environments
|
||||
lazydocker.enable = false; # Lazydocker: simple TUI for Docker
|
||||
bottles.enable = false; # Bottles: Easy-to-use wineprefix manager
|
||||
|
||||
/*
|
||||
Gaming
|
||||
*/
|
||||
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
|
||||
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire game
|
||||
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||
|
||||
/*
|
||||
Development Tools
|
||||
*/
|
||||
exercism.enable = true; # Exercism: coding practice platform
|
||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
||||
opencode.enable = false; # OpenCode: tools for coding and development
|
||||
jan.enable = true; # Jan: AI chat UI
|
||||
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
|
||||
|
||||
/*
|
||||
Communication & Collaboration
|
||||
*/
|
||||
mattermost.enable = true; # Mattermost: open‑source Slack alternative
|
||||
slack.enable = false; # Slack: team communication and collaboration tool
|
||||
tutanota.enable = true; # Tutanota: secure email client
|
||||
signal.enable = true; # Signal: secure messaging app
|
||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
||||
ferdium.enable = false; # Ferdium: All your services in one place built by the community
|
||||
|
||||
/*
|
||||
Productivity / Knowledge Management
|
||||
*/
|
||||
bitwarden.enable = false; # Bitwarden: password manager (desktop)
|
||||
iotas.enable = true; # Iotas: lightweight notes manager
|
||||
logseq.enable = false; # Logseq: knowledge base and outliner
|
||||
|
||||
/*
|
||||
Media & Graphics
|
||||
*/
|
||||
affinity.enable = false; # Affinity: professional graphics suite
|
||||
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
|
||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||
kdenlive.enable = false; # Kdenlive: video editing software
|
||||
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
|
||||
plex.enable = true; # Plex: media player and server client
|
||||
|
||||
/*
|
||||
Utilities / Misc
|
||||
*/
|
||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
||||
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
|
||||
gedit.enable = false; # Gedit: GNOME text editor
|
||||
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
||||
adb.enable = false; # ADB: Android SDK platform tools
|
||||
};
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
{
|
||||
# CPU Architecture
|
||||
# Available options: "x86_64-linux", "aarch64-linux", etc.
|
||||
system = "x86_64-linux";
|
||||
|
||||
# Host Configuration
|
||||
host = "My-Desktop";
|
||||
username = "my_username";
|
||||
|
||||
# GPU Profile
|
||||
# Available options: "amd", "nvidia", "nvidia-laptop", "intel", "vm"
|
||||
profile = "nvidia";
|
||||
|
||||
# Git Configuration ( For Pulling Software Repos )
|
||||
gitUsername = "GarandPLG";
|
||||
gitEmail = "my@email.com";
|
||||
|
||||
# Hyprland Settings
|
||||
# Examples:
|
||||
# extraMonitorSettings = "monitor = Virtual-1,1920x1080@60,auto,1";
|
||||
# extraMonitorSettings = "monitor = HDMI-A-1,1920x1080@60,auto,1";
|
||||
# You can configure multiple monitors.
|
||||
# Inside the quotes, create a new line for each monitor.
|
||||
extraMonitorSettings = "
|
||||
|
||||
";
|
||||
|
||||
keyboardLayout = "pl";
|
||||
consoleKeyMap = "pl";
|
||||
|
||||
location = "Warszawa, PL";
|
||||
|
||||
# For Nvidia Prime support
|
||||
intelID = "PCI:1:0:0";
|
||||
nvidiaID = "PCI:0:2:0";
|
||||
|
||||
# Enable NFS
|
||||
enableNFS = true;
|
||||
|
||||
# Enable Printing Support
|
||||
printEnable = false;
|
||||
|
||||
# Themes, waybar and animation.
|
||||
# Only uncomment your selection
|
||||
# The others much be commented out.
|
||||
|
||||
# Set Stylix Image
|
||||
# This will set your color palette
|
||||
# Default background
|
||||
# Add new images to ~/garandos/wallpapers
|
||||
stylixImage = "attack-on-titan-mikasa-ackerman.jpg";
|
||||
#stylixImage = "DW_Pacts.jpg";
|
||||
#stylixImage = "edward-elric-fullmetal-alchemist.jpg";
|
||||
#stylixImage = "fire-nation.jpg";
|
||||
#stylixImage = "four-elements.jpg";
|
||||
#stylixImage = "fullmetal-alchemist-5120x2880-10399.png";
|
||||
#stylixImage = "Grounded_Wallpaper_4K.jpg";
|
||||
#stylixImage = "jablon.jpg";
|
||||
#stylixImage = "rammstein-log-two.jpg";
|
||||
#stylixImage = "rammstein-logo-one.jpg";
|
||||
#stylixImage = "rammstein-logo-three.jpg";
|
||||
#stylixImage = "rammstein-one.jpg";
|
||||
#stylixImage = "1346530.jpeg";
|
||||
|
||||
# Set network hostId if required (needed for zfs)
|
||||
# Otherwise leave as-is
|
||||
hostId = "5ab03f50";
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
kernelModules = ["v4l2loopback"];
|
||||
extraModulePackages = [config.boot.kernelPackages.v4l2loopback];
|
||||
kernel.sysctl = {
|
||||
"vm.max_map_count" = 2147483642;
|
||||
};
|
||||
loader = {
|
||||
efi.canTouchEfiVariables = true;
|
||||
limine = {
|
||||
enable = true;
|
||||
style = {
|
||||
wallpapers = [
|
||||
./../../wallpapers/attack-on-titan-mikasa-ackerman.jpg
|
||||
];
|
||||
wallpaperStyle = lib.mkForce "centered";
|
||||
backdrop = "${config.stylix.base16Scheme.base00}";
|
||||
interface = {
|
||||
branding = "GarandOS Bootloader";
|
||||
resolution = "1920x1080";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
# Appimage Support
|
||||
binfmt.registrations.appimage = {
|
||||
wrapInterpreterInShell = false;
|
||||
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
|
||||
recognitionType = "magic";
|
||||
offset = 0;
|
||||
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
|
||||
magicOrExtension = ''\x7fELF....AI\x02'';
|
||||
};
|
||||
plymouth.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.calendar.enable = lib.mkEnableOption "Enable GNOME Calendar";
|
||||
|
||||
config = {
|
||||
services.gnome.evolution-data-server.enable = lib.mkIf config.calendar.enable true;
|
||||
environment.systemPackages = lib.mkIf config.calendar.enable (with pkgs; [
|
||||
gnome-calendar
|
||||
gnome-contacts
|
||||
]);
|
||||
};
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
{inputs, ...}: {
|
||||
imports = [
|
||||
./packages
|
||||
./boot.nix
|
||||
./calendar.nix
|
||||
./docker.nix
|
||||
./flatpak.nix
|
||||
./fonts.nix
|
||||
./garandos-tui.nix
|
||||
./hardware.nix
|
||||
./network.nix
|
||||
./nfs.nix
|
||||
./nh.nix
|
||||
./printing.nix
|
||||
./quickshell.nix
|
||||
./greetd.nix
|
||||
./security.nix
|
||||
./services.nix
|
||||
./steam.nix
|
||||
./stylix.nix
|
||||
./syncthing.nix
|
||||
./system.nix
|
||||
./tailscale.nix
|
||||
./thunar.nix
|
||||
./user.nix
|
||||
./virtualbox.nix
|
||||
./xdg.nix
|
||||
./xserver.nix
|
||||
./zram.nix
|
||||
inputs.stylix.nixosModules.stylix
|
||||
];
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.docker.enable = lib.mkEnableOption "Docker";
|
||||
|
||||
config.virtualisation.docker = lib.mkIf config.docker.enable {
|
||||
enable = true;
|
||||
package = pkgs.docker;
|
||||
daemon.settings.dns = ["9.9.9.11" "149.112.112.11"];
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
mkFlatpakPackage = name: pkgId: {
|
||||
options.flatpak.packages.${name}.enable = lib.mkEnableOption "Flatpak: ${name}";
|
||||
|
||||
config.services.flatpak.packages =
|
||||
lib.mkIf config.flatpak.packages.${name}.enable [pkgId];
|
||||
};
|
||||
|
||||
flatpakPackages = {
|
||||
sober = "org.vinegarhq.Sober";
|
||||
warehouse = "io.github.flattool.Warehouse";
|
||||
flatseal = "com.github.tchx84.Flatseal";
|
||||
};
|
||||
in {
|
||||
options.flatpak.enable = lib.mkEnableOption "Flatpak";
|
||||
|
||||
config.services.flatpak = lib.mkIf config.flatpak.enable {
|
||||
enable = true;
|
||||
update.onActivation = true;
|
||||
packages = [];
|
||||
};
|
||||
|
||||
imports = builtins.attrValues (builtins.mapAttrs mkFlatpakPackage flatpakPackages);
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
dejavu_fonts
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
font-awesome
|
||||
hackgen-nf-font
|
||||
ibm-plex
|
||||
inter
|
||||
jetbrains-mono
|
||||
material-icons
|
||||
maple-mono.NF
|
||||
minecraftia
|
||||
nerd-fonts.im-writing
|
||||
nerd-fonts.blex-mono
|
||||
noto-fonts
|
||||
noto-fonts-color-emoji
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-cjk-serif
|
||||
noto-fonts-monochrome-emoji
|
||||
powerline-fonts
|
||||
roboto
|
||||
roboto-mono
|
||||
#symbola
|
||||
terminus_font
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
host,
|
||||
username,
|
||||
...
|
||||
}: {
|
||||
programs.garandos-tui = {
|
||||
enable = true;
|
||||
systemModulesFilePath = "/home/${username}/garandos/hosts/${host}/system-modules.nix";
|
||||
homeModulesFilePath = "/home/${username}/garandos/hosts/${host}/home-modules.nix";
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}: {
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
#vt = 3;
|
||||
settings = {
|
||||
default_session = {
|
||||
user = username;
|
||||
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd Hyprland"; # start Hyprland with a TUI login manager
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
hardware = {
|
||||
sane = {
|
||||
enable = true;
|
||||
extraBackends = [pkgs.sane-airscan];
|
||||
disabledDefaultBackends = ["escl"];
|
||||
};
|
||||
logitech.wireless = {
|
||||
enable = false;
|
||||
enableGraphical = false;
|
||||
};
|
||||
graphics.enable = true;
|
||||
enableRedistributableFirmware = true;
|
||||
keyboard.qmk.enable = true;
|
||||
bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = false;
|
||||
};
|
||||
};
|
||||
local.hardware-clock.enable = false;
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
{
|
||||
host,
|
||||
options,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) hostId;
|
||||
in {
|
||||
# Defensive assertion for hostname validity (clearer message at eval time)
|
||||
assertions = [
|
||||
{
|
||||
assertion = builtins.match "^[[:alnum:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$" host != null;
|
||||
message = "Invalid hostname '${host}'. Must be 1-63 chars, start/end alphanumeric; allowed middle chars: letters, digits, '-' or '_'.";
|
||||
}
|
||||
];
|
||||
|
||||
networking = {
|
||||
hostName = "${host}";
|
||||
hostId = hostId;
|
||||
networkmanager.enable = true;
|
||||
timeServers = options.networking.timeServers.default ++ ["pool.ntp.org"];
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [
|
||||
22
|
||||
80
|
||||
443
|
||||
59010
|
||||
59011
|
||||
8080
|
||||
];
|
||||
allowedTCPPortRanges = [
|
||||
{
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
59010
|
||||
59011
|
||||
];
|
||||
allowedUDPPortRanges = [
|
||||
{
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) enableNFS;
|
||||
in {
|
||||
services = {
|
||||
rpcbind.enable = enableNFS;
|
||||
nfs.server.enable = enableNFS;
|
||||
};
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
username,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.nh = {
|
||||
enable = true;
|
||||
package = pkgs.nh;
|
||||
clean = {
|
||||
enable = true;
|
||||
extraArgs = "--keep-since 7d --keep 5";
|
||||
};
|
||||
flake = "/home/${username}/garandos";
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
_: {
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
imports = [
|
||||
./fluxer
|
||||
./essentials.nix
|
||||
./packages.nix
|
||||
./programs.nix
|
||||
];
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
mpv
|
||||
pavucontrol
|
||||
playerctl
|
||||
cmatrix
|
||||
cowsay
|
||||
sl
|
||||
fortune
|
||||
# File management
|
||||
trash-cli
|
||||
file-roller
|
||||
unrar
|
||||
unzip
|
||||
p7zip
|
||||
# System monitoring & info
|
||||
inxi
|
||||
lm_sensors
|
||||
lshw
|
||||
pciutils
|
||||
usbutils
|
||||
mesa-demos
|
||||
nix-output-monitor
|
||||
nvd
|
||||
onefetch
|
||||
# Disk utilities
|
||||
duf
|
||||
dysk
|
||||
ncdu
|
||||
# Network & system utilities
|
||||
ripgrep
|
||||
wget
|
||||
socat
|
||||
ookla-speedtest
|
||||
brightnessctl
|
||||
killall
|
||||
dex
|
||||
# Desktop environment
|
||||
networkmanagerapplet
|
||||
tuigreet
|
||||
nwg-displays
|
||||
waypaper
|
||||
uwsm
|
||||
hyprpicker
|
||||
cliphist
|
||||
# Development utilities
|
||||
pkg-config
|
||||
appimage-run
|
||||
libnotify
|
||||
v4l-utils
|
||||
tasktimer
|
||||
# Language dicts for Iotas
|
||||
hunspell
|
||||
hunspellDicts.pl_PL
|
||||
hunspellDicts.en_US
|
||||
# Noctalia Shell Dependencies
|
||||
matugen
|
||||
app2unit
|
||||
gpu-screen-recorder
|
||||
# hyprland
|
||||
swww
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
swappy
|
||||
ydotool
|
||||
hyprpolkitagent
|
||||
hyprland-qtutils # needed for banners and ANR messages
|
||||
# pyprland
|
||||
pyprland
|
||||
];
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{pkgs, ...}: let
|
||||
fluxer =
|
||||
pkgs.callPackage ./fluxer-package.nix {};
|
||||
in {
|
||||
environment.systemPackages = [fluxer];
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
appimageTools,
|
||||
fetchurl,
|
||||
}: let
|
||||
pname = "fluxer";
|
||||
version = "canary";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://api.fluxer.app/dl/desktop/stable/linux/x64/latest/appimage";
|
||||
sha256 = "sha256-GdoBK+Z/d2quEIY8INM4IQy5tzzIBBM+3CgJXQn0qAw=";
|
||||
};
|
||||
appimageContents = appimageTools.extract {inherit pname version src;};
|
||||
in
|
||||
appimageTools.wrapType2 {
|
||||
inherit pname version src;
|
||||
|
||||
extraInstallCommands = ''
|
||||
# mv $out/bin/${pname}-${version} $out/bin/${pname}
|
||||
install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/${pname}.png \
|
||||
$out/share/icons/hicolor/512x512/apps/${pname}.png
|
||||
substituteInPlace $out/share/applications/${pname}.desktop \
|
||||
--replace-fail 'Exec=AppRun' 'Exec=${pname}'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Fluxer desktop app";
|
||||
homepage = "https://github.com/fluxerapp/fluxer";
|
||||
license = licenses.agpl3Only;
|
||||
platforms = ["x86_64-linux"];
|
||||
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
|
||||
maintainers = with lib.maintainers; [garand_plg];
|
||||
};
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}: let
|
||||
mkPackage = name: pkgsOrList: {
|
||||
options.packages.${name}.enable = lib.mkEnableOption name;
|
||||
config.environment.systemPackages =
|
||||
lib.mkIf config.packages.${name}.enable
|
||||
(lib.toList pkgsOrList);
|
||||
};
|
||||
|
||||
packages = with pkgs; {
|
||||
bitwarden = bitwarden-desktop;
|
||||
eddieAirVPN = eddie;
|
||||
gnomeCalculator = gnome-calculator;
|
||||
gedit = gedit;
|
||||
iotas = iotas;
|
||||
logseq = logseq;
|
||||
mattermost = mattermost-desktop;
|
||||
slack = slack;
|
||||
tutanota = tutanota-desktop;
|
||||
exercism = exercism;
|
||||
opencode = opencode;
|
||||
jan = jan;
|
||||
lazygit = lazygit;
|
||||
prismlauncher = inputs.prismlauncher-cracked.packages.${system}.default;
|
||||
spaceCadetPinball = space-cadet-pinball;
|
||||
ttySolitaire = tty-solitaire;
|
||||
gimp = gimp;
|
||||
affinity = inputs.affinity-nix.packages.${system}.v3;
|
||||
eyeOfGnome = eog;
|
||||
kdenlive = kdePackages.kdenlive;
|
||||
plex = [
|
||||
(plex-desktop.override {extraEnv = {QT_QPA_PLATFORM = "xcb";};})
|
||||
# plex-desktop
|
||||
plexamp
|
||||
];
|
||||
freetube = freetube;
|
||||
lazydocker = lazydocker;
|
||||
distrobox = [distrobox pkgs.boxbuddy];
|
||||
winboat = [winboat freerdp];
|
||||
signal = signal-desktop;
|
||||
pixieditor = pixieditor;
|
||||
bottles = bottles;
|
||||
heroic = heroic;
|
||||
adb = android-tools;
|
||||
teams = teams-for-linux;
|
||||
ferdium = ferdium;
|
||||
logisim-evolution = logisim-evolution;
|
||||
};
|
||||
in {
|
||||
imports = builtins.attrValues (builtins.mapAttrs mkPackage packages);
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
_: {
|
||||
programs = {
|
||||
nano.enable = true;
|
||||
hyprland = {
|
||||
enable = true;
|
||||
withUWSM = false;
|
||||
};
|
||||
dconf.enable = true;
|
||||
seahorse.enable = true;
|
||||
fuse.userAllowOther = true;
|
||||
mtr.enable = true;
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
# libraries = with pkgs; [
|
||||
# biome
|
||||
# ];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) printEnable;
|
||||
in {
|
||||
services = {
|
||||
printing = {
|
||||
enable = printEnable;
|
||||
drivers = [
|
||||
# pkgs.hplipWithPlugin
|
||||
];
|
||||
};
|
||||
avahi = {
|
||||
enable = printEnable;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
ipp-usb.enable = printEnable;
|
||||
};
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
quickshell
|
||||
|
||||
# Qt6 related kits(for slove Qt5Compat problem)
|
||||
qt6.qt5compat
|
||||
qt6.qtbase
|
||||
qt6.qtquick3d
|
||||
qt6.qtwayland
|
||||
qt6.qtdeclarative
|
||||
qt6.qtsvg
|
||||
|
||||
# alternate options
|
||||
# libsForQt5.qt5compat
|
||||
kdePackages.qt5compat
|
||||
libsForQt5.qt5.qtgraphicaleffects
|
||||
];
|
||||
# necessary environment variables
|
||||
variables = {
|
||||
QML_IMPORT_PATH = "${pkgs.qt6.qt5compat}/lib/qt-6/qml:${pkgs.qt6.qtbase}/lib/qt-6/qml";
|
||||
QML2_IMPORT_PATH = "${pkgs.qt6.qt5compat}/lib/qt-6/qml:${pkgs.qt6.qtbase}/lib/qt-6/qml";
|
||||
};
|
||||
# make sure the Qt application is working properly
|
||||
sessionVariables = {
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
_: {
|
||||
security = {
|
||||
rtkit.enable = true;
|
||||
polkit = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
polkit.addRule(function(action, subject) {
|
||||
if ( subject.isInGroup("users") && (
|
||||
action.id == "org.freedesktop.login1.reboot" ||
|
||||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
|
||||
action.id == "org.freedesktop.login1.power-off" ||
|
||||
action.id == "org.freedesktop.login1.power-off-multiple-sessions"
|
||||
))
|
||||
{ return polkit.Result.YES; }
|
||||
})
|
||||
'';
|
||||
};
|
||||
pam.services.swaylock = {
|
||||
text = ''auth include login '';
|
||||
};
|
||||
sudo = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
Defaults pwfeedback
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
{
|
||||
profile,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# Services to start
|
||||
services = {
|
||||
libinput.enable = true; # Input Handling
|
||||
fstrim.enable = true; # SSD Optimizer
|
||||
gvfs.enable = true; # For Mounting USB & More
|
||||
openssh = {
|
||||
enable = true; # Enable SSH
|
||||
settings = {
|
||||
PermitRootLogin = "no"; # Prevent root from SSH login
|
||||
PasswordAuthentication = true; # Users can SSH using kb and password
|
||||
KbdInteractiveAuthentication = true;
|
||||
};
|
||||
ports = [22];
|
||||
};
|
||||
tumbler.enable = true; # Image/video preview
|
||||
gnome.gnome-keyring.enable = true;
|
||||
smartd = {
|
||||
enable =
|
||||
if profile == "vm"
|
||||
then false
|
||||
else true;
|
||||
autodetect = true;
|
||||
};
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
extraConfig.pipewire."92-low-latency" = {
|
||||
"context.properties" = {
|
||||
"default.clock.rate" = 48000;
|
||||
"default.clock.quantum" = 256;
|
||||
"default.clock.min-quantum" = 256;
|
||||
"default.clock.max-quantum" = 256;
|
||||
};
|
||||
};
|
||||
extraConfig.pipewire-pulse."92-low-latency" = {
|
||||
context.modules = [
|
||||
{
|
||||
name = "libpipewire-module-protocol-pulse";
|
||||
args = {
|
||||
pulse.min.req = "256/48000";
|
||||
pulse.default.req = "256/48000";
|
||||
pulse.max.req = "256/48000";
|
||||
pulse.min.quantum = "256/48000";
|
||||
pulse.max.quantum = "256/48000";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
upower = {
|
||||
enable = true;
|
||||
package = pkgs.upower;
|
||||
};
|
||||
power-profiles-daemon = {
|
||||
enable = true;
|
||||
package = pkgs.power-profiles-daemon;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options = {
|
||||
steam.enable = lib.mkEnableOption "Steam";
|
||||
gamescope.enable = lib.mkEnableOption "Gamescope";
|
||||
gamemode.enable = lib.mkEnableOption "Gamemode";
|
||||
};
|
||||
|
||||
config.programs = {
|
||||
steam = lib.mkIf config.steam.enable {
|
||||
enable = true;
|
||||
package = pkgs.steam;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
gamescopeSession = lib.mkIf config.gamescope.enable {
|
||||
enable = true;
|
||||
args = [
|
||||
"--rt"
|
||||
"--expose-wayland"
|
||||
];
|
||||
};
|
||||
extraCompatPackages = [pkgs.proton-ge-bin];
|
||||
};
|
||||
|
||||
gamescope = lib.mkIf config.gamescope.enable {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
args = [
|
||||
"--rt"
|
||||
"--expose-wayland"
|
||||
];
|
||||
};
|
||||
|
||||
gamemode = lib.mkIf config.gamemode.enable {
|
||||
enable = true;
|
||||
enableRenice = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
host,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) stylixImage;
|
||||
in {
|
||||
# Styling Options
|
||||
stylix = {
|
||||
enable = true;
|
||||
image = ../../wallpapers/${stylixImage};
|
||||
polarity = "dark";
|
||||
opacity.terminal = 1.0;
|
||||
cursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Ice";
|
||||
size = 24;
|
||||
};
|
||||
fonts = {
|
||||
monospace = {
|
||||
package = pkgs.nerd-fonts.fira-mono;
|
||||
name = "FiraCode Nerd Font Mono";
|
||||
};
|
||||
sansSerif = {
|
||||
package = pkgs.nerd-fonts.fira-code;
|
||||
name = "FiraCode Nerd Font Propo";
|
||||
};
|
||||
serif = {
|
||||
package = pkgs.nerd-fonts.fira-code;
|
||||
name = "FiraCode Nerd Font";
|
||||
};
|
||||
sizes = {
|
||||
applications = 12;
|
||||
terminal = 15;
|
||||
desktop = 11;
|
||||
popups = 12;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{username, ...}: {
|
||||
services.syncthing = {
|
||||
enable = false;
|
||||
user = "${username}";
|
||||
dataDir = "/home/${username}";
|
||||
configDir = "/home/${username}/.config/syncthing";
|
||||
};
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
{
|
||||
host,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) consoleKeyMap;
|
||||
in {
|
||||
nix = {
|
||||
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
|
||||
settings = {
|
||||
download-buffer-size = 200000000;
|
||||
auto-optimise-store = true;
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
substituters = ["https://hyprland.cachix.org"];
|
||||
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
|
||||
};
|
||||
};
|
||||
time.timeZone = "Europe/Warsaw";
|
||||
i18n = {
|
||||
defaultLocale = "pl_PL.UTF-8";
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = "pl_PL.UTF-8";
|
||||
LC_IDENTIFICATION = "pl_PL.UTF-8";
|
||||
LC_MEASUREMENT = "pl_PL.UTF-8";
|
||||
LC_MONETARY = "pl_PL.UTF-8";
|
||||
LC_NAME = "pl_PL.UTF-8";
|
||||
LC_NUMERIC = "pl_PL.UTF-8";
|
||||
LC_PAPER = "pl_PL.UTF-8";
|
||||
LC_TELEPHONE = "pl_PL.UTF-8";
|
||||
LC_TIME = "pl_PL.UTF-8";
|
||||
};
|
||||
};
|
||||
environment.variables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
GARANDOS_VERSION = "1.0";
|
||||
GARANDOS = "true";
|
||||
};
|
||||
console.keyMap = "${consoleKeyMap}";
|
||||
system.stateVersion = "23.11"; # Do not change!
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
options.tailscale.enable = lib.mkEnableOption "Tailscale";
|
||||
|
||||
config.services.tailscale = lib.mkIf config.tailscale.enable {
|
||||
enable = true;
|
||||
package = pkgs.tailscale;
|
||||
openFirewall = true;
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
programs.thunar = {
|
||||
enable = true;
|
||||
plugins = with pkgs; [
|
||||
thunar-archive-plugin
|
||||
thunar-volman
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
username,
|
||||
host,
|
||||
profile,
|
||||
system,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) gitUsername;
|
||||
in {
|
||||
imports = [inputs.home-manager.nixosModules.home-manager];
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
useGlobalPkgs = false;
|
||||
backupFileExtension = "backup-nixos";
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
inputs
|
||||
username
|
||||
host
|
||||
profile
|
||||
system
|
||||
;
|
||||
};
|
||||
users.${username} = {
|
||||
imports = [
|
||||
./../home
|
||||
../../hosts/${host}/home-modules.nix
|
||||
inputs.noctalia.homeModules.default
|
||||
];
|
||||
home = {
|
||||
username = "${username}";
|
||||
homeDirectory = "/home/${username}";
|
||||
stateVersion = "25.11";
|
||||
};
|
||||
};
|
||||
};
|
||||
users = {
|
||||
mutableUsers = true;
|
||||
users.${username} = {
|
||||
isNormalUser = true;
|
||||
description = "${gitUsername}";
|
||||
extraGroups = [
|
||||
"adbusers"
|
||||
"docker" # access to docker as non-root
|
||||
"libvirtd" # Virt manager/QEMU access
|
||||
"lp"
|
||||
"networkmanager"
|
||||
"scanner"
|
||||
"wheel" # sudo access
|
||||
"vboxusers" # Virtual Box
|
||||
"gamemode"
|
||||
];
|
||||
shell = pkgs.bash;
|
||||
ignoreShellProgramCheck = true;
|
||||
linger = true;
|
||||
};
|
||||
};
|
||||
nix.settings.allowed-users = ["${username}"];
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.virtualbox.enable = lib.mkEnableOption "Enable VirtualBox";
|
||||
|
||||
config.virtualisation.virtualbox.host = lib.mkIf config.virtualbox.enable {
|
||||
enable = true;
|
||||
package = pkgs.virtualbox;
|
||||
enableKvm = true;
|
||||
enableHardening = true;
|
||||
enableExtensionPack = false;
|
||||
addNetworkInterface = false;
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-hyprland
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
configPackages = [pkgs.hyprland];
|
||||
xdgOpenUsePortal = true;
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) keyboardLayout;
|
||||
in {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
xkb = {
|
||||
layout = "${keyboardLayout}";
|
||||
variant = "";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
priority = 5;
|
||||
memoryMax = 16 * 1024 * 1024 * 1024;
|
||||
algorithm = "zstd";
|
||||
swapDevices = 1;
|
||||
memoryPercent = 50;
|
||||
};
|
||||
boot = {
|
||||
kernelParams = [
|
||||
"zswap.enabled=1" # enables zswap
|
||||
"zswap.compressor=zstd" # compression algorithm
|
||||
"zswap.max_pool_percent=20" # maximum percentage of RAM that zswap is allowed to use
|
||||
"zswap.shrinker_enabled=1" # whether to shrink the pool proactively on high memory pressure
|
||||
];
|
||||
tmp = {
|
||||
useZram = true;
|
||||
zramSettings = {
|
||||
compression-algorithm = "zstd";
|
||||
zram-size = "ram * 0.5";
|
||||
fs-type = "ext4";
|
||||
options = "X-mount.mode=1777,discard";
|
||||
};
|
||||
};
|
||||
};
|
||||
services.zram-generator = {
|
||||
enable = true;
|
||||
package = pkgs.zram-generator;
|
||||
settings = {};
|
||||
};
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.drivers.amdgpu;
|
||||
in {
|
||||
options.drivers.amdgpu = {
|
||||
enable = mkEnableOption "Enable AMD Drivers";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.tmpfiles.rules = ["L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"];
|
||||
services.xserver.videoDrivers = ["amdgpu"];
|
||||
environment.systemPackages = with pkgs; [rocmPackages.rocm-smi];
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
./amd-drivers.nix
|
||||
./intel-drivers.nix
|
||||
./local-hardware-clock.nix
|
||||
./nvidia-drivers.nix
|
||||
./nvidia-prime-drivers.nix
|
||||
./vm-guest-services.nix
|
||||
];
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.drivers.intel;
|
||||
in {
|
||||
options.drivers.intel = {
|
||||
enable = mkEnableOption "Enable Intel Graphics Drivers";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# OpenGL
|
||||
hardware.graphics = {
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver
|
||||
vaapiIntel
|
||||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.local.hardware-clock;
|
||||
in {
|
||||
options.local.hardware-clock = {
|
||||
enable = mkEnableOption "Change Hardware Clock To Local Time";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {time.hardwareClockInLocalTime = true;};
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.drivers.nvidia;
|
||||
in {
|
||||
options.drivers.nvidia = {
|
||||
enable = mkEnableOption "Enable Nvidia Drivers";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
environment.systemPackages = with pkgs; [nvidia-docker];
|
||||
hardware = {
|
||||
nvidia-container-toolkit.enable = true;
|
||||
nvidia = {
|
||||
# Modesetting is required.
|
||||
modesetting.enable = true;
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
powerManagement.enable = true;
|
||||
# Fine-grained power management. Turns off GPU when not in use.
|
||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||
powerManagement.finegrained = false;
|
||||
# Use the NVidia open source kernel module (not to be confused with the
|
||||
# independent third-party "nouveau" open source driver).
|
||||
# Support is limited to the Turing and later architectures. Full list of
|
||||
# supported GPUs is at:
|
||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||
# Only available from driver 515.43.04+
|
||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||
open = false;
|
||||
# Enable the Nvidia settings menu,
|
||||
# accessible via `nvidia-settings`.
|
||||
nvidiaSettings = true;
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
# Making nvidia docker toolkit work:
|
||||
#
|
||||
# sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
|
||||
#
|
||||
# sudo nvidia-ctk cdi list
|
||||
#
|
||||
# sudo tee /etc/docker/daemon.json > /dev/null <<EOF
|
||||
# {
|
||||
# "features": {
|
||||
# "cdi": true
|
||||
# }
|
||||
# }
|
||||
# EOF
|
||||
#
|
||||
# docker run --device nvidia.com/gpu=all
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.drivers.nvidia-prime;
|
||||
in {
|
||||
options.drivers.nvidia-prime = {
|
||||
enable = mkEnableOption "Enable Nvidia Prime Hybrid GPU Offload";
|
||||
intelBusID = mkOption {
|
||||
type = types.str;
|
||||
default = "PCI:1:0:0";
|
||||
};
|
||||
nvidiaBusID = mkOption {
|
||||
type = types.str;
|
||||
default = "PCI:0:2:0";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
hardware.nvidia = {
|
||||
prime = {
|
||||
offload = {
|
||||
enable = true;
|
||||
enableOffloadCmd = true;
|
||||
};
|
||||
# Make sure to use the correct Bus ID values for your system!
|
||||
intelBusId = "${cfg.intelBusID}";
|
||||
nvidiaBusId = "${cfg.nvidiaBusID}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.vm.guest-services;
|
||||
in {
|
||||
options.vm.guest-services = {
|
||||
enable = mkEnableOption "Enable Virtual Machine Guest Services";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.qemuGuest.enable = true;
|
||||
services.spice-vdagentd.enable = true;
|
||||
services.spice-webdavd.enable = false; # Causes navfs2 build failure invalid neon version 9-12-25
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
username,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.anki.enable = lib.mkEnableOption "Anki";
|
||||
|
||||
config.programs.anki = lib.mkIf config.anki.enable {
|
||||
enable = true;
|
||||
package = pkgs.anki;
|
||||
language = "pl_PL";
|
||||
style = "native";
|
||||
profiles."${username}".sync.username = username;
|
||||
};
|
||||
}
|
||||
@@ -1,146 +0,0 @@
|
||||
{
|
||||
username,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
programs.bash.shellAliases = {
|
||||
# GarandOS aliases
|
||||
pullos = "git -C /home/${username}/garandos pull";
|
||||
upd = "nh os switch --hostname ${host}";
|
||||
upg = "nh os switch --hostname ${host} --update";
|
||||
upf = "sudo nix flake update --flake /home/${username}/garandos";
|
||||
upf-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock";
|
||||
upd-bt = "nh os boot --hostname ${host}";
|
||||
upd-ts = "nh os test --hostname ${host}";
|
||||
upd-bd = "nh os build --hostname ${host}";
|
||||
tui = "garandos-tui";
|
||||
ncg = "nh clean all";
|
||||
|
||||
# Development aliases
|
||||
## Django
|
||||
srvenv = "source .venv/bin/activate";
|
||||
"..srvenv" = "source ../.venv/bin/activate";
|
||||
uv-add = "uv add -r requirements.txt";
|
||||
pm = "uv run manage.py";
|
||||
pm-rs = "uv run manage.py runserver";
|
||||
pm-mg = "uv run manage.py migrate";
|
||||
pm-mm = "uv run manage.py makemigrations";
|
||||
pm-sq = "uv run manage.py sqlmigrate";
|
||||
f8 = "uv run flake8 .";
|
||||
## JavaScript/TypeScript
|
||||
bbr = "bun --bun run";
|
||||
## Git
|
||||
"ga." = "git add .";
|
||||
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
|
||||
|
||||
# Development aliases for nix flake
|
||||
nd = "nix develop";
|
||||
nb = "nix build";
|
||||
nr = "nix run";
|
||||
nbr = "nix build && nix run";
|
||||
nbd = "nix build .#develop";
|
||||
nrd = "nix run .#develop";
|
||||
nbrd = "nix build .#develop && nix run .#develop";
|
||||
|
||||
# Development aliases for docker
|
||||
dcu = "docker compose up -d";
|
||||
dcd = "docker compose down";
|
||||
dcb = "docker compose build";
|
||||
dcub = "docker compose up -d --build";
|
||||
|
||||
# System aliases
|
||||
# flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
|
||||
kys = "shutdown now";
|
||||
ookla = "speedtest";
|
||||
hypr-cli = "hyprctl clients";
|
||||
|
||||
# Navigation aliases
|
||||
"~" = "cd ~";
|
||||
".." = "cd ..";
|
||||
"..." = "cd ../..";
|
||||
"...." = "cd ../../..";
|
||||
"....." = "cd ../../../..";
|
||||
|
||||
# Modifies commands
|
||||
cat = "bat";
|
||||
cp = "cp -i";
|
||||
mv = "mv -i";
|
||||
rm = "trash -v";
|
||||
mkdir = "mkdir -p";
|
||||
ps = "ps auxf";
|
||||
ping = "ping -c 10";
|
||||
less = "less -R";
|
||||
cls = "clear";
|
||||
multitail = "multitail --no-repeat -c";
|
||||
freshclam = "sudo freshclam";
|
||||
|
||||
# Alias"s for multiple directory listing commands
|
||||
la = "eza -alh --icons"; # show hidden files
|
||||
ls = "eza -aF --icons --color=always"; # add colors and file type extensions
|
||||
lx = "eza -lh --icons --sort=extension"; # sort by extension
|
||||
lk = "eza -lh --icons --sort=size --reverse"; # sort by size
|
||||
lc = "eza -lh --icons --sort=changed"; # sort by change time
|
||||
lu = "eza -lh --icons --sort=accessed"; # sort by access time
|
||||
lr = "eza -lh --icons --recurse"; # recursive ls
|
||||
lt = "eza -lh --icons --sort=modified"; # sort by date
|
||||
lm = "eza -alh --icons | more"; # pipe through "more"
|
||||
lw = "eza -xh --icons"; # wide listing format
|
||||
ll = "eza -lh --icons"; # long listing format
|
||||
labc = "eza -lah --icons --sort=name"; # alphabetical sort
|
||||
lf = "eza -lh --icons | grep -v '^d'"; # files only (przybliżenie)
|
||||
ldir = "eza -lh --icons --only-dirs"; # directories only
|
||||
lla = "eza -alh --icons"; # List and Hidden Files
|
||||
las = "eza -a --icons"; # Hidden Files
|
||||
lls = "eza -lh --icons"; # List
|
||||
|
||||
# chmod commands
|
||||
mx = "chmod a+x";
|
||||
"000" = "chmod -R 000";
|
||||
"644" = "chmod -R 644";
|
||||
"666" = "chmod -R 666";
|
||||
"755" = "chmod -R 755";
|
||||
"777" = "chmod -R 777";
|
||||
|
||||
# Search command line history
|
||||
h = "history | grep ";
|
||||
|
||||
# Search running processes
|
||||
p = "ps aux | grep ";
|
||||
topcpu = "/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10";
|
||||
|
||||
# Search files in the current folder
|
||||
f = "find . | grep ";
|
||||
|
||||
# Count all files (recursively) in the current folder
|
||||
countfiles = "for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null";
|
||||
|
||||
# Alias"s to show disk space and space used in a folder
|
||||
diskspace = "du -S | sort -n -r |more";
|
||||
folders = "du -h --max-depth=1";
|
||||
folderssort = "find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn";
|
||||
tree = "tree -CAhF --dirsfirst";
|
||||
treed = "tree -CAFd";
|
||||
mountedinfo = "df -hT";
|
||||
|
||||
# Show all logs in /var/log
|
||||
logs = "sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f";
|
||||
|
||||
# fix kitty ssh connection
|
||||
kssh = "kitty +kitten ssh";
|
||||
|
||||
docker-clean = "docker container prune -f ; docker image prune -f ; docker network prune -f ; docker volume prune -f";
|
||||
|
||||
# Remove a directory and all files
|
||||
rmd = "/bin/rm --recursive --force --verbose ";
|
||||
|
||||
# Fun aliases
|
||||
pasjans = "ttysolitaire -p 10 --no-background-color";
|
||||
fc = "fortune | cowsay";
|
||||
|
||||
# Network aliases
|
||||
kssh-server = "kssh hp-t640-homeserver";
|
||||
kssh-server-ts = "kssh hp-t640-homeserver-tailscale";
|
||||
ssh-server = "ssh hp-t640-homeserver";
|
||||
ssh-server-ts = "ssh hp-t640-homeserver-tailscale";
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
_: {
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
# initExtra = ''
|
||||
# fastfetch
|
||||
# '';
|
||||
};
|
||||
imports = [
|
||||
./aliases.nix
|
||||
./functions.nix
|
||||
];
|
||||
}
|
||||
@@ -1,144 +0,0 @@
|
||||
_: {
|
||||
programs.bash.bashrcExtra = ''
|
||||
# Quick directory creation and navigation
|
||||
mkcd() {
|
||||
mkdir -p "$1" && cd "$1"
|
||||
}
|
||||
|
||||
# Extract various archive formats
|
||||
extract() {
|
||||
for archive in "$@"; do
|
||||
if [ -f "$archive" ]; then
|
||||
case "$archive" in
|
||||
*.tar.bz2) tar xvjf "$archive" ;;
|
||||
*.tar.gz) tar xvzf "$archive" ;;
|
||||
*.bz2) bunzip2 "$archive" ;;
|
||||
*.rar) unrar x "$archive" ;;
|
||||
*.gz) gunzip "$archive" ;;
|
||||
*.tar) tar xvf "$archive" ;;
|
||||
*.tbz2) tar xvjf "$archive" ;;
|
||||
*.tgz) tar xvzf "$archive" ;;
|
||||
*.zip) unzip "$archive" ;;
|
||||
*.Z) uncompress "$archive" ;;
|
||||
*.7z) 7z x "$archive" ;;
|
||||
*) echo "don't know how to extract '$archive'..." ;;
|
||||
esac
|
||||
else
|
||||
echo "'$archive' is not a valid file!"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Find files quickly
|
||||
ff() {
|
||||
find . -name "*$1*" -type f
|
||||
}
|
||||
|
||||
# Find directories quickly
|
||||
fd() {
|
||||
find . -name "*$1*" -type d
|
||||
}
|
||||
|
||||
# IP address lookup
|
||||
alias whatismyip="whatsmyip"
|
||||
function whatsmyip () {
|
||||
# Internal IP Lookup.
|
||||
if command -v ip &> /dev/null; then
|
||||
echo -n "Internal IP: "
|
||||
ip addr show wlan0 | grep "inet " | awk '{print $2}' | cut -d/ -f1
|
||||
else
|
||||
echo -n "Internal IP: "
|
||||
ifconfig wlan0 | grep "inet " | awk '{print $2}'
|
||||
fi
|
||||
|
||||
# External IP Lookup
|
||||
echo -n "External IP: "
|
||||
curl -4 ifconfig.me
|
||||
}
|
||||
|
||||
# Searches for text in all files in the current folder
|
||||
ftext() {
|
||||
# -i case-insensitive
|
||||
# -I ignore binary files
|
||||
# -H causes filename to be printed
|
||||
# -r recursive search
|
||||
# -n causes line number to be printed
|
||||
# optional: -F treat search term as a literal, not a regular expression
|
||||
# optional: -l only print filenames and not the matching lines ex. grep -irl "$1" *
|
||||
grep -iIHrn --color=always "$1" . | less -r
|
||||
}
|
||||
|
||||
# Copy file with a progress bar
|
||||
cpp() {
|
||||
set -e
|
||||
strace -q -ewrite cp -- "$1" "$2" 2>&1 |
|
||||
awk '{
|
||||
count += $NF
|
||||
if (count % 10 == 0) {
|
||||
percent = count / total_size * 100
|
||||
printf "%3d%% [", percent
|
||||
for (i=0;i<=percent;i++)
|
||||
printf "="
|
||||
printf ">"
|
||||
for (i=percent;i<100;i++)
|
||||
printf " "
|
||||
printf "]\r"
|
||||
}
|
||||
}
|
||||
END { print "" }' total_size="$(stat -c '%s' "$1")" count=0
|
||||
}
|
||||
|
||||
# Copy and go to the directory
|
||||
cpg() {
|
||||
if [ -d "$2" ]; then
|
||||
cp "$1" "$2" && cd "$2"
|
||||
else
|
||||
cp "$1" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
# Move and go to the directory
|
||||
mvg() {
|
||||
if [ -d "$2" ]; then
|
||||
mv "$1" "$2" && cd "$2"
|
||||
else
|
||||
mv "$1" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
# Create and go to the directory
|
||||
mkdirg() {
|
||||
mkdir -p "$1"
|
||||
cd "$1"
|
||||
}
|
||||
|
||||
# Goes up a specified number of directories (i.e. up 4)
|
||||
up() {
|
||||
local d=""
|
||||
limit=$1
|
||||
for ((i = 1; i <= limit; i++)); do
|
||||
d=$d/..
|
||||
done
|
||||
d=$(echo $d | sed 's/^\///')
|
||||
if [ -z "$d" ]; then
|
||||
d=..
|
||||
fi
|
||||
cd $d
|
||||
}
|
||||
|
||||
# Automatically do an ls after each cd, z, or zoxide
|
||||
cd ()
|
||||
{
|
||||
if [ -n "$1" ]; then
|
||||
builtin cd "$@" && ls
|
||||
else
|
||||
builtin cd ~ && ls
|
||||
fi
|
||||
}
|
||||
|
||||
# Returns the last 2 fields of the working directory
|
||||
pwdtail() {
|
||||
pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
|
||||
}
|
||||
'';
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
pager = "less -FR";
|
||||
style = "full";
|
||||
theme = lib.mkForce "base16";
|
||||
};
|
||||
extraPackages = with pkgs.bat-extras; [
|
||||
batman
|
||||
batpipe
|
||||
batgrep
|
||||
];
|
||||
};
|
||||
home.sessionVariables = {
|
||||
MANPAGER = "sh -c 'col -bx | bat -l man -p'";
|
||||
MANROFFOPT = "-c";
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.btop.enable = lib.mkEnableOption "Btop";
|
||||
|
||||
config.programs.btop = lib.mkIf config.btop.enable {
|
||||
enable = true;
|
||||
package = pkgs.btop.override {
|
||||
rocmSupport = true;
|
||||
cudaSupport = true;
|
||||
};
|
||||
settings = {
|
||||
rounded_corners = true;
|
||||
proc_tree = true;
|
||||
show_gpu_info = "on";
|
||||
show_uptime = true;
|
||||
show_coretemp = true;
|
||||
cpu_sensor = "auto";
|
||||
show_disks = true;
|
||||
only_physical = true;
|
||||
io_mode = true;
|
||||
io_graph_combined = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.cava.enable = lib.mkEnableOption "Cava";
|
||||
|
||||
config.programs.cava = lib.mkIf config.cava.enable {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
bar_spacing = 1;
|
||||
bar_width = 2;
|
||||
frame_rate = 144;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.ungoogled-chromium.enable = lib.mkEnableOption "Ungoogled Chromium";
|
||||
|
||||
config.programs.chromium = lib.mkIf config.ungoogled-chromium.enable {
|
||||
enable = true;
|
||||
package = pkgs.ungoogled-chromium;
|
||||
# commandLineArgs = [ ];
|
||||
dictionaries = with pkgs; [
|
||||
hunspellDictsChromium.en_US
|
||||
# hunspellDictsChromium.pl_PL Jeśli się taka pojawi
|
||||
];
|
||||
};
|
||||
|
||||
imports = [
|
||||
./extensions.nix
|
||||
];
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
_: {
|
||||
programs.chromium.extensions = [
|
||||
{
|
||||
id = "ocaahdebbfolfmndjeplogmgcagdmblk"; # Chromium Web Store
|
||||
}
|
||||
{
|
||||
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; # Dark Reader
|
||||
}
|
||||
{
|
||||
id = "fnaicdffflnofjppbagibeoednhnbjhg"; # floccus bookmarks sync
|
||||
}
|
||||
{
|
||||
id = "amknoiejhlmhancpahfcfcfhllgkpbld"; # Hoppscotch Browser Extension
|
||||
}
|
||||
{
|
||||
id = "nngceckbapebfimnlniiiahkandclblb"; # Menedżer haseł Bitwarden
|
||||
}
|
||||
{
|
||||
id = "fdaphilojaklgkoocegabckfanjoacjg"; # mtab
|
||||
}
|
||||
{
|
||||
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; # uBlock Origin
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./bash
|
||||
./chromium
|
||||
./fastfetch
|
||||
./hyprland
|
||||
./kitty
|
||||
./librewolf
|
||||
./noctalia
|
||||
./scripts
|
||||
./vscodium
|
||||
./xdg
|
||||
./zed
|
||||
./anki.nix
|
||||
./bat.nix
|
||||
./btop.nix
|
||||
./cava.nix
|
||||
./emoji.nix
|
||||
./eza.nix
|
||||
./fzf.nix
|
||||
./git.nix
|
||||
./gtk.nix
|
||||
./kdeConnect.nix
|
||||
./lutris.nix
|
||||
./nextcloud.nix
|
||||
./obs-studio.nix
|
||||
./onlyoffice.nix
|
||||
./qt.nix
|
||||
./ssh.nix
|
||||
./starship.nix
|
||||
./stylix.nix
|
||||
./swappy.nix
|
||||
./tealdeer.nix
|
||||
./vesktop.nix
|
||||
./virtmanager.nix
|
||||
./zoxide.nix
|
||||
];
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,20 +0,0 @@
|
||||
# Eza is a ls replacement
|
||||
{
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
icons = "auto";
|
||||
enableBashIntegration = true;
|
||||
git = true;
|
||||
|
||||
extraOptions = [
|
||||
"--group-directories-first"
|
||||
"--no-quotes"
|
||||
"--header" # Show header row
|
||||
"--git-ignore"
|
||||
"--icons=always"
|
||||
# "--time-style=long-iso" # ISO 8601 extended format for time
|
||||
"--classify" # append indicator (/, *, =, @, |)
|
||||
"--hyperlink" # make paths clickable in some terminals
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.fastfetch.enable = lib.mkEnableOption "FastFetch";
|
||||
|
||||
config.programs.fastfetch = lib.mkIf config.fastfetch.enable {
|
||||
enable = true;
|
||||
package = pkgs.fastfetch;
|
||||
};
|
||||
|
||||
imports = [
|
||||
./settings
|
||||
];
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 31 KiB |
@@ -1,7 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./display.nix
|
||||
./logo.nix
|
||||
./modules.nix
|
||||
];
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
_: {
|
||||
programs.fastfetch.settings.display = {
|
||||
color = {
|
||||
keys = "35";
|
||||
output = "90";
|
||||
};
|
||||
separator = " ➜ ";
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
_: {
|
||||
programs.fastfetch.settings.logo = {
|
||||
source = ../garandos.png;
|
||||
type = "kitty-direct";
|
||||
height = 15;
|
||||
width = 30;
|
||||
padding = {
|
||||
top = 3;
|
||||
left = 3;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,159 +0,0 @@
|
||||
_: {
|
||||
programs.fastfetch.settings.modules = [
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌─────────────────────────────────Hardware────────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "host";
|
||||
format = "{5} {1} Type {2}";
|
||||
key = "│ PC";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "cpu";
|
||||
format = "{1} ({3}) @ {7} GHz";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "gpu";
|
||||
format = "{1} {2} @ {12} GHz";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "memory";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "swap";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "disk";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "monitor";
|
||||
key = "│ └ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌─────────────────────────────────Software─────────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "os";
|
||||
key = "│ OS";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
text = "echo GarandOS v$" + "{GARANDOS_VERSION}";
|
||||
}
|
||||
{
|
||||
type = "kernel";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "packages";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "shell";
|
||||
key = "│ └ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "wm";
|
||||
key = "│ WM";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "wmtheme";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "icons";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "cursor";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "terminal";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "terminalfont";
|
||||
key = "│ └ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌───────────────────────────────Age / Uptime───────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ IN";
|
||||
text =
|
||||
#bash
|
||||
''
|
||||
birth_install=$(stat -c %W /)
|
||||
if [ "$birth_install" -gt 0 ]; then
|
||||
echo "Installed $(date -d @"$birth_install" +"%Y-%m-%d")"
|
||||
else
|
||||
echo "Installation date unknown"
|
||||
fi
|
||||
'';
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ ├ ";
|
||||
text =
|
||||
#bash
|
||||
''
|
||||
birth_install=$(stat -c %W /)
|
||||
current=$(date +%s)
|
||||
delta=$((current - birth_install))
|
||||
delta_days=$((delta / 86400))
|
||||
echo $delta_days days
|
||||
'';
|
||||
}
|
||||
{
|
||||
type = "uptime";
|
||||
key = "│ └ ";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
"break"
|
||||
];
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
# Fzf is a general-purpose command-line fuzzy finder.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
accent = "#" + config.lib.stylix.colors.base0D;
|
||||
foreground = "#" + config.lib.stylix.colors.base05;
|
||||
muted = "#" + config.lib.stylix.colors.base03;
|
||||
in {
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
colors = lib.mkForce {
|
||||
"fg+" = accent;
|
||||
"bg+" = "-1";
|
||||
"fg" = foreground;
|
||||
"bg" = "-1";
|
||||
"prompt" = muted;
|
||||
"pointer" = accent;
|
||||
};
|
||||
defaultOptions = [
|
||||
"--margin=1"
|
||||
"--layout=reverse"
|
||||
"--border=none"
|
||||
"--info='hidden'"
|
||||
"--header=''"
|
||||
"--prompt='/ '"
|
||||
"-i"
|
||||
"--no-bold"
|
||||
"--bind='enter:execute(nano {})'"
|
||||
"--preview='bat --style=numbers --color=always --line-range :500 {}'"
|
||||
"--preview-window=right:60%:wrap"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) gitUsername gitEmail;
|
||||
in {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "${gitUsername}";
|
||||
email = "${gitEmail}";
|
||||
};
|
||||
push.default = "simple";
|
||||
credential.helper = "cache --timeout=7200";
|
||||
init.defaultBranch = "main";
|
||||
log = {
|
||||
decorate = "full";
|
||||
date = "iso";
|
||||
};
|
||||
merge.conflictStyle = "diff3";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
gtk = {
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||
gtk4 = {
|
||||
theme = null;
|
||||
extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
_: {
|
||||
wayland.windowManager.hyprland.settings.animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"linear, 0, 0, 1, 1"
|
||||
"md3_standard, 0.2, 0, 0, 1"
|
||||
"md3_decel, 0.05, 0.7, 0.1, 1"
|
||||
"md3_accel, 0.3, 0, 0.8, 0.15"
|
||||
"overshot, 0.05, 0.9, 0.1, 1.1"
|
||||
"crazyshot, 0.1, 1.5, 0.76, 0.92 "
|
||||
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
|
||||
"menu_decel, 0.1, 1, 0, 1"
|
||||
"menu_accel, 0.38, 0.04, 1, 0.07"
|
||||
"easeInOutCirc, 0.85, 0, 0.15, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutExpo, 0.16, 1, 0.3, 1"
|
||||
"softAcDecel, 0.26, 0.26, 0.15, 1"
|
||||
"md2, 0.4, 0, 0.2, 1 # use with .2s duration"
|
||||
];
|
||||
animation = [
|
||||
"windows, 1, 3, md3_decel, popin 60%"
|
||||
"windowsIn, 1, 3, md3_decel, popin 60%"
|
||||
"windowsOut, 1, 3, md3_accel, popin 60%"
|
||||
"border, 1, 10, default"
|
||||
"fade, 1, 3, md3_decel"
|
||||
"layersIn, 1, 3, menu_decel, slide"
|
||||
"layersOut, 1, 1.6, menu_accel"
|
||||
"fadeLayersIn, 1, 2, menu_decel"
|
||||
"fadeLayersOut, 1, 4.5, menu_accel"
|
||||
"workspaces, 1, 7, menu_decel, slide"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,166 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
username,
|
||||
...
|
||||
}: let
|
||||
desktopEntriesPath = "/home/${username}/.local/state/home-manager/gcroots/current-home/home-path/share/applications/";
|
||||
|
||||
mainBinds = [
|
||||
"SUPER, A, exec, anki #\"Flashcard learning application\""
|
||||
"SUPER, B, exec, bitwarden #\"Password manager\""
|
||||
"SUPER, C, exec, chromium #\"Ungoogled Chromium\""
|
||||
"SUPER, D, exec, vesktop #\"Discord client\""
|
||||
"SUPER, E, exec, noctalia-shell ipc call launcher emoji #\"Emoji picker\""
|
||||
"SUPER, Escape, exec, noctalia-shell ipc call lockScreen lock #\"Lock the screen\""
|
||||
"SUPER, G, exec, affinity-v3 #\"Graphics editor\""
|
||||
"SUPER, I, exec, iotas #\"Note-taking app\""
|
||||
"SUPER, J, exec, Jan #\"Local AI chat interface\""
|
||||
"SUPER, K, exec, gnome-calculator #\"Scientific calculator\""
|
||||
"SUPER, L, exec, logseq #\"Knowledge management tool\""
|
||||
"SUPER, M, exec, plexamp #\"Music player for Plex\""
|
||||
"SUPER, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop #\"GarandCloud client\""
|
||||
"SUPER, O, exec, onlyoffice-desktopeditors #\"Office suite\""
|
||||
"SUPER, P, exec, plex-desktop #\"Plex media player\""
|
||||
"SUPER, Return, exec, kitty #\"Kitty terminal\""
|
||||
"SUPER, S, exec, steam #\"Steam Game launcher\""
|
||||
"SUPER, T, exec, thunar #\"File manager\""
|
||||
"SUPER, V, exec, codium #\"VS Codium\""
|
||||
"SUPER, W, exec, librewolf #\"Main Web browser (Librewolf)\""
|
||||
"SUPER, Z, exec, zeditor #\"Zed IDE\""
|
||||
];
|
||||
|
||||
shiftBinds = [
|
||||
"SUPER SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop #\"Claude AI chat\""
|
||||
"SUPER SHIFT, E, exec, evolution #\"Personal information management application\""
|
||||
"SUPER SHIFT, Escape, exec, noctalia-shell ipc call sessionMenu toggle #\"Open Session Menu\""
|
||||
"SUPER SHIFT, G, exec, dex ${desktopEntriesPath}/chatgpt.desktop #\"ChatGPT AI chat\""
|
||||
"SUPER SHIFT, K, exec, noctalia-shell ipc call plugin:keybind-cheatsheet toggle #\"Toggle keybind cheatsheet\""
|
||||
"SUPER SHIFT, M, exec, dex ${desktopEntriesPath}/messenger.desktop #\"Facebook Messenger client\""
|
||||
"SUPER SHIFT, N, exec, nextcloud #\"Nextcloud desktop sync client\""
|
||||
"SUPER SHIFT, O, exec, obs #\"Open Broadcaster Software\""
|
||||
"SUPER SHIFT, P, exec, noctalia-shell ipc call volume togglePanel #\"Toggle volume control panel\""
|
||||
"SUPER SHIFT, R, exec, restart.noctalia #\"Restart Noctalia shell\""
|
||||
"SUPER SHIFT, Return, exec, noctalia-shell ipc call launcher toggle #\"Toggle application launcher\""
|
||||
"SUPER SHIFT, S, exec, screenshootin #\"Take screenshot\""
|
||||
"SUPER SHIFT, T, exec, tutanota-desktop #\"Tutanota encrypted email client\""
|
||||
"SUPER SHIFT, V, exec, noctalia-shell ipc call launcher clipboard #\"Open clipboard manager\""
|
||||
];
|
||||
|
||||
altBinds = [
|
||||
"SUPER ALT, C, exec, noctalia-shell ipc call controlCenter toggle #\"Toggle control center\""
|
||||
"SUPER ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop #\"Glance server panel\""
|
||||
"SUPER ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop #\"Mastodon social network client\""
|
||||
"SUPER ALT, P, exec, noctalia-shell ipc call settings toggle #\"Open settings panel\""
|
||||
"SUPER ALT, S, exec, slack #\"Slack team communication tool\""
|
||||
"SUPER ALT, T, exec, gedit #\"GNOME text editor\""
|
||||
"SUPER ALT, W, exec, noctalia-shell ipc call wallpaper toggle #\"Toggle wallpaper\""
|
||||
];
|
||||
|
||||
controlBinds = [
|
||||
"SUPER CONTROL, C, exec, noctalia-shell ipc call powerProfile cycle #\"Cycle through power profiles\""
|
||||
"SUPER CONTROL, G, exec, gimp #\"GNU Image Manipulation Program\""
|
||||
"SUPER CONTROL, M, exec, mattermost-desktop #\"Mattermost team chat client\""
|
||||
"SUPER CONTROL, S, exec, signal-desktop #\"Signal encrypted messaging\""
|
||||
"SUPER CONTROL, P, exec, hyprpicker -a #\"Pick color from screen\""
|
||||
];
|
||||
|
||||
windowManagementBinds = [
|
||||
"SUPER, F, fullscreen, #\"Toggle fullscreen mode\""
|
||||
"SUPER, Q, killactive, #\"Close active window\""
|
||||
"SUPER SHIFT, I, togglesplit, #\"Toggle split layout\""
|
||||
"SUPER SHIFT, F, togglefloating, #\"Toggle floating mode\""
|
||||
];
|
||||
|
||||
windowFocusBinds = [
|
||||
"SUPER, down, movefocus, d #\"Move focus down\""
|
||||
"SUPER, left, movefocus, l #\"Move focus left\""
|
||||
"SUPER, right, movefocus, r #\"Move focus right\""
|
||||
"SUPER, up, movefocus, u #\"Move focus up\""
|
||||
];
|
||||
|
||||
windowMovementBinds = [
|
||||
"SUPER SHIFT, down, movewindow, d #\"Move window down\""
|
||||
"SUPER SHIFT, left, movewindow, l #\"Move window left\""
|
||||
"SUPER SHIFT, right, movewindow, r #\"Move window right\""
|
||||
"SUPER SHIFT, up, movewindow, u #\"Move window up\""
|
||||
];
|
||||
|
||||
windowSwapBinds = [
|
||||
"SUPER ALT, down, swapwindow, d #\"Swap active window with window below\""
|
||||
"SUPER ALT, left, swapwindow, l #\"Swap active window with window on the left\""
|
||||
"SUPER ALT, right, swapwindow, r #\"Swap active window with window on the right\""
|
||||
"SUPER ALT, up, swapwindow, u #\"Swap active window with window above\""
|
||||
];
|
||||
|
||||
workspacesSwitchBinds = [
|
||||
"SUPER, 0, workspace, 10 #\"Switch to workspace 10\""
|
||||
"SUPER, 1, workspace, 1 #\"Switch to workspace 1\""
|
||||
"SUPER, 2, workspace, 2 #\"Switch to workspace 2\""
|
||||
"SUPER, 3, workspace, 3 #\"Switch to workspace 3\""
|
||||
"SUPER, 4, workspace, 4 #\"Switch to workspace 4\""
|
||||
"SUPER, 5, workspace, 5 #\"Switch to workspace 5\""
|
||||
"SUPER, 6, workspace, 6 #\"Switch to workspace 6\""
|
||||
"SUPER, 7, workspace, 7 #\"Switch to workspace 7\""
|
||||
"SUPER, 8, workspace, 8 #\"Switch to workspace 8\""
|
||||
"SUPER, 9, workspace, 9 #\"Switch to workspace 9\""
|
||||
"SUPER CONTROL, left, workspace, e-1 #\"Switch to previous workspace\""
|
||||
"SUPER CONTROL, right, workspace, e+1 #\"Switch to next workspace\""
|
||||
"SUPER, mouse_down, workspace, e+1 #\"Switch to next workspace with mouse\""
|
||||
"SUPER, mouse_up, workspace, e-1 #\"Switch to previous workspace with mouse\""
|
||||
];
|
||||
|
||||
workspacesSwapBinds = [
|
||||
"SUPER SHIFT, 0, movetoworkspace, 10 #\"Move active window to workspace 10\""
|
||||
"SUPER SHIFT, 1, movetoworkspace, 1 #\"Move active window to workspace 1\""
|
||||
"SUPER SHIFT, 2, movetoworkspace, 2 #\"Move active window to workspace 2\""
|
||||
"SUPER SHIFT, 3, movetoworkspace, 3 #\"Move active window to workspace 3\""
|
||||
"SUPER SHIFT, 4, movetoworkspace, 4 #\"Move active window to workspace 4\""
|
||||
"SUPER SHIFT, 5, movetoworkspace, 5 #\"Move active window to workspace 5\""
|
||||
"SUPER SHIFT, 6, movetoworkspace, 6 #\"Move active window to workspace 6\""
|
||||
"SUPER SHIFT, 7, movetoworkspace, 7 #\"Move active window to workspace 7\""
|
||||
"SUPER SHIFT, 8, movetoworkspace, 8 #\"Move active window to workspace 8\""
|
||||
"SUPER SHIFT, 9, movetoworkspace, 9 #\"Move active window to workspace 9\""
|
||||
];
|
||||
|
||||
systemMediaAndControllsBinds = [
|
||||
",XF86AudioLowerVolume, exec, noctalia-shell ipc call volume decrease #\"Lower system volume\""
|
||||
",XF86AudioMute, exec, noctalia-shell ipc call volume muteOutput #\"Mute audio output\""
|
||||
",XF86AudioMicMute, exec, noctalia-shell ipc call volume muteInput #\"Mute audio input\""
|
||||
",XF86AudioNext, exec, noctalia-shell ipc call media next #\"Next media track\""
|
||||
",XF86AudioPlay, exec, noctalia-shell ipc call media playPause #\"Play/Pause media\""
|
||||
",XF86AudioPrev, exec, noctalia-shell ipc call media previous #\"Previous media track\""
|
||||
",XF86AudioRaiseVolume, exec, noctalia-shell ipc call volume increase #\"Raise system volume\""
|
||||
",XF86MonBrightnessDown, exec, noctalia-shell ipc call brightness decrease #\"Decrease screen brightness\""
|
||||
",XF86MonBrightnessUp, exec, noctalia-shell ipc call brightness increase #\"Increase screen brightness\""
|
||||
];
|
||||
|
||||
mkBlock = header: lines:
|
||||
lib.concatLines (
|
||||
["# ${header}"]
|
||||
++ (map (l: "bind = ${l}") lines)
|
||||
);
|
||||
|
||||
fullConfig = lib.concatLines [
|
||||
""
|
||||
(mkBlock "1. MAIN APPS" mainBinds)
|
||||
(mkBlock "2. SHIFT APPS" shiftBinds)
|
||||
(mkBlock "3. ALT APPS" altBinds)
|
||||
(mkBlock "4. CONTROL APPS" controlBinds)
|
||||
(mkBlock "5. WINDOW MANAGEMENT" windowManagementBinds)
|
||||
(mkBlock "6. WINDOWS FOCUS" windowFocusBinds)
|
||||
(mkBlock "7. WINDOWS MOVEMENT" windowMovementBinds)
|
||||
(mkBlock "8. WINDOWS SWAP" windowSwapBinds)
|
||||
(mkBlock "9. WORKSPACES SWITCH" workspacesSwitchBinds)
|
||||
(mkBlock "10. WORKSPACES SWAP" workspacesSwapBinds)
|
||||
(mkBlock "11. SYSTEM MEDIA & CONTROLS" systemMediaAndControllsBinds)
|
||||
];
|
||||
in {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
extraConfig = fullConfig;
|
||||
|
||||
bindm = [
|
||||
"SUPER, mouse:272, movewindow"
|
||||
"SUPER, mouse:273, resizewindow"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./animations.nix
|
||||
./binds.nix
|
||||
./env.nix
|
||||
./exec-once.nix
|
||||
./hypridle.nix
|
||||
./hyprland.nix
|
||||
./pyprland.nix
|
||||
./windowrules.nix
|
||||
];
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
_: {
|
||||
wayland.windowManager.hyprland.settings.env = [
|
||||
"NIXOS_OZONE_WL, 1"
|
||||
"NIXPKGS_ALLOW_UNFREE, 1"
|
||||
"XDG_CURRENT_DESKTOP, Hyprland"
|
||||
"XDG_SESSION_TYPE, wayland"
|
||||
"XDG_SESSION_DESKTOP, Hyprland"
|
||||
"GDK_BACKEND, wayland, x11"
|
||||
"CLUTTER_BACKEND, wayland"
|
||||
"QT_QPA_PLATFORM=wayland;xcb"
|
||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION, 1"
|
||||
"QT_AUTO_SCREEN_SCALE_FACTOR, 1"
|
||||
"SDL_VIDEODRIVER, x11"
|
||||
"MOZ_ENABLE_WAYLAND, 1"
|
||||
# This is to make electron apps start in wayland
|
||||
"ELECTRON_OZONE_PLATFORM_HINT,wayland"
|
||||
# Disabling this by default as it can result in inop cfg
|
||||
# Added card2 in case this gets enabled. For better coverage
|
||||
# This is mostly needed by Hybrid laptops.
|
||||
# but if you have multiple discrete GPUs this will set order
|
||||
#"AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1:/dev/card2"
|
||||
"GDK_SCALE,1"
|
||||
"QT_SCALE_FACTOR,1"
|
||||
"EDITOR,nano"
|
||||
"TERMINAL,kitty"
|
||||
"XDG_TERMINAL_EMULATOR,kitty"
|
||||
];
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
_: {
|
||||
wayland.windowManager.hyprland.settings.exec-once = [
|
||||
"wl-paste --type text --watch cliphist store" # Saves text
|
||||
"wl-paste --type image --watch cliphist store" # Saves images
|
||||
"dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"systemctl --user start hyprpolkitagent"
|
||||
];
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 38 KiB |
@@ -1,18 +0,0 @@
|
||||
_: {
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
ignore_dbus_inhibit = false;
|
||||
};
|
||||
listener = [
|
||||
{
|
||||
timeout = 1200;
|
||||
on-timeout = "hyprctl dispatch dpms off";
|
||||
on-resume = "hyprctl dispatch dpms on";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,153 +0,0 @@
|
||||
{
|
||||
host,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../../hosts/${host}/variables.nix) extraMonitorSettings keyboardLayout;
|
||||
in {
|
||||
systemd.user.targets.hyprland-session.Unit.Wants = [
|
||||
"xdg-desktop-autostart.target"
|
||||
];
|
||||
# Place Files Inside Home Directory
|
||||
home.file = {
|
||||
"Pictures/Wallpapers" = {
|
||||
source = ../../../wallpapers;
|
||||
recursive = true;
|
||||
};
|
||||
".face.icon".source = ./face.jpg;
|
||||
".config/face.jpg".source = ./face.jpg;
|
||||
};
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = pkgs.hyprland;
|
||||
systemd = {
|
||||
enable = true;
|
||||
enableXdgAutostart = true;
|
||||
variables = ["--all"];
|
||||
};
|
||||
xwayland.enable = true;
|
||||
settings = {
|
||||
input = {
|
||||
kb_layout = "${keyboardLayout}";
|
||||
kb_options = [
|
||||
"grp:alt_caps_toggle"
|
||||
"caps:super"
|
||||
];
|
||||
numlock_by_default = true;
|
||||
repeat_delay = 300;
|
||||
follow_mouse = 1;
|
||||
float_switch_override_focus = 0;
|
||||
sensitivity = 0;
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
disable_while_typing = true;
|
||||
scroll_factor = 0.8;
|
||||
};
|
||||
};
|
||||
|
||||
gestures = {
|
||||
# workspace_swipe = 1;
|
||||
# workspace_swipe_fingers = 3;
|
||||
workspace_swipe_distance = 500;
|
||||
workspace_swipe_invert = 1;
|
||||
workspace_swipe_min_speed_to_force = 30;
|
||||
workspace_swipe_cancel_ratio = 0.5;
|
||||
workspace_swipe_create_new = 1;
|
||||
workspace_swipe_forever = 1;
|
||||
};
|
||||
|
||||
general = {
|
||||
layout = "dwindle";
|
||||
gaps_in = 6;
|
||||
gaps_out = 8;
|
||||
border_size = 2;
|
||||
resize_on_border = true;
|
||||
"col.active_border" = "rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
|
||||
"col.inactive_border" = "rgb(${config.lib.stylix.colors.base01})";
|
||||
};
|
||||
|
||||
misc = {
|
||||
layers_hog_keyboard_focus = true;
|
||||
initial_workspace_tracking = 0;
|
||||
mouse_move_enables_dpms = true;
|
||||
key_press_enables_dpms = false;
|
||||
disable_hyprland_logo = true;
|
||||
disable_splash_rendering = true;
|
||||
enable_swallow = true;
|
||||
swallow_regex = "^(kitty)$";
|
||||
vfr = true; # Variable Frame Rate
|
||||
vrr = 2; # Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES
|
||||
# Screen flashing to black momentarily or going black when app is fullscreen
|
||||
# Try setting vrr to 0
|
||||
|
||||
# Application not responding (ANR) settings
|
||||
enable_anr_dialog = true;
|
||||
anr_missed_pings = 15;
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
force_split = 2;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 10;
|
||||
rounding_power = 2;
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 5;
|
||||
passes = 3;
|
||||
vibrancy = 0.1696;
|
||||
ignore_opacity = false;
|
||||
new_optimizations = true;
|
||||
};
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = "rgba(1a1a1aee)";
|
||||
};
|
||||
};
|
||||
|
||||
ecosystem = {
|
||||
no_donation_nag = true;
|
||||
no_update_news = false;
|
||||
};
|
||||
|
||||
cursor = {
|
||||
sync_gsettings_theme = true;
|
||||
no_hardware_cursors = 2; # change to 1 if want to disable
|
||||
enable_hyprcursor = false;
|
||||
warp_on_change_workspace = 2;
|
||||
no_warps = true;
|
||||
};
|
||||
|
||||
render = {
|
||||
# Disabling as no longer supported
|
||||
#explicit_sync = 1; # Change to 1 to disable
|
||||
#explicit_sync_kms = 1;
|
||||
direct_scanout = 0;
|
||||
};
|
||||
|
||||
debug.full_cm_proto = true;
|
||||
|
||||
master = {
|
||||
new_status = "master";
|
||||
new_on_top = 1;
|
||||
mfact = 0.5;
|
||||
};
|
||||
|
||||
# Ensure Xwayland windows render at integer scale; compositor scales them
|
||||
xwayland.force_zero_scaling = true;
|
||||
};
|
||||
|
||||
extraConfig = "
|
||||
monitor=,preferred,auto,auto
|
||||
monitor=Virtual-1,1920x1080@60,auto,1
|
||||
${extraMonitorSettings}
|
||||
layerrule = blur on, blur_popups on, ignore_alpha 0.5, match:namespace noctalia-background-\.*$
|
||||
";
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
_: {
|
||||
home.file.".config/hypr/pyprland.toml".text = ''
|
||||
[pyprland]
|
||||
plugins = [
|
||||
"scratchpads",
|
||||
]
|
||||
|
||||
[scratchpads.term]
|
||||
animation = "fromTop"
|
||||
command = "kitty --class kitty-dropterm"
|
||||
class = "kitty-dropterm"
|
||||
size = "70% 70%"
|
||||
max_size = "1920px 100%"
|
||||
position = "150px 150px"
|
||||
'';
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
_: {
|
||||
wayland.windowManager.hyprland.settings.windowrule = [
|
||||
# XWayland specific rules
|
||||
#"noblur, xwayland:1" # Helps prevent odd borders/shadows for xwayland apps
|
||||
# downside it can impact other xwayland apps
|
||||
# This rule is a template for a more targeted approach
|
||||
"no_blur on, match:class resolve, match:xwayland 1" # Window rule for just resolve
|
||||
|
||||
# Application tags
|
||||
"tag +file-manager, match:class [Tt]hunar|org\.gnome\.Nautilus|[Pp]cmanfm-qt"
|
||||
"tag +terminal, match:class com\.mitchellh\.ghostty|org\.wezfurlong\.wezterm|Alacritty|kitty|kitty-dropterm"
|
||||
"tag +browser, match:class [Ff]irefox|org\.mozilla\.firefox|[Ff]irefox-esr"
|
||||
"tag +browser, match:class [Ll]ibrewolf|io\.gitlab\.librewolf-community"
|
||||
"tag +browser, match:class [Gg]oogle-chrome(-beta|-dev|-unstable)?|[Cc]hromium-browser(-beta|-dev|-unstable)?"
|
||||
"tag +projects, match:class VSCode|code|code-url-handler|codium|codium-url-handler|VSCodium|VSCodium-url-handler"
|
||||
"tag +projects, match:class dev\.zed\.Zed"
|
||||
"tag +im, match:class [Dd]iscord|[Ww]ebCord|[Vv]esktop"
|
||||
"tag +im, match:class [Ff]erdium"
|
||||
"tag +im, match:class [Ss]ignal"
|
||||
"tag +im, match:class [Ss]lack"
|
||||
"tag +im, match:class [Tt]eams-for-linux"
|
||||
"tag +games, match:class gamescope"
|
||||
"tag +games, match:class ?:steam_app_\d+"
|
||||
"tag +games, match:class tf_linux64"
|
||||
"tag +games, match:class Minecraft\*.*"
|
||||
"tag +gamestore, match:class [Ss]team"
|
||||
"tag +gamestore, match:title [Ll]utris"
|
||||
"tag +gamestore, match:class com\.heroicgameslauncher\.hgl"
|
||||
"tag +gamestore, match:class org\.prismlauncher\.PrismLauncher"
|
||||
"tag +settings, match:class gnome-disks|wihotspot(-gui)?"
|
||||
"tag +settings, match:class [Rr]ofi"
|
||||
"tag +settings, match:class file-roller|org\.gnome\.FileRoller"
|
||||
"tag +settings, match:class nm-applet|nm-connection-editor"
|
||||
"tag +settings, match:class pavucontrol|org\.pulseaudio\.pavucontrol|com\.saivert\.pwvucontrol"
|
||||
"tag +settings, match:class nwg-look|qt5ct|qt6ct|[Yy]ad"
|
||||
"tag +settings, match:class xdg-desktop-portal-gtk"
|
||||
"tag +settings, match:class nwg-displays"
|
||||
|
||||
# Position and movement rules
|
||||
"move 72% 7%, match:title Picture-in-Picture"
|
||||
"center on, match:class pavucontrol|org\.pulseaudio\.pavucontrol|com\.saivert\.pwvucontrol"
|
||||
"center on, match:class [Tt]hunar, match:title negative:.*[Tt]hunar.*"
|
||||
"center on, match:title Authentication Required"
|
||||
"center on, match:class org\.gnome\.Calculator"
|
||||
|
||||
# Idle inhibit rules
|
||||
"idle_inhibit fullscreen, match:class .*"
|
||||
"idle_inhibit fullscreen, match:title .*"
|
||||
"idle_inhibit fullscreen, match:fullscreen 1"
|
||||
|
||||
# Float rules
|
||||
"float on, match:class [Ww]aypaper"
|
||||
"float on, match:tag settings*"
|
||||
"float on, match:title Picture-in-Picture"
|
||||
"float on, match:title Authentication Required"
|
||||
"float on, match:title War in Tunnels"
|
||||
"float on, match:class codium|codium-url-handler|VSCodium, match:title negative:.*(?:codium|VSCodium).*"
|
||||
"float on, match:class com\.heroicgameslauncher\.hgl, match:title negative Heroic Games Launcher"
|
||||
"float on, match:class [Ss]team, match:title negative:[Ss]team"
|
||||
"float on, match:class [Tt]hunar, match:title negative:.*[Tt]hunar.*"
|
||||
"float on, match:class galculator"
|
||||
"float on, match:initial_title Add Folder to Workspace"
|
||||
"float on, match:initial_title Open Files"
|
||||
"float on, match:initial_title wants to save"
|
||||
"float on, match:class org\.gnome\.Calculator"
|
||||
|
||||
# Size rules
|
||||
"size 70% 60%, match:initial_title Open Files"
|
||||
"size 70% 60%, match:initial_title Add Folder to Workspace"
|
||||
"size 70% 70%, match:tag settings*"
|
||||
"size 360 616, match:class org\.gnome\.Calculator"
|
||||
|
||||
# Tile rules
|
||||
"tile on, match:class affinity\.exe"
|
||||
"tile on, match:class dev\.zed\.Zed"
|
||||
"tile on, match:class mpv"
|
||||
"tile on, match:class com-cburch-logisim-Main"
|
||||
|
||||
# Opacity rules
|
||||
"opacity 1.0 1.0, match:tag browser*"
|
||||
"opacity 0.9 0.8, match:tag projects*"
|
||||
"opacity 0.94 0.86, match:tag im*"
|
||||
"opacity 0.85 0.75, match:tag gamestore*"
|
||||
"opacity 0.9 0.8, match:tag file-manager*"
|
||||
"opacity 0.8 0.7, match:tag terminal*"
|
||||
"opacity 0.8 0.7, match:tag settings*"
|
||||
"opacity 0.8 0.7, match:class gedit|org\.gnome\.TextEditor|mousepad"
|
||||
"opacity 0.9 0.8, match:class seahorse # gnome-keyring gui"
|
||||
"opacity 0.95 0.75, match:title Picture-in-Picture"
|
||||
"opacity 0.9 0.8, match:class org\.gnome\.Calculator"
|
||||
|
||||
# Picture-in-Picture specific rules
|
||||
"pin on, match:title Picture-in-Picture"
|
||||
"keep_aspect_ratio on, match:title Picture-in-Picture"
|
||||
|
||||
# Games specific rules
|
||||
"no_blur on, match:tag games*"
|
||||
"fullscreen on, match:tag games*"
|
||||
];
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.kdeconnect.enable = lib.mkEnableOption "KDE Connect";
|
||||
|
||||
config = {
|
||||
services.kdeconnect = lib.mkIf config.kdeconnect.enable {
|
||||
enable = true;
|
||||
indicator = false;
|
||||
package = pkgs.kdePackages.kdeconnect-kde;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
package = pkgs.kitty;
|
||||
};
|
||||
|
||||
imports = [
|
||||
./extra-config.nix
|
||||
./settings.nix
|
||||
];
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
_: {
|
||||
programs.kitty.extraConfig = ''
|
||||
# Clipboard
|
||||
map ctrl+shift+v paste_from_selection
|
||||
map shift+insert paste_from_selection
|
||||
|
||||
# Scrolling
|
||||
map ctrl+shift+up scroll_line_up
|
||||
map ctrl+shift+down scroll_line_down
|
||||
map ctrl+shift+k scroll_line_up
|
||||
map ctrl+shift+j scroll_line_down
|
||||
map ctrl+shift+page_up scroll_page_up
|
||||
map ctrl+shift+page_down scroll_page_down
|
||||
map ctrl+shift+home scroll_home
|
||||
map ctrl+shift+end scroll_end
|
||||
map ctrl+shift+h show_scrollback
|
||||
|
||||
# Window management
|
||||
map alt+n new_window_with_cwd #open in current dir
|
||||
#map alt+n new_os_window #opens term in $HOME
|
||||
map alt+w close_window
|
||||
map ctrl+shift+enter launch --location=hsplit
|
||||
map ctrl+shift+s launch --location=vsplit
|
||||
map ctrl+shift+] next_window
|
||||
map ctrl+shift+[ previous_window
|
||||
map ctrl+shift+f move_window_forward
|
||||
map ctrl+shift+b move_window_backward
|
||||
map ctrl+shift+` move_window_to_top
|
||||
map ctrl+shift+1 first_window
|
||||
map ctrl+shift+2 second_window
|
||||
map ctrl+shift+3 third_window
|
||||
map ctrl+shift+4 fourth_window
|
||||
map ctrl+shift+5 fifth_window
|
||||
map ctrl+shift+6 sixth_window
|
||||
map ctrl+shift+7 seventh_window
|
||||
map ctrl+shift+8 eighth_window
|
||||
map ctrl+shift+9 ninth_window # Tab management
|
||||
map ctrl+shift+0 tenth_window
|
||||
map ctrl+shift+right next_tab
|
||||
map ctrl+shift+left previous_tab
|
||||
map ctrl+shift+t new_tab
|
||||
map ctrl+shift+q close_tab
|
||||
map ctrl+shift+l next_layout
|
||||
map ctrl+shift+. move_tab_forward
|
||||
map ctrl+shift+, move_tab_backward
|
||||
|
||||
# Miscellaneous
|
||||
map ctrl+shift+up increase_font_size
|
||||
map ctrl+shift+down decrease_font_size
|
||||
map ctrl+shift+backspace restore_font_size
|
||||
'';
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
_: {
|
||||
programs.kitty.settings = {
|
||||
font_size = 12;
|
||||
wheel_scroll_min_lines = 1;
|
||||
window_padding_width = 4;
|
||||
confirm_os_window_close = 0;
|
||||
scrollback_lines = 10000;
|
||||
enable_audio_bell = false;
|
||||
mouse_hide_wait = 60;
|
||||
cursor_trail = 1;
|
||||
tab_fade = 1;
|
||||
active_tab_font_style = "bold";
|
||||
inactive_tab_font_style = "bold";
|
||||
tab_bar_edge = "top";
|
||||
tab_bar_margin_width = 0;
|
||||
tab_bar_style = "powerline";
|
||||
#tab_bar_style = "fade";
|
||||
enabled_layouts = "splits";
|
||||
};
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.librewolf.enable = lib.mkEnableOption "LibreWolf";
|
||||
|
||||
config.programs.librewolf = lib.mkIf config.librewolf.enable {
|
||||
enable = true;
|
||||
package = pkgs.librewolf;
|
||||
# nativeMessagingHosts = [pkgs.firefoxpwa];
|
||||
languagePacks = [
|
||||
"pl"
|
||||
"en-US"
|
||||
];
|
||||
settings = {
|
||||
# LibreWolf settings
|
||||
"network.http.referer.XOriginPolicy" = 2;
|
||||
"privacy.resistFingerprinting.letterboxing" = true;
|
||||
"privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" = true;
|
||||
};
|
||||
policies = {
|
||||
# Policies (about:policies#documentation)
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
./profiles
|
||||
];
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{host, ...}: {
|
||||
programs.librewolf.profiles."${host}" = {
|
||||
id = 0;
|
||||
isDefault = true;
|
||||
name = "${host}";
|
||||
};
|
||||
|
||||
imports = [
|
||||
./extensions.nix
|
||||
./search.nix
|
||||
./settings.nix
|
||||
];
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
system,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
# about:debugging#/runtime/this-firefox Przydatne do wyszukiwania ID rozszerzenia
|
||||
# programs.librewolf.profiles."${host}".extensions.force = true;
|
||||
programs.librewolf.profiles."${host}".extensions.packages = with inputs.firefox-addons.packages.${system}; [
|
||||
bitwarden
|
||||
floccus
|
||||
ublock-origin
|
||||
sponsorblock
|
||||
darkreader
|
||||
# flagfox
|
||||
hoppscotch
|
||||
return-youtube-dislikes
|
||||
sponsorblock
|
||||
# pwas-for-firefox
|
||||
mtab
|
||||
];
|
||||
}
|
||||
@@ -1,210 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
programs.librewolf.profiles."${host}".search = {
|
||||
default = "garand's-search";
|
||||
privateDefault = "garand's-search";
|
||||
force = true;
|
||||
engines = {
|
||||
"garand's-search" = {
|
||||
definedAliases = ["@g"];
|
||||
urls = [{template = "https://search.garandplg.com/search?q={searchTerms}";}];
|
||||
# suggestUrl = "https://search.garandplg.com/autocompleter?q={searchTerms}"; Not implemented in home-manager ☹️
|
||||
};
|
||||
"youtube" = {
|
||||
definedAliases = ["@yt"];
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.youtube.com/results";
|
||||
params = [
|
||||
{
|
||||
name = "search_query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"wikipedia-pl" = {
|
||||
definedAliases = ["@w"];
|
||||
urls = [
|
||||
{
|
||||
template = "https://pl.wikipedia.org/w/index.php";
|
||||
params = [
|
||||
{
|
||||
name = "search";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"stackoverflow" = {
|
||||
definedAliases = ["@so"];
|
||||
urls = [
|
||||
{
|
||||
template = "https://stackoverflow.com/search";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"nix-packages" = {
|
||||
definedAliases = ["@np"];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/packages?channel=unstable";
|
||||
params = [
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"nix-options" = {
|
||||
definedAliases = ["@no"];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/options?channel=unstable&query={searchTerms}";
|
||||
}
|
||||
];
|
||||
};
|
||||
"nix-wiki" = {
|
||||
definedAliases = ["@nw"];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://wiki.nixos.org/w/index.php";
|
||||
params = [
|
||||
{
|
||||
name = "search";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"home-manager-option" = {
|
||||
definedAliases = ["@hmo"];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://home-manager-options.extranix.com/?query={searchTerms}&release=master";
|
||||
}
|
||||
];
|
||||
};
|
||||
"eneba" = {
|
||||
definedAliases = ["@en"];
|
||||
icon = "https://static.eneba.games/branding/v2/logoFull.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.eneba.com/pl/store/all";
|
||||
params = [
|
||||
{
|
||||
name = "text";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"kinguin" = {
|
||||
definedAliases = ["@ki"];
|
||||
icon = "https://static.kinguin.net/media/images/other/kinguin-mobile-logo.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.kinguin.net/listing?active=1&hideUnavailable=0&type=kinguin";
|
||||
params = [
|
||||
{
|
||||
name = "phrase";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"instant-gaming" = {
|
||||
definedAliases = ["@ig"];
|
||||
icon = "https://asset.brandfetch.io/idCbLj4uOg/idGS61T0FV.jpeg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.instant-gaming.com/pl/search/";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"morele" = {
|
||||
definedAliases = ["@mo"];
|
||||
icon = "https://www.morele.net/static/img/shop/logo/image-logo-morele.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.morele.net/wyszukiwarka/";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"x-kom" = {
|
||||
definedAliases = ["@xk"];
|
||||
icon = "https://assets.x-kom.pl/public-spa/xkom/75062cb4b48a8510.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.x-kom.pl/szukaj";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"komputronik" = {
|
||||
definedAliases = ["@kp"];
|
||||
icon = "https://front.komputronik.pl/front-static/komputronik.Ceqagame-a.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.komputronik.pl/search/category/1";
|
||||
params = [
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
"google".metaData.hidden = true;
|
||||
"bing".metaData.hidden = true;
|
||||
"perplexity".metaData.hidden = true;
|
||||
"wolnelektury-pl".metaData.hidden = true;
|
||||
"policy-DuckDuckGo Lite".metaData.hidden = true;
|
||||
"policy-MetaGer".metaData.hidden = true;
|
||||
"policy-Mojeek".metaData.hidden = true;
|
||||
"policy-SearXNG - searx.be".metaData.hidden = true;
|
||||
"policy-StartPage".metaData.hidden = true;
|
||||
|
||||
"allegro-pl".metaData.alias = "@al";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
programs.librewolf.profiles."${host}".settings = lib.mkForce {
|
||||
# Preferences (about:config)
|
||||
"general.useragent.locale" = "pl";
|
||||
"intl.locale.requested" = "pl,en-US";
|
||||
"intl.accept_languages" = "pl,en-US";
|
||||
|
||||
"extensions.autoDisableScopes" = 0;
|
||||
|
||||
"font.default.x-western" = "FiraCode Nerd Font";
|
||||
"font.name.monospace.x-western" = "FiraCode Nerd Font Mono";
|
||||
"font.name.sans-serif.x-western" = "FiraCode Nerd Font Propo";
|
||||
"font.name.serif.x-western" = "FiraCode Nerd Font";
|
||||
|
||||
"layout.css.prefers-color-scheme.content-override" = 0;
|
||||
"layout.css.font-visibility" = 1;
|
||||
|
||||
"browser.tabs.insertRelatedAfterCurrent" = true;
|
||||
"browser.sessionstore.resume_from_crash" = true;
|
||||
"browser.sessionstore.resume_session_once" = true;
|
||||
"browser.toolbars.bookmarks.visibility" = "never";
|
||||
|
||||
"browser.search.update" = true;
|
||||
|
||||
"sidebar.main.tools" = "history,bookmarks";
|
||||
"sidebar.revamp" = true;
|
||||
"sidebar.verticalTabs" = true;
|
||||
|
||||
"browser.eme.ui.enabled" = true;
|
||||
"media.eme.enabled" = true;
|
||||
|
||||
"privacy.donottrackheader.enabled" = true;
|
||||
"privacy.clearOnShutdown.history" = true;
|
||||
|
||||
"network.trr.mode" = 3;
|
||||
"network.trr.uri" = "https://dns.mullvad.net/dns-query";
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user