2 Commits

Author SHA1 Message Date
GarandPLG dff9e94470 Add Garand-Desktop flake with core boot module
Introduce a new flake for the Garand-Desktop host, including:
- top‑level flake.nix with inputs and outputs
- host config (default.nix) and modules:
  - hardware
  - home
  - system
  - packages
  - variables
- core boot module defining kernel and Limine loader styling
  with appimage support and plymouth enabled
2026-03-24 22:11:51 +01:00
GarandPLG 92dba21fd8 cleanup 2026-03-24 21:07:14 +01:00
208 changed files with 365 additions and 8207 deletions
Generated
-845
View File
@@ -1,845 +0,0 @@
{
"nodes": {
"affinity-nix": {
"inputs": {
"corefonts": "corefonts",
"crane": "crane",
"fenix": "fenix",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"git-hooks": "git-hooks",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-wine": "nixpkgs-wine",
"on-linux": "on-linux",
"plugin-loader-src": "plugin-loader-src",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1781331278,
"narHash": "sha256-8IM7jJnnkhbKDbq39q4BS+DbE5CrsT4UhFtmcUDvVjE=",
"owner": "mrshmllow",
"repo": "affinity-nix",
"rev": "f112cdef13bbd13e1067e72804c18c7622357547",
"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": 1776754714,
"narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581",
"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"
}
},
"corefonts": {
"flake": false,
"locked": {
"lastModified": 1431183738,
"narHash": "sha256-610Km9GCtYWxi2SH5jH/XYPXc5f58q5lB05/5XxO/qM=",
"owner": "pushcx",
"repo": "corefonts",
"rev": "8f8627b0004b5f1b952c09cf6390e4ae46475e59",
"type": "github"
},
"original": {
"owner": "pushcx",
"repo": "corefonts",
"type": "github"
}
},
"crane": {
"locked": {
"lastModified": 1780532242,
"narHash": "sha256-D+BsdpxmtUwtqGoY0IXPhHgTlmqgcZKCEo1oMyn7ep0=",
"owner": "ipetkov",
"repo": "crane",
"rev": "59a82a1222dd3b2080b5cc52a1a2e8d5f1b77f37",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"fenix": {
"inputs": {
"nixpkgs": [
"affinity-nix",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1781086641,
"narHash": "sha256-2oBncBeL671Tf6TnYqk36ebkfPHNYPKwz5at8NcrpvI=",
"owner": "nix-community",
"repo": "fenix",
"rev": "640606300f74b4891bfa1a51f5756450f9fdc7f1",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
"fenix_2": {
"inputs": {
"nixpkgs": [
"garandos-tui",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src_2"
},
"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": 1781323358,
"narHash": "sha256-W8SFmaIEW4tP4jQ48EJSSVnO8s4gZ1j1D4K22tW9pd8=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "89503b569dd29491d5c58bf41c244253fcd3d2b3",
"type": "gitlab"
},
"original": {
"dir": "pkgs/firefox-addons",
"owner": "rycee",
"repo": "nur-expressions",
"type": "gitlab"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1779670703,
"narHash": "sha256-UdfMivNMwCCqQsYDg5pSz8X2IOaOrIZLIIy+Bg3CO2o=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "942159e73e40bf785816f7f1f5feed9ef3d7c8f9",
"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": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"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_2",
"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": 1778507602,
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
"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": {
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
},
"original": {
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1781305496,
"narHash": "sha256-g8Vv4Qfc7n+lgov97REu3X6BeJtvYY0hlSUZR1GrGQQ=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c87a39aa979acc4848016d2220c6238390d84779",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "master",
"repo": "home-manager",
"type": "github"
}
},
"libnbtplusplus": {
"flake": false,
"locked": {
"lastModified": 1772016279,
"narHash": "sha256-7itkptyjoRcXfGLwg1/jxajetZ3a4mDc66+w4X6yW8s=",
"owner": "PrismLauncher",
"repo": "libnbtplusplus",
"rev": "687e43031df0dc641984b4256bcca50d5b3f7de3",
"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": 1781074563,
"narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1777168982,
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
"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"
}
},
"noctalia": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"noctalia-qs": "noctalia-qs"
},
"locked": {
"lastModified": 1780889763,
"narHash": "sha256-18kh968u0hhtDyECo0FBnlEnJLDxs0uB5H5QbWA9P3I=",
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"rev": "57be32b0a81471ef6c5dceff6faad23b534ec7f8",
"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": 1780799499,
"narHash": "sha256-YloRtLqJabzYUWvdLyh67zH4DZrR3kQj+dlQJwLPmPM=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"rev": "f308426239665e3bc3d624014e9295b2ae2f58ff",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": [
"stylix",
"flake-parts"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1780281641,
"narHash": "sha256-M/+hUKoKbHXpV0xGVfELbN1Ds1aoe3pL5p5/t46YhVo=",
"owner": "nix-community",
"repo": "NUR",
"rev": "30f9ae2f04174de63ba8bcf3580ca90843b28a01",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"on-linux": {
"flake": false,
"locked": {
"lastModified": 1772699425,
"narHash": "sha256-xhqkN2I5r+Ty2k8HEsLg5e8Eaazb0Qyioqjs87BQOnY=",
"owner": "seapear",
"repo": "AffinityOnLinux",
"rev": "a0c4421946709c24c3f371fcbf15a45b814f188c",
"type": "github"
},
"original": {
"owner": "seapear",
"repo": "AffinityOnLinux",
"type": "github"
}
},
"plugin-loader-src": {
"flake": false,
"locked": {
"lastModified": 1776972538,
"narHash": "sha256-2EvrOYQCB2Z2YXhcPnjR67KoOCvwTVW3TfLcmU3//ak=",
"owner": "noahc3",
"repo": "AffinityPluginLoader",
"rev": "1d7956d5b791bd6a213e8b28c1e25e1f4bcc6166",
"type": "github"
},
"original": {
"owner": "noahc3",
"repo": "AffinityPluginLoader",
"rev": "1d7956d5b791bd6a213e8b28c1e25e1f4bcc6166",
"type": "github"
}
},
"prismlauncher-cracked": {
"inputs": {
"libnbtplusplus": "libnbtplusplus",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1776795718,
"narHash": "sha256-YrqHeE9ZEnmxJiXE+IBAxbmNRFPE7mn9KbxZ3Mpu388=",
"owner": "Diegiwg",
"repo": "PrismLauncher-Cracked",
"rev": "0c20d448a3c89cbff85ef5dc7420bf60dc1e65ff",
"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": 1781005730,
"narHash": "sha256-3Bn47a+Vs2/ltQfTU2ApWqy5kYNmF+RaTEJs0A/H2pA=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "587ce15e272b94d4f0a69d695e3718a02c24667e",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"rust-analyzer-src_2": {
"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-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1781018772,
"narHash": "sha256-C+cGIUaC6dqfwTbI+BwCd572PbESGA3WYxR1sLTqxkY=",
"owner": "danth",
"repo": "stylix",
"rev": "a378e4c09031fb15a4d65da88aa628f71fc52f6b",
"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": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"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": 1777806186,
"narHash": "sha256-PDF0/wObw4nIsSBeXVYLsloXOiphXCgIdsrNcVXguKs=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "0c94645546f4f3ddac77a1a5fce54eb95bf50795",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1778379944,
"narHash": "sha256-wPDFzMGSlARlw0Sfsn48Q2+jPSfk6N0Ng6BC/d+7Q24=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "fe0203a198690e71a5ff11e08812a4673de3678d",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1778378178,
"narHash": "sha256-OXPXRIQgGwV77HjYRryOHguh4ALX96jkg+tseLkGgHA=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "9cd816033ff969415b190722cddf134e78a5665f",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-zed",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1780220602,
"narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "db947814a175b7ca6ded66e21383d938df01c227",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": {
"nixpkgs": [
"noctalia",
"noctalia-qs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1780220602,
"narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "db947814a175b7ca6ded66e21383d938df01c227",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}
},
"root": "root",
"version": 7
}
+7 -75
View File
@@ -1,83 +1,15 @@
{ {
description = "GarandOS"; description = "GarandOS flake";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
home-manager = { flake-parts.url = "github:hercules-ci/flake-parts";
url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = { import-tree.url = "github:vic/import-tree";
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 = { outputs = inputs: inputs.flake-parts.lib.mkFlake {
nixpkgs, inherit inputs;
nix-flatpak, } (inputs.import-tree ./src);
garandos-tui,
...
} @ inputs: let
hostDirs = builtins.attrNames (builtins.readDir ./hosts);
mkHost = hostName: let
hostVars = import ./hosts/${hostName}/variables.nix;
hostPrinterVars = import ./hosts/${hostName}/printers.nix;
in
nixpkgs.lib.nixosSystem {
inherit (hostVars) system;
specialArgs = hostVars // hostPrinterVars // {inherit inputs;};
modules = [
./profiles/${hostVars.profile}
nix-flatpak.nixosModules.nix-flatpak
garandos-tui.nixosModules.garandos-tui
];
};
in {
nixosConfigurations = nixpkgs.lib.genAttrs hostDirs mkHost;
};
} }
-7
View File
@@ -1,7 +0,0 @@
_: {
imports = [
./hardware.nix
./host-packages.nix
./system-modules.nix
];
}
-70
View File
@@ -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 inter.. 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;
}
-94
View File
@@ -1,94 +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, highperformance code editor
remote-server.enable = false; # Remote Server: enable remote editing capabilities
};
opencode.enable = false; # OpenCode: terminal coding agent
ollama.enable = false; # Ollama: Local Llms
/*
Web browsers
*/
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
ungoogled-chromium.enable = false; # Ungoogled Chromium: a privacy-focused Chromium fork
/*
System utilities
*/
btop.enable = true; # Btop: a resource monitor for the terminal
easyeffects.enable = true; # EasyEffects: Audio effects for PipeWire applications
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 communitydriven Discord client
/*
Gaming
*/
lutris.enable = false; # Lutris: an open gaming platform
mangohud.enable = true; # MangoHud: Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
/*
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: spacedrepetition flashcard program
/*
Productivity / Knowledge Management
*/
obsidian = {
enable = true; # Obsidian: Powerful knowledge base that works on top of a local folder of plain text Markdown files
vaults = {
"BoM".enable = true; # Blood of Mages: ttrpg session
};
};
/*
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 = false; # ChatGPT: a large language model
claude.enable = true; # Claude: a large language model
glance.enable = true; # Glance: my home server dashboard
jellyfinClient.enable = true; # Jellyfin: My Jellyfin
};
};
/*
Noctalia-shell plugins
*/
nooctalia-plugins = {
mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks
timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center.
keybind-cheatsheet.enable = true; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors.
kde-connect.enable = true; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect
screen-recorder.enable = true; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings
screenshot.enable = true; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri
ntfy-notifications.enable = true; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support
tailscale.enable = true; # Tailscale: Show Tailscale status in the menu bar and send/receive files via Taildrop.
};
}
-5
View File
@@ -1,5 +0,0 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
# audacity
];
}
-14
View File
@@ -1,14 +0,0 @@
{
printEnable = true;
ensureDefaultPrinter = "Brother-T525W";
ensurePrinters = [
{
deviceUri = "ipp://192.168.1.110/ipp";
location = "home";
name = "Brother-T525W";
model = "everywhere";
}
];
}
-115
View File
@@ -1,115 +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
upscaler.enable = true; # Upscaler: Upscale and enhance images
};
};
/*
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: microcompositor for games
steam.enable = true; # Steam: platform for buying and playing games
/*
Media & Graphics
*/
affinity.enable = false; # Affinity: professional graphics suite
/*
Utilities / Misc
*/
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
packages = {
/*
Web browsers
*/
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
/*
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
boxes.enable = false; # Gnome-Boxes: virtual machine manager
/*
Gaming
*/
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
ttySolitaire.enable = true; # TTY Solitaire: terminalbased solitaire game
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
/*
Development Tools
*/
exercism.enable = false; # Exercism: coding practice platform
lazygit.enable = false; # Lazygit: simple TUI for Git
jan.enable = true; # Jan: AI chat UI
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
/*
Communication & Collaboration
*/
mattermost.enable = true; # Mattermost: opensource 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
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
appImages.fluxer.enable = false; # Fluxer: Discord alternative
/*
Productivity / Knowledge Management
*/
bitwarden.enable = false; # Bitwarden: password manager (desktop)
iotas.enable = true; # Iotas: lightweight notes manager
# appImages.logseq.enable = false; # Logseq: knowledge base and outliner
/*
Media & Graphics
*/
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
switcheroo.enable = false; # Switcheroo: file conversion tool
freetube.enable = false; # FreeTube: privacyfriendly YouTube client
gimp.enable = false; # GIMP: GNU Image Manipulation Program
kdenlive.enable = true; # Kdenlive: video editing software
pixieditor.enable = true; # Pixieditor: Universal editor for all your 2D needs
plex.enable = false; # Plex: media player and server client
jellyfin.enable = true; # Jellyfin: foss media player
appImages.losslesscut.enable = true; # Losslesscut: Swiss army knife of lossless video/audio editing
/*
Utilities / Misc
*/
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
gedit.enable = true; # Gedit: GNOME text editor
winboat.enable = false; # Winboat: Windows remote desktop via RDP
adb.enable = false; # ADB: Android SDK platform tools
};
}
-65
View File
@@ -1,65 +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";
# User shell
# Availabe options: "fish", "bash"
shell = "fish";
# 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 = false;
# Set Stylix Image
# This will set your color palette
# Default background
# Add new images to ~/garandos/wallpapers
# stylixImage = "Attack-on-Titan-1.jpg"; # og/10
stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
# stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
# stylixImage = "Avatar-1.jpg"; # 5/10
# stylixImage = "Avatar-2.jpg"; # 4/10
# stylixImage = "Avatar-3.jpg"; # 2/10
# stylixImage = "Avatar-4.jpg"; # 3/10
# stylixImage = "Edge-of-Tomorrow-1.jpg"; # 2/10
# stylixImage = "Friren-1.jpg"; # 6.5/10
# stylixImage = "Friren-2.jpg"; # 2/10
# stylixImage = "Friren-3.jpg"; # 4/10
# stylixImage = "Jablon.png"; # 1/10
# stylixImage = "Song-of-the-Sea-1.jpg"; # 3/10
# stylixImage = "Wolfwalkers-1.jpg"; # 6/10
# stylixImage = "Wolfwalkers-2.jpg"; # 5/10
# Set network hostId if required (needed for zfs)
# Otherwise leave as-is
hostId = "5ab03f50";
}
-7
View File
@@ -1,7 +0,0 @@
_: {
imports = [
./hardware.nix
./host-packages.nix
./system-modules.nix
];
}
-68
View File
@@ -1,68 +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 = {
amdgpu.opencl.enable = true;
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
};
}
-94
View File
@@ -1,94 +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, highperformance code editor
remote-server.enable = false; # Remote Server: enable remote editing capabilities
};
opencode.enable = false; # OpenCode: terminal coding agent
ollama.enable = false; # Ollama: Local Llms
/*
Web browsers
*/
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
ungoogled-chromium.enable = false; # Ungoogled Chromium: a privacy-focused Chromium fork
/*
System utilities
*/
btop.enable = true; # Btop: a resource monitor for the terminal
easyeffects.enable = true; # EasyEffects: Audio effects for PipeWire applications
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 communitydriven Discord client
/*
Gaming
*/
lutris.enable = false; # Lutris: an open gaming platform
mangohud.enable = true; # MangoHud: Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
/*
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: spacedrepetition flashcard program
/*
Productivity / Knowledge Management
*/
obsidian = {
enable = true; # Obsidian: Powerful knowledge base that works on top of a local folder of plain text Markdown files
vaults = {
"BoM".enable = true; # Blood of Mages: ttrpg session
};
};
/*
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 = false; # ChatGPT: a large language model
claude.enable = true; # Claude: a large language model
glance.enable = true; # Glance: my home server dashboard
jellyfinClient.enable = true; # Jellyfin: My Jellyfin
};
};
/*
Noctalia-shell plugins
*/
nooctalia-plugins = {
mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks
timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center.
keybind-cheatsheet.enable = true; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors.
kde-connect.enable = true; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect
screen-recorder.enable = false; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings
screenshot.enable = true; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri
ntfy-notifications.enable = true; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support
tailscale.enable = true; # Tailscale: Show Tailscale status in the menu bar and send/receive files via Taildrop.
};
}
-5
View File
@@ -1,5 +0,0 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
# audacity
];
}
-14
View File
@@ -1,14 +0,0 @@
{
printEnable = true;
ensureDefaultPrinter = "Brother-T525W";
ensurePrinters = [
{
deviceUri = "ipp://192.168.1.110/ipp";
location = "home";
name = "Brother-T525W";
model = "everywhere";
}
];
}
-115
View File
@@ -1,115 +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
upscaler.enable = true; # Upscaler: Upscale and enhance images
};
};
/*
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: microcompositor for games
steam.enable = true; # Steam: platform for buying and playing games
/*
Media & Graphics
*/
affinity.enable = false; # Affinity: professional graphics suite
/*
Utilities / Misc
*/
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
packages = {
/*
Web browsers
*/
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
/*
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
boxes.enable = false; # Gnome-Boxes: virtual machine manager
/*
Gaming
*/
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
ttySolitaire.enable = true; # TTY Solitaire: terminalbased solitaire game
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
/*
Development Tools
*/
exercism.enable = false; # Exercism: coding practice platform
lazygit.enable = false; # Lazygit: simple TUI for Git
jan.enable = true; # Jan: AI chat UI
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
/*
Communication & Collaboration
*/
mattermost.enable = true; # Mattermost: opensource 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
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
appImages.fluxer.enable = false; # Fluxer: Discord alternative
/*
Productivity / Knowledge Management
*/
bitwarden.enable = false; # Bitwarden: password manager (desktop)
iotas.enable = true; # Iotas: lightweight notes manager
# appImages.logseq.enable = false; # Logseq: knowledge base and outliner
/*
Media & Graphics
*/
eyeOfGnome.enable = true; # Eye of GNOME: image viewer
switcheroo.enable = false; # Switcheroo: file conversion tool
freetube.enable = false; # FreeTube: privacyfriendly 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 = false; # Plex: media player and server client
jellyfin.enable = true; # Jellyfin: foss media player
appImages.losslesscut.enable = false; # Losslesscut: Swiss army knife of lossless video/audio editing
/*
Utilities / Misc
*/
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
gedit.enable = true; # Gedit: GNOME text editor
winboat.enable = false; # Winboat: Windows remote desktop via RDP
adb.enable = false; # ADB: Android SDK platform tools
};
}
-65
View File
@@ -1,65 +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";
# User shell
# Availabe options: "fish", "bash"
shell = "fish";
# 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 = false;
# Set Stylix Image
# This will set your color palette
# Default background
# Add new images to ~/garandos/wallpapers
# stylixImage = "Attack-on-Titan-1.jpg"; # og/10
stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
# stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
# stylixImage = "Avatar-1.jpg"; # 5/10
# stylixImage = "Avatar-2.jpg"; # 4/10
# stylixImage = "Avatar-3.jpg"; # 2/10
# stylixImage = "Avatar-4.jpg"; # 3/10
# stylixImage = "Edge-of-Tomorrow-1.jpg"; # 2/10
# stylixImage = "Friren-1.jpg"; # 6.5/10
# stylixImage = "Friren-2.jpg"; # 2/10
# stylixImage = "Friren-3.jpg"; # 4/10
# stylixImage = "Jablon.png"; # 1/10
# stylixImage = "Song-of-the-Sea-1.jpg"; # 3/10
# stylixImage = "Wolfwalkers-1.jpg"; # 6/10
# stylixImage = "Wolfwalkers-2.jpg"; # 5/10
# Set network hostId if required (needed for zfs)
# Otherwise leave as-is
hostId = "7bc04e61";
}
-7
View File
@@ -1,7 +0,0 @@
_: {
imports = [
./hardware.nix
./host-packages.nix
./system-modules.nix
];
}
-57
View File
@@ -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;
}
-94
View File
@@ -1,94 +0,0 @@
_: {
/*
Development editors and IDEs
*/
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
zed-editor = {
enable = false; # Zed Editor: a modern, highperformance code editor
remote-server.enable = false; # Remote Server: enable remote editing capabilities
};
opencode.enable = false; # OpenCode: terminal coding agent
ollama.enable = false; # Ollama: Local Llms
/*
Web browsers
*/
librewolf.enable = false; # Librewolf: a privacy-focused Firefox fork
ungoogled-chromium.enable = false; # Ungoogled Chromium: a privacy-focused Chromium fork
/*
System utilities
*/
btop.enable = true; # Btop: a resource monitor for the terminal
easyeffects.enable = false; # EasyEffects: Audio effects for PipeWire applications
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 = false; # Nextcloud Client: sync files with a Nextcloud server
vesktop.enable = false; # Vesktop: a communitydriven Discord client
/*
Gaming
*/
lutris.enable = false; # Lutris: an open gaming platform
mangohud.enable = false; # MangoHud: Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
/*
Media recording and streaming
*/
obs-studio.enable = false; # OBS Studio: streaming and recording software
/*
Office suite
*/
onlyoffice.enable = false; # OnlyOffice: an office suite compatible with Microsoft formats
/*
Learning tools
*/
anki.enable = false; # Anki: spacedrepetition flashcard program
/*
Productivity / Knowledge Management
*/
obsidian = {
enable = false; # Obsidian: Powerful knowledge base that works on top of a local folder of plain text Markdown files
vaults = {
"BoM".enable = false; # Blood of Mages: ttrpg session
};
};
/*
XDG desktop entries (PWA)
*/
xdgDesktopEntries = {
enable = false; # Enable XDG desktop entries
entries = {
messenger.enable = false; # Messenger: Facebook Messenger
mastodon.enable = false; # Mastodon: a decentralized social network
garandcloud.enable = false; # GarandCloud: my Nextcloud instance
chatgpt.enable = false; # ChatGPT: a large language model
claude.enable = false; # Claude: a large language model
glance.enable = false; # Glance: my home server dashboard
jellyfinClient.enable = false; # Jellyfin: My Jellyfin
};
};
/*
Noctalia-shell plugins
*/
nooctalia-plugins = {
mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks
timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center.
keybind-cheatsheet.enable = false; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors.
kde-connect.enable = false; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect
screen-recorder.enable = false; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings
screenshot.enable = false; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri
ntfy-notifications.enable = false; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support
tailscale.enable = false; # Tailscale: Show Tailscale status in the menu bar and send/receive files via Taildrop.
};
}
-5
View File
@@ -1,5 +0,0 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
# audacity
];
}
-21
View File
@@ -1,21 +0,0 @@
{
# Whether printing services should be enabled.
printEnable = false;
# Name of the default printer.
ensureDefaultPrinter = "[name]";
# List of printers to ensure are configured.
ensurePrinters = [
{
# URI of the printer device.
deviceUri = "ipp://[IPv4]/ipp";
# Physical location description of the printer.
location = "[location]";
# Humanreadable printer name.
name = "[name]";
# Printer model; "everywhere" uses generic driver.
model = "everywhere";
}
];
}
-115
View File
@@ -1,115 +0,0 @@
_: {
/*
Container & Packaging
*/
docker.enable = false; # Docker: container runtime and management
virtualbox.enable = false; # VirtualBox: PC emulator
flatpak = {
enable = false; # Flatpak: universal packaging system for Linux
packages = {
sober.enable = false; # Roblox client
warehouse.enable = false; # Flatpak manager
flatseal.enable = false; # Flatpak permissions manager
upscaler.enable = false; # Upscaler: Upscale and enhance images
};
};
/*
Networking
*/
tailscale.enable = false; # Tailscale: secure network for remote access
/*
Calendar & Contacts
*/
calendar.enable = false; # GNOME Calendar: calendar and contacts application
/*
Gaming
*/
gamemode.enable = false; # GameMode: optimizes system performance for gaming
gamescope.enable = false; # Gamescope: microcompositor for games
steam.enable = false; # Steam: platform for buying and playing games
/*
Media & Graphics
*/
affinity.enable = false; # Affinity: professional graphics suite
/*
Utilities / Misc
*/
ventoy.enable = false; # Ventoy: New Bootable USB Solution with GUI support
packages = {
/*
Web browsers
*/
appImages.helium.enable = true; # Helium: Better ungoogled-chromium
/*
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
boxes.enable = false; # Gnome-Boxes: virtual machine manager
/*
Gaming
*/
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
spaceCadetPinball.enable = false; # SpaceCadet Pinball: classic pinball game
ttySolitaire.enable = false; # TTY Solitaire: terminalbased solitaire game
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
/*
Development Tools
*/
exercism.enable = false; # Exercism: coding practice platform
lazygit.enable = false; # Lazygit: simple TUI for Git
jan.enable = false; # Jan: AI chat UI
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
/*
Communication & Collaboration
*/
mattermost.enable = false; # Mattermost: opensource Slack alternative
slack.enable = false; # Slack: team communication and collaboration tool
tutanota.enable = false; # Tutanota: secure email client
signal.enable = false; # Signal: secure messaging app
teams.enable = false; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
ferdium.enable = false; # Ferdium: All your services in one place built by the community
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
appImages.fluxer.enable = false; # Fluxer: Discord alternative
/*
Productivity / Knowledge Management
*/
bitwarden.enable = false; # Bitwarden: password manager (desktop)
iotas.enable = false; # Iotas: lightweight notes manager
# appImages.logseq.enable = false; # Logseq: knowledge base and outliner
/*
Media & Graphics
*/
eyeOfGnome.enable = false; # Eye of GNOME: image viewer
switcheroo.enable = false; # Switcheroo: file conversion tool
freetube.enable = false; # FreeTube: privacyfriendly 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 = false; # Plex: media player and server client
jellyfin.enable = false; # Jellyfin: foss media player
appImages.losslesscut.enable = false; # Losslesscut: Swiss army knife of lossless video/audio editing
/*
Utilities / Misc
*/
eddieAirVPN.enable = false; # Eddie AirVPN: VPN client
gnomeCalculator.enable = false; # 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
};
}
-71
View File
@@ -1,71 +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";
# User shell
# Availabe options: "fish", "bash"
shell = "fish";
# 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 = 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-1.jpg"; # og/10
stylixImage = "Attack-on-Titan-2.jpg"; # 9/10
# stylixImage = "Attack-on-Titan-3.jpg"; # 7.5/10
# stylixImage = "Avatar-1.jpg"; # 5/10
# stylixImage = "Avatar-2.jpg"; # 4/10
# stylixImage = "Avatar-3.jpg"; # 2/10
# stylixImage = "Avatar-4.jpg"; # 3/10
# stylixImage = "Edge-of-Tomorrow-1.jpg"; # 2/10
# stylixImage = "Friren-1.jpg"; # 6.5/10
# stylixImage = "Friren-2.jpg"; # 2/10
# stylixImage = "Friren-3.jpg"; # 4/10
# stylixImage = "Jablon.png"; # 1/10
# stylixImage = "Song-of-the-Sea-1.jpg"; # 3/10
# stylixImage = "Wolfwalkers-1.jpg"; # 6/10
# stylixImage = "Wolfwalkers-2.jpg"; # 5/10
# Set network hostId if required (needed for zfs)
# Otherwise leave as-is
hostId = "5ab03f50";
}
-14
View File
@@ -1,14 +0,0 @@
{
pkgs,
lib,
config,
inputs,
...
}: {
options.affinity.enable = lib.mkEnableOption "Affinity";
config = lib.mkIf config.affinity.enable {
nixpkgs.overlays = [inputs.affinity-nix.overlays.default];
environment.systemPackages = with pkgs; [affinity-v3];
};
}
-36
View File
@@ -1,36 +0,0 @@
{
pkgs,
config,
...
}: {
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;
package = pkgs.limine;
resolution = "1920x1080";
style.interface = {
branding = "GarandOS Bootloader";
brandingColor = "${config.stylix.base16Scheme.base01}";
};
};
};
# 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;
};
}
-16
View File
@@ -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
]);
};
}
-33
View File
@@ -1,33 +0,0 @@
{inputs, ...}: {
imports = [
./packages
./affinity.nix
./boot.nix
./calendar.nix
./docker.nix
./flatpak.nix
./fonts.nix
./garandos-tui.nix
./hardware.nix
./network.nix
./nfs.nix
./nh.nix
./printing.nix
./greetd.nix
./security.nix
./services.nix
./steam.nix
./stylix.nix
./syncthing.nix
./system.nix
./tailscale.nix
./thunar.nix
./user.nix
./ventoy.nix
./virtualbox.nix
./xdg.nix
./xserver.nix
./zram.nix
inputs.stylix.nixosModules.stylix
];
}
-19
View File
@@ -1,19 +0,0 @@
{
pkgs,
lib,
config,
profile,
...
}: {
options.docker.enable = lib.mkEnableOption "Docker";
config.virtualisation.docker = lib.mkIf config.docker.enable {
enable = true;
enableNvidia =
if profile == "nvidia"
then true
else false;
package = pkgs.docker;
daemon.settings.dns = ["9.9.9.11" "149.112.112.11"];
};
}
-29
View File
@@ -1,29 +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";
upscaler = "io.gitlab.theevilskeleton.Upscaler";
};
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);
}
-29
View File
@@ -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
];
};
}
-11
View File
@@ -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";
};
}
-14
View File
@@ -1,14 +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
};
};
}
-21
View File
@@ -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;
}
-48
View File
@@ -1,48 +0,0 @@
{
host,
hostId,
options,
...
}: {
# 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;
}
];
};
};
}
-6
View File
@@ -1,6 +0,0 @@
{enableNFS, ...}: {
services = {
rpcbind.enable = enableNFS;
nfs.server.enable = enableNFS;
};
}
-15
View File
@@ -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,22 +0,0 @@
{
pkgs,
lib,
config,
...
}: let
mkAppImagePackage = name: pkg: {
options.packages.appImages.${name}.enable = lib.mkEnableOption name;
config.environment.systemPackages =
lib.mkIf config.packages.appImages.${name}.enable [pkg];
};
appImagePackages = {
fluxer = pkgs.callPackage ./fluxer.nix {};
helium = pkgs.callPackage ./helium.nix {};
# logseq = pkgs.callPackage ./logseq.nix {};
losslesscut = pkgs.callPackage ./losslesscut.nix {};
};
in {
imports = builtins.attrValues (builtins.mapAttrs mkAppImagePackage appImagePackages);
}
@@ -1,38 +0,0 @@
{
lib,
appimageTools,
fetchurl,
}: let
pname = "fluxer";
version = "canary";
hash = "sha256-GdoBK+Z/d2quEIY8INM4IQy5tzzIBBM+3CgJXQn0qAw=";
src = fetchurl {
url = "https://api.fluxer.app/dl/desktop/stable/linux/x64/latest/appimage";
sha256 = hash;
};
appimageContents = appimageTools.extract {inherit pname version src;};
iconSize = "512x512";
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/${iconSize}/apps/${pname}.png \
$out/share/icons/hicolor/${iconSize}/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,40 +0,0 @@
{
lib,
appimageTools,
fetchurl,
}: let
pname = "helium";
version = "0.13.4.1";
hash = "sha256-z23up+T6bj6F+cQslmI92bEksIAw1OQHRIrmQSaaxY8=";
src = fetchurl {
url = "https://github.com/imputnet/helium-linux/releases/download/${version}/helium-${version}-x86_64.AppImage";
sha256 = hash;
};
appimageContents = appimageTools.extract {inherit pname version src;};
iconSize = "256x256";
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/${iconSize}/apps/${pname}.png \
$out/share/icons/hicolor/${iconSize}/apps/${pname}.png
# substituteInPlace $out/share/applications/${pname}.desktop \
# --replace-fail 'Exec=AppRun' 'Exec=${pname}'
'';
meta = with lib; {
description = "Helium browser";
homepage = "https://github.com/imputnet/helium";
license = licenses.agpl3Plus;
platforms = ["x86_64-linux"];
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
maintainers = with lib.maintainers; [garand_plg];
};
}
# https://github.com/imputnet/helium-linux/releases/download/0.11.7.1/helium-0.11.7.1-x86_64.AppImage
@@ -1,40 +0,0 @@
{
lib,
appimageTools,
fetchurl,
}: let
pname = "logseq";
version = "0.10.15";
hash = "sha256-i5EQUvSW1ix+8NT8nCs6mGH2B9xF7G4mB7vBhDJ7JdE=";
src = fetchurl {
url = "https://github.com/logseq/logseq/releases/download/${version}/Logseq-linux-x64-${version}.AppImage";
sha256 = hash;
};
appimageContents = appimageTools.extract {inherit pname version src;};
iconSize = "512x512";
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/${iconSize}/apps/${pname}.png \
$out/share/icons/hicolor/${iconSize}/apps/${pname}.png
substituteInPlace $out/share/applications/${pname}.desktop \
--replace-fail 'Exec=AppRun' 'Exec=${pname}'
'';
meta = with lib; {
description = "Logseq";
homepage = "https://github.com/logseq/logseq";
license = licenses.gpl3;
platforms = ["x86_64-linux"];
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
maintainers = with lib.maintainers; [garand_plg];
};
}
# https://github.com/logseq/logseq/releases/download/0.10.15/Logseq-linux-x64-0.10.15.AppImage
@@ -1,40 +0,0 @@
{
lib,
appimageTools,
fetchurl,
}: let
pname = "losslesscut";
version = "3.69.0";
hash = "sha256-F56q4nv/viWmVJpKcUR0EmtXwojO/DBwRvycYxOhJnY=";
src = fetchurl {
url = "https://github.com/mifi/lossless-cut/releases/download/v${version}/LosslessCut-linux-x86_64.AppImage";
sha256 = hash;
};
appimageContents = appimageTools.extract {inherit pname version src;};
iconSize = "512x512";
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/${iconSize}/apps/${pname}.png \
$out/share/icons/hicolor/${iconSize}/apps/${pname}.png
substituteInPlace $out/share/applications/${pname}.desktop \
--replace-fail 'Exec=AppRun' 'Exec=${pname}'
'';
meta = with lib; {
description = "Lossless cut";
homepage = "https://github.com/mifi/lossless-cut";
license = licenses.gpl2Only;
platforms = ["x86_64-linux"];
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
maintainers = with lib.maintainers; [garand_plg];
};
}
# https://github.com/mifi/lossless-cut/releases/download/v3.68.0/LosslessCut-linux-x86_64.AppImage
-9
View File
@@ -1,9 +0,0 @@
_: {
nixpkgs.config.allowUnfree = true;
imports = [
./appimages
./essentials.nix
./packages.nix
./programs.nix
];
}
-75
View File
@@ -1,75 +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
smartmontools
# Network & system utilities
ripgrep
wget
socat
ookla-speedtest
brightnessctl
killall
dex
ffmpeg
# Desktop environment
networkmanagerapplet
tuigreet
nwg-displays
waypaper
uwsm
hyprpicker
hyprshot
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
awww
grim
slurp
wl-clipboard
swappy
ydotool
hyprpolkitagent
hyprland-qtutils # needed for banners and ANR messages
# pyprland
pyprland
];
}
-82
View File
@@ -1,82 +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;
jan = jan;
lazygit = lazygit;
prismlauncher = inputs.prismlauncher-cracked.packages.${system}.default;
spaceCadetPinball = space-cadet-pinball;
ttySolitaire = tty-solitaire;
gimp = gimp;
eyeOfGnome = eog;
kdenlive =
kdePackages.kdenlive.overrideAttrs
(old: {
postInstall =
(old.postInstall or "")
+ ''
wrapProgram $out/bin/kdenlive \
--set QT_SCALE_FACTOR 0.8
'';
});
plex = [
(
plex-desktop.override {
extraEnv = {
QT_QPA_PLATFORM = "xcb";
};
}
)
plexamp
];
jellyfin = [
tsukimi
finamp
];
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;
notify = notify-client;
boxes = gnome-boxes;
switcheroo = switcheroo;
};
in {
imports = builtins.attrValues (builtins.mapAttrs mkPackage packages);
}
-35
View File
@@ -1,35 +0,0 @@
{shell, ...}: {
programs = {
nano.enable = true;
hyprland = {
enable = true;
withUWSM = false;
};
fish.enable =
if shell == "fish"
then true
else 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
# ];
};
};
}
-38
View File
@@ -1,38 +0,0 @@
{
pkgs,
lib,
printEnable,
ensureDefaultPrinter,
ensurePrinters,
...
}: {
services = lib.mkIf printEnable {
printing = {
enable = true;
drivers = with pkgs; [
cups-filters
cups-browsed
];
listenAddresses = ["*:631"];
allowFrom = ["all"];
browsing = true;
defaultShared = true;
openFirewall = true;
};
avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
publish = {
enable = true;
userServices = true;
};
};
ipp-usb.enable = true;
};
hardware.printers = lib.mkIf printEnable {
ensureDefaultPrinter = ensureDefaultPrinter;
ensurePrinters = ensurePrinters;
};
}
-28
View File
@@ -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
'';
};
};
}
-67
View File
@@ -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;
};
};
}
-45
View File
@@ -1,45 +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;
};
};
}
# gamescope -W 1920 -H 1080 -r 144 --force-grab-cursor -f --mangoapp --rt --expose-wayland --
-54
View File
@@ -1,54 +0,0 @@
{
pkgs,
stylixImage,
...
}: {
# 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;
};
};
targets = {
limine = {
enable = true;
colors.enable = true;
image.enable = true;
imageScalingMode = {
enable = true;
override = "tile";
};
};
kmscon = {
enable = false;
colors.enable = true;
fonts.enable = true;
};
};
};
}
-8
View File
@@ -1,8 +0,0 @@
{username, ...}: {
services.syncthing = {
enable = false;
user = "${username}";
dataDir = "/home/${username}";
configDir = "/home/${username}/.config/syncthing";
};
}
-47
View File
@@ -1,47 +0,0 @@
{
consoleKeyMap,
inputs,
...
}: {
nix = {
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
settings = {
download-buffer-size = 200000000;
auto-optimise-store = true;
experimental-features = [
"nix-command"
"flakes"
];
substituters = [
"https://hyprland.cachix.org"
"https://noctalia.cachix.org"
];
trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4="
];
};
};
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!
}
-14
View File
@@ -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;
};
}
-9
View File
@@ -1,9 +0,0 @@
{pkgs, ...}: {
programs.thunar = {
enable = true;
plugins = with pkgs; [
thunar-archive-plugin
thunar-volman
];
};
}
-80
View File
@@ -1,80 +0,0 @@
{
pkgs,
inputs,
username,
host,
profile,
system,
gitUsername,
shell,
extraMonitorSettings,
keyboardLayout,
gitEmail,
location,
...
}: {
imports = [inputs.home-manager.nixosModules.home-manager];
home-manager = {
useUserPackages = true;
useGlobalPkgs = false;
backupFileExtension = "backup-nixos";
extraSpecialArgs = {
inherit
inputs
username
host
profile
system
extraMonitorSettings
shell
keyboardLayout
gitEmail
gitUsername
location
;
};
users.${username} = {
imports = [
./../home
../../hosts/${host}/home-modules.nix
inputs.noctalia.homeModules.default
];
home = {
username = "${username}";
homeDirectory = "/home/${username}";
stateVersion = "25.11";
shell.enableFishIntegration =
if shell == "fish"
then true
else false;
};
};
};
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"
"lpadmin"
];
shell = with pkgs; (
if shell == "fish"
then fish
else bash
);
ignoreShellProgramCheck = true;
linger = true;
};
};
nix.settings.allowed-users = ["${username}"];
}
-15
View File
@@ -1,15 +0,0 @@
{
pkgs,
lib,
config,
...
}: {
options.ventoy.enable = lib.mkEnableOption "Enable Ventoy";
config = lib.mkIf config.ventoy.enable {
environment.systemPackages = with pkgs; [ventoy-full-gtk];
nixpkgs.config.permittedInsecurePackages = [
"ventoy-gtk3-1.1.12"
];
};
}
-17
View File
@@ -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;
};
}
-12
View File
@@ -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;
};
}
-9
View File
@@ -1,9 +0,0 @@
{keyboardLayout, ...}: {
services.xserver = {
enable = true;
xkb = {
layout = "${keyboardLayout}";
variant = "";
};
};
}
-32
View File
@@ -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 = {};
};
}
-19
View File
@@ -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];
};
}
-10
View File
@@ -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
];
}
-25
View File
@@ -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
];
};
};
}
-15
View File
@@ -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;};
}
-61
View File
@@ -1,61 +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.stable;
};
};
};
}
# 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
-35
View File
@@ -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}";
};
};
};
}
-19
View File
@@ -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
};
}
-24
View File
@@ -1,24 +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}" = {
default = true;
sync = {
username = username;
url = "https://ass.garandplg.com/";
autoSync = true;
};
};
};
}
-148
View File
@@ -1,148 +0,0 @@
{
username,
host,
...
}: {
programs.bash.shellAliases = {
# GarandOS aliases
pullos = "git -C /home/${username}/garandos pull";
upd = "nh os switch -H ${host} -d always";
upg = "nh os switch -H ${host} --update -d always";
upf = "sudo nix flake update --flake /home/${username}/garandos";
upf-gh = "nix flake update --option access-tokens \"github.com=$(gh auth token)\" --flake /home/${username}/garandos";
upf-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock";
upd-bt = "nh os boot -H ${host} -d always";
upd-ts = "nh os test -H ${host} -d always";
upd-bd = "nh os build -H ${host} -d always";
tui = "garandos-tui";
ncg = "nh clean all --optimise";
# 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 = "systemctl poweroff";
jezus = "systemctl reboot";
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-hs = "kssh hp-t640-homeserver-headscale";
ssh-server = "ssh hp-t640-homeserver";
ssh-server-hs = "ssh hp-t640-homeserver-headscale";
};
}
-16
View File
@@ -1,16 +0,0 @@
{shell, ...}: {
programs.bash = {
enable =
if shell == "bash"
then true
else false;
enableCompletion = true;
# initExtra = ''
# fastfetch
# '';
};
imports = [
./aliases.nix
./functions.nix
];
}
-161
View File
@@ -1,161 +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}'
}
ffmpeg_dl() {
if [ "$#" -ne 3 ]; then
echo "Usage: ffmpeg_dl <url> <name> <fs_path>"
return 1
fi
local url="$1"
local name="$2"
local fs_path="$3"
mkdir -p "$fs_path"
local output="${"$"}{fs_path}/${"$"}{name}.mp4"
ffmpeg -i "$url" -c copy "$output"
}
'';
}
-24
View File
@@ -1,24 +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";
};
}
-28
View File
@@ -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;
};
};
}
-18
View File
@@ -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;
};
};
};
}
-22
View File
@@ -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
];
}
-25
View File
@@ -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
}
];
}
-44
View File
@@ -1,44 +0,0 @@
_: {
imports = [
./bash
./chromium
./fastfetch
./fish
./hyprland
./kitty
./librewolf
./noctalia
./obsidian
./scripts
./vscodium
./xdg
./zed
./anki.nix
./bat.nix
./btop.nix
./cava.nix
./easyeffects.nix
./eza.nix
./fzf.nix
./gh.nix
./git.nix
./gtk.nix
./kdeConnect.nix
./lutris.nix
./mangohud.nix
./nextcloud.nix
./obs-studio.nix
./ollama.nix
./onlyoffice.nix
./opencode.nix
./qt.nix
./ssh.nix
./starship.nix
./stylix.nix
./swappy.nix
./tealdeer.nix
./vesktop.nix
./virtmanager.nix
./zoxide.nix
];
}
-95
View File
@@ -1,95 +0,0 @@
{
pkgs,
lib,
config,
...
}: {
options.easyeffects.enable = lib.mkEnableOption "Easy Effects";
config.services.easyeffects = lib.mkIf config.easyeffects.enable {
enable = true;
package = pkgs.easyeffects;
preset = "Default";
extraPresets."Default".input = {
blocklist = [];
"deepfilternet#0" = {
attenuation-limit = 100.0;
bypass = false;
input-gain = 0.0;
max-df-processing-threshol = 20.0;
max-erb-processing-threshold = 30.0;
min-processing-buffer = 0;
min-processing-threshold = -10.0;
output-gain = 0.0;
post-filter-beta = 0.019999999552965164;
};
"exciter#0" = {
amount = 0.0;
blend = 0.0;
bypass = false;
ceil = 16000.0;
ceil-active = false;
harmonics = 8.5;
input-gain = 0.0;
output-gain = 0.0;
scope = 7500.0;
};
plugins_order = [
"rnnoise#0"
"deepfilternet#0"
"speex#0"
"exciter#0"
"stereo_tools#0"
];
"rnnoise#0" = {
bypass = false;
enable-vad = true;
input-gain = 5.0;
model-name = "\"\"";
output-gain = -5.0;
release = 20.0;
use-standard-model = true;
vad-thres = 50.0;
wet = 0.0;
};
"speex#0" = {
bypass = true;
enable-agc = true;
enable-denoise = true;
enable-dereverb = true;
input-gain = 0.0;
noise-suppression = -70;
output-gain = 0.0;
vad = {
enable = true;
probability-continue = 90;
probability-start = 95;
};
};
"stereo_tools#0" = {
balance-in = 0.0;
balance-out = 0.0;
bypass = false;
delay = 0.0;
dry = -100.0;
input-gain = 0.0;
middle-level = 0.0;
middle-panorama = 0.0;
mode = "LR > L+R (Mono Sum L+R)";
mutel = false;
muter = false;
output-gain = 0.0;
phasel = false;
phaser = false;
sc-level = 1.0;
side-balance = 0.0;
side-level = 0.0;
softclip = true;
stereo-base = 0.0;
stereo-phase = 0.0;
wet = 0.0;
};
};
};
}
-26
View File
@@ -1,26 +0,0 @@
{shell, ...}: {
programs.eza = {
enable = true;
icons = "auto";
enableFishIntegration =
if shell == "fish"
then true
else false;
enableBashIntegration =
if shell == "bash"
then true
else false;
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
];
};
}
-17
View File
@@ -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 = " ";
};
}
-12
View File
@@ -1,12 +0,0 @@
_: {
programs.fastfetch.settings.logo = {
source = ../garandos.png;
type = "kitty-direct";
height = 15;
width = 30;
padding = {
top = 3;
left = 3;
};
};
}
-155
View File
@@ -1,155 +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 = ''
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 = ''
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"
];
}
-141
View File
@@ -1,141 +0,0 @@
{
username,
host,
...
}: {
programs.fish.shellAliases = {
# GarandOS aliases
pullos = "git -C /home/${username}/garandos pull";
upd = "nh os switch -H ${host} -d always";
upg = "nh os switch -H ${host} --update -d always";
upf = "sudo nix flake update --flake /home/${username}/garandos";
upf-gh = "nix flake update --option access-tokens \"github.com=$(gh auth token)\" --flake /home/${username}/garandos";
upf-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock";
upd-bt = "nh os boot -H ${host} -d always";
upd-ts = "nh os test -H ${host} -d always";
upd-bd = "nh os build -H ${host} -d always";
tui = "garandos-tui";
ncg = "nh clean all --optimise";
# 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 = "systemctl poweroff";
jezus = "systemctl reboot";
ookla = "speedtest";
hypr-cli = "hyprctl clients";
# Navigation aliases
".." = "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 ";
# 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";
# 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-hs = "kssh hp-t640-homeserver-headscale";
ssh-server = "ssh hp-t640-homeserver";
ssh-server-hs = "ssh hp-t640-homeserver-headscale";
};
}
-39
View File
@@ -1,39 +0,0 @@
{
pkgs,
shell,
...
}: {
programs = {
fish = {
enable =
if shell == "fish"
then true
else false;
package = pkgs.fish;
generateCompletions = true;
interactiveShellInit = ''
set fish_greeting
# fastfetch
'';
};
nix-your-shell = {
enable = true;
package = pkgs.nix-your-shell;
enableFishIntegration =
if shell == "fish"
then true
else false;
nix-output-monitor = {
enable = true;
package = pkgs.nix-output-monitor;
};
};
};
imports = [
./aliases.nix
./functions.nix
./plugins.nix
];
}
-236
View File
@@ -1,236 +0,0 @@
_: {
programs.fish.functions = {
# Count files, links and directories in the current folder
countfiles = {
body = ''
for t in files links directories
# $t[1] pierwszy znak (f, l, d)
echo (find . -type $t[1] | wc -l) $t
end
'';
description = "Count files, links and directories in the current folder";
};
# Tail all text logs in /var/log
logs = {
body = ''
sudo find /var/log -type f -exec file {} \; \
| grep 'text' \
| cut -d' ' -f1 \
| sed -e 's/:$//g' \
| grep -v '[0-9]$' \
| xargs tail -f
'';
description = "Tail all text logs in /var/log";
};
# Quick directory creation and navigation
mkcd = {
body = ''
mkdir -p $argv[1]; and cd $argv[1]
'';
description = "Create a directory and cd into it";
};
# Extract various archive formats
extract = {
body = ''
for archive in $argv
if test -f $archive
switch $archive
case *.tar.bz2
tar xvjf $archive
case *.tar.gz
tar xvzf $archive
case *.bz2
bunzip2 $archive
case *.rar
unrar x $archive
case *.gz
gunzip $archive
case *.tar
tar xvf $archive
case *.tbz2
tar xvjf $archive
case *.tgz
tar xvzf $archive
case *.zip
unzip $archive
case *.Z
uncompress $archive
case *.7z
7z x $archive
case '*'
echo "don't know how to extract '$archive'..."
end
else
echo "'$archive' is not a valid file!"
end
end
'';
description = "Extract various archive formats";
};
# Find files quickly
ff = {
body = ''
if test -n "$argv[1]"
find . -type f -name "*$argv[1]*"
else
echo "Usage: ff <pattern>"
end
'';
description = "Find files matching a pattern";
};
# Find directories quickly
fd = {
body = ''
if test -n "$argv[1]"
find . -type d -name "*$argv[1]*"
else
echo "Usage: fd <pattern>"
end
'';
description = "Find directories matching a pattern";
};
# IP address lookup
whatismyip = {
body = ''
# Internal IP
if command -v ip >/dev/null
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}'
end
# External IP
echo -n "External IP: "
curl -4 ifconfig.me
'';
description = "Show internal and external IP addresses";
};
# Search for text in all files in the current folder
ftext = {
body = ''
if test -n "$argv[1]"
grep -iIHrn --color=always "$argv[1]" . | less -r
else
echo "Usage: ftext <search term>"
end
'';
description = "Search text in files, showing matches with highlighting";
};
# Copy file with a progress bar
cpp = {
body = ''
set -e
# Use strace to monitor cp progress
strace -q -ewrite cp -- $argv[1] $argv[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" $argv[1])" count=0
'';
description = "Copy a file with a visual progress bar";
};
# Copy and go to the directory
cpg = {
body = ''
cp $argv[1] $argv[2]
if test -d $argv[2]
cd $argv[2]
end
'';
description = "Copy a file and cd into the destination directory if it's a directory";
};
# Move and go to the directory
mvg = {
body = ''
mv $argv[1] $argv[2]
if test -d $argv[2]
cd $argv[2]
end
'';
description = "Move a file and cd into the destination directory if it's a directory";
};
# Create and go to the directory
mkdirg = {
body = ''
mkdir -p $argv[1]; and cd $argv[1]
'';
description = "Create a directory and cd into it";
};
# Go up N directories (e.g. up 4)
up = {
body = ''
set limit $argv[1]
if test -z "$limit"
set limit 1
end
set path (pwd)
for i in (seq $limit)
set path (dirname $path)
end
cd $path
'';
description = "Go up N directories";
};
# cd with automatic ls after each cd
cd = {
body = ''
builtin cd $argv
if test $status -eq 0
ls
end
'';
description = "cd with automatic ls";
};
# Return the last two components of the working directory
pwdtail = {
body = ''
pwd | awk -F/ '{nlast = NF - 1; print $nlast "/" $NF}'
'';
description = "Show the last two components of the current path";
};
# Download video via ffmpeg
ffmpeg_dl = {
body = ''
if count $argv != 3
echo "Usage: ffmpeg_dl <url> <name> <fs_path>"
return 1
end
set url $argv[1]
set name $argv[2]
set fs_path $argv[3]
mkdir -p $fs_path
set output "$fs_path/$name.mp4"
ffmpeg -i $url -c copy $output
'';
description = "Download a video using ffmpeg to a given location";
};
};
}
-25
View File
@@ -1,25 +0,0 @@
{pkgs, ...}: {
programs.fish.plugins = [
# {
# name = "z";
# src = pkgs.fetchFromGitHub {
# owner = "jethrokuan";
# repo = "z";
# rev = "ddeb28a7b6a1f0ec6dae40c636e5ca4908ad160a";
# sha256 = "0c5i7sdrsp0q3vbziqzdyqn4fmp235ax4mn4zslrswvn8g3fvdyh";
# };
# }
# # oh-my-fish plugins are stored in their own repositories, which
# # makes them simple to import into home-manager.
# {
# name = "fasd";
# src = pkgs.fetchFromGitHub {
# owner = "oh-my-fish";
# repo = "plugin-fasd";
# rev = "38a5b6b6011106092009549e52249c6d6f501fba";
# sha256 = "06v37hqy5yrv5a6ssd1p3cjd9y3hnp19d3ab7dag56fs1qmgyhbs";
# };
# }
];
}
-26
View File
@@ -1,26 +0,0 @@
{shell, ...}: {
programs.fzf = {
enable = true;
enableFishIntegration =
if shell == "fish"
then true
else false;
enableBashIntegration =
if shell == "bash"
then true
else false;
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"
];
};
}
-21
View File
@@ -1,21 +0,0 @@
{
pkgs,
gitUsername,
...
}: {
programs.gh = {
enable = true;
package = pkgs.gh;
hosts."github.com" = {
git_protocol = "https";
users = [
"${gitUsername}"
];
user = "${gitUsername}";
};
settings = {
git_protocol = "https";
version = "1";
};
};
}
-23
View File
@@ -1,23 +0,0 @@
{
gitUsername,
gitEmail,
...
}: {
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";
};
};
}
-10
View File
@@ -1,10 +0,0 @@
{pkgs, ...}: {
gtk = {
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
};
}
-33
View File
@@ -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"
];
};
}
-176
View File
@@ -1,176 +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, H, exec, helium #\"Helium web browser\""
"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, dex ${desktopEntriesPath}/messenger.desktop #\"Facebook Messenger client\""
"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, R, exec, noctalia-shell ipc call plugin:screen-recorder saveReplay #\"Save Replay\""
"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, J, exec, dex ${desktopEntriesPath}/jellyfinClient.desktop #\"Jellyfin PWA\""
"SUPER SHIFT, K, exec, noctalia-shell ipc call plugin:keybind-cheatsheet toggle #\"Toggle keybind cheatsheet\""
"SUPER SHIFT, M, exec, plexamp #\"Music player for Plex\""
"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, noctalia-shell ipc call plugin:screenshot takeScreenshot region #\"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, F, exec, finamp #\"Jellyfin music client\""
"SUPER ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop #\"Glance server panel\""
"SUPER ALT, K, exec, kdenlive #\"Video editing software\""
"SUPER ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop #\"Mastodon social network client\""
"SUPER ALT, N, exec, noctalia-shell ipc call plugin:ntfy-notifications toggle #\"Open ntfy panel\""
"SUPER ALT, P, exec, noctalia-shell ipc call settings toggle #\"Open settings panel\""
"SUPER ALT, R, exec, noctalia-shell ipc call plugin:screen-recorder toggleReplay #\"Toggle Replay\""
"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, N, exec, noctalia-shell ipc call plugin:ntfy-notifications refresh #\"Refresh ntfy\""
"SUPER CONTROL, R, exec, noctalia-shell ipc call plugin:screen-recorder toggle #\"Toogle screen recording\""
"SUPER CONTROL, S, exec, signal-desktop #\"Signal encrypted messaging\""
"SUPER CONTROL, T, exec, tsukimi #\"A simple Emby/Jellyfin Client\""
"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"
];
};
}
-12
View File
@@ -1,12 +0,0 @@
_: {
imports = [
./animations.nix
./binds.nix
./env.nix
./exec-once.nix
./hypridle.nix
./hyprland.nix
./pyprland.nix
./windowrules.nix
];
}
-28
View File
@@ -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"
];
}
-10
View File
@@ -1,10 +0,0 @@
_: {
wayland.windowManager.hyprland.settings.exec-once = [
"dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
"systemctl --user start hyprpolkitagent"
"noctalia-shell"
"wl-paste --type text --watch cliphist store" # Saves text
"wl-paste --type image --watch cliphist store" # Saves images
];
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

-18
View File
@@ -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";
}
];
};
};
}

Some files were not shown because too many files have changed in this diff Show More