summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradikro <adikro@disroot.org>2026-01-19 11:43:42 +0100
committeradikro <adikro@disroot.org>2026-01-19 11:43:42 +0100
commitd2571482b4eb5660fd92727efb4e5254df06e45e (patch)
treeb94282d6f250a82587c25689cba8a1dc1a2f2d96
parent760a0edc2937fab375898bbd2f2a3011eb8c9756 (diff)
a lot of changes
-rw-r--r--flake.lock107
-rw-r--r--flake.nix50
-rw-r--r--hm/editors/nixvim.nix108
-rw-r--r--hm/env/niri/binds.nix58
-rw-r--r--hm/shell/cli.nix1
-rw-r--r--hm/soft/kdeconnect.nix11
-rw-r--r--hm/soft/media.nix1
-rw-r--r--hm/soft/nixcord.nix150
-rw-r--r--hm/soft/obs.nix9
-rw-r--r--hm/soft/soft.nix1
-rw-r--r--hosts/desktop/configuration.nix31
-rw-r--r--hosts/desktop/home.nix4
-rw-r--r--hosts/laptop/configuration.nix7
-rw-r--r--hosts/laptop/home.nix1
-rw-r--r--hosts/thinkpad/configuration.nix16
-rw-r--r--hosts/thinkpad/disko.nix81
-rw-r--r--hosts/thinkpad/home.nix1
-rw-r--r--os/core/drivers.nix75
-rw-r--r--os/core/home-manager.nix26
-rw-r--r--os/core/networking.nix3
-rw-r--r--os/srv/gaming.nix17
-rw-r--r--os/srv/kdeconnect.nix19
-rw-r--r--os/srv/srv.nix1
-rw-r--r--os/wm/niri.nix13
-rw-r--r--os/wm/wm.nix25
25 files changed, 550 insertions, 266 deletions
diff --git a/flake.lock b/flake.lock
index 0cc4e64..9237fd7 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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": {
diff --git a/flake.nix b/flake.nix
index 1059a42..ca0c328 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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" ];
+ };
};
};
};