From e60410393cea222b16743a1a87f29c06b9b3543b Mon Sep 17 00:00:00 2001 From: adikro Date: Thu, 18 Dec 2025 21:04:00 +0100 Subject: rewrite of system modules, hm modules are next --- flake.lock | 649 +++----------------------------- flake.nix | 15 - home/editors/helix.nix | 7 - home/editors/nixvim.nix | 98 ----- home/editors/nvf.nix | 42 --- home/git.nix | 11 - home/home.nix | 78 ---- home/programs/nixcord.nix | 204 ---------- home/programs/satty.nix | 4 - home/programs/spicetify.nix | 21 -- home/programs/yazi.nix | 7 - home/terminal/btop.nix | 6 - home/terminal/fish.nix | 62 --- home/terminal/foot.nix | 25 -- home/terminal/starship.nix | 111 ------ home/terminal/utils.nix | 26 -- home/wayland/hyprland/binds.nix | 64 ---- home/wayland/hyprland/hyprland.nix | 47 --- home/wayland/niri/binds.nix | 109 ------ home/wayland/niri/niri.nix | 77 ---- home/wayland/noctalia.nix | 8 - home/wayland/waybar.nix | 151 -------- home/xdg.nix | 34 -- hosts/desktop/configuration.nix | 127 ++----- hosts/desktop/home.nix | 65 ++++ modules/audio.nix | 20 - modules/boot.nix | 23 -- modules/greet.nix | 16 - modules/hm/default.nix | 12 + modules/hm/editors/default.nix | 8 + modules/hm/editors/helix.nix | 7 + modules/hm/editors/nixvim.nix | 98 +++++ modules/hm/editors/nvf.nix | 42 +++ modules/hm/git.nix | 11 + modules/hm/programs/default.nix | 9 + modules/hm/programs/nixcord.nix | 204 ++++++++++ modules/hm/programs/satty.nix | 4 + modules/hm/programs/spicetify.nix | 21 ++ modules/hm/programs/yazi.nix | 7 + modules/hm/terminal/btop.nix | 6 + modules/hm/terminal/default.nix | 10 + modules/hm/terminal/fish.nix | 62 +++ modules/hm/terminal/foot.nix | 25 ++ modules/hm/terminal/starship.nix | 111 ++++++ modules/hm/terminal/utils.nix | 26 ++ modules/hm/wayland/default.nix | 8 + modules/hm/wayland/niri/binds.nix | 108 ++++++ modules/hm/wayland/niri/default.nix | 7 + modules/hm/wayland/niri/niri.nix | 72 ++++ modules/hm/wayland/waybar.nix | 151 ++++++++ modules/hm/xdg.nix | 34 ++ modules/hyprland.nix | 7 - modules/memory.nix | 16 - modules/networking.nix | 25 -- modules/niri.nix | 9 - modules/ollama.nix | 21 -- modules/scx.nix | 12 - modules/sys/core/audio.nix | 28 ++ modules/sys/core/bootloader.nix | 36 ++ modules/sys/core/default.nix | 14 + modules/sys/core/drivers.nix | 56 +++ modules/sys/core/fonts.nix | 21 ++ modules/sys/core/greet.nix | 27 ++ modules/sys/core/home-manager.nix | 30 ++ modules/sys/core/localization.nix | 39 ++ modules/sys/core/networking.nix | 29 ++ modules/sys/core/security.nix | 27 ++ modules/sys/default.nix | 8 + modules/sys/features/default.nix | 8 + modules/sys/features/nh.nix | 26 ++ modules/sys/features/ollama.nix | 21 ++ modules/sys/features/virtualization.nix | 41 ++ modules/sys/wayland/default.nix | 6 + modules/sys/wayland/niri.nix | 20 + modules/tor.nix | 41 -- modules/virtualization.nix | 23 -- 76 files changed, 1632 insertions(+), 2109 deletions(-) delete mode 100644 home/editors/helix.nix delete mode 100644 home/editors/nixvim.nix delete mode 100644 home/editors/nvf.nix delete mode 100644 home/git.nix delete mode 100644 home/home.nix delete mode 100644 home/programs/nixcord.nix delete mode 100644 home/programs/satty.nix delete mode 100644 home/programs/spicetify.nix delete mode 100644 home/programs/yazi.nix delete mode 100644 home/terminal/btop.nix delete mode 100644 home/terminal/fish.nix delete mode 100644 home/terminal/foot.nix delete mode 100644 home/terminal/starship.nix delete mode 100644 home/terminal/utils.nix delete mode 100644 home/wayland/hyprland/binds.nix delete mode 100644 home/wayland/hyprland/hyprland.nix delete mode 100644 home/wayland/niri/binds.nix delete mode 100644 home/wayland/niri/niri.nix delete mode 100644 home/wayland/noctalia.nix delete mode 100644 home/wayland/waybar.nix delete mode 100644 home/xdg.nix create mode 100644 hosts/desktop/home.nix delete mode 100644 modules/audio.nix delete mode 100644 modules/boot.nix delete mode 100644 modules/greet.nix create mode 100644 modules/hm/default.nix create mode 100644 modules/hm/editors/default.nix create mode 100644 modules/hm/editors/helix.nix create mode 100644 modules/hm/editors/nixvim.nix create mode 100644 modules/hm/editors/nvf.nix create mode 100644 modules/hm/git.nix create mode 100644 modules/hm/programs/default.nix create mode 100644 modules/hm/programs/nixcord.nix create mode 100644 modules/hm/programs/satty.nix create mode 100644 modules/hm/programs/spicetify.nix create mode 100644 modules/hm/programs/yazi.nix create mode 100644 modules/hm/terminal/btop.nix create mode 100644 modules/hm/terminal/default.nix create mode 100644 modules/hm/terminal/fish.nix create mode 100644 modules/hm/terminal/foot.nix create mode 100644 modules/hm/terminal/starship.nix create mode 100644 modules/hm/terminal/utils.nix create mode 100644 modules/hm/wayland/default.nix create mode 100644 modules/hm/wayland/niri/binds.nix create mode 100644 modules/hm/wayland/niri/default.nix create mode 100644 modules/hm/wayland/niri/niri.nix create mode 100644 modules/hm/wayland/waybar.nix create mode 100644 modules/hm/xdg.nix delete mode 100644 modules/hyprland.nix delete mode 100644 modules/memory.nix delete mode 100644 modules/networking.nix delete mode 100644 modules/niri.nix delete mode 100644 modules/ollama.nix delete mode 100644 modules/scx.nix create mode 100644 modules/sys/core/audio.nix create mode 100644 modules/sys/core/bootloader.nix create mode 100644 modules/sys/core/default.nix create mode 100644 modules/sys/core/drivers.nix create mode 100644 modules/sys/core/fonts.nix create mode 100644 modules/sys/core/greet.nix create mode 100644 modules/sys/core/home-manager.nix create mode 100644 modules/sys/core/localization.nix create mode 100644 modules/sys/core/networking.nix create mode 100644 modules/sys/core/security.nix create mode 100644 modules/sys/default.nix create mode 100644 modules/sys/features/default.nix create mode 100644 modules/sys/features/nh.nix create mode 100644 modules/sys/features/ollama.nix create mode 100644 modules/sys/features/virtualization.nix create mode 100644 modules/sys/wayland/default.nix create mode 100644 modules/sys/wayland/niri.nix delete mode 100644 modules/tor.nix delete mode 100644 modules/virtualization.nix diff --git a/flake.lock b/flake.lock index 0e69f42..0d4348e 100644 --- a/flake.lock +++ b/flake.lock @@ -1,38 +1,5 @@ { "nodes": { - "aquamarine": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1764714051, - "narHash": "sha256-AjcMlM3UoavFoLzr0YrcvsIxALShjyvwe+o7ikibpCM=", - "owner": "hyprwm", - "repo": "aquamarine", - "rev": "a43bedcceced5c21ad36578ed823e6099af78214", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "aquamarine", - "type": "github" - } - }, "awww": { "inputs": { "flake-compat": "flake-compat", @@ -116,22 +83,6 @@ } }, "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1761588595, - "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_3": { "locked": { "lastModified": 1733328505, "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", @@ -145,14 +96,14 @@ "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" } }, - "flake-compat_4": { + "flake-compat_3": { "flake": false, "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "lastModified": 1761588595, + "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "owner": "edolstra", "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "type": "github" }, "original": { @@ -169,11 +120,11 @@ ] }, "locked": { - "lastModified": 1763759067, - "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", + "lastModified": 1765835352, + "narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", + "rev": "a34fae9c08a15ad73f295041fec82323541400a9", "type": "github" }, "original": { @@ -208,11 +159,11 @@ ] }, "locked": { - "lastModified": 1763759067, - "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", + "lastModified": 1765835352, + "narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", + "rev": "a34fae9c08a15ad73f295041fec82323541400a9", "type": "github" }, "original": { @@ -237,7 +188,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems_4" + "systems": "systems_3" }, "locked": { "lastModified": 1731533236, @@ -253,28 +204,6 @@ "type": "github" } }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "hyprland", - "pre-commit-hooks", - "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" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -303,11 +232,11 @@ ] }, "locked": { - "lastModified": 1765480374, - "narHash": "sha256-HlbvQAqLx7WqZFFQZ8nu5UUJAVlXiV/kqKbyueA8srw=", + "lastModified": 1765980955, + "narHash": "sha256-rB45jv4uwC90vM9UZ70plfvY/2Kdygs+zlQ07dGQFk4=", "owner": "nix-community", "repo": "home-manager", - "rev": "39cb677ed9e908e90478aa9fe5f3383dfc1a63f3", + "rev": "89c9508bbe9b40d36b3dc206c2483ef176f15173", "type": "github" }, "original": { @@ -317,327 +246,6 @@ "type": "github" } }, - "hyprcursor": { - "inputs": { - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1753964049, - "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", - "owner": "hyprwm", - "repo": "hyprcursor", - "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprcursor", - "type": "github" - } - }, - "hyprgraphics": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1763733840, - "narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=", - "owner": "hyprwm", - "repo": "hyprgraphics", - "rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprgraphics", - "type": "github" - } - }, - "hyprland": { - "inputs": { - "aquamarine": "aquamarine", - "hyprcursor": "hyprcursor", - "hyprgraphics": "hyprgraphics", - "hyprland-guiutils": "hyprland-guiutils", - "hyprland-protocols": "hyprland-protocols", - "hyprlang": "hyprlang", - "hyprutils": "hyprutils", - "hyprwayland-scanner": "hyprwayland-scanner", - "hyprwire": "hyprwire", - "nixpkgs": [ - "nixpkgs" - ], - "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems", - "xdph": "xdph" - }, - "locked": { - "lastModified": 1765479283, - "narHash": "sha256-jWBGCyYhPVEPTw7/upguKnjwccivwap9o+4/pD/gcCw=", - "owner": "hyprwm", - "repo": "Hyprland", - "rev": "75f6435f70dee8f8b685a02c52db7ba16f5db39c", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "Hyprland", - "type": "github" - } - }, - "hyprland-guiutils": { - "inputs": { - "aquamarine": [ - "hyprland", - "aquamarine" - ], - "hyprgraphics": [ - "hyprland", - "hyprgraphics" - ], - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprtoolkit": "hyprtoolkit", - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1764812575, - "narHash": "sha256-1bK1yGgaR82vajUrt6z+BSljQvFn91D74WJ/vJsydtE=", - "owner": "hyprwm", - "repo": "hyprland-guiutils", - "rev": "fd321368a40c782cfa299991e5584ca338e36ebe", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-guiutils", - "type": "github" - } - }, - "hyprland-protocols": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1759610243, - "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=", - "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-protocols", - "type": "github" - } - }, - "hyprlang": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1764612430, - "narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "0d00dc118981531aa731150b6ea551ef037acddd", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, - "hyprtoolkit": { - "inputs": { - "aquamarine": [ - "hyprland", - "hyprland-guiutils", - "aquamarine" - ], - "hyprgraphics": [ - "hyprland", - "hyprland-guiutils", - "hyprgraphics" - ], - "hyprlang": [ - "hyprland", - "hyprland-guiutils", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprland-guiutils", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprland-guiutils", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "hyprland-guiutils", - "nixpkgs" - ], - "systems": [ - "hyprland", - "hyprland-guiutils", - "systems" - ] - }, - "locked": { - "lastModified": 1764592794, - "narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=", - "owner": "hyprwm", - "repo": "hyprtoolkit", - "rev": "5cfe0743f0e608e1462972303778d8a0859ee63e", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprtoolkit", - "type": "github" - } - }, - "hyprutils": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1764962281, - "narHash": "sha256-rGbEMhTTyTzw4iyz45lch5kXseqnqcEpmrHdy+zHsfo=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "fe686486ac867a1a24f99c753bb40ffed338e4b0", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprwayland-scanner": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1763640274, - "narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "type": "github" - } - }, - "hyprwire": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1764872015, - "narHash": "sha256-INI9AVrQG5nJZFvGPSiUZ9FEUZJLfGdsqjF1QSak7Gc=", - "owner": "hyprwm", - "repo": "hyprwire", - "rev": "7997451dcaab7b9d9d442f18985d514ec5891608", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwire", - "type": "github" - } - }, "jovian": { "inputs": { "nix-github-actions": "nix-github-actions", @@ -660,22 +268,6 @@ "type": "github" } }, - "libnbtplusplus": { - "flake": false, - "locked": { - "lastModified": 1744811532, - "narHash": "sha256-qhmjaRkt+O7A+gu6HjUkl7QzOEb4r8y8vWZMG2R/C6o=", - "owner": "PrismLauncher", - "repo": "libnbtplusplus", - "rev": "531449ba1c930c98e0bcf5d332b237a8566f9d78", - "type": "github" - }, - "original": { - "owner": "PrismLauncher", - "repo": "libnbtplusplus", - "type": "github" - } - }, "neovim-nightly-overlay": { "inputs": { "flake-parts": "flake-parts", @@ -685,11 +277,11 @@ ] }, "locked": { - "lastModified": 1765411465, - "narHash": "sha256-rwrGoscS1AXRsiB100JduKO9ySKEjC8zsSBIDfKi1G8=", + "lastModified": 1766016290, + "narHash": "sha256-YMf/PUyY4z7RlIe/Dzn1NnxZGS0Vp2eHxcMNWJM9q+A=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "d47f5957732f763696803b564eb9c608a486014e", + "rev": "f7fbc4e3d4ccea45eaa5b187884592eb42dfdbbd", "type": "github" }, "original": { @@ -701,11 +293,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1765391613, - "narHash": "sha256-6tqSpj8b33kSY/0rYEdQRHsICdkZD/AtXSoC0EH/hFY=", + "lastModified": 1766014002, + "narHash": "sha256-KE/ufBGH8XFXTw3Vt1DrK1rQmAEp1Q+oyLQibX5UKO0=", "owner": "neovim", "repo": "neovim", - "rev": "78bbe53f7615e8b38d5289d9ce0579996109579b", + "rev": "c172fd9f464d5766eab9071e8f4770504c920c05", "type": "github" }, "original": { @@ -726,11 +318,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1765386897, - "narHash": "sha256-wmHtBM2Iuthw9DsTD9RUkkZqrmsSJYGgflSaskE+Rrc=", + "lastModified": 1766058361, + "narHash": "sha256-8GSS8I4AFlg8pzXDouVqsEQY0B562Q+esrRUwxVf47w=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "be7806f4fe2ead48eaf22e125f535d70a5ff2e3b", + "rev": "24123acf1301ee20a2bf6e63d0a19c54da1736ac", "type": "github" }, "original": { @@ -759,11 +351,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1765306956, - "narHash": "sha256-dAnL/EFft88xvKBLSE4pxSD5D945Cjm3E59bSl0feSE=", + "lastModified": 1766054370, + "narHash": "sha256-0duo7mbAIBNEya28DXpCHMdTbVlVPyPn+ETBEA4QRbE=", "owner": "YaLTeR", "repo": "niri", - "rev": "4d058e611147803f5188e417943c6653d846542f", + "rev": "f85cb5c5f97a6bd21cc6b3ac9671d32cca362bb2", "type": "github" }, "original": { @@ -797,18 +389,18 @@ }, "nixcord": { "inputs": { - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_2", "flake-parts": "flake-parts_2", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1765464894, - "narHash": "sha256-yHNyV1yNHnPW6/5jpJi/rXWfjJg6bFxehZY2FYEFSEU=", + "lastModified": 1766045567, + "narHash": "sha256-w3w0PxcBMLFYE8MOAJwp6NeBWZUI3eykczV9MfJrAQ8=", "owner": "KaylorBen", "repo": "nixcord", - "rev": "f6a2705a014e9a38ed74aa9306afd0875f89295a", + "rev": "2cc1a69f9b4a5c980c26ba4ba9dee252ebf0d218", "type": "github" }, "original": { @@ -850,11 +442,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1765311797, - "narHash": "sha256-mSD5Ob7a+T2RNjvPvOA1dkJHGVrNVl8ZOrAwBjKBDQo=", + "lastModified": 1765838191, + "narHash": "sha256-m5KWt1nOm76ILk/JSCxBM4MfK3rYY7Wq9/TZIIeGnT8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "09eb77e94fa25202af8f3e81ddc7353d9970ac1b", + "rev": "c6f52ebd45e5925c188d1a20119978aa4ffd5ef6", "type": "github" }, "original": { @@ -866,11 +458,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1765363881, - "narHash": "sha256-3C3xWn8/2Zzr7sxVBmpc1H1QfxjNfta5IMFe3O9ZEPw=", + "lastModified": 1766014764, + "narHash": "sha256-+73VffE5GP5fvbib6Hs1Su6LehG+9UV1Kzs90T2gBLA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d2b1213bf5ec5e62d96b003ab4b5cbc42abfc0d0", + "rev": "2b0d2b456e4e8452cf1c16d00118d145f31160f9", "type": "github" }, "original": { @@ -882,11 +474,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1765186076, - "narHash": "sha256-hM20uyap1a0M9d344I692r+ik4gTMyj60cQWO+hAYP8=", + "lastModified": 1765779637, + "narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "addf7cf5f383a3101ecfba091b98d0a1263dc9b8", + "rev": "1306659b587dc277866c7b69eb97e5f07864d8c4", "type": "github" }, "original": { @@ -918,14 +510,14 @@ "nixpkgs": [ "nixpkgs" ], - "systems": "systems_2" + "systems": "systems" }, "locked": { - "lastModified": 1765481271, - "narHash": "sha256-wss8GdEQIIsSDCM0mUtXXtRVLhGTKyWNaKeI8QinWWA=", + "lastModified": 1766065187, + "narHash": "sha256-1d6+VDO26pJzibS5xtANeD6C0e39W07xO4GUPsIwTpk=", "owner": "nix-community", "repo": "nixvim", - "rev": "dfc71c3d484b5962e9c2a22a9d2d4a5fd73fcd54", + "rev": "2a1f48e701bb11297432864ba4cadee3b886eba3", "type": "github" }, "original": { @@ -934,85 +526,18 @@ "type": "github" } }, - "noctalia": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1765420707, - "narHash": "sha256-lX0WxWosQbm3DrZhscVTiLLpJcoZvaQaZoP+eNt75wE=", - "owner": "noctalia-dev", - "repo": "noctalia-shell", - "rev": "298b2f5c794d4641cde21cf20422224bf8a60f99", - "type": "github" - }, - "original": { - "owner": "noctalia-dev", - "repo": "noctalia-shell", - "type": "github" - } - }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": "flake-compat_2", - "gitignore": "gitignore", - "nixpkgs": [ - "hyprland", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1765016596, - "narHash": "sha256-rhSqPNxDVow7OQKi4qS5H8Au0P4S3AYbawBSmJNUtBQ=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "prismlauncher": { - "inputs": { - "libnbtplusplus": "libnbtplusplus", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1765450291, - "narHash": "sha256-8TeC3ktyv+u7fZSaOQ/iG3FZQf8ALebDoyRlHlXSHEk=", - "owner": "PrismLauncher", - "repo": "PrismLauncher", - "rev": "40d1dccb9b3922e5fdc8fc8423ee7df807544c47", - "type": "github" - }, - "original": { - "owner": "PrismLauncher", - "repo": "PrismLauncher", - "type": "github" - } - }, "root": { "inputs": { "awww": "awww", "chaotic": "chaotic", "disko": "disko", "home-manager": "home-manager_2", - "hyprland": "hyprland", "neovim-nightly-overlay": "neovim-nightly-overlay", "niri": "niri", "nixcord": "nixcord", "nixpkgs": "nixpkgs_2", "nixpkgs-stable": "nixpkgs-stable_2", "nixvim": "nixvim", - "noctalia": "noctalia", - "prismlauncher": "prismlauncher", "satty": "satty", "spicetify-nix": "spicetify-nix", "waybar": "waybar", @@ -1126,14 +651,14 @@ "nixpkgs": [ "nixpkgs" ], - "systems": "systems_3" + "systems": "systems_2" }, "locked": { - "lastModified": 1765082296, - "narHash": "sha256-EcefoixU9ht+P6QB/TfjLY9E3MdJVfeSec6G8Ges0pA=", + "lastModified": 1765687197, + "narHash": "sha256-5aJgT+lEC7ypuAGE3DQLj3LzYDQ+kRG6MnkVr3ZF9RU=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "ac4927ea1ec7e7ea3635a1d8b933106a596c4356", + "rev": "fa6a5dde9d95bf7b8f075ff5aceeb1d97fa9043a", "type": "github" }, "original": { @@ -1143,21 +668,6 @@ } }, "systems": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "systems_2": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1172,7 +682,7 @@ "type": "github" } }, - "systems_3": { + "systems_2": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1187,7 +697,7 @@ "type": "github" } }, - "systems_4": { + "systems_3": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1204,17 +714,17 @@ }, "waybar": { "inputs": { - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_3", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1761204979, - "narHash": "sha256-QWS3FCd6sTbr1runpZPdpVrhqFu8E5fNOpfp0r9ifLk=", + "lastModified": 1766081478, + "narHash": "sha256-ITz0qE9+3GWe5r0PPl4XYOga+gD776qRAadte2yJ9zI=", "owner": "Alexays", "repo": "Waybar", - "rev": "161367d9617673a4ef9caf8299411dc5153464d1", + "rev": "97eb60677e555221326009e0bc3def67e85d33f4", "type": "github" }, "original": { @@ -1223,47 +733,6 @@ "type": "github" } }, - "xdph": { - "inputs": { - "hyprland-protocols": [ - "hyprland", - "hyprland-protocols" - ], - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1761431178, - "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "type": "github" - } - }, "xwayland-satellite-stable": { "flake": false, "locked": { @@ -1284,11 +753,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1765343581, - "narHash": "sha256-HtTPbV6z6AJPg2d0bHaJKFrnNha+SEbHvbJafKAQ614=", + "lastModified": 1765935116, + "narHash": "sha256-lNyckAdrhNKXsi9pNOBYajntNFlWs+BITVoIZuNuwX0=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "f0ad674b7009a6afd80cea59d4fbf975dd68ee95", + "rev": "979eab242e60cf481a31d9de508a1bdaf2dcf7d4", "type": "github" }, "original": { @@ -1306,11 +775,11 @@ "rust-overlay": "rust-overlay_4" }, "locked": { - "lastModified": 1765386628, - "narHash": "sha256-TNUf0mJOh1Ul6s3ZoMk/hUtGN4ilhglZl6+jEUf6Z/4=", + "lastModified": 1766074873, + "narHash": "sha256-9rgKzbfF35IH71xxERqGtZwB2ZWmb9lECTXF3UOT7U4=", "owner": "sxyazi", "repo": "yazi", - "rev": "ac7718c226226e9cde8014d71f42c1036662769a", + "rev": "e7cd66370fbc7786132c675999d026671ac364a6", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e0359f2..5c4d28f 100644 --- a/flake.nix +++ b/flake.nix @@ -19,21 +19,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - hyprland = { - url = "github:hyprwm/Hyprland"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - niri = { url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; - noctalia = { - url = "github:noctalia-dev/noctalia-shell"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - waybar = { url = "github:Alexays/Waybar"; inputs.nixpkgs.follows= "nixpkgs"; @@ -73,11 +63,6 @@ url = "github:Gerg-L/spicetify-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; - - prismlauncher = { - url = "github:PrismLauncher/PrismLauncher"; - inputs.nixpkgs.follows = "nixpkgs"; - }; }; outputs = inputs @{ diff --git a/home/editors/helix.nix b/home/editors/helix.nix deleted file mode 100644 index 0204f8d..0000000 --- a/home/editors/helix.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: -{ - programs.helix = { - enable = true; -# package = pkgs.helix; - }; -} diff --git a/home/editors/nixvim.nix b/home/editors/nixvim.nix deleted file mode 100644 index b8a4e5a..0000000 --- a/home/editors/nixvim.nix +++ /dev/null @@ -1,98 +0,0 @@ -{ pkgs, inputs, ... }: -{ - imports = [ inputs.nixvim.homeModules.nixvim ]; - programs.nixvim = { - enable = true; - package = inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default; - - viAlias = true; - vimAlias = true; - defaultEditor = true; - waylandSupport = true; - colorschemes.gruvbox.enable = true; - - plugins = { - lualine.enable = true; - oil.enable = true; - lazygit.enable = true; - persistence.enable = true; - nvim-autopairs.enable = true; - neoscroll.enable = true; - bufferline.enable = true; - web-devicons.enable = true; - - treesitter = { - enable = true; - settings = { - indent.enable = true; - }; - }; - - telescope = { - enable = true; - extensions = { - fzf-native = { - enable = true; - }; - }; - }; - - notify = { - enable = true; - settings = { - backgroundColour = "#1e1e2e"; - fps = 60; - render = "default"; - timeout = 500; - topDown = true; - }; - }; - - hardtime = { - # enable = true; - settings = { - # disableMouse = true; - # enabled = false; - restrictionMode = "hint"; - hint = true; - maxCount = 40; - maxTime = 1000; - }; - }; - - nix.enable = true; - lsp = { - enable = true; - servers = { - nil_ls.enable = true; - clangd.enable = true; - }; - }; - }; - - opts = { - number = true; - relativenumber = true; - termguicolors = true; - # mouse = "a"; - ignorecase = true; - smartcase = true; - expandtab = true; - shiftwidth = 2; - encoding = "utf-8"; - fileencoding = "utf-8"; - undofile = true; - swapfile = true; - backup = false; - autoread = true; - cursorline = true; - ruler = true; - gdefault = true; - scrolloff = 5; - clipboard = { - providers.wl-copy.enable = true; - register = "unnamedplus"; - }; - }; - }; -} diff --git a/home/editors/nvf.nix b/home/editors/nvf.nix deleted file mode 100644 index ab805ca..0000000 --- a/home/editors/nvf.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ pkgs, neovim-nightly-overlay, ... }: - -{ - programs.nvf = { - enable = true; - - settings.vim = { - package = neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default; - - viAlias = true; - vimAlias = true; - - theme = { - enable = true; - name = "gruvbox"; - style = "dark"; - }; - - statusline = { - lualine = { - enable = true; - theme = "gruvbox-material"; - }; - }; - - autopairs.nvim-autopairs.enable = true; - - lsp.enable = true; - - languages = { - nix = { - enable = true; - format = { - enable = true; - type = "alejandra"; - }; - }; - clang.enable = true; - }; - }; - }; -} diff --git a/home/git.nix b/home/git.nix deleted file mode 100644 index dc11881..0000000 --- a/home/git.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ ... }: -{ - programs.git = { - enable = true; - settings = { - user.name = "adikro"; - user.email = "adikro@disroot.org"; - init.defaultBranch = "main"; - }; - }; -} diff --git a/home/home.nix b/home/home.nix deleted file mode 100644 index d2b134f..0000000 --- a/home/home.nix +++ /dev/null @@ -1,78 +0,0 @@ -{ pkgs, inputs, ... }: -{ - imports = [ - # Window Managers - # ./wayland/hyprland/hyprland.nix - ./wayland/niri/niri.nix - # Wayland specific programs - ./wayland/waybar.nix - ./wayland/noctalia.nix - # Editors - ./editors/nixvim.nix - # ./editors/helix.nix - # Programs - ./terminal/foot.nix - ./terminal/fish.nix - ./terminal/starship.nix - ./terminal/utils.nix - ./terminal/btop.nix - ./programs/spicetify.nix - ./programs/nixcord.nix - ./programs/yazi.nix - # Other - ./xdg.nix - ./git.nix -]; - - home.username = "adam"; - home.homeDirectory = "/home/adam"; - home.stateVersion = "25.05"; - - home.packages = with pkgs; [ - protonvpn-gui - v2raya - evolution - imagemagick - kdePackages.kdenlive - syncplay - wofi - bottles - ncdu - equibop - inputs.prismlauncher.packages.${pkgs.stdenv.hostPlatform.system}.prismlauncher - inputs.awww.packages.${pkgs.stdenv.hostPlatform.system}.awww - grim - slurp - satty - veracrypt - brave - qbittorrent-enhanced - foot - bitwarden-desktop - yt-dlp_git - ffmpeg - mpv - gimp - mako - thunderbird - magic-wormhole - obsidian - alsa-utils - ]; - - gtk = { - enable = true; - colorScheme = "dark"; - theme = { - name = "Adwaita-dark"; - package = pkgs.gnome-themes-extra; - }; - }; - - qt = { - enable = true; - style.name = "adwaita-dark"; - style.package = pkgs.adwaita-qt; - platformTheme.name = "kde"; - }; -} diff --git a/home/programs/nixcord.nix b/home/programs/nixcord.nix deleted file mode 100644 index d7978af..0000000 --- a/home/programs/nixcord.nix +++ /dev/null @@ -1,204 +0,0 @@ -{ inputs, pkgs, ... }: -{ - imports = [ inputs.nixcord.homeModules.nixcord ]; - programs.nixcord = { - enable = true; - package = pkgs.discord-krisp; - discord = { - enable = true; - vencord.enable = false; - equicord.enable = true; - }; - config = { - frameless = true; - plugins = { - alwaysExpandRoles = { - enable = true; - hideArrow = true; - }; - alwaysTrust = { - enable = true; - domain = false; - }; - anammox.enable = true; - betterAudioPlayer.enable = true; - betterGifAltText.enable = true; - betterGifPicker.enable = true; - betterInvites.enable = true; - betterNotesBox = { - enable = true; - hide = true; - }; - betterQuickReact = { - enable = true; - columns = 6.0; - rows = 1.0; - compactMode = true; - }; - betterRoleContext.enable = true; - betterUploadButton.enable = true; - biggerStreamPreview.enable = true; - callTimer.enable = true; - characterCounter = { - enable = true; - colorEffects = false; - }; - cleanChannelName.enable = true; - clearUrLs.enable = true; - copyFileContents.enable = true; - copyStickerLinks.enable = true; - crashHandler.enable = true; - customTimestamps.enable = true; - disableCallIdle.enable = true; - disableDeepLinks.enable = true; - # dontFilterMe.enable = true; - dontRoundMyTimestamps.enable = true; - equicordHelper = { - enable = true; - noMirroredCamera = true; - }; - # equicordToolbox.enable = true; - expressionCloner.enable = true; - fakeNitro = { - enable = true; - enableEmojiBypass = false; - enableStickerBypass = false; - }; - favoriteEmojiFirst.enable = true; - fixCodeblockGap.enable = true; - fixFileExtensions.enable = true; - fixImagesQuality.enable = true; - fixSpotifyEmbeds.enable = true; - fixYoutubeEmbeds.enable = true; - forceOwnerCrown.enable = true; - friendsSince.enable = true; - fullSearchContext.enable = true; - fullUserInChatbox.enable = true; - gifCollections = { - enable = true; - preventDuplicates = true; - showCopyImageLink = true; - }; - gifRoulette = { - enable = true; - pingOwnerChance = true; - }; - guildTagSettings.enable = true; - homeTyping.enable = true; - ignoreTerms.enable = true; - iLoveSpam.enable = true; - imageFilename.enable = true; - imageLink.enable = true; - imageZoom = { - enable = true; - nearestNeighbour = true; - saveZoomValues = true; - square = true; - }; - imgToGif.enable = true; - inRole.enable = true; - inviteDefaults.enable = true; - # keyboardNavigation = { - # enable = true; - # hotkey = [ "Alt+Q" ]; - # }; - memberCount.enable = true; - mentionAvatars = { - enable = true; - showAtSymbol = true; - }; - messageLinkEmbeds.enable = true; - messageLogger = { - enable = true; - ignoreSelf = true; - }; - # messageLoggerEnhanced.enable = true; - moyai.enable = true; - musicControls.enable = true; - neverPausePreviews.enable = true; - newGuildSettings = { - enable = true; - messages = 1; - }; - newPluginsManager.enable = true; - noF1.enable = true; - noMaskedUrlPaste.enable = true; - noModalAnimation.enable = true; - noNitroUpsell.enable = true; - # noOnboarding.enable = true; - noOnboardingDelay.enable = true; - noMosaic.enable = true; - noProfileThemes.enable = true; - noSystemBadge.enable = true; - noTypingAnimation.enable = true; - overrideForumDefaults = { - enable = true; - defaultLayout = 2; - }; - onePingPerDm.enable = true; - openInApp.enable = true; - pauseInvitesForever.enable = true; - permissionFreeWill = { - enable = true; - lockout = false; - }; - permissionsViewer.enable = true; - pinDMs = { - enable = true; - canCollapseDmSection = true; - }; - pinIcon.enable = true; - platformIndicators.enable = true; - quoter.enable = true; - relationshipNotifier.enable = true; - roleColorEverywhere.enable = true; - saveFavoriteGiFs.enable = true; - sendTimestamps.enable = true; - serverInfo.enable = true; - showConnections.enable = true; - showHiddenChannels = { - enable = true; - # channelStyle = 2; - }; - showHiddenThings.enable = true; - showResourceChannels.enable = true; - showTimeoutDuration.enable = true; - # soggy = { - # enable = true; - # imageLink = "https://codeberg.org/adikro/wallpapers/raw/branch/main/kirkinator.gif"; - # songLink = "https://video.twimg.com/amplify_video/1976076971651268608/vid/avc1/1080x720/KGLQcBQQDvLZUGKI.mp4"; - # }; - spotifyCrack = { - enable = true; - noSpotifyAutoPause = false; - }; - streamerModeOnStream.enable = true; - typingIndicator = { - enable = true; - indicatorMode = 2; - }; - typingTweaks.enable = true; - unindent.enable = true; - universalMention = { - enable = true; - globalMention = true; - }; - unlimitedAccounts.enable = true; - unlockedAvatarZoom.enable = true; - userVoiceShow.enable = true; - validReply.enable = true; - validUser.enable = true; - viewIcons = { - enable = true; - format = "png"; - }; - voiceMessages.enable = true; - volumeBooster.enable = true; - whoReacted.enable = true; - whosWatching.enable = true; - youtubeAdblock.enable = true; - youtubeDescription.enable = true; - }; - }; - }; -} diff --git a/home/programs/satty.nix b/home/programs/satty.nix deleted file mode 100644 index facb35d..0000000 --- a/home/programs/satty.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ ... }: -{ - -} diff --git a/home/programs/spicetify.nix b/home/programs/spicetify.nix deleted file mode 100644 index 9d66181..0000000 --- a/home/programs/spicetify.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ pkgs, inputs, ... }: - -let - spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}; -in { - imports = [ - inputs.spicetify-nix.homeManagerModules.spicetify - ]; - - programs.spicetify = { - enable = true; - - enabledExtensions = with spicePkgs.extensions; [ - adblockify - hidePodcasts - ]; - - theme = spicePkgs.themes.catppuccin; - colorScheme = "mocha"; - }; -} diff --git a/home/programs/yazi.nix b/home/programs/yazi.nix deleted file mode 100644 index a8e2911..0000000 --- a/home/programs/yazi.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ inputs, ... }: -{ -# nixpkgs.overlays = [ inputs.yazi.overlays.default ]; - programs.yazi = { - enable = true; - }; -} diff --git a/home/terminal/btop.nix b/home/terminal/btop.nix deleted file mode 100644 index dcd59ed..0000000 --- a/home/terminal/btop.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ ... }: -{ - programs.btop = { - enable = true; - }; -} diff --git a/home/terminal/fish.nix b/home/terminal/fish.nix deleted file mode 100644 index ec75de8..0000000 --- a/home/terminal/fish.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ pkgs, ... }: -{ - programs.fish = { - enable = true; - - interactiveShellInit = '' - set fish_greeting - fastfetch - ''; - - shellAliases = { - nos = "nh os switch"; - nob = "nh os boot"; - nfu = "nix flake update"; - ll = "ls -lah"; - la = "ls -A"; - md = "mkdir -p"; - rmf = "rm -rf"; - gl = "git log --oneline --graph --decorate"; - untar = "tar -xzvf"; - tarc = "tar -czvf"; - ff = "fastfetch"; - cat = "bat"; - ls = "eza"; - }; - - plugins = [ - { - name = "transient-fish"; - src = pkgs.fishPlugins.transient-fish.src; - } - { - name = "fishbang"; - src = pkgs.fishPlugins.fishbang.src; - } - { - name = "puffer"; - src = pkgs.fishPlugins.puffer.src; - } - { - name = "pisces"; - src = pkgs.fishPlugins.pisces.src; - } - { - name = "fzf-fish"; - src = pkgs.fishPlugins.fzf-fish.src; - } - { - name = "fish-you-should-use"; - src = pkgs.fishPlugins.fish-you-should-use.src; - } - { - name = "colored-man-pages"; - src = pkgs.fishPlugins.colored-man-pages.src; - } - { - name = "fifc"; - src = pkgs.fishPlugins.fifc.src; - } - ]; - }; -} diff --git a/home/terminal/foot.nix b/home/terminal/foot.nix deleted file mode 100644 index 5c3098b..0000000 --- a/home/terminal/foot.nix +++ /dev/null @@ -1,25 +0,0 @@ -{pkgs, ...}: -let - footTheme = pkgs.fetchurl { - url = "https://codeberg.org/dnkl/foot/raw/branch/master/themes/gruvbox-dark"; - sha256 = "sha256-ubvnLgDEPGvNrwQdZRNguftg2SF5qcO1iVK0Tb5ZveI="; - }; -in -{ - programs.foot = { - enable = true; - settings = { - main = { - font="JetBrainsMonoNFM-Regular:size=14"; -# font-bold = "${font}:style=Bold:${withSize}"; -# font-italic = "${fontItalic}:style=Italic:${withSize}"; -# font-bold-italic = "${fontItalic}:style=BoldItalic:${withSize}"; - box-drawings-uses-font-glyphs = true; - include = "${footTheme}"; -}; - scrollback = { - lines = 10000; - }; - }; - }; - } diff --git a/home/terminal/starship.nix b/home/terminal/starship.nix deleted file mode 100644 index 82ab84e..0000000 --- a/home/terminal/starship.nix +++ /dev/null @@ -1,111 +0,0 @@ -{ ... }: -{ - programs.starship = { - enable = true; - settings = { - add_newline = true; - aws.disabled = true; - battery.disabled = true; - buf.disabled = true; - bun.disabled = true; - c.format = "[$symbol ]($style)"; - cpp = { - disabled = false; - format = "[$symbol ]($style)"; - }; - cmake.disabled = true; - cobol.disabled = true; - # cmd_duration = { - # min_time = 3; - # show_notifications = true; - # min_time_to_notify = 30; - # }; - conda.disabled = true; - container.disabled = true; - crystal.disabled = true; - daml.disabled = true; - dart.disabled = true; - deno.disabled = true; - directory = { - truncate_to_repo = false; - read_only = ""; - }; - docker_context = { - format = "[$symbol ]($style)"; - symbol = ""; - }; - dotnet.disabled = true; - elixir.disabled = true; - elm.disabled = true; - erlang.disabled = true; - fennel.disabled = true; - fortran.disabled = true; - gcloud.disabled = true; - git_commit.tag_symbol = ""; - git_status = { - conflicted = "󰦎"; - ahead = ""; - behind = ""; - diverged = ""; - renamed = ""; - deleted = "x"; - }; - gleam.disabled = true; - golang.disabled = true; - guix_shell.disabled = true; - gradle.disabled = true; - haskell.disabled = true; - haxe.disabled = true; - helm.disabled = true; - hostname.format = "[$hostname ]($style) "; - java.disabled = true; - jobs.symbol = "󰓎"; - julia.disabled = true; - kotlin.disabled = true; - lua.disabled = true; - meson.disabled = true; - mojo.disabled = true; - nats.disabled = true; - netns.disabled = true; - nim.disabled = true; - nix_shell.format = "[$symbol$state ]($style)"; - nodejs.disabled = true; - ocaml.disabled = true; - odin.disabled = true; - opa.disabled = true; - openstack.disabled = true; - package.disabled = true; - perl.disabled = true; - php.disabled = true; - pixi.disabled = true; - pulumi.disabled = true; - purescript.disabled = true; - python = { - symbol = ""; - format = "[$symbol ]($style)"; - }; - quarto.disabled = true; - rlang.disabled = true; - raku.disabled = true; - red.disabled = true; - ruby.disabled = true; - rust.symbol = ""; - scala.disabled = true; - singularity.disabled = true; - solidity.disabled = true; - spack.disabled = true; - # sudo = { - # format = "[sudo ]($style)"; - # disabled = false; - # }; - swift.disabled = true; - terraform.disabled = true; - typst.disabled = true; - vagrant.disabled = true; - vlang.disabled = true; - vcsh.disabled = true; - xmake.disabled = true; - zig.disabled = true; - }; - }; -} diff --git a/home/terminal/utils.nix b/home/terminal/utils.nix deleted file mode 100644 index c408e4a..0000000 --- a/home/terminal/utils.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ pkgs, ... }: -{ - programs.zoxide = { - enable = true; - options = [ - "--cmd cd" - ]; - }; - programs.bat = { - enable = true; - config = { - theme = "gruvbox-dark"; - tabs = "2"; - }; - }; - home.packages = with pkgs; [ - fzf - fd - chafa - hexyl - eza - ripgrep - procs - fastfetch - ]; -} diff --git a/home/wayland/hyprland/binds.nix b/home/wayland/hyprland/binds.nix deleted file mode 100644 index 303d83d..0000000 --- a/home/wayland/hyprland/binds.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ - wayland.windowManager.hyprland.settings = { - bindm = [ - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" - ]; - - bind = [ - "$mod, RETURN, exec, foot" - "$mod, D, exec, wofi --show=drun --lines=5--prompt=\"\"" - "$mod SHIFT, D, exec, grimblast --freeze copy area" -# "$mod SHIFT, F, exec, grimblast copysave output ~/.screenshots/$(date +'%s_hypr.png')" -# "$mod SHIFT, G, exec, grimblast copy active" -# "$mod CTRL, P, exec, swayidle timeout 2 'sleep 1; hyprctl dispatcher dpms off' resume 'hyprctl dispatcher dpms on & pkill swayidle'" - - "$mod SHIFT, Q, killactive," - "$mod CTRL, E, exit," - "$mod, SPACE, togglesplit," - "$mod, F, fullscreen," - "$mod, V, togglefloating," - "$mod, P, pseudo," - - "$mod, H, movefocus, l" - "$mod, L, movefocus, r" - "$mod, K, movefocus, u" - "$mod, J, movefocus, d" - - "$mod SHIFT, H, movewindow, l" - "$mod SHIFT, L, movewindow, r" - "$mod SHIFT, K, movewindow, u" - "$mod SHIFT, J, movewindow, d" - - "$mod SUPER, H, resizeactive, -10 0" - "$mod SUPER, L, resizeactive, 10 0" - "$mod SUPER, K, resizeactive, 0 -10" - "$mod SUPER, J, resizeactive, 0 10" - -# "$mod, E, togglegroup" -# "$mod SHIFT, E, lockactivegroup, toggle" -# "$mod, TAB, changegroupactive, f" -# "$mod SHIFT, TAB, changegroupactive, b" -# "$mod CTRL, L, moveoutofgroup, r" -# "$mod CTRL, H, moveoutofgroup, l" - - ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+" - ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-" - "$mod, Next, exec, playerctl next" - "$mod, Prior, exec, playerctl previous" - - # --- Workspace bindings (1–5) --- - "$mod, 1, workspace, 1" - "$mod, 2, workspace, 2" - "$mod, 3, workspace, 3" - "$mod, 4, workspace, 4" - "$mod, 5, workspace, 5" - - "$mod SHIFT, 1, movetoworkspacesilent, 1" - "$mod SHIFT, 2, movetoworkspacesilent, 2" - "$mod SHIFT, 3, movetoworkspacesilent, 3" - "$mod SHIFT, 4, movetoworkspacesilent, 4" - "$mod SHIFT, 5, movetoworkspacesilent, 5" - ]; - }; -} diff --git a/home/wayland/hyprland/hyprland.nix b/home/wayland/hyprland/hyprland.nix deleted file mode 100644 index 531ea62..0000000 --- a/home/wayland/hyprland/hyprland.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ ... }: -{ - imports = [ - ./binds.nix - ]; - - wayland.windowManager.hyprland = { - enable = true; - settings = { - - general = { - gaps_in = 6; - gaps_out = 16; - border_size = 2; - }; - - decoration = { - rounding = 12; - }; - - "$mod" = "ALT"; - monitor = [ - "DP-1,2560x1440@240,0x0,1,vrr,0" - ]; - workspace = [ - "1,monitor:DP-1,default:true" - "2,monitor:DP-1" - "3,monitor:DP-1" - "4,monitor:DP-1" - "5,monitor:DP-1" - ]; - - input = { - kb_layout = "pl"; - - accel_profile = "flat"; - sensitivity = -0.6; - repeat_rate = 45; - repeat_delay = 500; - }; - - animations = { - enabled = false; - }; - }; - }; -} diff --git a/home/wayland/niri/binds.nix b/home/wayland/niri/binds.nix deleted file mode 100644 index 53d2d4e..0000000 --- a/home/wayland/niri/binds.nix +++ /dev/null @@ -1,109 +0,0 @@ -{ config, pkgs, ... }: -{ - programs.niri.settings.binds = with config.lib.niri.actions; - let - set-volume = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@"; - playerctl = spawn "${pkgs.playerctl}/bin/playerctl"; - in - { - # Overview / help - "Mod+O" = { - action = toggle-overview; - repeat = false; - }; - "Mod+Slash".action = show-hotkey-overlay; - - # Audio - # XF86AudioRaiseVolume.action = set-volume "2%+"; - # XF86AudioLowerVolume.action = set-volume "2%-"; - XF86AudioRaiseVolume.action = playerctl "volume" "0.02+"; - XF86AudioLowerVolume.action = playerctl "volume" "0.02-"; - XF86AudioMute.action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; - XF86AudioMicMute.action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; - - # Media keys - XF86AudioPlay.action = playerctl "play-pause"; - XF86AudioPrev.action = playerctl "previous"; - XF86AudioNext.action = playerctl "next"; - - # Column sizing - "Mod+Minus".action = set-column-width "-10%"; - "Mod+Equal".action = set-column-width "+10%"; - - # Finer height adjustments when in column with other windows. - "Mod+Shift+Minus".action = set-window-height "-10%"; - "Mod+Shift+Equal".action = set-window-height "+10%"; - - # Misc - "Mod+Shift+V".action = toggle-window-floating; - "Mod+Shift+P".action = power-off-monitors; - "Mod+W".action = toggle-column-tabbed-display; - - # Screenshot (selection -> copy + save) - "Mod+S".action = spawn "sh" "-c" - '' - filename="/media/pics/ss/$(date +%Y-%m-%d_%H-%M-%S).png" - grim -g "$(slurp)" - | tee "$filename" | wl-copy - ''; - - # Screenshot (selection -> save -> edit with satty -> copy edited) - "Mod+Shift+S".action = spawn "sh" "-c" - '' - filename="/media/pics/ss/$(date +%Y-%m-%d_%H-%M-%S).png" - grim -g "$(slurp)" "$filename" - - edited="/media/pics/ss/$(date +%Y-%m-%d_%H-%M-%S)-edited.png" - satty --filename "$filename" --output-filename "$edited" - ''; - - "Mod+Shift+D".action = spawn "sh" "-c" - '' - cliphist list | fuzzel --dmenu | cliphist decode | wl-copy - ''; - - # --- System / General --- - "Mod+Return".action = spawn "foot"; - "Mod+D".action = spawn "fuzzel"; - "Mod+BracketLeft".action = consume-or-expel-window-left; - "Mod+BracketRight".action = consume-or-expel-window-right; - - "Mod+R".action = switch-preset-column-width; - "Mod+Shift+R".action = reset-window-height; - "Mod+F".action = maximize-column; - "Mod+Shift+F".action = fullscreen-window; - - "Mod+Comma".action = consume-window-into-column; - "Mod+Period".action = expel-window-from-column; - - "Mod+Shift+E".action = quit; - - # --- Window Navigation (Focus) --- - "Mod+H".action = focus-column-left; - "Mod+L".action = focus-column-right; - "Mod+J".action = focus-workspace-down; - "Mod+K".action = focus-workspace-up; - - # --- Window Management (Move) --- - "Mod+Shift+H".action = move-column-left; - "Mod+Shift+L".action = move-column-right; - "Mod+Shift+J".action = move-window-down-or-to-workspace-down; - "Mod+Shift+K".action = move-window-up-or-to-workspace-up; - - # --- Window State --- - "Mod+Shift+Q".action = close-window; - - "Mod+1".action = focus-workspace 1; - "Mod+2".action = focus-workspace 2; - "Mod+3".action = focus-workspace 3; - "Mod+4".action = focus-workspace 4; - "Mod+5".action = focus-workspace 5; - "Mod+6".action = focus-workspace 6; - - "Mod+Shift+1".action.move-column-to-workspace = [ 1 ]; - "Mod+Shift+2".action.move-column-to-workspace = [ 2 ]; - "Mod+Shift+3".action.move-column-to-workspace = [ 3 ]; - "Mod+Shift+4".action.move-column-to-workspace = [ 4 ]; - "Mod+Shift+5".action.move-column-to-workspace = [ 5 ]; - "Mod+Shift+6".action.move-column-to-workspace = [ 6 ]; - }; -} diff --git a/home/wayland/niri/niri.nix b/home/wayland/niri/niri.nix deleted file mode 100644 index 341866a..0000000 --- a/home/wayland/niri/niri.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ lib, pkgs, ... }: -{ - imports = [ - ./binds.nix - ]; - programs.niri.settings = { - prefer-no-csd = true; - hotkey-overlay.skip-at-startup = true; - input = { - mouse = { - accel-profile = "flat"; - accel-speed = -0.6; - middle-emulation = true; - scroll-factor = 1.5; - }; - focus-follows-mouse = { - enable = true; - max-scroll-amount = "10%"; - }; - mod-key = "Alt"; - keyboard = { - xkb.layout = "pl"; - repeat-delay = 400; - repeat-rate = 60; - }; - power-key-handling.enable = false; - }; - outputs = { - "DP-1" = { - focus-at-startup = true; - # backdrop-color = ""; - variable-refresh-rate = "on-demand"; - mode = { - width = 2560; - height = 1440; - refresh = 239.998; - }; - }; - }; - cursor = { - hide-when-typing = true; - size = 8; - # theme = ""; - }; - layout = { - border = { - width = 2; - # active = ; - }; - focus-ring = { - width = 2; - # active = ; - }; - preset-column-widths = [ - { proportion = 1. / 3.; } - { proportion = 1. / 2.; } - { proportion = 2. / 3.; } - ]; - preset-window-heights = [ - { proportion = 1. / 3.; } - { proportion = 1. / 2.; } - { proportion = 2. / 3.; } - ]; - default-column-width.proportion = 0.5; - tab-indicator = { - gaps-between-tabs = 3; - position = "top"; - }; - }; - spawn-at-startup = [ - { command = [ "${lib.getExe pkgs.xwayland-satellite}" ]; } - { command = [ "awww-daemon" ]; } - # { command = [ "noctalia-shell" ]; } - { command = [ "wl-paste --watch cliphist store" ]; } - ]; - }; -} diff --git a/home/wayland/noctalia.nix b/home/wayland/noctalia.nix deleted file mode 100644 index e0b402d..0000000 --- a/home/wayland/noctalia.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ inputs, ... }: -{ - imports = [ inputs.noctalia.homeModules.default ]; - - programs.noctalia-shell = { - enable = true; - }; -} diff --git a/home/wayland/waybar.nix b/home/wayland/waybar.nix deleted file mode 100644 index 17a2f46..0000000 --- a/home/wayland/waybar.nix +++ /dev/null @@ -1,151 +0,0 @@ -{ lib, pkgs, ... }: -{ - programs.waybar = { - enable = true; - # settings = [ - # { - # layer = "top"; - # position = "top"; - # - # modules-center = [ "niri/workspaces" ]; - # modules-right = [ - # "idle_inhibitor" - # "pulseaudio" - # "disk" - # "battery" - # "custom/notification" - # "tray" - # "clock" - # ]; - # - # "niri/workspaces" = { - # format = "{icon} {value}"; - # format-icons = { - # active = ""; - # default = ""; - # }; - # }; - # - # "niri/window" = { - # icon = true; - # }; - # - # "pulseaudio" = { - # format = "{icon}"; - # format-bluetooth = "{icon} "; - # format-muted = "󰝟"; - # format-icons = { - # headphone = ""; - # default = [ - # "" - # "" - # ]; - # }; - # scroll-step = 1; - # on-click = "${lib.getExe pkgs.pwvucontrol}"; - # }; - # - # clock = { - # format = "{:%H:%M}  "; - # format-alt = "{:%A; %B %d, %Y (%R)}  "; - # tooltip-format = "{calendar}"; - # calendar = { - # mode = "year"; - # mode-mon-col = 3; - # weeks-pos = "right"; - # on-scroll = 1; - # on-click-right = "mode"; - # format = { - # months = "{}"; - # days = "{}"; - # weeks = "W{}"; - # weekdays = "{}"; - # today = "{}"; - # }; - # }; - # actions = { - # on-click-right = "mode"; - # on-click-forward = "tz_up"; - # on-click-backward = "tz_down"; - # on-scroll-up = "shift_up"; - # on-scroll-down = "shift_down"; - # }; - # }; - # - # battery = { - # format = "{icon}"; - # - # format-icons = [ - # "󰁺" - # "󰁻" - # "󰁼" - # "󰁽" - # "󰁾" - # "󰁿" - # "󰂀" - # "󰂁" - # "󰂂" - # "󰁹" - # ]; - # states = { - # battery-10 = 10; - # battery-20 = 20; - # battery-30 = 30; - # battery-40 = 40; - # battery-50 = 50; - # battery-60 = 60; - # battery-70 = 70; - # battery-80 = 80; - # battery-90 = 90; - # battery-100 = 100; - # }; - # - # format-plugged = "󰚥"; - # format-charging-battery-10 = "󰢜"; - # format-charging-battery-20 = "󰂆"; - # format-charging-battery-30 = "󰂇"; - # format-charging-battery-40 = "󰂈"; - # format-charging-battery-50 = "󰢝"; - # format-charging-battery-60 = "󰂉"; - # format-charging-battery-70 = "󰢞"; - # format-charging-battery-80 = "󰂊"; - # format-charging-battery-90 = "󰂋"; - # format-charging-battery-100 = "󰂅"; - # tooltip-format = "{capacity}% {timeTo}"; - # }; - # - # "custom/notification" = { - # format = "{icon} {} "; - # tooltip-format = "Left: Open Notification Center\nRight: Toggle Do not Disturb\nMiddle: Clear Notifications"; - # format-icons = { - # notification = ""; - # none = ""; - # dnd-notification = ""; - # dnd-none = ""; - # inhibited-notification = ""; - # inhibited-none = ""; - # dnd-inhibited-notification = ""; - # dnd-inhibited-none = ""; - # }; - # return-type = "json"; - # exec-if = "which swaync-client"; - # exec = "swaync-client -swb"; - # on-click = "swaync-client -t -sw"; - # on-click-right = "swaync-client -d -sw"; - # on-click-middle = "swaync-client -C"; - # escape = true; - # }; - # - # tray = { - # icon-size = 21; - # spacing = 10; - # }; - # } - # ]; - # style = '' - # #workspaces button { - # color: @base05; - # } - # ''; - }; -} diff --git a/home/xdg.nix b/home/xdg.nix deleted file mode 100644 index 07b78f1..0000000 --- a/home/xdg.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ ... }: -{ - xdg.userDirs = { - enable = true; - - createDirectories = true; - download = "$HOME/dl"; - documents = "$HOME/docs"; - pictures = "/media/pics"; - videos = "/media/vids"; - - desktop = null; - music = null; - publicShare = null; - templates = null; - - extraConfig = { - XDG_PROJECTS_DIR = "$HOME/proj"; - XDG_GAMES_DIR = "$HOME/games"; - XDG_MEDIA_DIR = "/media"; - XDG_SS_DIR = "/media/pics/ss"; - XDG_CLIPS_DIR = "/media/vids/clips"; - XDG_ARCHIVE_DIR = "/media/archive"; - }; - }; - home.sessionVariables = { - XDG_PROJECTS_DIR = "$HOME/proj"; - XDG_GAMES_DIR = "$HOME/games"; - XDG_MEDIA_DIR = "/media"; - XDG_SS_DIR = "/media/pics/ss"; - XDG_CLIPS_DIR = "/media/vids/clips"; - XDG_ARCHIVE_DIR = "/media/archive"; - }; -} diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix index d4cd0d7..be74098 100644 --- a/hosts/desktop/configuration.nix +++ b/hosts/desktop/configuration.nix @@ -2,37 +2,37 @@ { nixpkgs.config.allowUnfree = true; - imports = - [ + imports = [ ./hardware-configuration.nix - ../../modules/greet.nix - ../../modules/virtualization.nix - ../../modules/boot.nix - ../../modules/audio.nix - ../../modules/networking.nix - # ../../modules/scx.nix - ../../modules/tor.nix - # ../../modules/hyprland.nix - ../../modules/niri.nix - ../../modules/ollama.nix + ../../modules/sys/default.nix inputs.home-manager.nixosModules.home-manager inputs.chaotic.nixosModules.default ]; - home-manager = { - extraSpecialArgs = { inherit inputs; }; - users = { - "adam" = import ../../home/home.nix; + szpont = { + audio.enable = true; + bootloader = "systemd-boot"; + drivers = { + enable = true; + amd.enable = true; + stability = "unstable"; + }; + fonts.enable = true; + greet.enable = true; + home-manager = { + enable = true; + users.adam.path = ./home.nix; }; - backupFileExtension = "bak"; - useGlobalPkgs = true; - useUserPackages = true; + locale.enable = true; + network.enable = true; + security.enable = true; + virtualization.enable = true; + niri.enable = true; }; - services.smartd.enable = true; - - services.spotifyd = { + programs.alvr = { enable = true; + openFirewall = true; }; programs.thunar = { @@ -76,46 +76,16 @@ programs.steam = { protontricks.enable = true; extraCompatPackages = with pkgs; [ - proton-cachyos_nightly_x86_64_v4 - proton-cachyos_x86_64_v4 proton-ge-custom ]; }; - services.flatpak.enable = true; - -hardware.cpu.amd.updateMicrocode = true; - -services.xserver.videoDrivers = [ "amdgpu" ]; -hardware.sensor.iio.enable = true; -services.lact.enable = true; - - nix.settings = { - trusted-users = [ "root" "adam" ]; - experimental-features = [ "nix-command" "flakes" ]; - }; - - hardware = { - enableRedistributableFirmware = true; - graphics = { - enable = true; - enable32Bit = true; - }; - amdgpu = { - initrd.enable = true; - overdrive.enable = true; - }; - }; - -chaotic = { - mesa-git = { + programs.gamemode = { enable = true; - fallbackSpecialisation = false; - extraPackages = with pkgs; [ - mesa_git.opencl - ]; + enableRenice = true; }; -}; + + services.flatpak.enable = true; services.dbus.enable = true; @@ -126,29 +96,6 @@ chaotic = { ]; }; - time.timeZone = "Europe/Warsaw"; - - i18n.defaultLocale = "en_US.UTF-8"; - i18n.extraLocaleSettings = { - LC_TIME = "pl_PL.UTF-8"; - LC_NUMERIC = "pl_PL.UTF-8"; - LC_MONETARY = "pl_PL.UTF-8"; - LC_PAPER = "pl_PL.UTF-8"; - LC_MEASUREMENT = "pl_PL.UTF-8"; - LC_COLLATE = "pl_PL.UTF-8"; - LC_NAME = "pl_PL.UTF-8"; - LC_ADDRESS = "pl_PL.UTF-8"; - LC_TELEPHONE = "pl_PL.UTF-8"; - LC_IDENTIFICATION = "pl_PL.UTF-8"; - }; - - console = { - keyMap = "pl"; - earlySetup = true; - font = "ter-v32n"; - packages = with pkgs; [ terminus_font ]; - }; - environment.sessionVariables = { NIXOS_OZONE_WL = "1"; ELECTRON_ENABLE_WAYLAND = "1"; @@ -158,45 +105,27 @@ environment.sessionVariables = { users.users.adam = { isNormalUser = true; - extraGroups = [ "wheel" "input" "docker" ]; + extraGroups = [ "wheel" "input" ]; home = "/home/adam"; shell = pkgs.fish; }; - programs.nh = { - enable = true; - flake = "/etc/nixos"; - }; - environment.systemPackages = with pkgs; [ pigz + pxz nautilus - gnome-keyring - kdePackages.dolphin swaylock-effects swayidle helvum fuzzel wineWowPackages.waylandFull - # wineWowPackages.unstableFull winetricks - tuigreet linux-firmware mangohud cliphist wl-clipboard - nix-output-monitor - nvd rivalcfg - lutris - easyeffects ]; - fonts.packages = with pkgs; [ - nerd-fonts.jetbrains-mono - nerd-fonts.fira-mono - nerd-fonts.fira-code -]; - system.stateVersion = "25.05"; } diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix new file mode 100644 index 0000000..71580b7 --- /dev/null +++ b/hosts/desktop/home.nix @@ -0,0 +1,65 @@ +{ pkgs, inputs, ... }: +{ + imports = [ + ../../modules/hm/default.nix +]; + + home.username = "adam"; + home.homeDirectory = "/home/adam"; + home.stateVersion = "25.05"; + + home.packages = with pkgs; [ + librewolf + gavin-bc + qalculate-gtk + onlyoffice-desktopeditors + file + heroic + protonvpn-gui + evolution + imagemagick + kdePackages.kdenlive + syncplay + bottles + ncdu + prismlauncher + inputs.awww.packages.${pkgs.stdenv.hostPlatform.system}.awww + grim + slurp + satty + veracrypt + brave + qbittorrent-enhanced + foot + bitwarden-desktop + yt-dlp_git + ffmpeg + mpv + gimp + thunderbird + obsidian + ]; + + services.easyeffects.enable = true; + + services.cliphist = { + enable = true; + systemdTargets = [ "graphical-session.target" ]; + }; + + gtk = { + enable = true; + colorScheme = "dark"; + theme = { + name = "Adwaita-dark"; + package = pkgs.gnome-themes-extra; + }; + }; + + qt = { + enable = true; + style.name = "adwaita-dark"; + style.package = pkgs.adwaita-qt; + platformTheme.name = "kde"; + }; +} diff --git a/modules/audio.nix b/modules/audio.nix deleted file mode 100644 index 05bc8a0..0000000 --- a/modules/audio.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ ... }: -{ - services = { - pipewire = { - enable = true; - audio.enable = true; - pulse.enable = true; - alsa.enable = true; - alsa.support32Bit = true; - jack.enable = true; - wireplumber.enable = true; - }; - playerctld = { - enable = true; - }; - }; - - hardware.enableAllFirmware = true; - security.rtkit.enable = true; -} diff --git a/modules/boot.nix b/modules/boot.nix deleted file mode 100644 index 9a90734..0000000 --- a/modules/boot.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ pkgs, ... }: -{ - boot = { - loader = { - efi.canTouchEfiVariables = true; - systemd-boot = { - enable = true; - editor = false; - configurationLimit = null; - }; - timeout = 0; - }; - - supportedFilesystems = [ "ntfs" ]; - initrd.kernelModules = [ "amdgpu" "kvm-amd" ]; - kernelParams = [ - "video=DP-1:2560x1440@240" - "quiet" - ]; - kernelPackages = pkgs.linuxPackages_cachyos-lto-znver4; - # kernelPackages = pkgs.linuxPackages_latest; - }; -} diff --git a/modules/greet.nix b/modules/greet.nix deleted file mode 100644 index 13877c5..0000000 --- a/modules/greet.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ pkgs, config, ... }: - -let - xsessions = "${config.services.displayManager.sessionData.desktops}/share/xsessions"; - waylandSessions = "${config.services.displayManager.sessionData.desktops}/share/wayland-sessions"; -in { - services.greetd = { - enable = true; - settings = { - default_session = { - command = "${pkgs.tuigreet}/bin/tuigreet --sessions ${xsessions}:${waylandSessions} --remember --remember-user-session --asterisks --greeting 'Welcome to NixOS!' --time"; - user = "greeter"; - }; - }; - }; -} diff --git a/modules/hm/default.nix b/modules/hm/default.nix new file mode 100644 index 0000000..d388717 --- /dev/null +++ b/modules/hm/default.nix @@ -0,0 +1,12 @@ +{ ... }: +{ + imports = [ + ./editors/default.nix + ./programs/default.nix + ./terminal/default.nix + ./wayland/default.nix + + ./git.nix + ./xdg.nix + ]; +} diff --git a/modules/hm/editors/default.nix b/modules/hm/editors/default.nix new file mode 100644 index 0000000..e990897 --- /dev/null +++ b/modules/hm/editors/default.nix @@ -0,0 +1,8 @@ +{ ... }: +{ + imports = [ + ./nixvim.nix + # ./helix.nix + # ./nvf.nix + ]; +} diff --git a/modules/hm/editors/helix.nix b/modules/hm/editors/helix.nix new file mode 100644 index 0000000..0204f8d --- /dev/null +++ b/modules/hm/editors/helix.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: +{ + programs.helix = { + enable = true; +# package = pkgs.helix; + }; +} diff --git a/modules/hm/editors/nixvim.nix b/modules/hm/editors/nixvim.nix new file mode 100644 index 0000000..b8a4e5a --- /dev/null +++ b/modules/hm/editors/nixvim.nix @@ -0,0 +1,98 @@ +{ pkgs, inputs, ... }: +{ + imports = [ inputs.nixvim.homeModules.nixvim ]; + programs.nixvim = { + enable = true; + package = inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default; + + viAlias = true; + vimAlias = true; + defaultEditor = true; + waylandSupport = true; + colorschemes.gruvbox.enable = true; + + plugins = { + lualine.enable = true; + oil.enable = true; + lazygit.enable = true; + persistence.enable = true; + nvim-autopairs.enable = true; + neoscroll.enable = true; + bufferline.enable = true; + web-devicons.enable = true; + + treesitter = { + enable = true; + settings = { + indent.enable = true; + }; + }; + + telescope = { + enable = true; + extensions = { + fzf-native = { + enable = true; + }; + }; + }; + + notify = { + enable = true; + settings = { + backgroundColour = "#1e1e2e"; + fps = 60; + render = "default"; + timeout = 500; + topDown = true; + }; + }; + + hardtime = { + # enable = true; + settings = { + # disableMouse = true; + # enabled = false; + restrictionMode = "hint"; + hint = true; + maxCount = 40; + maxTime = 1000; + }; + }; + + nix.enable = true; + lsp = { + enable = true; + servers = { + nil_ls.enable = true; + clangd.enable = true; + }; + }; + }; + + opts = { + number = true; + relativenumber = true; + termguicolors = true; + # mouse = "a"; + ignorecase = true; + smartcase = true; + expandtab = true; + shiftwidth = 2; + encoding = "utf-8"; + fileencoding = "utf-8"; + undofile = true; + swapfile = true; + backup = false; + autoread = true; + cursorline = true; + ruler = true; + gdefault = true; + scrolloff = 5; + clipboard = { + providers.wl-copy.enable = true; + register = "unnamedplus"; + }; + }; + }; +} diff --git a/modules/hm/editors/nvf.nix b/modules/hm/editors/nvf.nix new file mode 100644 index 0000000..ab805ca --- /dev/null +++ b/modules/hm/editors/nvf.nix @@ -0,0 +1,42 @@ +{ pkgs, neovim-nightly-overlay, ... }: + +{ + programs.nvf = { + enable = true; + + settings.vim = { + package = neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default; + + viAlias = true; + vimAlias = true; + + theme = { + enable = true; + name = "gruvbox"; + style = "dark"; + }; + + statusline = { + lualine = { + enable = true; + theme = "gruvbox-material"; + }; + }; + + autopairs.nvim-autopairs.enable = true; + + lsp.enable = true; + + languages = { + nix = { + enable = true; + format = { + enable = true; + type = "alejandra"; + }; + }; + clang.enable = true; + }; + }; + }; +} diff --git a/modules/hm/git.nix b/modules/hm/git.nix new file mode 100644 index 0000000..dc11881 --- /dev/null +++ b/modules/hm/git.nix @@ -0,0 +1,11 @@ +{ ... }: +{ + programs.git = { + enable = true; + settings = { + user.name = "adikro"; + user.email = "adikro@disroot.org"; + init.defaultBranch = "main"; + }; + }; +} diff --git a/modules/hm/programs/default.nix b/modules/hm/programs/default.nix new file mode 100644 index 0000000..df6fb8b --- /dev/null +++ b/modules/hm/programs/default.nix @@ -0,0 +1,9 @@ +{ ... }: +{ + imports = [ + ./nixcord.nix + ./satty.nix + ./spicetify.nix + ./yazi.nix + ]; +} diff --git a/modules/hm/programs/nixcord.nix b/modules/hm/programs/nixcord.nix new file mode 100644 index 0000000..d7978af --- /dev/null +++ b/modules/hm/programs/nixcord.nix @@ -0,0 +1,204 @@ +{ inputs, pkgs, ... }: +{ + imports = [ inputs.nixcord.homeModules.nixcord ]; + programs.nixcord = { + enable = true; + package = pkgs.discord-krisp; + discord = { + enable = true; + vencord.enable = false; + equicord.enable = true; + }; + config = { + frameless = true; + plugins = { + alwaysExpandRoles = { + enable = true; + hideArrow = true; + }; + alwaysTrust = { + enable = true; + domain = false; + }; + anammox.enable = true; + betterAudioPlayer.enable = true; + betterGifAltText.enable = true; + betterGifPicker.enable = true; + betterInvites.enable = true; + betterNotesBox = { + enable = true; + hide = true; + }; + betterQuickReact = { + enable = true; + columns = 6.0; + rows = 1.0; + compactMode = true; + }; + betterRoleContext.enable = true; + betterUploadButton.enable = true; + biggerStreamPreview.enable = true; + callTimer.enable = true; + characterCounter = { + enable = true; + colorEffects = false; + }; + cleanChannelName.enable = true; + clearUrLs.enable = true; + copyFileContents.enable = true; + copyStickerLinks.enable = true; + crashHandler.enable = true; + customTimestamps.enable = true; + disableCallIdle.enable = true; + disableDeepLinks.enable = true; + # dontFilterMe.enable = true; + dontRoundMyTimestamps.enable = true; + equicordHelper = { + enable = true; + noMirroredCamera = true; + }; + # equicordToolbox.enable = true; + expressionCloner.enable = true; + fakeNitro = { + enable = true; + enableEmojiBypass = false; + enableStickerBypass = false; + }; + favoriteEmojiFirst.enable = true; + fixCodeblockGap.enable = true; + fixFileExtensions.enable = true; + fixImagesQuality.enable = true; + fixSpotifyEmbeds.enable = true; + fixYoutubeEmbeds.enable = true; + forceOwnerCrown.enable = true; + friendsSince.enable = true; + fullSearchContext.enable = true; + fullUserInChatbox.enable = true; + gifCollections = { + enable = true; + preventDuplicates = true; + showCopyImageLink = true; + }; + gifRoulette = { + enable = true; + pingOwnerChance = true; + }; + guildTagSettings.enable = true; + homeTyping.enable = true; + ignoreTerms.enable = true; + iLoveSpam.enable = true; + imageFilename.enable = true; + imageLink.enable = true; + imageZoom = { + enable = true; + nearestNeighbour = true; + saveZoomValues = true; + square = true; + }; + imgToGif.enable = true; + inRole.enable = true; + inviteDefaults.enable = true; + # keyboardNavigation = { + # enable = true; + # hotkey = [ "Alt+Q" ]; + # }; + memberCount.enable = true; + mentionAvatars = { + enable = true; + showAtSymbol = true; + }; + messageLinkEmbeds.enable = true; + messageLogger = { + enable = true; + ignoreSelf = true; + }; + # messageLoggerEnhanced.enable = true; + moyai.enable = true; + musicControls.enable = true; + neverPausePreviews.enable = true; + newGuildSettings = { + enable = true; + messages = 1; + }; + newPluginsManager.enable = true; + noF1.enable = true; + noMaskedUrlPaste.enable = true; + noModalAnimation.enable = true; + noNitroUpsell.enable = true; + # noOnboarding.enable = true; + noOnboardingDelay.enable = true; + noMosaic.enable = true; + noProfileThemes.enable = true; + noSystemBadge.enable = true; + noTypingAnimation.enable = true; + overrideForumDefaults = { + enable = true; + defaultLayout = 2; + }; + onePingPerDm.enable = true; + openInApp.enable = true; + pauseInvitesForever.enable = true; + permissionFreeWill = { + enable = true; + lockout = false; + }; + permissionsViewer.enable = true; + pinDMs = { + enable = true; + canCollapseDmSection = true; + }; + pinIcon.enable = true; + platformIndicators.enable = true; + quoter.enable = true; + relationshipNotifier.enable = true; + roleColorEverywhere.enable = true; + saveFavoriteGiFs.enable = true; + sendTimestamps.enable = true; + serverInfo.enable = true; + showConnections.enable = true; + showHiddenChannels = { + enable = true; + # channelStyle = 2; + }; + showHiddenThings.enable = true; + showResourceChannels.enable = true; + showTimeoutDuration.enable = true; + # soggy = { + # enable = true; + # imageLink = "https://codeberg.org/adikro/wallpapers/raw/branch/main/kirkinator.gif"; + # songLink = "https://video.twimg.com/amplify_video/1976076971651268608/vid/avc1/1080x720/KGLQcBQQDvLZUGKI.mp4"; + # }; + spotifyCrack = { + enable = true; + noSpotifyAutoPause = false; + }; + streamerModeOnStream.enable = true; + typingIndicator = { + enable = true; + indicatorMode = 2; + }; + typingTweaks.enable = true; + unindent.enable = true; + universalMention = { + enable = true; + globalMention = true; + }; + unlimitedAccounts.enable = true; + unlockedAvatarZoom.enable = true; + userVoiceShow.enable = true; + validReply.enable = true; + validUser.enable = true; + viewIcons = { + enable = true; + format = "png"; + }; + voiceMessages.enable = true; + volumeBooster.enable = true; + whoReacted.enable = true; + whosWatching.enable = true; + youtubeAdblock.enable = true; + youtubeDescription.enable = true; + }; + }; + }; +} diff --git a/modules/hm/programs/satty.nix b/modules/hm/programs/satty.nix new file mode 100644 index 0000000..facb35d --- /dev/null +++ b/modules/hm/programs/satty.nix @@ -0,0 +1,4 @@ +{ ... }: +{ + +} diff --git a/modules/hm/programs/spicetify.nix b/modules/hm/programs/spicetify.nix new file mode 100644 index 0000000..9d66181 --- /dev/null +++ b/modules/hm/programs/spicetify.nix @@ -0,0 +1,21 @@ +{ pkgs, inputs, ... }: + +let + spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.hostPlatform.system}; +in { + imports = [ + inputs.spicetify-nix.homeManagerModules.spicetify + ]; + + programs.spicetify = { + enable = true; + + enabledExtensions = with spicePkgs.extensions; [ + adblockify + hidePodcasts + ]; + + theme = spicePkgs.themes.catppuccin; + colorScheme = "mocha"; + }; +} diff --git a/modules/hm/programs/yazi.nix b/modules/hm/programs/yazi.nix new file mode 100644 index 0000000..a8e2911 --- /dev/null +++ b/modules/hm/programs/yazi.nix @@ -0,0 +1,7 @@ +{ inputs, ... }: +{ +# nixpkgs.overlays = [ inputs.yazi.overlays.default ]; + programs.yazi = { + enable = true; + }; +} diff --git a/modules/hm/terminal/btop.nix b/modules/hm/terminal/btop.nix new file mode 100644 index 0000000..dcd59ed --- /dev/null +++ b/modules/hm/terminal/btop.nix @@ -0,0 +1,6 @@ +{ ... }: +{ + programs.btop = { + enable = true; + }; +} diff --git a/modules/hm/terminal/default.nix b/modules/hm/terminal/default.nix new file mode 100644 index 0000000..635f75e --- /dev/null +++ b/modules/hm/terminal/default.nix @@ -0,0 +1,10 @@ +{ ... }: +{ + imports = [ + ./btop.nix + ./fish.nix + ./foot.nix + ./starship.nix + ./utils.nix + ]; +} diff --git a/modules/hm/terminal/fish.nix b/modules/hm/terminal/fish.nix new file mode 100644 index 0000000..ec75de8 --- /dev/null +++ b/modules/hm/terminal/fish.nix @@ -0,0 +1,62 @@ +{ pkgs, ... }: +{ + programs.fish = { + enable = true; + + interactiveShellInit = '' + set fish_greeting + fastfetch + ''; + + shellAliases = { + nos = "nh os switch"; + nob = "nh os boot"; + nfu = "nix flake update"; + ll = "ls -lah"; + la = "ls -A"; + md = "mkdir -p"; + rmf = "rm -rf"; + gl = "git log --oneline --graph --decorate"; + untar = "tar -xzvf"; + tarc = "tar -czvf"; + ff = "fastfetch"; + cat = "bat"; + ls = "eza"; + }; + + plugins = [ + { + name = "transient-fish"; + src = pkgs.fishPlugins.transient-fish.src; + } + { + name = "fishbang"; + src = pkgs.fishPlugins.fishbang.src; + } + { + name = "puffer"; + src = pkgs.fishPlugins.puffer.src; + } + { + name = "pisces"; + src = pkgs.fishPlugins.pisces.src; + } + { + name = "fzf-fish"; + src = pkgs.fishPlugins.fzf-fish.src; + } + { + name = "fish-you-should-use"; + src = pkgs.fishPlugins.fish-you-should-use.src; + } + { + name = "colored-man-pages"; + src = pkgs.fishPlugins.colored-man-pages.src; + } + { + name = "fifc"; + src = pkgs.fishPlugins.fifc.src; + } + ]; + }; +} diff --git a/modules/hm/terminal/foot.nix b/modules/hm/terminal/foot.nix new file mode 100644 index 0000000..5c3098b --- /dev/null +++ b/modules/hm/terminal/foot.nix @@ -0,0 +1,25 @@ +{pkgs, ...}: +let + footTheme = pkgs.fetchurl { + url = "https://codeberg.org/dnkl/foot/raw/branch/master/themes/gruvbox-dark"; + sha256 = "sha256-ubvnLgDEPGvNrwQdZRNguftg2SF5qcO1iVK0Tb5ZveI="; + }; +in +{ + programs.foot = { + enable = true; + settings = { + main = { + font="JetBrainsMonoNFM-Regular:size=14"; +# font-bold = "${font}:style=Bold:${withSize}"; +# font-italic = "${fontItalic}:style=Italic:${withSize}"; +# font-bold-italic = "${fontItalic}:style=BoldItalic:${withSize}"; + box-drawings-uses-font-glyphs = true; + include = "${footTheme}"; +}; + scrollback = { + lines = 10000; + }; + }; + }; + } diff --git a/modules/hm/terminal/starship.nix b/modules/hm/terminal/starship.nix new file mode 100644 index 0000000..82ab84e --- /dev/null +++ b/modules/hm/terminal/starship.nix @@ -0,0 +1,111 @@ +{ ... }: +{ + programs.starship = { + enable = true; + settings = { + add_newline = true; + aws.disabled = true; + battery.disabled = true; + buf.disabled = true; + bun.disabled = true; + c.format = "[$symbol ]($style)"; + cpp = { + disabled = false; + format = "[$symbol ]($style)"; + }; + cmake.disabled = true; + cobol.disabled = true; + # cmd_duration = { + # min_time = 3; + # show_notifications = true; + # min_time_to_notify = 30; + # }; + conda.disabled = true; + container.disabled = true; + crystal.disabled = true; + daml.disabled = true; + dart.disabled = true; + deno.disabled = true; + directory = { + truncate_to_repo = false; + read_only = ""; + }; + docker_context = { + format = "[$symbol ]($style)"; + symbol = ""; + }; + dotnet.disabled = true; + elixir.disabled = true; + elm.disabled = true; + erlang.disabled = true; + fennel.disabled = true; + fortran.disabled = true; + gcloud.disabled = true; + git_commit.tag_symbol = ""; + git_status = { + conflicted = "󰦎"; + ahead = ""; + behind = ""; + diverged = ""; + renamed = ""; + deleted = "x"; + }; + gleam.disabled = true; + golang.disabled = true; + guix_shell.disabled = true; + gradle.disabled = true; + haskell.disabled = true; + haxe.disabled = true; + helm.disabled = true; + hostname.format = "[$hostname ]($style) "; + java.disabled = true; + jobs.symbol = "󰓎"; + julia.disabled = true; + kotlin.disabled = true; + lua.disabled = true; + meson.disabled = true; + mojo.disabled = true; + nats.disabled = true; + netns.disabled = true; + nim.disabled = true; + nix_shell.format = "[$symbol$state ]($style)"; + nodejs.disabled = true; + ocaml.disabled = true; + odin.disabled = true; + opa.disabled = true; + openstack.disabled = true; + package.disabled = true; + perl.disabled = true; + php.disabled = true; + pixi.disabled = true; + pulumi.disabled = true; + purescript.disabled = true; + python = { + symbol = ""; + format = "[$symbol ]($style)"; + }; + quarto.disabled = true; + rlang.disabled = true; + raku.disabled = true; + red.disabled = true; + ruby.disabled = true; + rust.symbol = ""; + scala.disabled = true; + singularity.disabled = true; + solidity.disabled = true; + spack.disabled = true; + # sudo = { + # format = "[sudo ]($style)"; + # disabled = false; + # }; + swift.disabled = true; + terraform.disabled = true; + typst.disabled = true; + vagrant.disabled = true; + vlang.disabled = true; + vcsh.disabled = true; + xmake.disabled = true; + zig.disabled = true; + }; + }; +} diff --git a/modules/hm/terminal/utils.nix b/modules/hm/terminal/utils.nix new file mode 100644 index 0000000..c408e4a --- /dev/null +++ b/modules/hm/terminal/utils.nix @@ -0,0 +1,26 @@ +{ pkgs, ... }: +{ + programs.zoxide = { + enable = true; + options = [ + "--cmd cd" + ]; + }; + programs.bat = { + enable = true; + config = { + theme = "gruvbox-dark"; + tabs = "2"; + }; + }; + home.packages = with pkgs; [ + fzf + fd + chafa + hexyl + eza + ripgrep + procs + fastfetch + ]; +} diff --git a/modules/hm/wayland/default.nix b/modules/hm/wayland/default.nix new file mode 100644 index 0000000..a42476b --- /dev/null +++ b/modules/hm/wayland/default.nix @@ -0,0 +1,8 @@ +{ ... }: +{ + imports = [ + ./niri/default.nix + + ./waybar.nix + ]; +} diff --git a/modules/hm/wayland/niri/binds.nix b/modules/hm/wayland/niri/binds.nix new file mode 100644 index 0000000..1ff3a38 --- /dev/null +++ b/modules/hm/wayland/niri/binds.nix @@ -0,0 +1,108 @@ +{ config, pkgs, ... }: +{ + programs.niri.settings.binds = with config.lib.niri.actions; + let + set-volume = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@"; + playerctl = spawn "${pkgs.playerctl}/bin/playerctl"; + in + { + # Overview / help + "Mod+O" = { + action = toggle-overview; + repeat = false; + }; + "Mod+Slash".action = show-hotkey-overlay; + + # Audio + # XF86AudioRaiseVolume.action = set-volume "2%+"; + # XF86AudioLowerVolume.action = set-volume "2%-"; + XF86AudioRaiseVolume.action = playerctl "volume" "0.02+"; + XF86AudioLowerVolume.action = playerctl "volume" "0.02-"; + XF86AudioMute.action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; + XF86AudioMicMute.action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; + + # Media keys + XF86AudioPlay.action = playerctl "play-pause"; + XF86AudioPrev.action = playerctl "previous"; + XF86AudioNext.action = playerctl "next"; + + # Column sizing + "Mod+Minus".action = set-column-width "-10%"; + "Mod+Equal".action = set-column-width "+10%"; + + # Finer height adjustments when in column with other windows. + "Mod+Shift+Minus".action = set-window-height "-10%"; + "Mod+Shift+Equal".action = set-window-height "+10%"; + + # Misc + "Mod+Shift+V".action = toggle-window-floating; + "Mod+Shift+P".action = power-off-monitors; + "Mod+W".action = toggle-column-tabbed-display; + + "Mod+S".action = spawn "sh" "-c" + '' + filename="/media/pics/ss/$(date +%Y-%m-%d_%H-%M-%S).png" + grim -g "$(slurp)" - | tee "$filename" | wl-copy + ''; + + "Mod+Shift+S".action = spawn "sh" "-c" + '' + filename="/media/pics/ss/$(date +%Y-%m-%d_%H-%M-%S).png" + grim -g "$(slurp)" "$filename" + + edited="/media/pics/ss/$(date +%Y-%m-%d_%H-%M-%S)-edited.png" + satty --filename "$filename" --output-filename "$edited" + ''; + + "Mod+Shift+D".action = spawn "sh" "-c" + '' + cliphist list | fuzzel --dmenu | cliphist decode | wl-copy + ''; + + # --- System / General --- + "Mod+Return".action = spawn "foot"; + "Mod+D".action = spawn "fuzzel"; + "Mod+C".action = spawn "qalculate-gtk"; + "Mod+BracketLeft".action = consume-or-expel-window-left; + "Mod+BracketRight".action = consume-or-expel-window-right; + + "Mod+R".action = switch-preset-column-width; + "Mod+Shift+R".action = reset-window-height; + "Mod+F".action = maximize-column; + "Mod+Shift+F".action = fullscreen-window; + + "Mod+Comma".action = consume-window-into-column; + "Mod+Period".action = expel-window-from-column; + + "Mod+Shift+E".action = quit; + + # --- Window Navigation (Focus) --- + "Mod+H".action = focus-column-left; + "Mod+L".action = focus-column-right; + "Mod+J".action = focus-workspace-down; + "Mod+K".action = focus-workspace-up; + + # --- Window Management (Move) --- + "Mod+Shift+H".action = move-column-left; + "Mod+Shift+L".action = move-column-right; + "Mod+Shift+J".action = move-window-down-or-to-workspace-down; + "Mod+Shift+K".action = move-window-up-or-to-workspace-up; + + # --- Window State --- + "Mod+Shift+Q".action = close-window; + + "Mod+1".action = focus-workspace 1; + "Mod+2".action = focus-workspace 2; + "Mod+3".action = focus-workspace 3; + "Mod+4".action = focus-workspace 4; + "Mod+5".action = focus-workspace 5; + "Mod+6".action = focus-workspace 6; + + "Mod+Shift+1".action.move-column-to-workspace = [ 1 ]; + "Mod+Shift+2".action.move-column-to-workspace = [ 2 ]; + "Mod+Shift+3".action.move-column-to-workspace = [ 3 ]; + "Mod+Shift+4".action.move-column-to-workspace = [ 4 ]; + "Mod+Shift+5".action.move-column-to-workspace = [ 5 ]; + "Mod+Shift+6".action.move-column-to-workspace = [ 6 ]; + }; +} diff --git a/modules/hm/wayland/niri/default.nix b/modules/hm/wayland/niri/default.nix new file mode 100644 index 0000000..61e7799 --- /dev/null +++ b/modules/hm/wayland/niri/default.nix @@ -0,0 +1,7 @@ +{ ... }: +{ + imports = [ + ./niri.nix + ./binds.nix + ]; +} diff --git a/modules/hm/wayland/niri/niri.nix b/modules/hm/wayland/niri/niri.nix new file mode 100644 index 0000000..e6c8619 --- /dev/null +++ b/modules/hm/wayland/niri/niri.nix @@ -0,0 +1,72 @@ +{ lib, pkgs, ... }: +{ + programs.niri.settings = { + prefer-no-csd = true; + hotkey-overlay.skip-at-startup = true; + input = { + mouse = { + accel-profile = "flat"; + accel-speed = -0.6; + middle-emulation = true; + scroll-factor = 1.5; + }; + focus-follows-mouse = { + enable = true; + max-scroll-amount = "10%"; + }; + mod-key = "Alt"; + keyboard = { + xkb.layout = "pl"; + repeat-delay = 400; + repeat-rate = 60; + }; + power-key-handling.enable = false; + }; + outputs = { + "DP-1" = { + focus-at-startup = true; + # backdrop-color = ""; + variable-refresh-rate = "on-demand"; + mode = { + width = 2560; + height = 1440; + refresh = 239.998; + }; + }; + }; + cursor = { + hide-when-typing = true; + size = 8; + # theme = ""; + }; + layout = { + border = { + width = 2; + # active = ; + }; + focus-ring = { + width = 2; + # active = ; + }; + preset-column-widths = [ + { proportion = 1. / 3.; } + { proportion = 1. / 2.; } + { proportion = 2. / 3.; } + ]; + preset-window-heights = [ + { proportion = 1. / 3.; } + { proportion = 1. / 2.; } + { proportion = 2. / 3.; } + ]; + default-column-width.proportion = 0.5; + tab-indicator = { + gaps-between-tabs = 3; + position = "top"; + }; + }; + spawn-at-startup = [ + { command = [ "${lib.getExe pkgs.xwayland-satellite}" ]; } + { command = [ "awww-daemon" ]; } + ]; + }; +} diff --git a/modules/hm/wayland/waybar.nix b/modules/hm/wayland/waybar.nix new file mode 100644 index 0000000..17a2f46 --- /dev/null +++ b/modules/hm/wayland/waybar.nix @@ -0,0 +1,151 @@ +{ lib, pkgs, ... }: +{ + programs.waybar = { + enable = true; + # settings = [ + # { + # layer = "top"; + # position = "top"; + # + # modules-center = [ "niri/workspaces" ]; + # modules-right = [ + # "idle_inhibitor" + # "pulseaudio" + # "disk" + # "battery" + # "custom/notification" + # "tray" + # "clock" + # ]; + # + # "niri/workspaces" = { + # format = "{icon} {value}"; + # format-icons = { + # active = ""; + # default = ""; + # }; + # }; + # + # "niri/window" = { + # icon = true; + # }; + # + # "pulseaudio" = { + # format = "{icon}"; + # format-bluetooth = "{icon} "; + # format-muted = "󰝟"; + # format-icons = { + # headphone = ""; + # default = [ + # "" + # "" + # ]; + # }; + # scroll-step = 1; + # on-click = "${lib.getExe pkgs.pwvucontrol}"; + # }; + # + # clock = { + # format = "{:%H:%M}  "; + # format-alt = "{:%A; %B %d, %Y (%R)}  "; + # tooltip-format = "{calendar}"; + # calendar = { + # mode = "year"; + # mode-mon-col = 3; + # weeks-pos = "right"; + # on-scroll = 1; + # on-click-right = "mode"; + # format = { + # months = "{}"; + # days = "{}"; + # weeks = "W{}"; + # weekdays = "{}"; + # today = "{}"; + # }; + # }; + # actions = { + # on-click-right = "mode"; + # on-click-forward = "tz_up"; + # on-click-backward = "tz_down"; + # on-scroll-up = "shift_up"; + # on-scroll-down = "shift_down"; + # }; + # }; + # + # battery = { + # format = "{icon}"; + # + # format-icons = [ + # "󰁺" + # "󰁻" + # "󰁼" + # "󰁽" + # "󰁾" + # "󰁿" + # "󰂀" + # "󰂁" + # "󰂂" + # "󰁹" + # ]; + # states = { + # battery-10 = 10; + # battery-20 = 20; + # battery-30 = 30; + # battery-40 = 40; + # battery-50 = 50; + # battery-60 = 60; + # battery-70 = 70; + # battery-80 = 80; + # battery-90 = 90; + # battery-100 = 100; + # }; + # + # format-plugged = "󰚥"; + # format-charging-battery-10 = "󰢜"; + # format-charging-battery-20 = "󰂆"; + # format-charging-battery-30 = "󰂇"; + # format-charging-battery-40 = "󰂈"; + # format-charging-battery-50 = "󰢝"; + # format-charging-battery-60 = "󰂉"; + # format-charging-battery-70 = "󰢞"; + # format-charging-battery-80 = "󰂊"; + # format-charging-battery-90 = "󰂋"; + # format-charging-battery-100 = "󰂅"; + # tooltip-format = "{capacity}% {timeTo}"; + # }; + # + # "custom/notification" = { + # format = "{icon} {} "; + # tooltip-format = "Left: Open Notification Center\nRight: Toggle Do not Disturb\nMiddle: Clear Notifications"; + # format-icons = { + # notification = ""; + # none = ""; + # dnd-notification = ""; + # dnd-none = ""; + # inhibited-notification = ""; + # inhibited-none = ""; + # dnd-inhibited-notification = ""; + # dnd-inhibited-none = ""; + # }; + # return-type = "json"; + # exec-if = "which swaync-client"; + # exec = "swaync-client -swb"; + # on-click = "swaync-client -t -sw"; + # on-click-right = "swaync-client -d -sw"; + # on-click-middle = "swaync-client -C"; + # escape = true; + # }; + # + # tray = { + # icon-size = 21; + # spacing = 10; + # }; + # } + # ]; + # style = '' + # #workspaces button { + # color: @base05; + # } + # ''; + }; +} diff --git a/modules/hm/xdg.nix b/modules/hm/xdg.nix new file mode 100644 index 0000000..07b78f1 --- /dev/null +++ b/modules/hm/xdg.nix @@ -0,0 +1,34 @@ +{ ... }: +{ + xdg.userDirs = { + enable = true; + + createDirectories = true; + download = "$HOME/dl"; + documents = "$HOME/docs"; + pictures = "/media/pics"; + videos = "/media/vids"; + + desktop = null; + music = null; + publicShare = null; + templates = null; + + extraConfig = { + XDG_PROJECTS_DIR = "$HOME/proj"; + XDG_GAMES_DIR = "$HOME/games"; + XDG_MEDIA_DIR = "/media"; + XDG_SS_DIR = "/media/pics/ss"; + XDG_CLIPS_DIR = "/media/vids/clips"; + XDG_ARCHIVE_DIR = "/media/archive"; + }; + }; + home.sessionVariables = { + XDG_PROJECTS_DIR = "$HOME/proj"; + XDG_GAMES_DIR = "$HOME/games"; + XDG_MEDIA_DIR = "/media"; + XDG_SS_DIR = "/media/pics/ss"; + XDG_CLIPS_DIR = "/media/vids/clips"; + XDG_ARCHIVE_DIR = "/media/archive"; + }; +} diff --git a/modules/hyprland.nix b/modules/hyprland.nix deleted file mode 100644 index 471f696..0000000 --- a/modules/hyprland.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, inputs, ... }: -{ - programs.hyprland = { - enable = true; - # package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; - }; -} diff --git a/modules/memory.nix b/modules/memory.nix deleted file mode 100644 index 9a7f0cf..0000000 --- a/modules/memory.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ config, pkgs, ... }: - -{ - zramSwap = { - enable = true; - memoryPercent = 25; - algorithm = "zstd"; - }; - - swapDevices = [ - { - device = "/swap"; - size = 32 * 1024; - } - ]; -} diff --git a/modules/networking.nix b/modules/networking.nix deleted file mode 100644 index 0b3cf91..0000000 --- a/modules/networking.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ ... }: -{ - systemd.services."NetworkManager-wait-online".enable = false; - networking = { - hostName = "szpont"; - - networkmanager = { - enable = true; - wifi.macAddress = "stable-ssid"; - ethernet.macAddress = "stable-ssid"; - }; - - firewall = { - enable = true; - allowedTCPPorts = [ 9150 ]; - allowedUDPPorts = [ 9150 ]; - }; - - nameservers = [ ]; - }; - # services.resolved = { - # enable = true; - # domains = [ "1.1.1.1" "8.8.8.8" ]; - # }; -} diff --git a/modules/niri.nix b/modules/niri.nix deleted file mode 100644 index 7c55687..0000000 --- a/modules/niri.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ inputs, pkgs, ... }: -{ - imports = [ inputs.niri.nixosModules.niri ]; - nixpkgs.overlays = [ inputs.niri.overlays.niri ]; - programs.niri = { - enable = true; - package = pkgs.niri-unstable; - }; -} diff --git a/modules/ollama.nix b/modules/ollama.nix deleted file mode 100644 index 0989419..0000000 --- a/modules/ollama.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ pkgs, ... }: -{ - fileSystems."/models" = { - device = "/home/ollama"; - fsType = "none"; - options = [ "bind" ]; - }; - - services.ollama = { - enable = true; - package = pkgs.ollama-rocm; - loadModels = [ - "deepseek-r1:14b" - "qwen3:14b" - "qwen3-coder:30b" - ]; - syncModels = true; - user = "ollama"; - models = "/models"; - }; -} diff --git a/modules/scx.nix b/modules/scx.nix deleted file mode 100644 index 0f777fe..0000000 --- a/modules/scx.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: -{ - services.scx = { - enable = true; - scheduler = "scx_lavd"; - extraArgs =[ - '' - --performance - '' - ]; - }; -} diff --git a/modules/sys/core/audio.nix b/modules/sys/core/audio.nix new file mode 100644 index 0000000..0769f8d --- /dev/null +++ b/modules/sys/core/audio.nix @@ -0,0 +1,28 @@ +{ config, lib, pkgs, ... }: +{ + options.szpont.audio.enable = lib.mkEnableOption "audio support"; + + config = lib.mkIf config.szpont.audio.enable { + services = { + pipewire = { + enable = true; + audio.enable = true; + pulse.enable = true; + alsa.enable = true; + alsa.support32Bit = true; + jack.enable = true; + wireplumber.enable = true; + }; + + playerctld.enable = true; + spotifyd.enable = true; + }; + + security.rtkit.enable = true; + hardware.enableAllFirmware = true; + + environment.systemPackages = with pkgs; [ + alsa-utils + ]; + }; +} diff --git a/modules/sys/core/bootloader.nix b/modules/sys/core/bootloader.nix new file mode 100644 index 0000000..dabea20 --- /dev/null +++ b/modules/sys/core/bootloader.nix @@ -0,0 +1,36 @@ +{ config, lib, ... }: +{ + options.szpont.bootloader = lib.mkOption { + type = lib.types.enum [ "systemd-boot" "grub" "none" ]; + description = "which bootloader to use"; + }; + + config = lib.mkMerge [ + { + boot.loader.efi.canTouchEfiVariables = true; + boot.supportedFilesystems = [ "ntfs" ]; + } + + (lib.mkIf (config.szpont.bootloader == "systemd-boot") { + boot = { + kernelParams = [ "quiet" ]; + + loader = { + systemd-boot = { + enable = true; + editor = false; + }; + timeout = 0; + }; + }; + }) + + (lib.mkIf (config.szpont.bootloader == "grub") { + boot.loader.grub = { + enable = true; + device = "nodev"; + efiSupport = true; + }; + }) + ]; +} diff --git a/modules/sys/core/default.nix b/modules/sys/core/default.nix new file mode 100644 index 0000000..da8f277 --- /dev/null +++ b/modules/sys/core/default.nix @@ -0,0 +1,14 @@ +{ ... }: +{ + imports = [ + ./audio.nix + ./bootloader.nix + ./drivers.nix + ./fonts.nix + ./greet.nix + ./home-manager.nix + ./localization.nix + ./networking.nix + ./security.nix + ]; +} diff --git a/modules/sys/core/drivers.nix b/modules/sys/core/drivers.nix new file mode 100644 index 0000000..f12f6ab --- /dev/null +++ b/modules/sys/core/drivers.nix @@ -0,0 +1,56 @@ +{ config, lib, pkgs, ... }: +{ + options.szpont.drivers = { + enable = lib.mkEnableOption "enables hardware drivers"; + + amd.enable = lib.mkEnableOption "AMD specific drivers and microcode"; + + stability = lib.mkOption { + type = lib.types.enum [ "stable" "unstable" ]; + default = "stable"; + }; + }; + + config = lib.mkMerge [ + { + services.smartd.enable = true; + hardware = { + sensor.iio.enable = true; + + enableRedistributableFirmware = true; + graphics = { + enable = true; + enable32Bit = true; + }; + }; + } + + (lib.mkIf config.szpont.drivers.amd.enable (lib.mkMerge [ + { + services.xserver.videoDrivers = [ "amdgpu" ]; + hardware = { + cpu.amd.updateMicrocode = true; + amdgpu = { + initrd.enable = true; + overdrive.enable = true; + }; + }; + } + + (lib.mkIf (config.szpont.drivers.stability == "unstable") { + services.lact.enable = true; + + boot.kernelPackages = pkgs.linuxPackages_cachyos-lto-znver4; + chaotic.mesa-git = { + enable = true; + fallbackSpecialisation = false; + extraPackages = [ pkgs.mesa_git.opencl ]; + }; + }) + + (lib.mkIf (config.szpont.drivers.stability == "stable") { + boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; + }) + ])) + ]; +} diff --git a/modules/sys/core/fonts.nix b/modules/sys/core/fonts.nix new file mode 100644 index 0000000..af2c78d --- /dev/null +++ b/modules/sys/core/fonts.nix @@ -0,0 +1,21 @@ +{ config, lib, pkgs, ... }: +{ + options.szpont.fonts = { + enable = lib.mkEnableOption "system-wide fonts and console configuration"; + }; + + config = lib.mkIf config.szpont.fonts.enable { + console = { + keyMap = "pl"; + earlySetup = true; + font = "ter-v32n"; + packages = with pkgs; [ terminus_font ]; + }; + + fonts.packages = with pkgs; [ + nerd-fonts.jetbrains-mono + nerd-fonts.fira-mono + nerd-fonts.fira-code + ]; + }; +} diff --git a/modules/sys/core/greet.nix b/modules/sys/core/greet.nix new file mode 100644 index 0000000..4f4abf9 --- /dev/null +++ b/modules/sys/core/greet.nix @@ -0,0 +1,27 @@ +{ config, lib, pkgs, ... }: +{ + options.szpont.greet.enable = lib.mkEnableOption "enables greetd daemon with tuigreet"; + + config = lib.mkIf config.szpont.greet.enable { + services.greetd = { + enable = true; + settings = { + default_session = { + user = "greeter"; + command = '' + ${pkgs.tuigreet}/bin/tuigreet \ + --sessions ${config.services.displayManager.sessionData.desktops}/share/xsessions:${config.services.displayManager.sessionData.desktops}/share/wayland-sessions \ + --remember \ + --remember-user-session \ + --asterisks \ + --greeting 'Welcome to NixOS!' \ + --time + ''; + }; + }; + }; + security.pam.services.greetd.enableGnomeKeyring = true; + + environment.systemPackages = with pkgs; [ tuigreet ]; + }; +} diff --git a/modules/sys/core/home-manager.nix b/modules/sys/core/home-manager.nix new file mode 100644 index 0000000..06f909f --- /dev/null +++ b/modules/sys/core/home-manager.nix @@ -0,0 +1,30 @@ +{ config, lib, inputs, ... }: +{ + options.szpont.home-manager = { + enable = lib.mkEnableOption "Home Manager configuration manager"; + + users = lib.mkOption { + default = {}; + description = "Attribute set of users and their home-manager configurations"; + type = lib.types.attrsOf (lib.types.submodule { + options = { + path = lib.mkOption { + type = lib.types.path; + description = "Path to the user's home.nix file"; + }; + }; + }); + }; + }; + + config = lib.mkIf config.szpont.home-manager.enable { + home-manager = { + extraSpecialArgs = { inherit inputs; }; + useGlobalPkgs = true; + useUserPackages = true; + backupFileExtension = "bak"; + + users = lib.mapAttrs (name: user: import user.path) config.szpont.home-manager.users; + }; + }; +} diff --git a/modules/sys/core/localization.nix b/modules/sys/core/localization.nix new file mode 100644 index 0000000..232133d --- /dev/null +++ b/modules/sys/core/localization.nix @@ -0,0 +1,39 @@ +{ config, lib, ... }: +{ + options.szpont.locale = { + enable = lib.mkEnableOption "system localization (timezone and language)"; + + timeZone = lib.mkOption { + type = lib.types.str; + default = "Europe/Warsaw"; + description = "the system timezone."; + }; + + format = lib.mkOption { + type = lib.types.str; + default = "pl_PL.UTF-8"; + description = "the locale used for numbers, time, and measurements."; + }; + }; + + config = lib.mkIf config.szpont.locale.enable { + time.timeZone = config.szpont.locale.timeZone; + + i18n = { + defaultLocale = "en_US.UTF-8"; + + extraLocaleSettings = { + LC_TIME = config.szpont.locale.format; + LC_NUMERIC = config.szpont.locale.format; + LC_MONETARY = config.szpont.locale.format; + LC_PAPER = config.szpont.locale.format; + LC_MEASUREMENT = config.szpont.locale.format; + LC_COLLATE = config.szpont.locale.format; + LC_NAME = config.szpont.locale.format; + LC_ADDRESS = config.szpont.locale.format; + LC_TELEPHONE = config.szpont.locale.format; + LC_IDENTIFICATION = config.szpont.locale.format; + }; + }; + }; +} diff --git a/modules/sys/core/networking.nix b/modules/sys/core/networking.nix new file mode 100644 index 0000000..7964e8b --- /dev/null +++ b/modules/sys/core/networking.nix @@ -0,0 +1,29 @@ +{ config, lib, ... }: +{ + options.szpont.network = { + enable = lib.mkEnableOption "system-wide networking setup"; + + hostName = lib.mkOption { + type = lib.types.str; + default = "nixos"; + description = "The hostname for this specific machine."; + }; + }; + + config = lib.mkIf config.szpont.network.enable { + networking = { + hostName = config.szpont.network.hostName; + + networkmanager = { + enable = true; + wifi.macAddress = "stable-ssid"; + ethernet.macAddress = "stable-ssid"; + }; + + firewall = { + enable = true; + }; + }; + systemd.services."NetworkManager-wait-online".enable = false; + }; +} diff --git a/modules/sys/core/security.nix b/modules/sys/core/security.nix new file mode 100644 index 0000000..b2b7827 --- /dev/null +++ b/modules/sys/core/security.nix @@ -0,0 +1,27 @@ +{ config, lib, pkgs, ... }: +{ + options.szpont.security = { + enable = lib.mkEnableOption "core security services"; + }; + + config = lib.mkIf config.szpont.security.enable { + services.gnome.gnome-keyring.enable = true; + + security = { + polkit.enable = true; + rtkit.enable = true; + }; + + systemd.user.services.polkit-gnome-authentication-agent-1 = { + description = "gnome-polkit-authentication-agent-1"; + wantedBy = [ "graphical-session.target" ]; + serviceConfig = { + Type = "simple"; + ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; + Restart = "on-failure"; + RestartSec = 1; + TimeoutStopSec = 10; + }; + }; + }; +} diff --git a/modules/sys/default.nix b/modules/sys/default.nix new file mode 100644 index 0000000..72c9ffc --- /dev/null +++ b/modules/sys/default.nix @@ -0,0 +1,8 @@ +{ ... }: +{ + imports = [ + ./core/default.nix + ./features/default.nix + ./wayland/default.nix + ]; +} diff --git a/modules/sys/features/default.nix b/modules/sys/features/default.nix new file mode 100644 index 0000000..790dc25 --- /dev/null +++ b/modules/sys/features/default.nix @@ -0,0 +1,8 @@ +{ ... }: +{ + imports = [ + ./nh.nix + ./ollama.nix + ./virtualization.nix + ]; +} diff --git a/modules/sys/features/nh.nix b/modules/sys/features/nh.nix new file mode 100644 index 0000000..d24d88b --- /dev/null +++ b/modules/sys/features/nh.nix @@ -0,0 +1,26 @@ +{ config, lib, pkgs, ... }: +{ + options.szpont.nh = { + enable = lib.mkOption { + type = lib.types.bool; + default = true; + }; + }; + + config = lib.mkIf config.szpont.nh.enable { + nix.settings = { + trusted-users = [ "root" "adam" ]; + experimental-features = [ "nix-command" "flakes" ]; + }; + + programs.nh = { + enable = true; + flake = "/etc/nixos"; + }; + + environment.systemPackages = with pkgs; [ + nix-output-monitor + nvd + ]; + }; +} diff --git a/modules/sys/features/ollama.nix b/modules/sys/features/ollama.nix new file mode 100644 index 0000000..0989419 --- /dev/null +++ b/modules/sys/features/ollama.nix @@ -0,0 +1,21 @@ +{ pkgs, ... }: +{ + fileSystems."/models" = { + device = "/home/ollama"; + fsType = "none"; + options = [ "bind" ]; + }; + + services.ollama = { + enable = true; + package = pkgs.ollama-rocm; + loadModels = [ + "deepseek-r1:14b" + "qwen3:14b" + "qwen3-coder:30b" + ]; + syncModels = true; + user = "ollama"; + models = "/models"; + }; +} diff --git a/modules/sys/features/virtualization.nix b/modules/sys/features/virtualization.nix new file mode 100644 index 0000000..bb3e6cb --- /dev/null +++ b/modules/sys/features/virtualization.nix @@ -0,0 +1,41 @@ +{ config, lib, pkgs, ... }: +{ + options.szpont.virtualization = { + enable = lib.mkOption { + type = lib.types.bool; + default = false; + }; + + kvm = { + enable = lib.mkOption { + type = lib.types.bool; + default = true; + }; + }; + docker = { + enable = lib.mkOption { + type = lib.types.bool; + default = false; + }; + }; + }; + + config = lib.mkIf config.szpont.virtualization.enable (lib.mkMerge [ + (lib.mkIf config.szpont.virtualization.kvm.enable { + virtualisation.libvirtd = { + enable = true; + qemu.package = pkgs.qemu_kvm; + qemu.swtpm.enable = true; + }; + programs.virt-manager.enable = true; + users.users.adam.extraGroups = [ "libvirtd" ]; + boot.initrd.kernelModules = [ "kvm-amd" ]; + }) + + (lib.mkIf config.szpont.virtualization.docker.enable { + virtualisation.docker.enable = true; + environment.systemPackages = [ pkgs.docker-compose ]; + users.users.adam.extraGroups = [ "docker" ]; + }) + ]); +} diff --git a/modules/sys/wayland/default.nix b/modules/sys/wayland/default.nix new file mode 100644 index 0000000..48df857 --- /dev/null +++ b/modules/sys/wayland/default.nix @@ -0,0 +1,6 @@ +{ ... }: +{ + imports = [ + ./niri.nix + ]; +} diff --git a/modules/sys/wayland/niri.nix b/modules/sys/wayland/niri.nix new file mode 100644 index 0000000..2054d9d --- /dev/null +++ b/modules/sys/wayland/niri.nix @@ -0,0 +1,20 @@ +{ inputs, config, lib, pkgs, ... }: +{ + imports = [ inputs.niri.nixosModules.niri ]; + + options.szpont.niri = { + enable = lib.mkOption { + type = lib.types.bool; + default = false; + }; + }; + + config = lib.mkIf config.szpont.niri.enable { + nixpkgs.overlays = [ inputs.niri.overlays.niri ]; + + programs.niri = { + enable = true; + package = pkgs.niri-unstable; + }; + }; +} diff --git a/modules/tor.nix b/modules/tor.nix deleted file mode 100644 index bef081c..0000000 --- a/modules/tor.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ pkgs, ... }: -{ - # networking.proxy.default = "https://127.0.0.1:8118"; - services = { - tor = { - enable = true; - # openFirewall = true; - torsocks.enable = true; - # torsocks.allowInbound = true; - client.enable = true; - # client = { - # enable = true; - # dns.enable = true; - # }; - - # settings.DNSPort = [{ - # addr = "127.0.0.1"; - # port = 53; - # }]; - - # torsocks.enable = true; - }; - privoxy = { - enable = true; - enableTor = true; - }; - }; - - environment.systemPackages = with pkgs; [ - tor - torsocks - tor-browser - torctl - vanguards - tractor - onioncircuits - oniux - ]; - - # networking.nameservers = [ "127.0.0.1" ]; -} diff --git a/modules/virtualization.nix b/modules/virtualization.nix deleted file mode 100644 index 0071f1a..0000000 --- a/modules/virtualization.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ pkgs, ... }: -{ - virtualisation = { - libvirtd = { - enable = true; - qemu = { - package = pkgs.qemu_kvm; - swtpm.enable = true; - }; - }; - - docker = { - enable = true; - extraPackages = with pkgs; [ docker-compose ]; - }; - containerd.enable = false; - }; - - programs.virt-manager.enable = true; - networking.firewall.allowedTCPPorts = [ 5984 ]; - - users.users.adam.extraGroups = [ "libvirtd" "kvm" "docker" ]; -} -- cgit v1.3