summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradikro <adikro@disroot.org>2026-02-03 22:58:50 +0100
committeradikro <adikro@disroot.org>2026-02-03 22:58:50 +0100
commiteb95abfc230dc239122f1e89e90cd9a998491a2f (patch)
tree9d60efacf83b97059f6300e360be2248f8e9c57e
parente5036417abe5d3597792f869e2831decd50eba5d (diff)
...
-rw-r--r--flake.lock96
-rw-r--r--flake.nix78
-rw-r--r--hm/editors/nixvim.nix255
-rw-r--r--hm/env/niri/binds.nix247
-rw-r--r--hm/env/niri/niri.nix32
-rw-r--r--hm/env/screenshot.nix12
-rw-r--r--hm/env/waybar.nix14
-rw-r--r--hm/shell/cli.nix46
-rw-r--r--hm/soft/browser.nix114
-rw-r--r--hm/soft/media.nix15
-rw-r--r--hm/soft/nixcord.nix12
-rw-r--r--hosts/desktop/configuration.nix23
-rw-r--r--hosts/desktop/home.nix18
-rw-r--r--hosts/laptop/configuration.nix20
-rw-r--r--hosts/oci/configuration.nix95
-rw-r--r--hosts/oci/disko.nix104
-rw-r--r--hosts/oci/home.nix73
-rw-r--r--hosts/thinkpad/configuration.nix22
-rw-r--r--hosts/thinkpad/disko.nix31
-rw-r--r--hosts/vm/configuration.nix95
-rw-r--r--hosts/vm/disko.nix104
-rw-r--r--hosts/vm/home.nix73
-rw-r--r--os/core/audio.nix39
-rw-r--r--os/core/bootloader.nix91
-rw-r--r--os/core/drivers.nix81
-rw-r--r--os/core/power.nix56
-rw-r--r--os/srv/kdeconnect.nix8
27 files changed, 750 insertions, 1104 deletions
diff --git a/flake.lock b/flake.lock
index f2200e2..1f8dd44 100644
--- a/flake.lock
+++ b/flake.lock
@@ -59,11 +59,11 @@
]
},
"locked": {
- "lastModified": 1768135262,
- "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
+ "lastModified": 1769996383,
+ "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
+ "rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
"type": "github"
},
"original": {
@@ -157,11 +157,11 @@
]
},
"locked": {
- "lastModified": 1769622371,
- "narHash": "sha256-Cs1/+P3ntxl9mOIL7/QtItBAzQJ2xjvTMHv7qw0nFV0=",
+ "lastModified": 1769978395,
+ "narHash": "sha256-gj1yP3spUb1vGtaF5qPhshd2j0cg4xf51pklDsIm19Q=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "02d763228d8aff317e6e5a319474b6d4d9d826a5",
+ "rev": "984708c34d3495a518e6ab6b8633469bbca2f77a",
"type": "github"
},
"original": {
@@ -196,11 +196,11 @@
]
},
"locked": {
- "lastModified": 1769558677,
- "narHash": "sha256-Fm3HxKGYbZXI2vktMAU7ODLMzkq6X9x20cd8A9wb4cY=",
+ "lastModified": 1770128147,
+ "narHash": "sha256-R132VbY2fTbTBk96e7XX2Mis8jKhkpdDq8xHt5lUGTw=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
- "rev": "895a9a1b269f662da852832bde52863882c7a253",
+ "rev": "7c11c6be010c28eef42f564c383741f4a2678491",
"type": "github"
},
"original": {
@@ -212,11 +212,11 @@
"neovim-src": {
"flake": false,
"locked": {
- "lastModified": 1769556336,
- "narHash": "sha256-Ex7TnHo8DQLGpLB9OdrCMaqsHIlnSYNUx1cJOR+HfO8=",
+ "lastModified": 1770059021,
+ "narHash": "sha256-VgKBxczgdh+MHdKCpaC4MjZgco9CDYfLdyADKFn6IHE=",
"owner": "neovim",
"repo": "neovim",
- "rev": "027b7d6bbb4f164b95f1588b250a02020d85b029",
+ "rev": "19eb75831b931b7cbe6a95323f941f2836592f02",
"type": "github"
},
"original": {
@@ -237,11 +237,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
- "lastModified": 1769582851,
- "narHash": "sha256-T2a9J3iZ+p+dSmrd8mGgehvXrzwnFlMF22BmBqYHkVg=",
+ "lastModified": 1770133761,
+ "narHash": "sha256-3/2F3IfdyEz9ot0NytsVymt5Ma54EBBWcAc3CJKQFPE=",
"owner": "sodiboo",
"repo": "niri-flake",
- "rev": "8942525e9d5c79f6b47cffef4992454c9b3f9b69",
+ "rev": "c44eff590edaff58ef9e34ecf38f6fbccb1be647",
"type": "github"
},
"original": {
@@ -270,11 +270,11 @@
"niri-unstable": {
"flake": false,
"locked": {
- "lastModified": 1769577126,
- "narHash": "sha256-v9vz9Rj4MGwPuhGELdvpRKl2HH+xvkgat6VwL0L86Fg=",
+ "lastModified": 1770092965,
+ "narHash": "sha256-++K1ftjwPqMJzIO8t2GsdkYQzC2LLA5A1w21Uo+SLz4=",
"owner": "YaLTeR",
"repo": "niri",
- "rev": "f30db163b5748e8cf95c05aba77d0d3736f40543",
+ "rev": "189917c93329c86ac2ddd89f459c26a028d590ba",
"type": "github"
},
"original": {
@@ -292,11 +292,11 @@
]
},
"locked": {
- "lastModified": 1769588191,
- "narHash": "sha256-h+OoQvvlx2q0XOxIa1j7YmkcGeUVDK0feh/p7txpmCk=",
+ "lastModified": 1770079495,
+ "narHash": "sha256-QQIkfywgOnkfaMLT/rjxaS9XSPNvTRwOHN1o3+lJHHE=",
"owner": "KaylorBen",
"repo": "nixcord",
- "rev": "924198119c361aa8d5817188bd06c659ab99339c",
+ "rev": "ffe541f2ec948f55fd16a069040d505b810a814f",
"type": "github"
},
"original": {
@@ -307,11 +307,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1769461804,
- "narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=",
+ "lastModified": 1770115704,
+ "narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d",
+ "rev": "e6eae2ee2110f3d31110d5c222cd395303343b08",
"type": "github"
},
"original": {
@@ -338,11 +338,11 @@
},
"nixpkgs-stable": {
"locked": {
- "lastModified": 1769318308,
- "narHash": "sha256-Mjx6p96Pkefks3+aA+72lu1xVehb6mv2yTUUqmSet6Q=",
+ "lastModified": 1770056022,
+ "narHash": "sha256-yvCz+Qmci1bVucXEyac3TdoSPMtjqVJmVy5wro6j/70=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "1cd347bf3355fce6c64ab37d3967b4a2cb4b878c",
+ "rev": "d04d8548aed39902419f14a8537006426dc1e4fa",
"type": "github"
},
"original": {
@@ -377,11 +377,11 @@
"systems": "systems"
},
"locked": {
- "lastModified": 1769537308,
- "narHash": "sha256-N7famD4s2hiDIicr9mJWhUj8l9EULB60+1QN/S+UjeM=",
+ "lastModified": 1770025103,
+ "narHash": "sha256-Qlb19PP0n6s+v1MywVjROV5XwsCvA58XXiXHk0Govb4=",
"owner": "nix-community",
"repo": "nixvim",
- "rev": "7addac6d111837217c16762968a9042eac703f7e",
+ "rev": "31c3b3687dc85e3fbbf5c44728a5ee231608f8a9",
"type": "github"
},
"original": {
@@ -398,11 +398,11 @@
]
},
"locked": {
- "lastModified": 1769626081,
- "narHash": "sha256-K4PUhR4EFstOGd1546IQlpcLe4F6dn0cd9z1z4f1zwI=",
+ "lastModified": 1770143912,
+ "narHash": "sha256-x+YAcvgybyeHMZcjNjKyHG8WBTNetusVO/PCEipPrA4=",
"owner": "nix-community",
"repo": "NUR",
- "rev": "4b19fec1bd8d743b0ca3bea3016aa84ca4115dae",
+ "rev": "5a34f005effc58a448900b9e16b9dd15373e85eb",
"type": "github"
},
"original": {
@@ -475,11 +475,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
- "lastModified": 1768801657,
- "narHash": "sha256-/9a6lwyYkGAEi9MMqQAncHxu2Xsu1wluhQJItHZrDhk=",
+ "lastModified": 1770046271,
+ "narHash": "sha256-OE/d7E4g7BfPpL0PMG8B5AuGLA8/IPItG/h7+YZyBoU=",
"owner": "gabm",
"repo": "Satty",
- "rev": "755cfae367852378c382cbb5bc76eed424eb1c95",
+ "rev": "69305902cb5cfc55bc7d3e2de36ab2df26440bad",
"type": "github"
},
"original": {
@@ -496,11 +496,11 @@
"systems": "systems_2"
},
"locked": {
- "lastModified": 1769316930,
- "narHash": "sha256-4EOGHYLpIscwr+6drHE28Qj7NDjjowp2Vd8QkXjdBBE=",
+ "lastModified": 1769986820,
+ "narHash": "sha256-O9OQ44dk9TJdtRIG828DUI54XdkfZET7AlN1RgTsPis=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
- "rev": "b2ce438f386943ef611e196a178af2d79042903b",
+ "rev": "68de6434cfaa8983f3775b858b8b76e7c5dbd29c",
"type": "github"
},
"original": {
@@ -562,11 +562,11 @@
]
},
"locked": {
- "lastModified": 1769374781,
- "narHash": "sha256-ZJ3reEJ8TQaNEfPiEl1uLlktTTogpsQ1DyQhjfOCQTA=",
+ "lastModified": 1770141194,
+ "narHash": "sha256-cgtKNt9t+LlaCKwkVtcVpNeJR8v0jcUDdSzbfmgW5S0=",
"owner": "Alexays",
"repo": "Waybar",
- "rev": "2f9443501403a11e5d7e28ab05801debabefa2a8",
+ "rev": "0d27c093b1b07bbde86fe83a29b2b1d380ac54bd",
"type": "github"
},
"original": {
@@ -595,11 +595,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
- "lastModified": 1769356222,
- "narHash": "sha256-Q0BVubV9ZnmLs506EhBSPglM+YJK56wsQNbeecvWPUo=",
+ "lastModified": 1770083504,
+ "narHash": "sha256-1CB57EPNjZOAjMeFzkG5wbzjuLuKT317alEK6JUf9sc=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
- "rev": "cf14278b92b0a91d01587f09b4b00ea655ae24e6",
+ "rev": "75c9f5e77573b36b8d341c28c0d32e9c9a0a2309",
"type": "github"
},
"original": {
@@ -617,11 +617,11 @@
"rust-overlay": "rust-overlay_2"
},
"locked": {
- "lastModified": 1769620102,
- "narHash": "sha256-dCwy6fTkSV22Und5+Jny5fMW6WlJEsH/hF6ucyNztbc=",
+ "lastModified": 1769971982,
+ "narHash": "sha256-dc8lG9CxtrIk+tOsQx8TJKULQBG27Hoio4O4M/6CxFM=",
"owner": "sxyazi",
"repo": "yazi",
- "rev": "cfd9a22125caf1df72bc34e185157a76bfaf43e5",
+ "rev": "6757fed5aa82bfdcd5ecd52e8f374dc286220cc0",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 80c33a8..ee9cc2f 100644
--- a/flake.nix
+++ b/flake.nix
@@ -63,45 +63,47 @@
};
};
- outputs =
- { self, nixpkgs, ... }@inputs:
- let
- mkHost =
- {
- hostname,
- path,
- user ? "adam",
- }:
- nixpkgs.lib.nixosSystem {
- 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;
- };
- pendrive = mkHost {
- hostname = "pendrive";
- path = ./hosts/pendrive/configuration.nix;
- user = "user";
+ outputs = {
+ self,
+ nixpkgs,
+ nur,
+ ...
+ } @ inputs: let
+ mkHost = {
+ hostname,
+ path,
+ user ? "adam",
+ }:
+ nixpkgs.lib.nixosSystem {
+ specialArgs = {
+ inherit inputs;
+ username = user;
};
+ modules = [
+ path
+ {networking.hostName = hostname;}
+ {nixpkgs.overlays = [nur.overlays.default];}
+ ];
+ };
+ 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;
+ };
+ pendrive = mkHost {
+ hostname = "pendrive";
+ path = ./hosts/pendrive/configuration.nix;
+ user = "user";
};
};
+ };
}
diff --git a/hm/editors/nixvim.nix b/hm/editors/nixvim.nix
index 51fdf95..e46f6e2 100644
--- a/hm/editors/nixvim.nix
+++ b/hm/editors/nixvim.nix
@@ -1,4 +1,10 @@
-{ inputs, config, lib, pkgs, ... }:
+{
+ inputs,
+ config,
+ lib,
+ pkgs,
+ ...
+}:
let
cfg = config.hm.editors.nixvim;
in
@@ -6,8 +12,10 @@ in
imports = [ inputs.nixvim.homeModules.nixvim ];
options.hm.editors.nixvim.enable = lib.mkEnableOption "enables nixvim config framework";
+
config = lib.mkIf cfg.enable {
programs.nixvim = {
+ diagnostics.virtual_text = false;
enable = true;
package = inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default;
@@ -19,21 +27,82 @@ in
globals.mapleader = " ";
+ clipboard = {
+ providers.wl-copy.enable = true;
+ register = "unnamedplus";
+ };
+
+ opts = {
+ number = true;
+ relativenumber = true;
+ termguicolors = true;
+ 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;
+ };
+
keymaps = [
{
- # mode = [ "n" "i" "v" ];
+ mode = [ "" ];
key = "<F1>";
action = "<NOP>";
options.silent = true;
}
{
mode = "n";
+ key = "<leader>gs";
+ action = "<cmd>Neogit<CR>";
+ options.desc = "Neogit Status";
+ }
+ {
+ mode = "n";
key = "<leader>ff";
action = "<cmd>Telescope find_files<CR>";
options.desc = "Find Files";
}
{
mode = "n";
+ key = "gd";
+ action = "<cmd>lua vim.lsp.buf.definition()<CR>";
+ options.desc = "Go to Definition";
+ }
+ {
+ mode = "n";
+ key = "K";
+ action = "<cmd>lua vim.lsp.buf.hover()<CR>";
+ options.desc = "Hover Docs";
+ }
+ {
+ mode = "n";
+ key = "<leader>ca";
+ action = "<cmd>lua vim.lsp.buf.code_action()<CR>";
+ options.desc = "Code Actions";
+ }
+ {
+ mode = "n";
+ key = "<leader>rn";
+ action = "<cmd>lua vim.lsp.buf.rename()<CR>";
+ options.desc = "Rename Symbol";
+ }
+ {
+ mode = "n";
+ key = "<leauer>fs";
+ action = "<cmd>Telescope lsp_document_symbols<CR>";
+ options.desc = "Find Symbols (Functions/Variables)";
+ }
+ {
+ mode = "n";
key = "<leader>fg";
action = "<cmd>Telescope live_grep<CR>";
options.desc = "Live Grep";
@@ -62,14 +131,60 @@ in
action = "<cmd>Trouble diagnostics toggle<CR>";
options.desc = "Toggle Trouble (Diagnostics)";
}
+ {
+ mode = "n";
+ key = "<leader>p";
+ action = "<cmd>Telescope yank_history<CR>";
+ options.desc = "Open Yank History";
+ }
];
- plugins = {
- lualine = {
- enable = true;
- settings.options.theme = "gruvbox-material";
- };
- multicursors.enable = true;
+ plugins = {
+ overseer.enable = true;
+ neotest.enable = true;
+
+ tiny-inline-diagnostic = {
+ enable = true;
+ settings = {
+ preset = "minimal";
+ show_all_diags_on_cursorline = true;
+ options = {
+ multilines = {
+ enabled = true;
+ always_show = true;
+ };
+ };
+ };
+ };
+ comment.enable = true;
+ flash = {
+ enable = true;
+ settings = {
+ search.enabled = true;
+ jump.autojump = true;
+ };
+ };
+ notify = {
+ enable = true;
+ settings.topDown = false;
+ };
+ yanky = {
+ enable = true;
+ settings.ring.history_length = 100;
+ settings.system_clipboard.sync_with_ring = true;
+ };
+ lualine = {
+ enable = true;
+ settings = {
+ options.theme = "gruvbox-material";
+ sections = {
+ lualine_b = [ "diagnostics" ];
+ lualine_c = [ "filename" ];
+ lualine_x = [ "filetype" ];
+ };
+ };
+ };
+
treesitter-context = {
enable = true;
settings = {
@@ -77,87 +192,75 @@ in
trim_scope = "outer";
};
};
- oil.enable = true;
- persistence.enable = true;
- nvim-autopairs.enable = true;
- neoscroll.enable = true;
- bufferline.enable = true;
- web-devicons.enable = true;
+ oil.enable = true;
+ nvim-autopairs.enable = true;
+ neoscroll.enable = true;
+ bufferline.enable = true;
+ web-devicons.enable = true;
+ lsp-kind.enable = true;
- blink-cmp.enable = true;
- gitsigns.enable = true;
- which-key.enable = true;
- harpoon = {
- enable = true;
- enableTelescope = true;
- };
- toggleterm.enable = true;
- treesitter = {
- enable = true;
- };
- telescope = {
- enable = true;
- extensions = {
- fzf-native = {
- enable = true;
- };
+ blink-cmp = {
+ enable = true;
+ settings = {
+ keymap = {
+ preset = "default";
+ "<C-space>" = [
+ "show"
+ "show_documentation"
+ "hide"
+ ];
+ "<CR>" = [
+ "accept"
+ "fallback"
+ ];
+ "<Tab>" = [
+ "select_next"
+ "fallback"
+ ];
+ "<S-Tab>" = [
+ "select_prev"
+ "fallback"
+ ];
};
};
+ };
+ gitsigns.enable = true;
+ which-key.enable = true;
+ harpoon = {
+ enable = true;
+ enableTelescope = true;
+ };
+ toggleterm.enable = true;
+ treesitter.enable = true;
+ telescope = {
+ enable = true;
+ extensions.fzf-native.enable = true;
+ };
noice.enable = true;
dressing.enable = true;
- trouble.enable = true;
+
conform-nvim = {
enable = true;
- settings.format_on_save = {
- lsp_fallback = true;
- timeout_ms = 500;
+ settings = {
+ formatters_by_ft = {
+ nix = [ "alejandra" ];
+ };
+ format_on_save = {
+ lsp_fallback = true;
+ timeout_ms = 500;
+ };
};
};
- # notify = {
- # enable = true;
- # settings = {
- # backgroundColour = "#1e1e2e";
- # fps = 60;
- # render = "default";
- # timeout = 500;
- # topDown = true;
- # };
- # };
-
- nix.enable = true;
- lsp = {
- enable = true;
- servers = {
+ lsp = {
+ enable = true;
+ servers = {
+ zls.enable = true;
+ zls.package = pkgs.zls;
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/hm/env/niri/binds.nix b/hm/env/niri/binds.nix
index 4cf92e0..fd46c17 100644
--- a/hm/env/niri/binds.nix
+++ b/hm/env/niri/binds.nix
@@ -4,147 +4,156 @@
pkgs,
...
}:
-with config.lib.niri.actions;
-let
+with config.lib.niri.actions; let
playerctl = spawn "${pkgs.playerctl}/bin/playerctl";
ss = "${toString config.hm.conf.xdg-dirs.mediaPath}/pics/ss/$(date +%Y-%m-%d_%H-%M-%S)";
in
-{
- "Mod+O" = {
- action = toggle-overview;
- repeat = false;
- };
- "Mod+Slash".action = show-hotkey-overlay;
+ {
+ "Mod+O" = {
+ action = toggle-overview;
+ repeat = false;
+ };
+ "Mod+Slash".action = show-hotkey-overlay;
- XF86AudioRaiseVolume.action = playerctl "volume" "0.03+";
- XF86AudioLowerVolume.action = playerctl "volume" "0.03-";
- XF86AudioMute.action = spawn "sh" "-c" ''
- wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && \
- wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
- '';
- # XF86Tools.action = spawn "sh" "-c" ''
- # wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && \
- # wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
- # '';
- "XF86Tools" = {
- action = spawn "sh" "-c" ''
- pkill -9 firefox || true
- swaylock -f
- wpctl set-mute @DEFAULT_AUDIO_SINK@ 1
- wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 1
- niri msg action power-off-monitors
+ XF86AudioRaiseVolume.action = playerctl "volume" "0.03+";
+ XF86AudioLowerVolume.action = playerctl "volume" "0.03-";
+ XF86AudioMute.action = spawn "sh" "-c" ''
+ wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && \
+ wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
+ '';
+ XF86Tools.action = spawn "sh" "-c" ''
+ wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && \
+ wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
'';
- repeat = false;
- };
- "Mod+WheelScrollDown".action = focus-column-right;
- "Mod+WheelScrollUp".action = focus-column-left;
- "Mod+Shift+WheelScrollDown".action = move-column-right;
- "Mod+Shift+WheelScrollUp".action = move-column-left;
+ "Mod+WheelScrollDown".action = focus-column-right;
+ "Mod+WheelScrollUp".action = focus-column-left;
+ "Mod+Shift+WheelScrollDown".action = move-column-right;
+ "Mod+Shift+WheelScrollUp".action = move-column-left;
- "Super+WheelScrollDown".action = focus-workspace-down;
- "Super+WheelScrollUp".action = focus-workspace-up;
- "Super+Shift+WheelScrollDown".action = move-window-down-or-to-workspace-down;
- "Super+Shift+WheelScrollUp".action = move-window-up-or-to-workspace-up;
+ "Super+WheelScrollDown".action = focus-workspace-down;
+ "Super+WheelScrollUp".action = focus-workspace-up;
+ "Super+Shift+WheelScrollDown".action = move-window-down-or-to-workspace-down;
+ "Super+Shift+WheelScrollUp".action = move-window-up-or-to-workspace-up;
- XF86Launch5.action = consume-or-expel-window-right;
- XF86Launch6.action = consume-or-expel-window-left;
- XF86Launch7.action = switch-preset-column-width;
+ XF86Launch5.action = consume-or-expel-window-right;
+ XF86Launch6.action = consume-or-expel-window-left;
+ XF86Launch7.action = switch-preset-column-width;
- "Super+Shift+L".action = spawn "swaylock" "-f";
- XF86AudioPlay.action = playerctl "play-pause";
- XF86AudioPrev.action = playerctl "previous";
- XF86AudioNext.action = playerctl "next";
+ "Super+Shift+L".action = spawn "swaylock" "-f";
+ XF86AudioPlay.action = playerctl "play-pause";
+ XF86AudioPrev.action = playerctl "previous";
+ XF86AudioNext.action = playerctl "next";
- "Mod+Minus".action = set-column-width "-10%";
- "Mod+Equal".action = set-column-width "+10%";
+ "Mod+Minus".action = set-column-width "-10%";
+ "Mod+Equal".action = set-column-width "+10%";
- "Mod+Shift+Minus".action = set-window-height "-10%";
- "Mod+Shift+Equal".action = set-window-height "+10%";
+ "Mod+Shift+Minus".action = set-window-height "-10%";
+ "Mod+Shift+Equal".action = set-window-height "+10%";
- "Mod+Shift+V".action = toggle-window-floating;
- "Mod+W".action = toggle-column-tabbed-display;
+ "Mod+Shift+V".action = toggle-window-floating;
+ "Mod+W".action = toggle-column-tabbed-display;
- "Mod+XF86Launch7" = {
- action = spawn "sh" "-c" ''
- grim -g "$(slurp)" - | tee ${ss}.png | wl-copy
- '';
- repeat = false;
- };
- "Mod+Shift+XF86Launch7" = {
- action = spawn "sh" "-c" ''
- grim -g "$(slurp)" ${ss}.png
- satty --filename "${ss}.png" --output-filename "${ss}-edited.png"
- '';
- repeat = false;
- };
+ "Mod+XF86Launch7" = {
+ action = spawn "sh" "-c" ''
+ wayfreeze &
+ sleep 0.1
+ GEOM=$(slurp)
+ if [ -n "$GEOM" ]; then
+ grim -g "$GEOM" - | tee ${ss}.png | wl-copy
+ fi
+ pkill -n wayfreeze
+ '';
+ repeat = false;
+ };
- "Mod+S" = {
- action = spawn "sh" "-c" ''
- grim -g "$(slurp)" - | tee ${ss}.png | wl-copy
- '';
- repeat = false;
- };
+ "Mod+Shift+XF86Launch7" = {
+ action = spawn "sh" "-c" ''
+ wayfreeze &
+ sleep 0.1
+ GEOM=$(slurp)
+ if [ -n "$GEOM" ]; then
+ grim -g "$GEOM" -t ppm - | satty --filename - --output-filename "${ss}-edited.png"
+ fi
+ pkill -n wayfreeze
+ '';
+ repeat = false;
+ };
- "Mod+Shift+S" = {
- action = spawn "sh" "-c" ''
- grim -g "$(slurp)" ${ss}.png
- satty --filename "${ss}.png" --output-filename "${ss}-edited.png"
- '';
- repeat = false;
- };
+ "Mod+S" = {
+ action = spawn "sh" "-c" ''
+ wayfreeze &
+ sleep 0.1
+ GEOM=$(slurp)
+ if [ -n "$GEOM" ]; then
+ grim -g "$GEOM" - | tee ${ss}.png | wl-copy
+ fi
+ pkill -n wayfreeze
+ '';
+ repeat = false;
+ };
- "Mod+Shift+D".action = spawn "sh" "-c" ''
- cliphist list | fuzzel --dmenu | cliphist decode | wl-copy
- '';
+ "Mod+Shift+S" = {
+ action = spawn "sh" "-c" ''
+ wayfreeze &
+ sleep 0.1
+ GEOM=$(slurp)
+ if [ -n "$GEOM" ]; then
+ grim -g "$GEOM" -t ppm - | satty --filename - --output-filename "${ss}-edited.png"
+ fi
+ pkill -n wayfreeze
+ '';
+ repeat = false;
+ };
- "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+Shift+D".action = spawn "sh" "-c" ''
+ cliphist list | fuzzel --dmenu | cliphist decode | wl-copy
+ '';
- "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+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+Comma".action = consume-window-into-column;
- "Mod+Period".action = expel-window-from-column;
+ "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+Shift+E".action = quit;
+ "Mod+Comma".action = consume-window-into-column;
+ "Mod+Period".action = expel-window-from-column;
- "Mod+H".action = focus-column-left;
- "Mod+L".action = focus-column-right;
- "Mod+J".action = focus-workspace-down;
- "Mod+K".action = focus-workspace-up;
+ "Mod+Shift+E".action = quit;
- "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;
+ "Mod+H".action = focus-column-left;
+ "Mod+L".action = focus-column-right;
+ "Mod+J".action = focus-workspace-down;
+ "Mod+K".action = focus-workspace-up;
- "Mod+Shift+Q".action = close-window;
+ "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;
- "Super+Return".action = spawn "obs-cmd" "replay" "save";
+ "Mod+Shift+Q".action = close-window;
-}
-// (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)
-))
+ "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)
+ ))
diff --git a/hm/env/niri/niri.nix b/hm/env/niri/niri.nix
index b751d3d..3f66f6e 100644
--- a/hm/env/niri/niri.nix
+++ b/hm/env/niri/niri.nix
@@ -1,8 +1,11 @@
-{ config, lib, pkgs, ... }:
-let
- cfg = config.hm.env.niri;
-in
{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.hm.env.niri;
+in {
options.hm.env.niri.enable = lib.mkEnableOption "niri hm";
config = lib.mkIf cfg.enable {
hm.env = {
@@ -15,9 +18,8 @@ in
programs.niri.settings = {
debug.disable-cursor-plane = [];
- binds = import ./binds.nix { inherit config lib pkgs; };
+ binds = import ./binds.nix {inherit config lib pkgs;};
- # animations.enable = false;
prefer-no-csd = true;
hotkey-overlay.skip-at-startup = true;
input = {
@@ -53,7 +55,6 @@ in
cursor = {
hide-when-typing = true;
size = 48;
- theme = "miyabi";
};
layout = {
empty-workspace-above-first = true;
@@ -66,14 +67,14 @@ in
# active = <decoration>;
};
preset-column-widths = [
- { proportion = 1. / 3.; }
- { proportion = 1. / 2.; }
- { proportion = 2. / 3.; }
+ {proportion = 1. / 3.;}
+ {proportion = 1. / 2.;}
+ {proportion = 2. / 3.;}
];
preset-window-heights = [
- { proportion = 1. / 3.; }
- { proportion = 1. / 2.; }
- { proportion = 2. / 3.; }
+ {proportion = 1. / 3.;}
+ {proportion = 1. / 2.;}
+ {proportion = 2. / 3.;}
];
default-column-width.proportion = 0.5;
tab-indicator = {
@@ -84,15 +85,14 @@ in
window-rules = [
{
matches = [
- { app-id = "Bitwarden"; }
+ {app-id = "Bitwarden";}
];
block-out-from = "screen-capture";
}
];
gestures.hot-corners.enable = false;
spawn-at-startup = [
- { command = [ "waybar" ]; }
- { command = [ "obs" "--disable-missing-files-check" "--startreplaybuffer" ]; }
+ {command = ["obs" "--disable-missing-files-check" "--startreplaybuffer"];}
];
};
home.packages = with pkgs; [
diff --git a/hm/env/screenshot.nix b/hm/env/screenshot.nix
index e61e3de..eac2fe7 100644
--- a/hm/env/screenshot.nix
+++ b/hm/env/screenshot.nix
@@ -1,14 +1,18 @@
-{ config, lib, pkgs, ... }:
-let
- cfg = config.hm.env.screenshot;
-in
{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.hm.env.screenshot;
+in {
options.hm.env.screenshot.enable = lib.mkEnableOption "enables screenshot utilities";
config = lib.mkIf cfg.enable {
programs.satty = {
enable = true;
};
home.packages = with pkgs; [
+ wayfreeze
grim
slurp
];
diff --git a/hm/env/waybar.nix b/hm/env/waybar.nix
index 182a4fb..b75cc91 100644
--- a/hm/env/waybar.nix
+++ b/hm/env/waybar.nix
@@ -1,12 +1,18 @@
-{ config, lib, ... }:
-let
- cfg = config.hm.env.waybar;
-in
{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.hm.env.waybar;
+in {
options.hm.env.waybar.enable = lib.mkEnableOption "enables waybar";
config = lib.mkIf cfg.enable {
programs.waybar = {
enable = true;
+ systemd = {
+ enable = true;
+ target = "graphical-session.target";
+ };
};
};
}
diff --git a/hm/shell/cli.nix b/hm/shell/cli.nix
index b02922b..142fda5 100644
--- a/hm/shell/cli.nix
+++ b/hm/shell/cli.nix
@@ -3,16 +3,14 @@
lib,
pkgs,
...
-}:
-let
+}: let
cfg = config.hm.shell.cli;
-in
-{
+in {
options.hm.shell.cli.enable = lib.mkEnableOption "modern cli tools";
config = lib.mkIf cfg.enable {
programs.zoxide = {
enable = true;
- options = [ "--cmd cd" ];
+ options = ["--cmd cd"];
};
programs.bat = {
enable = true;
@@ -25,7 +23,43 @@ in
programs.ripgrep.enable = true;
programs.yazi.enable = true;
programs.btop.enable = true;
- programs.fastfetch.enable = true;
+ programs.fastfetch = {
+ enable = true;
+ settings = {
+ display = {
+ size = {
+ binaryPrefix = "iec";
+ };
+ separator = " ï…¸ ";
+ };
+ multithreading = true;
+ modules = [
+ "title"
+ "separator"
+ "os"
+ {
+ type = "command";
+ key = "Generation";
+ text = "readlink /nix/var/nix/profiles/system | cut -d- -f2";
+ }
+ "kernel"
+ "uptime"
+ "processes"
+ "shell"
+ "display"
+ "wm"
+ "terminal"
+ "cpu"
+ "gpu"
+ "memory"
+ "swap"
+ "disk"
+ "localip"
+ "break"
+ "colors"
+ ];
+ };
+ };
programs.direnv.enable = true;
programs.jq.enable = true;
programs.nix-your-shell = {
diff --git a/hm/soft/browser.nix b/hm/soft/browser.nix
index 72f13c3..a9a2f1b 100644
--- a/hm/soft/browser.nix
+++ b/hm/soft/browser.nix
@@ -3,11 +3,9 @@
lib,
pkgs,
...
-}:
-let
+}: let
cfg = config.hm.soft.browser;
-in
-{
+in {
options.hm.soft.browser = {
librewolf.enable = lib.mkEnableOption "LibreWolf browser";
brave.enable = lib.mkEnableOption "Brave browser";
@@ -16,125 +14,23 @@ in
(lib.mkIf cfg.librewolf.enable {
programs.librewolf = {
enable = true;
- profiles = {
- main = {
- isDefault = true;
- name = "main";
- extensions = { };
- bookmarks = {
- force = true;
- settings = [
- {
- name = "Toolbar Root";
- toolbar = true;
- bookmarks = [
- {
- name = "Youtube";
- tags = [ "yt" ];
- keyword = "yt";
- url = "https://www.youtube.com";
- }
- {
- name = "cwel";
- tags = [ "cwel" ];
- keyword = "cwel";
- url = "https://gemini.google.com/app";
- }
- ];
- }
- ];
- };
- search = {
- force = true;
- default = "SearXNG";
- privateDefault = "SearXNG";
- engines = {
- "SearXNG" = {
- urls = [ { template = "https://searx.tiekoetter.com/search?q={searchTerms}"; } ];
- icon = "https://searx.tiekoetter.com/favicon.ico";
- definedAliases = [ "@s" ];
- };
- "Nixos Packages" = {
- urls = [
- {
- template = "https://search.nixos.org/packages";
- params = [
- {
- name = "channel";
- value = "unstable";
- }
- {
- name = "query";
- value = "{searchTerms}";
- }
- ];
- }
- ];
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = [ "@nix" ];
- };
- "HM Options" = {
- urls = [
- {
- template = "https://home-manager-options.extranix.com";
- params = [
- {
- name = "query";
- value = "{searchTerms}";
- }
- {
- name = "release";
- value = "master";
- }
- ];
- }
- ];
- };
- "google".metaData.hidden = true;
- "amazondotcom-us".metaData.hidden = true;
- "bing".metaData.hidden = true;
- "ebay".metaData.hidden = true;
- "duckduckgo".metaData.hidden = true;
- "wikipedia".metaData.hidden = true;
- "perplexity".metaData.hidden = true;
- };
- };
- settings = { };
- };
- };
settings = {
"ui.key.menuAccessKeyFocuses" = false;
"browser.search.update" = false;
"browser.formfill.enable" = false;
"browser.search.suggest.enabled" = false;
"signon.rememberSignons" = false;
-
- "browser.urlbar.suggest.history" = false;
- "browser.urlbar.suggest.bookmark" = false;
- "browser.urlbar.suggest.openpage" = false;
- "browser.urlbar.suggest.engines" = false;
- "browser.urlbar.suggest.topsites" = false;
"browser.urlbar.showSearchTerms.featureGate" = false;
-
"browser.toolbars.bookmarks.visibility" = "always";
- "privacy.clearOnShutdown.cookies" = true;
- "privacy.clearOnShutdown.cache" = true;
-
- "network.cookie.lifetimePolicy" = 0;
- "privacy.cpd.cookies" = true;
-
- # "extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
- # "layout.css.prefers-color-scheme.content-override" = 0;
- # "browser.theme.content-theme" = 0;
- # "browser.theme.toolbar-theme" = 0;
+ # "privacy.clearOnShutdown.cookies" = true;
+ # "privacy.clearOnShutdown.cache" = true;
};
};
- home.packages = [ pkgs.nixos-icons ];
})
(lib.mkIf cfg.brave.enable {
- home.packages = [ pkgs.brave ];
+ home.packages = [pkgs.brave];
})
];
}
diff --git a/hm/soft/media.nix b/hm/soft/media.nix
index 3ea4dfa..8dcd6de 100644
--- a/hm/soft/media.nix
+++ b/hm/soft/media.nix
@@ -1,14 +1,14 @@
-{ config, lib, pkgs, ... }:
-let
- cfg = config.hm.soft.media;
-in
{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.hm.soft.media;
+in {
options.hm.soft.media.enable = lib.mkEnableOption "media cli tools";
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
- krita
- gimp
- zathura
pinta
ffmpeg
imagemagick
@@ -16,4 +16,3 @@ in
];
};
}
-
diff --git a/hm/soft/nixcord.nix b/hm/soft/nixcord.nix
index 77d4adb..e1345b2 100644
--- a/hm/soft/nixcord.nix
+++ b/hm/soft/nixcord.nix
@@ -2,6 +2,7 @@
inputs,
config,
lib,
+ pkgs,
...
}:
let
@@ -12,6 +13,9 @@ in
options.hm.soft.nixcord.enable = lib.mkEnableOption "nixcord configuration";
config = lib.mkIf cfg.enable {
+ home.packages = with pkgs; [
+ equibop
+ ];
programs.nixcord = {
enable = true;
discord = {
@@ -21,10 +25,10 @@ in
vencord.enable = false;
equicord.enable = true;
};
- equibop = {
- enable = true;
- autoscroll.enable = true;
- };
+ # equibop = {
+ # enable = true;
+ # autoscroll.enable = true;
+ # };
config = {
frameless = true;
plugins = {
diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix
index 8c1f0b5..9ea9552 100644
--- a/hosts/desktop/configuration.nix
+++ b/hosts/desktop/configuration.nix
@@ -3,8 +3,7 @@
inputs,
username,
...
-}:
-{
+}: {
system.stateVersion = "25.05";
imports = [
@@ -23,10 +22,14 @@
enable = true;
disable-devices.enable = true;
};
- bootloader = "systemd-boot";
+ bootloader.type = "systemd-boot";
drivers = {
enable = true;
- amdgpu.enable = true;
+ cpu = "amd";
+ graphics = {
+ enable = true;
+ amdgpu.enable = true;
+ };
kernel = "unstable";
};
fonts.enable = true;
@@ -69,7 +72,7 @@
kdeconnect.enable = true;
monero = {
enable = true;
- service.enable = true;
+ # service.enable = true;
};
};
wm = {
@@ -78,18 +81,18 @@
};
};
+ services.zerotierone.enable = true;
+
xdg.terminal-exec = {
enable = true;
settings = {
- default = [ "foot.desktop" ];
+ default = ["foot.desktop"];
};
};
- programs.firefox.enable = true;
-
boot = {
- kernelParams = [ "video=DP-1:2560x1440@240" ];
- kernelModules = [ "nct6687" ];
+ kernelParams = ["video=DP-1:2560x1440@240"];
+ kernelModules = ["nct6687"];
extraModulePackages = [
config.boot.kernelPackages.nct6687d
];
diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix
index f47deb7..5dfb31e 100644
--- a/hosts/desktop/home.nix
+++ b/hosts/desktop/home.nix
@@ -1,6 +1,9 @@
-{ username, pkgs, ... }:
{
- imports = [ ../../hm/default.nix ];
+ username,
+ pkgs,
+ ...
+}: {
+ imports = [../../hm/default.nix];
home = {
username = "${username}";
@@ -59,16 +62,17 @@
};
};
- home.packages = with pkgs.sweethome3d; [
- application
- furniture-editor
+ home.packages = with pkgs; [
+ sweethome3d.application
+ sweethome3d.furniture-editor
+ czkawka
];
xdg.mimeApps = {
enable = true;
defaultApplications = {
- "x-scheme-handler/terminal" = [ "foot.desktop" ];
- "inode/directory" = [ "thunar.desktop" ];
+ "x-scheme-handler/terminal" = ["foot.desktop"];
+ "inode/directory" = ["thunar.desktop"];
};
};
diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix
index 3390af0..304302d 100644
--- a/hosts/laptop/configuration.nix
+++ b/hosts/laptop/configuration.nix
@@ -1,5 +1,4 @@
-{ username, ... }:
-{
+{username, ...}: {
system.stateVersion = "25.05";
imports = [
@@ -12,8 +11,16 @@
allowUnfree.enable = true;
audio.enable = true;
- bootloader = "grub";
- drivers.enable = true;
+ bootloader = {
+ type = "grub";
+ useOSProber = true;
+ grubDevice = "nodev";
+ };
+ drivers = {
+ enable = true;
+ cpu = "amd";
+ graphics.enable = true;
+ };
fonts.enable = true;
greet.enable = true;
home-manager = {
@@ -32,7 +39,10 @@
};
};
network.enable = true;
- power.enable = true;
+ power = {
+ enable = true;
+ mode = "amd";
+ };
security.enable = true;
ssh.enable = true;
storage.enable = true;
diff --git a/hosts/oci/configuration.nix b/hosts/oci/configuration.nix
deleted file mode 100644
index cc3cbf4..0000000
--- a/hosts/oci/configuration.nix
+++ /dev/null
@@ -1,95 +0,0 @@
-{
- config,
- inputs,
- username,
- ...
-}:
-{
- system.stateVersion = "25.05";
-
- imports = [
- inputs.disko.nixosModules.disko
-
- ./hardware-configuration.nix
- ../../os/default.nix
- ];
-
- os = {
- core = {
- allowUnfree.enable = true;
- flatpak.enable = true;
-
- audio = {
- enable = true;
- disable-devices.enable = true;
- };
- bootloader = "systemd-boot";
- drivers = {
- enable = true;
- amdgpu.enable = true;
- stability = "unstable";
- };
- fonts.enable = true;
- greet.enable = true;
- home-manager = {
- enable = true;
- users.${username}.path = ./home.nix;
- };
- locale.enable = true;
- memory = {
- zram = {
- enable = true;
- percent = 25;
- };
- swapfile = {
- enable = true;
- size = 32;
- };
- };
- network.enable = true;
- security.enable = true;
- ssh.enable = true;
- storage.enable = true;
- users.enable = true;
- };
- srv = {
- files = {
- thunar.enable = true;
- krusader.enable = true;
- utils.enable = true;
- };
- gaming = {
- enable = true;
- steam.enable = true;
- vr.enable = true;
- };
- virtualization.enable = true;
- nix-helper.enable = true;
- ollama.enable = true;
- kdeconnect.enable = true;
- monero = {
- enable = true;
- service.enable = true;
- };
- };
- wm = {
- enable = true;
- niri.enable = true;
- };
- };
-
- xdg.terminal-exec = {
- enable = true;
- settings = {
- default = [ "foot.desktop" ];
- };
- };
-
- boot = {
- kernelParams = [ "video=DP-1:2560x1440@240" ];
- kernelModules = [ "nct6687" ];
- extraModulePackages = [
- config.boot.kernelPackages.nct6687d
- ];
- };
-}
diff --git a/hosts/oci/disko.nix b/hosts/oci/disko.nix
deleted file mode 100644
index edc4008..0000000
--- a/hosts/oci/disko.nix
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- disko.devices = {
- disk = {
- main = {
- type = "disk";
- device = "/dev/nvme0n1";
- content = {
- type = "gpt";
- partitions = {
- ESP = {
- size = "2G";
- type = "EF00";
- content = {
- type = "filesystem";
- format = "vfat";
- mountpoint = "/boot";
- mountOptions = [ "umask=0077" ];
- };
- };
- root = {
- 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" ];
- };
- "@games" = {
- mountpoint = "/games";
- mountOptions = [ "compress=zstd:1" "noatime" ];
- };
- "@llms" = {
- mountpoint = "/llms";
- mountOptions = [ "nodatacow" "noatime"];
- };
- "@vms" = {
- mountpoint = "/vms";
- mountOptions = [ "nodatacow" "noatime" ];
- };
- "@swap" = {
- mountpoint = "/.swapvol";
- mountOptions = [ "nodatacow" "noatime" ];
- };
- };
- };
- };
- };
- };
- };
- media = {
- type = "disk";
- device = "/dev/sda";
- content = {
- type = "gpt";
- partitions = {
- media = {
- size = "100%";
- content = {
- type = "btrfs";
- extraArgs = [ "-f" ];
- subvolumes = {
- "@archive" = {
- mountpoint = "/media/archive";
- mountOptions = [ "compress=zstd:1" "autodefrag" "noatime" ];
- };
- "@movies" = {
- mountpoint = "/media/movies";
- mountOptions = [ "autodefrag" "noatime" ];
- };
- "@anime" = {
- mountpoint = "/media/anime";
- mountOptions = [ "autodefrag" "noatime" ];
- };
- "@pictures" = {
- mountpoint = "/media/pics";
- mountOptions = [ "autodefrag" "noatime" ];
- };
- "@videos" = {
- mountpoint = "/media/vids";
- mountOptions = [ "autodefrag" "noatime" ];
- };
- };
- };
- };
- };
- };
- };
- };
- };
-}
diff --git a/hosts/oci/home.nix b/hosts/oci/home.nix
deleted file mode 100644
index e274907..0000000
--- a/hosts/oci/home.nix
+++ /dev/null
@@ -1,73 +0,0 @@
-{ username, ... }:
-{
- imports = [ ../../hm/default.nix ];
-
- home = {
- username = "${username}";
- homeDirectory = "/home/${username}";
- stateVersion = "25.05";
- };
-
- hm = {
- conf = {
- clip = {
- enable = true;
- backend = "wayland";
- };
- git.enable = true;
- xdg-dirs = {
- enable = true;
- mediaPath = /storage;
- };
- };
- editors.nixvim.enable = true;
- env = {
- niri.enable = true;
- cursor = {
- size = 48;
- enableMiyabi = true;
- };
-
- waybar.enable = true;
- themes = {
- enable = true;
- gtk.enable = true;
- qt.enable = true;
- };
- };
- shell = {
- cli.enable = true;
- fish.enable = true;
- foot.enable = true;
- starship.enable = true;
- };
- soft = {
- browser = {
- librewolf.enable = true;
- brave.enable = true;
- };
- email.evolution.enable = true;
- media.enable = true;
- mpv.enable = true;
- nixcord.enable = true;
- obs.enable = true;
- obsidian.enable = true;
- spicetify.enable = true;
- torrent.enable = true;
- vpn.protonvpn.enable = true;
- yt-dlp.enable = true;
- };
- };
-
- xdg.mimeApps = {
- enable = true;
- defaultApplications = {
- "x-scheme-handler/terminal" = [ "foot.desktop" ];
- "inode/directory" = [ "thunar.desktop" ];
- };
- };
-
- home.sessionVariables = {
- XDG_UTILS_TERMINAL = "foot";
- };
-}
diff --git a/hosts/thinkpad/configuration.nix b/hosts/thinkpad/configuration.nix
index 4713892..a38d74b 100644
--- a/hosts/thinkpad/configuration.nix
+++ b/hosts/thinkpad/configuration.nix
@@ -1,5 +1,8 @@
-{ inputs, username, ... }:
{
+ inputs,
+ username,
+ ...
+}: {
system.stateVersion = "25.05";
imports = [
@@ -15,9 +18,16 @@
allowUnfree.enable = true;
audio.enable = true;
- bootloader = "systemd-boot";
+ bootloader = {
+ type = "grub";
+ enableEncryption = true;
+ grubDevice = "/dev/nvme0n1";
+ luksDevice = "/dev/nvme0n1p2";
+ };
drivers = {
enable = true;
+ cpu = "intel";
+ graphics.enable = true;
kernel = "hardened";
};
fonts.enable = true;
@@ -38,7 +48,10 @@
};
};
network.enable = true;
- power.enable = true;
+ power = {
+ enable = true;
+ mode = "intel";
+ };
security.enable = true;
ssh.enable = true;
storage.enable = true;
@@ -52,10 +65,13 @@
};
kdeconnect.enable = true;
nix-helper.enable = true;
+ monero.enable = true;
};
wm = {
enable = true;
niri.enable = true;
};
};
+ services.thinkfan.enable = true;
+ boot.kernelModules = ["thinkpad_acpi"];
}
diff --git a/hosts/thinkpad/disko.nix b/hosts/thinkpad/disko.nix
index f3243d8..97e5c87 100644
--- a/hosts/thinkpad/disko.nix
+++ b/hosts/thinkpad/disko.nix
@@ -7,67 +7,60 @@
content = {
type = "gpt";
partitions = {
- ESP = {
- size = "2G";
- type = "EF00";
- content = {
- type = "filesystem";
- format = "vfat";
- mountpoint = "/boot";
- mountOptions = [ "umask=0077" ];
- };
+ biosboot = {
+ size = "1M";
+ type = "EF02";
};
luks = {
size = "100%";
content = {
type = "luks";
name = "crypted";
- settings = {
- allowDiscards = true;
- };
+ settings.allowDiscards = true;
content = {
type = "btrfs";
- extraArgs = [ "-f" ];
+ extraArgs = ["-f"];
subvolumes = {
- "@" = {
+ "root" = {
mountpoint = "/";
mountOptions = [
"compress=zstd:1"
"noatime"
];
};
- "@home" = {
+ "home" = {
mountpoint = "/home";
mountOptions = [
"compress=zstd:1"
"noatime"
];
};
- "@nix" = {
+ "nix" = {
mountpoint = "/nix";
mountOptions = [
"compress=zstd:1"
"noatime"
];
};
- "@log" = {
+ "log" = {
mountpoint = "/var/log";
mountOptions = [
"compress=zstd:1"
"noatime"
];
};
- "@vms" = {
+ "vms" = {
mountpoint = "/vms";
mountOptions = [
"nodatacow"
"noatime"
];
};
- "@swap" = {
+ "swap" = {
mountpoint = "/.swapvol";
mountOptions = [
"nodatacow"
+ "compress=no"
"noatime"
];
};
diff --git a/hosts/vm/configuration.nix b/hosts/vm/configuration.nix
deleted file mode 100644
index cc3cbf4..0000000
--- a/hosts/vm/configuration.nix
+++ /dev/null
@@ -1,95 +0,0 @@
-{
- config,
- inputs,
- username,
- ...
-}:
-{
- system.stateVersion = "25.05";
-
- imports = [
- inputs.disko.nixosModules.disko
-
- ./hardware-configuration.nix
- ../../os/default.nix
- ];
-
- os = {
- core = {
- allowUnfree.enable = true;
- flatpak.enable = true;
-
- audio = {
- enable = true;
- disable-devices.enable = true;
- };
- bootloader = "systemd-boot";
- drivers = {
- enable = true;
- amdgpu.enable = true;
- stability = "unstable";
- };
- fonts.enable = true;
- greet.enable = true;
- home-manager = {
- enable = true;
- users.${username}.path = ./home.nix;
- };
- locale.enable = true;
- memory = {
- zram = {
- enable = true;
- percent = 25;
- };
- swapfile = {
- enable = true;
- size = 32;
- };
- };
- network.enable = true;
- security.enable = true;
- ssh.enable = true;
- storage.enable = true;
- users.enable = true;
- };
- srv = {
- files = {
- thunar.enable = true;
- krusader.enable = true;
- utils.enable = true;
- };
- gaming = {
- enable = true;
- steam.enable = true;
- vr.enable = true;
- };
- virtualization.enable = true;
- nix-helper.enable = true;
- ollama.enable = true;
- kdeconnect.enable = true;
- monero = {
- enable = true;
- service.enable = true;
- };
- };
- wm = {
- enable = true;
- niri.enable = true;
- };
- };
-
- xdg.terminal-exec = {
- enable = true;
- settings = {
- default = [ "foot.desktop" ];
- };
- };
-
- boot = {
- kernelParams = [ "video=DP-1:2560x1440@240" ];
- kernelModules = [ "nct6687" ];
- extraModulePackages = [
- config.boot.kernelPackages.nct6687d
- ];
- };
-}
diff --git a/hosts/vm/disko.nix b/hosts/vm/disko.nix
deleted file mode 100644
index edc4008..0000000
--- a/hosts/vm/disko.nix
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- disko.devices = {
- disk = {
- main = {
- type = "disk";
- device = "/dev/nvme0n1";
- content = {
- type = "gpt";
- partitions = {
- ESP = {
- size = "2G";
- type = "EF00";
- content = {
- type = "filesystem";
- format = "vfat";
- mountpoint = "/boot";
- mountOptions = [ "umask=0077" ];
- };
- };
- root = {
- 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" ];
- };
- "@games" = {
- mountpoint = "/games";
- mountOptions = [ "compress=zstd:1" "noatime" ];
- };
- "@llms" = {
- mountpoint = "/llms";
- mountOptions = [ "nodatacow" "noatime"];
- };
- "@vms" = {
- mountpoint = "/vms";
- mountOptions = [ "nodatacow" "noatime" ];
- };
- "@swap" = {
- mountpoint = "/.swapvol";
- mountOptions = [ "nodatacow" "noatime" ];
- };
- };
- };
- };
- };
- };
- };
- media = {
- type = "disk";
- device = "/dev/sda";
- content = {
- type = "gpt";
- partitions = {
- media = {
- size = "100%";
- content = {
- type = "btrfs";
- extraArgs = [ "-f" ];
- subvolumes = {
- "@archive" = {
- mountpoint = "/media/archive";
- mountOptions = [ "compress=zstd:1" "autodefrag" "noatime" ];
- };
- "@movies" = {
- mountpoint = "/media/movies";
- mountOptions = [ "autodefrag" "noatime" ];
- };
- "@anime" = {
- mountpoint = "/media/anime";
- mountOptions = [ "autodefrag" "noatime" ];
- };
- "@pictures" = {
- mountpoint = "/media/pics";
- mountOptions = [ "autodefrag" "noatime" ];
- };
- "@videos" = {
- mountpoint = "/media/vids";
- mountOptions = [ "autodefrag" "noatime" ];
- };
- };
- };
- };
- };
- };
- };
- };
- };
-}
diff --git a/hosts/vm/home.nix b/hosts/vm/home.nix
deleted file mode 100644
index e274907..0000000
--- a/hosts/vm/home.nix
+++ /dev/null
@@ -1,73 +0,0 @@
-{ username, ... }:
-{
- imports = [ ../../hm/default.nix ];
-
- home = {
- username = "${username}";
- homeDirectory = "/home/${username}";
- stateVersion = "25.05";
- };
-
- hm = {
- conf = {
- clip = {
- enable = true;
- backend = "wayland";
- };
- git.enable = true;
- xdg-dirs = {
- enable = true;
- mediaPath = /storage;
- };
- };
- editors.nixvim.enable = true;
- env = {
- niri.enable = true;
- cursor = {
- size = 48;
- enableMiyabi = true;
- };
-
- waybar.enable = true;
- themes = {
- enable = true;
- gtk.enable = true;
- qt.enable = true;
- };
- };
- shell = {
- cli.enable = true;
- fish.enable = true;
- foot.enable = true;
- starship.enable = true;
- };
- soft = {
- browser = {
- librewolf.enable = true;
- brave.enable = true;
- };
- email.evolution.enable = true;
- media.enable = true;
- mpv.enable = true;
- nixcord.enable = true;
- obs.enable = true;
- obsidian.enable = true;
- spicetify.enable = true;
- torrent.enable = true;
- vpn.protonvpn.enable = true;
- yt-dlp.enable = true;
- };
- };
-
- xdg.mimeApps = {
- enable = true;
- defaultApplications = {
- "x-scheme-handler/terminal" = [ "foot.desktop" ];
- "inode/directory" = [ "thunar.desktop" ];
- };
- };
-
- home.sessionVariables = {
- XDG_UTILS_TERMINAL = "foot";
- };
-}
diff --git a/os/core/audio.nix b/os/core/audio.nix
index 0290b6c..2454a89 100644
--- a/os/core/audio.nix
+++ b/os/core/audio.nix
@@ -1,8 +1,11 @@
-{ config, lib, pkgs, ... }:
-let
- cfg = config.os.core.audio;
-in
{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.os.core.audio;
+in {
options.os.core.audio = {
enable = lib.mkEnableOption "audio support";
disable-devices.enable = lib.mkEnableOption "disables some random devices cluttering up";
@@ -31,13 +34,29 @@ in
];
})
(lib.mkIf cfg.disable-devices.enable {
- services.pipewire.wireplumber.extraConfig."99-disable-useless-devices"."monitor.alsa.rules" = [{
- matches = [
- { "device.name" = "~alsa_card.pci-0000_03_00.1*"; }
- { "device.description" = "~USB Audio*"; }
+ services.pipewire.wireplumber.extraConfig = {
+ "10-keep-hyperx-alive"."monitor.alsa.rules" = [
+ {
+ matches = [
+ {"device.description" = "~HyperX*";}
+ ];
+ actions.update-props = {
+ "device.disabled" = false;
+ "session.suspend-on-idle" = false;
+ };
+ }
];
- actions.update-props = { "device.disabled" = true; };
- }];
+
+ "99-disable-useless-devices"."monitor.alsa.rules" = [
+ {
+ matches = [
+ {"device.name" = "~alsa_card.pci-0000_03_00.1*";}
+ {"device.description" = "~USB Audio*";}
+ ];
+ actions.update-props = {"device.disabled" = true;};
+ }
+ ];
+ };
})
];
}
diff --git a/os/core/bootloader.nix b/os/core/bootloader.nix
index 8ba9406..f0aacc0 100644
--- a/os/core/bootloader.nix
+++ b/os/core/bootloader.nix
@@ -1,43 +1,84 @@
-{ config, lib, ... }:
-let
- cfg = config.os.core.bootloader;
-in
{
- options.os.core.bootloader = lib.mkOption {
- type = lib.types.enum [ "systemd-boot" "grub" "none" ];
- default = "systemd-boot";
- description = "which bootloader to use";
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.os.core.bootloader;
+in {
+ options.os.core.bootloader = {
+ type = lib.mkOption {
+ type = lib.types.enum ["systemd-boot" "grub" "none"];
+ default = "systemd-boot";
+ description = "which bootloader to use";
+ };
+ useOSProber = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ description = "scan for other operating systems";
+ };
+ enableEncryption = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ description = "Enables LUKS encryption";
+ };
+ grubDevice = lib.mkOption {
+ type = lib.types.str;
+ default = "nodev";
+ };
+ luksDevice = lib.mkOption {
+ type = lib.types.nullOr lib.types.str;
+ default = null;
+ description = "The underlying partition for LUKS";
+ };
};
+
config = lib.mkMerge [
{
- boot.loader.efi.canTouchEfiVariables = true;
- boot.supportedFilesystems = [ "ntfs" ];
- boot.kernelParams = [ "quiet" "splash" ];
- systemd.settings.Manager = {
- DefaultTimeoutStopSec = "5s";
+ boot = {
+ supportedFilesystems = ["ntfs" "btrfs"];
+ kernelParams = ["quiet" "splash"];
+ initrd.luks.devices = lib.mkIf (cfg.enableEncryption && cfg.luksDevice != null) {
+ "crypted" = {
+ device = cfg.luksDevice;
+ preLVM = true;
+ allowDiscards = true;
+ };
+ };
};
+ systemd.settings.Manager.DefaultTimeoutStopSec = "5s";
}
- (lib.mkIf (cfg == "systemd-boot") {
- boot.consoleLogLevel = 0;
- boot.loader = {
- systemd-boot.enable = true;
- systemd-boot.editor = false;
- timeout = 0;
+ (lib.mkIf (cfg.type == "systemd-boot") {
+ boot = {
+ consoleLogLevel = 0;
+ loader = {
+ efi.canTouchEfiVariables = true;
+ timeout = 0;
+ systemd-boot = {
+ enable = true;
+ editor = false;
+ };
+ };
};
})
- (lib.mkIf (cfg == "grub") {
+ (lib.mkIf (cfg.type == "grub") {
boot.loader = {
timeout = 3;
- efi.efiSysMountPoint = "/boot";
+ efi.canTouchEfiVariables = cfg.grubDevice == "nodev";
grub = {
enable = true;
- device = "nodev";
- efiSupport = true;
- useOSProber = true;
+ device = cfg.grubDevice;
+ useOSProber = cfg.useOSProber;
+ enableCryptodisk = cfg.enableEncryption;
+
+ default =
+ if cfg.useOSProber
+ then 2
+ else 0;
- default = 2;
+ efiSupport = lib.mkDefault (cfg.grubDevice == "nodev");
+ copyKernels = lib.mkIf cfg.enableEncryption true;
};
};
})
diff --git a/os/core/drivers.nix b/os/core/drivers.nix
index a6905d5..da9d83a 100644
--- a/os/core/drivers.nix
+++ b/os/core/drivers.nix
@@ -4,14 +4,23 @@
pkgs,
inputs,
...
-}:
-let
+}: let
cfg = config.os.core.drivers;
-in
-{
+in {
options.os.core.drivers = {
enable = lib.mkEnableOption "enables hardware drivers";
- amdgpu.enable = lib.mkEnableOption "AMD specific drivers and microcode";
+
+ cpu = lib.mkOption {
+ type = lib.types.enum ["intel" "amd" "none"];
+ default = "none";
+ description = "cpu manufacturer for microcode and platform-specific drivers";
+ };
+
+ graphics = {
+ enable = lib.mkEnableOption "graphics support";
+ amdgpu.enable = lib.mkEnableOption "amd specific gpu features";
+ };
+
kernel = lib.mkOption {
type = lib.types.enum [
"stable"
@@ -22,47 +31,57 @@ in
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;
+ services = {
+ smartd.enable = true;
+ fwupd.enable = true;
+ };
+ environment.systemPackages = [pkgs.rivalcfg];
+ }
+
+ (lib.mkIf (cfg.cpu == "amd") {
hardware.cpu.amd.updateMicrocode = true;
+ programs.coolercontrol.enable = true;
+ })
+
+ (lib.mkIf (cfg.cpu == "intel") {
+ hardware.cpu.intel.updateMicrocode = true;
+ services.thermald.enable = true;
+ })
+
+ (lib.mkIf cfg.graphics.enable {
hardware.graphics = {
enable = true;
enable32Bit = true;
- extraPackages = with pkgs; [
- rocmPackages.clr.icd
- ];
};
- environment.systemPackages = [ pkgs.rivalcfg ];
- }
+ hardware.sensor.iio.enable = true;
+ })
- (lib.mkIf cfg.amdgpu.enable {
+ (lib.mkIf (cfg.graphics.enable && cfg.graphics.amdgpu.enable) {
+ services.lact.enable = true;
hardware.amdgpu = {
initrd.enable = true;
overdrive.enable = true;
};
+ hardware.graphics.extraPackages = with pkgs; [
+ rocmPackages.clr.icd
+ ];
})
-
- (lib.mkIf (cfg.kernel == "unstable") {
- boot.kernelPackages = inputs.kernelv.legacyPackages.x86_64-linux.linuxPackages_6_17;
- })
-
- (lib.mkIf (cfg.kernel == "stable") {
- boot.kernelPackages = pkgs.linuxPackages_latest;
- })
-
- (lib.mkIf (cfg.kernel == "zen") {
- boot.kernelPackages = pkgs.linuxPackages_zen;
- })
-
- (lib.mkIf (cfg.kernel == "hardened") {
- boot.kernelPackages = pkgs.linuxPackages_hardened;
- })
+ {
+ boot.kernelPackages = let
+ kernels = {
+ "stable" = pkgs.linuxPackages_latest;
+ "zen" = pkgs.linuxPackages_zen;
+ "hardened" = pkgs.linuxPackages_hardened;
+ "unstable" = inputs.kernelv.legacyPackages.x86_64-linux.linuxPackages_6_17;
+ };
+ in
+ kernels.${cfg.kernel} or kernels."stable";
+ }
]
);
}
diff --git a/os/core/power.nix b/os/core/power.nix
index 3a8bed2..3929033 100644
--- a/os/core/power.nix
+++ b/os/core/power.nix
@@ -1,18 +1,46 @@
-{ config, lib, ... }:
-let
- cfg = config.os.core.power;
-in
{
- options.os.core.power.enable = lib.mkEnableOption "enables AMD-optimized power management";
- config = lib.mkIf cfg.enable {
- services.power-profiles-daemon.enable = true;
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.os.core.power;
+in {
+ options.os.core.power = {
+ enable = lib.mkEnableOption "enables power management";
+ mode = lib.mkOption {
+ type = lib.types.enum ["amd" "intel" "none"];
+ default = "none";
+ };
+ };
- boot.kernelParams = [
- "amd_pstate=active"
- "nvme_core.default_ps_max_latency_us=0"
- ];
+ config = lib.mkIf cfg.enable (lib.mkMerge [
+ {
+ powerManagement.powertop.enable = true;
+ boot.kernelParams = ["nvme_core.default_ps_max_latency_us=0"];
+ }
- powerManagement.powertop.enable = true;
- services.thermald.enable = true;
- };
+ (lib.mkIf (cfg.mode == "amd") {
+ services.power-profiles-daemon.enable = true;
+ boot.kernelParams = ["amd_pstate=active"];
+ })
+
+ (lib.mkIf (cfg.mode == "intel") {
+ services = {
+ power-profiles-daemon.enable = false;
+
+ thermald.enable = true;
+ tlp = {
+ enable = true;
+ settings = {
+ START_CHARGE_THRESH_BAT0 = 75;
+ STOP_CHARGE_THRESH_BAT0 = 80;
+ START_CHARGE_THRESH_BAT1 = 75;
+ STOP_CHARGE_THRESH_BAT1 = 80;
+ CPU_SCALING_GOVERNOR_ON_AC = "performance";
+ CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
+ };
+ };
+ };
+ })
+ ]);
}
diff --git a/os/srv/kdeconnect.nix b/os/srv/kdeconnect.nix
index 6bf125c..049a1c6 100644
--- a/os/srv/kdeconnect.nix
+++ b/os/srv/kdeconnect.nix
@@ -2,14 +2,14 @@
config,
lib,
username,
+ pkgs,
...
-}:
-let
+}: let
cfg = config.os.srv.kdeconnect;
-in
-{
+in {
options.os.srv.kdeconnect.enable = lib.mkEnableOption "enables kde connect";
config = lib.mkIf cfg.enable {
+ environment.systemPackages = [pkgs.kdePackages.dolphin];
programs.kdeconnect.enable = true;
home-manager.users.${username}.services.kdeconnect = {
enable = true;