diff options
| -rw-r--r-- | flake.lock | 107 | ||||
| -rw-r--r-- | flake.nix | 50 | ||||
| -rw-r--r-- | hm/editors/nixvim.nix | 108 | ||||
| -rw-r--r-- | hm/env/niri/binds.nix | 58 | ||||
| -rw-r--r-- | hm/shell/cli.nix | 1 | ||||
| -rw-r--r-- | hm/soft/kdeconnect.nix | 11 | ||||
| -rw-r--r-- | hm/soft/media.nix | 1 | ||||
| -rw-r--r-- | hm/soft/nixcord.nix | 150 | ||||
| -rw-r--r-- | hm/soft/obs.nix | 9 | ||||
| -rw-r--r-- | hm/soft/soft.nix | 1 | ||||
| -rw-r--r-- | hosts/desktop/configuration.nix | 31 | ||||
| -rw-r--r-- | hosts/desktop/home.nix | 4 | ||||
| -rw-r--r-- | hosts/laptop/configuration.nix | 7 | ||||
| -rw-r--r-- | hosts/laptop/home.nix | 1 | ||||
| -rw-r--r-- | hosts/thinkpad/configuration.nix | 16 | ||||
| -rw-r--r-- | hosts/thinkpad/disko.nix | 81 | ||||
| -rw-r--r-- | hosts/thinkpad/home.nix | 1 | ||||
| -rw-r--r-- | os/core/drivers.nix | 75 | ||||
| -rw-r--r-- | os/core/home-manager.nix | 26 | ||||
| -rw-r--r-- | os/core/networking.nix | 3 | ||||
| -rw-r--r-- | os/srv/gaming.nix | 17 | ||||
| -rw-r--r-- | os/srv/kdeconnect.nix | 19 | ||||
| -rw-r--r-- | os/srv/srv.nix | 1 | ||||
| -rw-r--r-- | os/wm/niri.nix | 13 | ||||
| -rw-r--r-- | os/wm/wm.nix | 25 |
25 files changed, 550 insertions, 266 deletions
@@ -59,11 +59,11 @@ ] }, "locked": { - "lastModified": 1767609335, - "narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=", + "lastModified": 1768135262, + "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "250481aafeb741edfe23d29195671c19b36b6dca", + "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", "type": "github" }, "original": { @@ -136,11 +136,11 @@ ] }, "locked": { - "lastModified": 1768068402, - "narHash": "sha256-bAXnnJZKJiF7Xr6eNW6+PhBf1lg2P1aFUO9+xgWkXfA=", + "lastModified": 1768798936, + "narHash": "sha256-eHld4id3TeD9Sxx5vgv58BnTl1fz+ewIKspz/kEoAE8=", "owner": "nix-community", "repo": "home-manager", - "rev": "8bc5473b6bc2b6e1529a9c4040411e1199c43b4c", + "rev": "2954aa29441a1a98901362e4d35515875761ad65", "type": "github" }, "original": { @@ -150,6 +150,22 @@ "type": "github" } }, + "kernelv": { + "locked": { + "lastModified": 1766069213, + "narHash": "sha256-h2501PoQofwr3Ds/O/SHlm/izeKWqnRYuT7Yl5t6ZVI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "52e64396e98aef211f4127416dbdae17a01b3d3f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "52e64396e98aef211f4127416dbdae17a01b3d3f", + "type": "github" + } + }, "neovim-nightly-overlay": { "inputs": { "flake-parts": "flake-parts", @@ -159,11 +175,11 @@ ] }, "locked": { - "lastModified": 1768089909, - "narHash": "sha256-ZhOqOA935D9Nt9jVZpvna0AoyLDyrqgHs7ZpRCFXads=", + "lastModified": 1768781101, + "narHash": "sha256-p3guh/Vx4Pf+Ggk3X69SPTJot6emv6rgKpoBLNO61Ag=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "da3ebf6278515f20c5ad3c65d11cce833acdf73c", + "rev": "e90cb6d441572fc05ffb8769051d59f1d2d3269e", "type": "github" }, "original": { @@ -175,11 +191,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1768087477, - "narHash": "sha256-oGeGdfuUv1ZMeITtElyxCOmiRmSuIquwP8fb6OSDDt4=", + "lastModified": 1768778690, + "narHash": "sha256-XrWZBeH0GnvnQzE9Xmm69sesSGB2h5uVLuTmLA7k1p0=", "owner": "neovim", "repo": "neovim", - "rev": "ba7e17160df2088251217d059ad3441253b74993", + "rev": "30259d6af79e731491e6b12d815893b1b130b52b", "type": "github" }, "original": { @@ -200,11 +216,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1768153577, - "narHash": "sha256-iR54iiyM4UtQCfAZVsI/BRwIrDUO1oNeiA1h/Jp+nro=", + "lastModified": 1768767453, + "narHash": "sha256-Omq1UHEJ1oxkTo2j8l6qQtmyPR7Uj+k7HC5Khd3jVVA=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "c65d3c7adfe488122c2c9b7ececb1d7fc893dc5b", + "rev": "8eab7c21ef4edc97cc56ddb8e76a842e0818d6d7", "type": "github" }, "original": { @@ -233,11 +249,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1768150783, - "narHash": "sha256-1gtx2la5f8RphvN+BUZuZjiGh25WdO0Hf9+kJKIu3rA=", + "lastModified": 1768678265, + "narHash": "sha256-Ub8eed4DsfIDWyg30xEe+8bSxL/z5Af/gCjmvJ0V/Hs=", "owner": "YaLTeR", "repo": "niri", - "rev": "e9d888cd52f8a783b07e0d6c0ec9a341a81031ca", + "rev": "d7184a04b904e07113f4623610775ae78d32394c", "type": "github" }, "original": { @@ -255,11 +271,11 @@ ] }, "locked": { - "lastModified": 1768118572, - "narHash": "sha256-EzvShHuEAPrwlKgWL6iiNZY4xGNYLac1Wo9nTgbdy+4=", + "lastModified": 1768610265, + "narHash": "sha256-JZgnO/gPPBgFCKsQHIT2mRcK0vkwWGfyg/6wOJkb+F8=", "owner": "KaylorBen", "repo": "nixcord", - "rev": "dc9193f6e968af926440fda523376109f4d3f915", + "rev": "02c730b57b8ef16c62624a3410ef724d014c58db", "type": "github" }, "original": { @@ -270,11 +286,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1767892417, - "narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=", + "lastModified": 1768564909, + "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", + "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", "type": "github" }, "original": { @@ -301,11 +317,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1768028080, - "narHash": "sha256-50aDK+8eLvsLK39TzQhKNq50/HcXyP4hyxOYoPoVxjo=", + "lastModified": 1768621446, + "narHash": "sha256-6YwHV1cjv6arXdF/PQc365h1j+Qje3Pydk501Rm4Q+4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d03088749a110d52a4739348f39a63f84bb0be14", + "rev": "72ac591e737060deab2b86d6952babd1f896d7c5", "type": "github" }, "original": { @@ -340,11 +356,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1767906546, - "narHash": "sha256-AoSWS8+P+7hQ/jIdv0wBjgH1MvnerdWBFXO4GV3JoQs=", + "lastModified": 1768795384, + "narHash": "sha256-gZIXLzhupxAwRMMRTFgrl669ciYiiPmnA3PwocJ+6jQ=", "owner": "nix-community", "repo": "nixvim", - "rev": "7eb8f36f085b85a2aeff929aff52d0f6aa14e000", + "rev": "57d393deb53af1b28b14973d3e3885c3d17e7bbe", "type": "github" }, "original": { @@ -357,6 +373,7 @@ "inputs": { "disko": "disko", "home-manager": "home-manager", + "kernelv": "kernelv", "neovim-nightly-overlay": "neovim-nightly-overlay", "niri": "niri", "nixcord": "nixcord", @@ -415,11 +432,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1767597267, - "narHash": "sha256-eW+TMNHGFp1kwR3MSzXP5Sjmcj1iNWVX0avJu2W64TE=", + "lastModified": 1768801657, + "narHash": "sha256-/9a6lwyYkGAEi9MMqQAncHxu2Xsu1wluhQJItHZrDhk=", "owner": "gabm", "repo": "Satty", - "rev": "e2a4ad3308fd247e836fdf85beb94258b608bc39", + "rev": "755cfae367852378c382cbb5bc76eed424eb1c95", "type": "github" }, "original": { @@ -436,11 +453,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1768107098, - "narHash": "sha256-mSthw4k7jkB5S8+NYZwrQFItLj+17Se7Wn0pIfdASbc=", + "lastModified": 1768656845, + "narHash": "sha256-xNlXMyn7yc3Z/NOsz4NchO7gWFwsoCvtJ26pys4s2/M=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "2e40e07527f9d724b1578f0af590ab345e836ec3", + "rev": "8bd7e49d5ac62756bee6e4b02221fb96bfc3c99a", "type": "github" }, "original": { @@ -502,11 +519,11 @@ ] }, "locked": { - "lastModified": 1767985335, - "narHash": "sha256-JDeI7oyjibtX7FKQYMCBP6l0Q2aSdSephIb74X6tASM=", + "lastModified": 1768411650, + "narHash": "sha256-aAZ5NPbhtGPbpfPpNM6yiK3OuRJosOnzh7HC1JSSIG0=", "owner": "Alexays", "repo": "Waybar", - "rev": "a02180a815b651f1bc08a359f23241c941bfafed", + "rev": "b4854f96a3a1f89ddae66f8216ea79411371167a", "type": "github" }, "original": { @@ -535,11 +552,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1768106915, - "narHash": "sha256-HlLo9zH4ULRXlmlIK948cHmdVhxyHgTHxGaoCRlW4k8=", + "lastModified": 1768765571, + "narHash": "sha256-C1JbyJ3ftogmN3vmLNfyPtnJw2wY64TiUTIhFtk1Leg=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "72245e108f3b03c3c4474d2de9de2d1830849603", + "rev": "ed1cef792b4def3321ff9ab5479df09609f17a69", "type": "github" }, "original": { @@ -557,11 +574,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1768129250, - "narHash": "sha256-jsccfsJpyvkZ8dUMR4rS141vnmHT3qh6HtnP+jE2qq4=", + "lastModified": 1768756095, + "narHash": "sha256-5YO/8LTVhUFJ4jJMuJtgE3oGGD0D7aR0fcfHEKvQmTo=", "owner": "sxyazi", "repo": "yazi", - "rev": "41e5717930141c574442ecc53bd4db5f96188d50", + "rev": "ca4cc594136e313b47f8da0f3699b7ea9699a959", "type": "github" }, "original": { @@ -4,6 +4,9 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + # Snapshot of nixpkgs with the 6.17.13 kernel for compatibility + kernelv.url = "github:NixOS/nixpkgs/52e64396e98aef211f4127416dbdae17a01b3d3f"; + home-manager = { url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; @@ -21,7 +24,7 @@ waybar = { url = "github:Alexays/Waybar"; - inputs.nixpkgs.follows= "nixpkgs"; + inputs.nixpkgs.follows = "nixpkgs"; }; yazi = { @@ -55,31 +58,40 @@ }; }; - outputs = inputs @ { self, nixpkgs, ... }: + outputs = + { self, nixpkgs, ... }@inputs: let - username = "adam"; - mkHost = { hostname, path }: + mkHost = + { + hostname, + path, + user ? "adam", + }: nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs username; }; + specialArgs = { + inherit inputs; + username = user; + }; modules = [ path { networking.hostName = hostname; } ]; }; - in { - nixosConfigurations = { - szpont = mkHost { - hostname = "szpont"; - path = ./hosts/desktop/configuration.nix; - }; - laptop = mkHost { - hostname = "laptop"; - path = ./hosts/laptop/configuration.nix; - }; - thinkpad = mkHost { - hostname = "thinkpad"; - path = ./hosts/thinkpad/configuration.nix; + in + { + nixosConfigurations = { + szpont = mkHost { + hostname = "szpont"; + path = ./hosts/desktop/configuration.nix; + }; + laptop = mkHost { + hostname = "laptop"; + path = ./hosts/laptop/configuration.nix; + }; + thinkpad = mkHost { + hostname = "thinkpad"; + path = ./hosts/thinkpad/configuration.nix; + }; }; }; - }; } diff --git a/hm/editors/nixvim.nix b/hm/editors/nixvim.nix index b4d24a7..51fdf95 100644 --- a/hm/editors/nixvim.nix +++ b/hm/editors/nixvim.nix @@ -17,23 +17,84 @@ in waylandSupport = true; colorschemes.gruvbox.enable = true; + globals.mapleader = " "; + + keymaps = [ + { + # mode = [ "n" "i" "v" ]; + key = "<F1>"; + action = "<NOP>"; + options.silent = true; + } + { + mode = "n"; + key = "<leader>ff"; + action = "<cmd>Telescope find_files<CR>"; + options.desc = "Find Files"; + } + { + mode = "n"; + key = "<leader>fg"; + action = "<cmd>Telescope live_grep<CR>"; + options.desc = "Live Grep"; + } + { + mode = "n"; + key = "<leader>ma"; + action = "<cmd>MCpattern<CR>"; + options.desc = "Select all matches of pattern"; + } + { + mode = "n"; + key = "<leader>ha"; + action = ''<cmd>lua require("harpoon.mark").add_file()<CR>''; + options.desc = "Harpoon: Mark File"; + } + { + mode = "n"; + key = "<leader>hh"; + action = ''<cmd>lua require("harpoon.ui").toggle_quick_menu()<CR>''; + options.desc = "Harpoon: Show Menu"; + } + { + mode = "n"; + key = "<leader>xx"; + action = "<cmd>Trouble diagnostics toggle<CR>"; + options.desc = "Toggle Trouble (Diagnostics)"; + } + ]; + plugins = { - lualine.enable = true; + lualine = { + enable = true; + settings.options.theme = "gruvbox-material"; + }; + multicursors.enable = true; + treesitter-context = { + enable = true; + settings = { + max_lines = 2; + trim_scope = "outer"; + }; + }; oil.enable = true; - lazygit.enable = true; persistence.enable = true; nvim-autopairs.enable = true; neoscroll.enable = true; bufferline.enable = true; web-devicons.enable = true; + blink-cmp.enable = true; + gitsigns.enable = true; + which-key.enable = true; + harpoon = { + enable = true; + enableTelescope = true; + }; + toggleterm.enable = true; treesitter = { enable = true; - settings = { - indent.enable = true; - }; }; - telescope = { enable = true; extensions = { @@ -43,28 +104,27 @@ in }; }; - notify = { + noice.enable = true; + dressing.enable = true; + trouble.enable = true; + conform-nvim = { enable = true; - settings = { - backgroundColour = "#1e1e2e"; - fps = 60; - render = "default"; - timeout = 500; - topDown = true; + settings.format_on_save = { + lsp_fallback = true; + timeout_ms = 500; }; }; - hardtime = { - # enable = true; - settings = { - # disableMouse = true; - # enabled = false; - restrictionMode = "hint"; - hint = true; - maxCount = 40; - maxTime = 1000; - }; - }; + # notify = { + # enable = true; + # settings = { + # backgroundColour = "#1e1e2e"; + # fps = 60; + # render = "default"; + # timeout = 500; + # topDown = true; + # }; + # }; nix.enable = true; lsp = { diff --git a/hm/env/niri/binds.nix b/hm/env/niri/binds.nix index cfa15e8..3c3c00e 100644 --- a/hm/env/niri/binds.nix +++ b/hm/env/niri/binds.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: with config.lib.niri.actions; let playerctl = spawn "${pkgs.playerctl}/bin/playerctl"; @@ -17,11 +22,10 @@ in # microphone XF86AudioMute.action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; # # headphones - "Mod+XF86AudioMute". - action = spawn "sh" "-c" '' - wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && \ - wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle - ''; + "Mod+XF86AudioMute".action = spawn "sh" "-c" '' + wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && \ + wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle + ''; "Super+Shift+L".action = spawn "swaylock" "-f"; # Media keys @@ -44,20 +48,19 @@ in "Mod+S" = { action = spawn "sh" "-c" '' - grim -g "$(slurp)" - | tee ${ss}.png | wl-copy - ''; + grim -g "$(slurp)" - | tee ${ss}.png | wl-copy + ''; repeat = false; }; "Mod+Shift+S" = { action = spawn "sh" "-c" '' - grim -g "$(slurp)" ${ss}.png - satty --filename "${ss}.png" --output-filename "${ss}-edited.png" - ''; + grim -g "$(slurp)" ${ss}.png + satty --filename "${ss}.png" --output-filename "${ss}-edited.png" + ''; repeat = false; }; - "Mod+Shift+D".action = spawn "sh" "-c" - '' + "Mod+Shift+D".action = spawn "sh" "-c" '' cliphist list | fuzzel --dmenu | cliphist decode | wl-copy ''; @@ -106,12 +109,23 @@ in "Super+Return".action = spawn "obs-cmd" "replay" "save"; -} // ( - builtins.listToAttrs (builtins.concatMap (keyNum: let - key = toString keyNum; - targetWS = keyNum + 1; - in [ - { name = "Mod+${key}"; value.action = focus-workspace targetWS; } - { name = "Mod+Shift+${key}"; value.action.move-column-to-workspace = [ targetWS ]; } - ]) (lib.range 1 9)) -) +} +// (builtins.listToAttrs ( + builtins.concatMap ( + keyNum: + let + key = toString keyNum; + targetWS = keyNum + 1; + in + [ + { + name = "Mod+${key}"; + value.action = focus-workspace targetWS; + } + { + name = "Mod+Shift+${key}"; + value.action.move-column-to-workspace = [ targetWS ]; + } + ] + ) (lib.range 1 9) +)) diff --git a/hm/shell/cli.nix b/hm/shell/cli.nix index 4a66405..01aeb67 100644 --- a/hm/shell/cli.nix +++ b/hm/shell/cli.nix @@ -30,6 +30,7 @@ in }; home.packages = with pkgs; [ + nix-search-cli magic-wormhole srm file diff --git a/hm/soft/kdeconnect.nix b/hm/soft/kdeconnect.nix deleted file mode 100644 index fbaea82..0000000 --- a/hm/soft/kdeconnect.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ config, lib, ... }: -let - cfg = config.hm.soft.kdeconnect; -in -{ - options.hm.soft.kdeconnect.enable = lib.mkEnableOption "enables kde connect integration and dolphin"; - - config = lib.mkIf cfg.enable { - services.kdeconnect.enable = true; - }; -} diff --git a/hm/soft/media.nix b/hm/soft/media.nix index 0d18595..3ea4dfa 100644 --- a/hm/soft/media.nix +++ b/hm/soft/media.nix @@ -6,6 +6,7 @@ in options.hm.soft.media.enable = lib.mkEnableOption "media cli tools"; config = lib.mkIf cfg.enable { home.packages = with pkgs; [ + krita gimp zathura pinta diff --git a/hm/soft/nixcord.nix b/hm/soft/nixcord.nix index 2f12aca..1b9a9e8 100644 --- a/hm/soft/nixcord.nix +++ b/hm/soft/nixcord.nix @@ -1,4 +1,9 @@ -{ inputs, config, lib, ... }: +{ + inputs, + config, + lib, + ... +}: let cfg = config.hm.soft.nixcord; in @@ -23,22 +28,40 @@ in config = { frameless = true; plugins = { - ClearURLs.enable = true; + ClearURLs.enable = true; RPCEditor.enable = true; OnePingPerDM.enable = true; - PinDMs = { enable = true; canCollapseDmSection = true; }; + PinDMs = { + enable = true; + canCollapseDmSection = true; + }; SaveFavoriteGIFs.enable = true; altKrispSwitch.enable = true; - alwaysExpandRoles = { enable = true; hideArrow = true; }; - alwaysTrust = { enable = true; domain = false; }; + alwaysExpandRoles = { + enable = true; + hideArrow = true; + }; + alwaysTrust = { + enable = true; + domain = false; + }; anammox.enable = true; betterGifAltText.enable = true; - betterGifPicker = { enable = true; keepOpen = true; }; + betterGifPicker = { + enable = true; + keepOpen = true; + }; betterInvites.enable = true; - betterNotesBox = { enable = true; hide = true; }; + betterNotesBox = { + enable = true; + hide = true; + }; betterRoleContext.enable = true; betterUploadButton.enable = true; - betterUserArea = { enable = true; alwaysShowUsername = false; }; + betterUserArea = { + enable = true; + alwaysShowUsername = false; + }; biggerStreamPreview.enable = true; bypassPinPrompt.enable = true; callTimer.enable = true; @@ -48,10 +71,21 @@ in customTimestamps.enable = true; disableCallIdle.enable = true; dontRoundMyTimestamps.enable = true; - equicordHelper = { enable = true; noMirroredCamera = true; removeActivitySection = true; }; - equicordToolbox = { enable = true; showPluginMenu = false; }; + equicordHelper = { + enable = true; + noMirroredCamera = true; + removeActivitySection = true; + }; + equicordToolbox = { + enable = true; + showPluginMenu = false; + }; expressionCloner.enable = true; - fakeNitro = { enable = true; enableEmojiBypass = false; enableStickerBypass = false; }; + fakeNitro = { + enable = true; + enableEmojiBypass = false; + enableStickerBypass = false; + }; favoriteEmojiFirst.enable = true; favoriteGifSearch.enable = true; fixImagesQuality.enable = true; @@ -62,26 +96,59 @@ in friendsSince.enable = true; fullSearchContext.enable = true; fullUserInChatbox.enable = true; - gifCollections = { enable = true; onlyShowCollections = true; preventDuplicates = true; showCopyImageLink = true; }; - gifRoulette = { enable = true; pingOwnerChance = false; }; + gifCollections = { + enable = true; + onlyShowCollections = true; + preventDuplicates = true; + showCopyImageLink = true; + }; + gifRoulette = { + enable = true; + pingOwnerChance = false; + }; guildTagSettings.enable = true; homeTyping.enable = true; iLoveSpam.enable = true; ignoreTerms.enable = true; - imageFilename = { enable = true; showFullUrl = true; }; + imageFilename = { + enable = true; + showFullUrl = true; + }; imageLink.enable = true; - imageZoom = { enable = true; nearestNeighbour = true; square = true; }; + imageZoom = { + enable = true; + nearestNeighbour = true; + square = true; + }; inviteDefaults.enable = true; - limitMiddleClickPaste = { enable = true; limitTo = "never"; }; + limitMiddleClickPaste = { + enable = true; + limitTo = "never"; + }; memberCount.enable = true; - mentionAvatars = { enable = true; showAtSymbol = true; }; + mentionAvatars = { + enable = true; + showAtSymbol = true; + }; messageLinkEmbeds.enable = true; - messageLinkTooltip = { enable = true; display = "cozy"; }; - messageLogger = { enable = true; ignoreSelf = true; }; - moyai = { enable = true; quality = "HD"; }; + messageLinkTooltip = { + enable = true; + display = "cozy"; + }; + messageLogger = { + enable = true; + ignoreSelf = true; + }; + moyai = { + enable = true; + quality = "HD"; + }; musicControls.enable = true; neverPausePreviews.enable = true; - newGuildSettings = { enable = true; messages = 1; }; + newGuildSettings = { + enable = true; + messages = 1; + }; noF1.enable = true; noMaskedUrlPaste.enable = true; noModalAnimation.enable = true; @@ -89,38 +156,59 @@ in noNitroUpsell.enable = true; noOnboardingDelay.enable = true; noPendingCount.enable = true; - noProfileThemes.enable = true; + noProfileThemes.enable = true; noTypingAnimation.enable = true; openInApp.enable = true; - overrideForumDefaults = { enable = true; defaultLayout = 2; }; + overrideForumDefaults = { + enable = true; + defaultLayout = 2; + }; pauseInvitesForever.enable = true; - permissionFreeWill = { enable = true; lockout = false; }; + permissionFreeWill = { + enable = true; + lockout = false; + }; permissionsViewer.enable = true; pinIcon.enable = true; platformIndicators.enable = true; relationshipNotifier.enable = true; - replyTimestamp.enable = true; + replyTimestamp.enable = true; roleColorEverywhere.enable = true; sendTimestamps.enable = true; serverInfo.enable = true; showConnections.enable = true; - showHiddenChannels = { enable = true; channelStyle = 3; }; + showHiddenChannels = { + enable = true; + channelStyle = 3; + }; showHiddenThings.enable = true; - showTimeoutDuration.enable = true; + showTimeoutDuration.enable = true; splitLargeMessages.enable = true; - spotifyCrack = { enable = true; noSpotifyAutoPause = false; }; + spotifyCrack = { + enable = true; + noSpotifyAutoPause = false; + }; streamerModeOnStream.enable = true; - superReactionTweaks = { enable = true; superReactionPlayingLimit = 0.0; }; + superReactionTweaks = { + enable = true; + superReactionPlayingLimit = 0.0; + }; typingIndicator.enable = true; typingTweaks.enable = true; unindent.enable = true; - universalMention = { enable = true; globalMention = 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"; }; + viewIcons = { + enable = true; + format = "png"; + }; voiceDownload.enable = true; voiceMessages.enable = true; volumeBooster.enable = true; diff --git a/hm/soft/obs.nix b/hm/soft/obs.nix index c6bf326..29c82a4 100644 --- a/hm/soft/obs.nix +++ b/hm/soft/obs.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.hm.soft.obs; in @@ -8,8 +13,6 @@ in programs.obs-studio = { enable = true; plugins = with pkgs.obs-studio-plugins; [ - wlrobs - obs-websocket obs-pipewire-audio-capture ]; }; diff --git a/hm/soft/soft.nix b/hm/soft/soft.nix index bc20da3..4372d3f 100644 --- a/hm/soft/soft.nix +++ b/hm/soft/soft.nix @@ -4,7 +4,6 @@ ./browser.nix ./easyeffects.nix ./email.nix - ./kdeconnect.nix ./kdenlive.nix ./mangohud.nix ./media.nix diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix index 4505408..c43d4de 100644 --- a/hosts/desktop/configuration.nix +++ b/hosts/desktop/configuration.nix @@ -1,13 +1,19 @@ -{ config, inputs, username, ... }: +{ + config, + inputs, + username, + pkgs, + ... +}: { system.stateVersion = "25.05"; imports = [ - inputs.disko.nixosModules.disko + inputs.disko.nixosModules.disko - ./hardware-configuration.nix - ../../os/default.nix - ]; + ./hardware-configuration.nix + ../../os/default.nix + ]; os = { core = { @@ -22,6 +28,7 @@ drivers = { enable = true; amdgpu.enable = true; + stability = "unstable"; }; fonts.enable = true; greet.enable = true; @@ -62,8 +69,9 @@ kvm.enable = true; nix-helper.enable = true; ollama.enable = true; - bluetooth.enable = true; - zzz.enable = true; + # bluetooth.enable = true; + kdeconnect.enable = true; + # zzz.enable = true; }; wm = { enable = true; @@ -71,6 +79,11 @@ }; }; + environment.systemPackages = with pkgs; [ + krusader + kdePackages.kio-extras + ]; + xdg.terminal-exec = { enable = true; settings = { @@ -81,8 +94,8 @@ boot = { kernelParams = [ "video=DP-1:2560x1440@240" ]; kernelModules = [ "nct6687" ]; - extraModulePackages = [ - config.boot.kernelPackages.nct6687d + extraModulePackages = [ + config.boot.kernelPackages.nct6687d ]; }; } diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix index 8431d37..e274907 100644 --- a/hosts/desktop/home.nix +++ b/hosts/desktop/home.nix @@ -47,8 +47,6 @@ brave.enable = true; }; email.evolution.enable = true; - kdeconnect.enable = true; - kdenlive.enable = true; media.enable = true; mpv.enable = true; nixcord.enable = true; @@ -72,6 +70,4 @@ home.sessionVariables = { XDG_UTILS_TERMINAL = "foot"; }; - - programs.firefox.enable = true; } diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index d790d57..3390af0 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -3,9 +3,9 @@ system.stateVersion = "25.05"; imports = [ - ./hardware-configuration.nix - ../../os/default.nix - ]; + ./hardware-configuration.nix + ../../os/default.nix + ]; os = { core = { @@ -49,6 +49,7 @@ steam.enable = true; }; nix-helper.enable = true; + kdeconnect.enable = true; }; wm = { enable = true; diff --git a/hosts/laptop/home.nix b/hosts/laptop/home.nix index bfcf58a..e5b5f32 100644 --- a/hosts/laptop/home.nix +++ b/hosts/laptop/home.nix @@ -37,7 +37,6 @@ }; soft = { browser.librewolf.enable = true; - kdeconnect.enable = true; mpv.enable = true; media.enable = true; nixcord.enable = true; diff --git a/hosts/thinkpad/configuration.nix b/hosts/thinkpad/configuration.nix index 69134eb..f97d714 100644 --- a/hosts/thinkpad/configuration.nix +++ b/hosts/thinkpad/configuration.nix @@ -3,12 +3,12 @@ system.stateVersion = "25.05"; imports = [ - inputs.disko.nixosModules.disko - ./disko.nix + inputs.disko.nixosModules.disko + ./disko.nix - ./hardware-configuration.nix - ../../os/default.nix - ]; + ./hardware-configuration.nix + ../../os/default.nix + ]; os = { core = { @@ -47,12 +47,8 @@ thunar.enable = true; utils.enable = true; }; - # gaming = { - # enable = true; - # steam.enable = true; - # vr.enable = true; - # }; # kvm.enable = true; + kdeconnect.enable = true; nix-helper.enable = true; }; wm = { diff --git a/hosts/thinkpad/disko.nix b/hosts/thinkpad/disko.nix index 120efbc..f3243d8 100644 --- a/hosts/thinkpad/disko.nix +++ b/hosts/thinkpad/disko.nix @@ -8,7 +8,7 @@ type = "gpt"; partitions = { ESP = { - size = "1G"; + size = "2G"; type = "EF00"; content = { type = "filesystem"; @@ -17,35 +17,60 @@ mountOptions = [ "umask=0077" ]; }; }; - root = { + luks = { size = "100%"; content = { - type = "btrfs"; - extraArgs = [ "-f" ]; - subvolumes = { - "@" = { - mountpoint = "/"; - mountOptions = [ "compress=zstd:1" "noatime" ]; - }; - "@home" = { - mountpoint = "/home"; - mountOptions = [ "compress=zstd:1" "noatime" ]; - }; - "@nix" = { - mountpoint = "/nix"; - mountOptions = [ "compress=zstd:1" "noatime" ]; - }; - "@log" = { - mountpoint = "/var/log"; - mountOptions = [ "compress=zstd:1" "noatime" ]; - }; - "@vms" = { - mountpoint = "/vms"; - mountOptions = [ "nodatacow" "noatime" ]; - }; - "@swap" = { - mountpoint = "/.swapvol"; - mountOptions = [ "nodatacow" "noatime" ]; + type = "luks"; + name = "crypted"; + settings = { + allowDiscards = true; + }; + content = { + type = "btrfs"; + extraArgs = [ "-f" ]; + subvolumes = { + "@" = { + mountpoint = "/"; + mountOptions = [ + "compress=zstd:1" + "noatime" + ]; + }; + "@home" = { + mountpoint = "/home"; + mountOptions = [ + "compress=zstd:1" + "noatime" + ]; + }; + "@nix" = { + mountpoint = "/nix"; + mountOptions = [ + "compress=zstd:1" + "noatime" + ]; + }; + "@log" = { + mountpoint = "/var/log"; + mountOptions = [ + "compress=zstd:1" + "noatime" + ]; + }; + "@vms" = { + mountpoint = "/vms"; + mountOptions = [ + "nodatacow" + "noatime" + ]; + }; + "@swap" = { + mountpoint = "/.swapvol"; + mountOptions = [ + "nodatacow" + "noatime" + ]; + }; }; }; }; diff --git a/hosts/thinkpad/home.nix b/hosts/thinkpad/home.nix index 666a3b0..78a39d9 100644 --- a/hosts/thinkpad/home.nix +++ b/hosts/thinkpad/home.nix @@ -37,7 +37,6 @@ }; soft = { browser.brave.enable = true; - kdeconnect.enable = true; media.enable = true; mpv.enable = true; nixcord.enable = true; diff --git a/os/core/drivers.nix b/os/core/drivers.nix index 3bb2291..b674c9a 100644 --- a/os/core/drivers.nix +++ b/os/core/drivers.nix @@ -1,4 +1,10 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + inputs, + ... +}: let cfg = config.os.core.drivers; in @@ -7,41 +13,46 @@ in enable = lib.mkEnableOption "enables hardware drivers"; amdgpu.enable = lib.mkEnableOption "AMD specific drivers and microcode"; stability = lib.mkOption { - type = lib.types.enum [ "stable" "unstable" ]; + type = lib.types.enum [ + "stable" + "unstable" + ]; default = "stable"; }; }; - config = lib.mkIf cfg.enable (lib.mkMerge [ - { - programs.coolercontrol.enable = true; - services.lact.enable = true; - services.smartd.enable = true; - hardware.sensor.iio.enable = true; - hardware.enableAllFirmware = true; - hardware.cpu.amd.updateMicrocode = true; - hardware.graphics = { - enable = true; - enable32Bit = true; - extraPackages = with pkgs; [ - rocmPackages.clr.icd - ]; - }; - environment.systemPackages = [ pkgs.rivalcfg ]; - } + config = lib.mkIf cfg.enable ( + lib.mkMerge [ + { + programs.coolercontrol.enable = true; + services.lact.enable = true; + services.smartd.enable = true; + hardware.sensor.iio.enable = true; + hardware.enableAllFirmware = true; + hardware.cpu.amd.updateMicrocode = true; + hardware.graphics = { + enable = true; + enable32Bit = true; + extraPackages = with pkgs; [ + rocmPackages.clr.icd + ]; + }; + environment.systemPackages = [ pkgs.rivalcfg ]; + } - (lib.mkIf cfg.amdgpu.enable { - hardware.amdgpu = { - initrd.enable = true; - overdrive.enable = true; - }; - # boot.kernelParams = [ "amdgpu.gpu_recovery=1" ]; - }) + (lib.mkIf cfg.amdgpu.enable { + hardware.amdgpu = { + initrd.enable = true; + overdrive.enable = true; + }; + }) - (lib.mkIf (cfg.amdgpu.enable && cfg.stability == "unstable") { - }) + (lib.mkIf (cfg.amdgpu.enable && cfg.stability == "unstable") { + boot.kernelPackages = inputs.kernelv.legacyPackages.x86_64-linux.linuxPackages_6_17; + }) - (lib.mkIf (cfg.amdgpu.enable && cfg.stability == "stable") { - boot.kernelPackages = pkgs.linuxPackages_6_12; - }) - ]); + (lib.mkIf (cfg.amdgpu.enable && cfg.stability == "stable") { + boot.kernelPackages = pkgs.linuxPackages_latest; + }) + ] + ); } diff --git a/os/core/home-manager.nix b/os/core/home-manager.nix index 32b39b8..63f3dfd 100644 --- a/os/core/home-manager.nix +++ b/os/core/home-manager.nix @@ -1,4 +1,10 @@ -{ inputs, config, lib, username, ... }: +{ + inputs, + config, + lib, + username, + ... +}: let cfg = config.os.core.home-manager; in @@ -9,16 +15,18 @@ in enable = lib.mkEnableOption "home Manager configuration"; users = lib.mkOption { - default = {}; + 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"; + 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 cfg.enable { diff --git a/os/core/networking.nix b/os/core/networking.nix index 32a5b47..bf611a3 100644 --- a/os/core/networking.nix +++ b/os/core/networking.nix @@ -13,7 +13,8 @@ in }; firewall = { enable = true; - allowedTCPPorts = [ 22 ]; + allowedTCPPorts = [ 7960 ]; + allowedUDPPorts = [ 7960 ]; }; }; systemd.services."NetworkManager-wait-online".enable = false; diff --git a/os/srv/gaming.nix b/os/srv/gaming.nix index 16ef9f1..9ae0efe 100644 --- a/os/srv/gaming.nix +++ b/os/srv/gaming.nix @@ -1,4 +1,10 @@ -{ config, lib, pkgs, username, ... }: +{ + config, + lib, + pkgs, + username, + ... +}: let cfg = config.os.srv.gaming; in @@ -10,7 +16,10 @@ in }; config = lib.mkMerge [ (lib.mkIf cfg.enable { - programs.gamescope.enable = true; + programs.gamescope = { + enable = true; + capSysNice = true; + }; programs.gamemode = { enable = true; @@ -23,8 +32,8 @@ in heroic clinfo (prismlauncher.override { - additionalLibs = with pkgs; [ - ocl-icd + additionalLibs = with pkgs; [ + ocl-icd ]; jdks = with pkgs; [ javaPackages.compiler.temurin-bin.jdk-25 ]; }) diff --git a/os/srv/kdeconnect.nix b/os/srv/kdeconnect.nix new file mode 100644 index 0000000..85bb23e --- /dev/null +++ b/os/srv/kdeconnect.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + username, + ... +}: +let + cfg = config.os.srv.kdeconnect; +in +{ + options.os.srv.kdeconnect.enable = lib.mkEnableOption "enables kde connect"; + config = lib.mkIf cfg.enable { + programs.kdeconnect.enable = true; + home-manager.users.${username}.services.kdeconnect = { + enable = true; + indicator = true; + }; + }; +} diff --git a/os/srv/srv.nix b/os/srv/srv.nix index f9280ab..d4b3eef 100644 --- a/os/srv/srv.nix +++ b/os/srv/srv.nix @@ -9,6 +9,7 @@ ./kvm.nix ./nix-helper.nix ./ollama.nix + ./kdeconnect.nix ./zzz.nix ]; } diff --git a/os/wm/niri.nix b/os/wm/niri.nix index 248ab9e..58d27af 100644 --- a/os/wm/niri.nix +++ b/os/wm/niri.nix @@ -1,4 +1,11 @@ -{ inputs, config, lib, username, ... }: +{ + inputs, + config, + lib, + username, + pkgs, + ... +}: let cfg = config.os.wm.niri; in @@ -8,11 +15,11 @@ in options.os.wm.niri.enable = lib.mkEnableOption "Niri"; config = lib.mkIf cfg.enable { - # nixpkgs.overlays = [ inputs.niri.overlays.niri ]; + nixpkgs.overlays = [ inputs.niri.overlays.niri ]; programs.niri = { enable = true; - # package = pkgs.niri-unstable; + package = pkgs.niri-unstable; }; os.srv.compat.enable = true; diff --git a/os/wm/wm.nix b/os/wm/wm.nix index 3d72103..a9046bb 100644 --- a/os/wm/wm.nix +++ b/os/wm/wm.nix @@ -1,4 +1,9 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.os.wm; in @@ -8,16 +13,26 @@ in ]; options.os.wm.enable = lib.mkEnableOption "enables shared wm features"; + config = lib.mkIf cfg.enable { services.dbus.enable = true; xdg.portal = { enable = true; xdgOpenUsePortal = true; - extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; - config.common = { - "org.freedesktop.impl.portal.ScreenCast" = "gnome"; - "default" = [ "gtk" ]; + + extraPortals = [ + pkgs.xdg-desktop-portal-gnome + pkgs.xdg-desktop-portal-gtk + ]; + + config = { + common.default = [ "gtk" ]; + niri = { + "org.freedesktop.impl.portal.ScreenCast" = [ "gnome" ]; + "org.freedesktop.impl.portal.Screenshot" = [ "gnome" ]; + "default" = [ "gtk" ]; + }; }; }; }; |
