summaryrefslogtreecommitdiff
path: root/accounts/gkleen@skadhi/default.nix
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2026-09-23 21:08:35 +0200
committerGregor Kleen <gkleen@yggdrasil.li>2026-09-23 21:08:35 +0200
commitae9a80c1f012686c1f65fce7ce76fdd1b77b0b71 (patch)
tree141f738276cf84c6b7e5633c2bd5f2b44e9b0b75 /accounts/gkleen@skadhi/default.nix
parent6a763272038e637a8a03dd9059d43a1ff44921dd (diff)
downloadnixos-ae9a80c1f012686c1f65fce7ce76fdd1b77b0b71.tar
nixos-ae9a80c1f012686c1f65fce7ce76fdd1b77b0b71.tar.gz
nixos-ae9a80c1f012686c1f65fce7ce76fdd1b77b0b71.tar.bz2
nixos-ae9a80c1f012686c1f65fce7ce76fdd1b77b0b71.tar.xz
nixos-ae9a80c1f012686c1f65fce7ce76fdd1b77b0b71.zip
...
Diffstat (limited to 'accounts/gkleen@skadhi/default.nix')
-rw-r--r--accounts/gkleen@skadhi/default.nix206
1 files changed, 185 insertions, 21 deletions
diff --git a/accounts/gkleen@skadhi/default.nix b/accounts/gkleen@skadhi/default.nix
index 4c0c4028..fc969348 100644
--- a/accounts/gkleen@skadhi/default.nix
+++ b/accounts/gkleen@skadhi/default.nix
@@ -1,10 +1,13 @@
1{ flake, flakeInputs, userName, config, lib, ... }: 1{ flake, flakeInputs, userName, config, pkgs, lib, sources, ... }:
2let 2let
3 user = config.users.users.${userName}; 3 user = config.users.users.${userName};
4in { 4in {
5 imports = with flake.nixosModules.userProfiles.${userName}; [ 5 imports = (with flake.nixosModules.userProfiles.${userName}; [
6 zsh 6 zsh mpv yt-dlp ./greetd.nix
7 ]; 7 ]) ++ (with flake.nixosModules.systemProfiles; [
8 niri-unstable
9 flakeInputs.nixVirt.nixosModules.default
10 ]);
8 11
9 config = { 12 config = {
10 users.users.gkleen.group = "gkleen"; 13 users.users.gkleen.group = "gkleen";
@@ -17,9 +20,32 @@ in {
17 }; 20 };
18 }; 21 };
19 22
20 home-manager.users.${userName} = let sysConfig = config; in { config, ... }: { 23 programs = {
24 dconf.enable = true;
25 niri.enable = true;
26 };
27 environment.sessionVariables."GTK_USE_PORTAL" = "1";
28 services.niri-autoselect-portal.enable = true;
29 xdg.portal = {
30 enable = true;
31 extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
32 config.niri = {
33 default = lib.mkForce ["gnome" "gtk"];
34 "org.freedesktop.impl.portal.FileChooser" = ["gtk"];
35 "org.freedesktop.impl.portal.OpenFile" = ["gtk"];
36 "org.freedesktop.impl.portal.Access" = ["gtk"];
37 "org.freedesktop.impl.portal.Notification" = ["gtk"];
38 "org.freedesktop.impl.portal.Secret" = ["none"];
39 "org.freedesktop.impl.portal.Inhibit" = ["none"];
40 };
41 };
42
43 security.pam.services.quickshell = {};
44
45 home-manager.users.${userName} = { sysConfig, config, ... }: {
21 imports = [ 46 imports = [
22 flakeInputs.nix-index-database.homeModules.nix-index 47 flakeInputs.nix-index-database.homeModules.nix-index
48 ./niri.nix ./shell ./emacs ./zsh
23 ]; 49 ];
24 50
25 home.stateVersion = "26.05"; 51 home.stateVersion = "26.05";
@@ -30,26 +56,164 @@ in {
30 ]; 56 ];
31 }; 57 };
32 58
33 programs.zsh.dirHashes = let 59 programs.nix-index.enable = true;
34 flakeHashes = lib.mapAttrs' (n: v: lib.nameValuePair (inputNames.${n} or n) (toString v)) flakeInputs; 60
35 inputNames = { 61 programs.alacritty = {
36 self = "nixos"; 62 enable = true;
63 theme = "kitty";
64 settings = {
65 font = {
66 normal = {
67 family = "Fira Mono";
68 style = "Medium";
69 };
70 size = 10;
71 };
72 hints = {
73 alphabet = "aoeuhtns";
74 enabled = [
75 {
76 command = lib.getExe' pkgs.xdg-utils "xdg-open";
77 hyperlinks = true;
78 post_processing = true;
79 persist = false;
80 mouse.enabled = true;
81 binding = { key = "O"; mods = "Control|Shift"; };
82 regex = "(ipfs:|ipns:|magnet:|mailto:|gemini://|gopher://|https://|http://|news:|file:|git://|ssh:|ftp://)[^\\u0000-\\u001F\\u007F-\\u009F<>\"\\\\s{-}\\\\^⟨⟩`\\\\\\\\]+";
83 }
84 {
85 command = lib.getExe' pkgs.wl-clipboard-rs "wl-copy";
86 hyperlinks = true;
87 post_processing = true;
88 persist = false;
89 mouse.enabled = true;
90 binding = { key = "Y"; mods = "Control|Shift"; };
91 regex = "(ipfs:|ipns:|magnet:|mailto:|gemini://|gopher://|https://|http://|news:|file:|git://|ssh:|ftp://)[^\\u0000-\\u001F\\u007F-\\u009F<>\"\\\\s{-}\\\\^⟨⟩`\\\\\\\\]+";
92 }
93 ];
94 };
95 terminal.shell.program = lib.getExe config.programs.zsh.package;
37 }; 96 };
38 in flakeHashes // { 97 };
39 docs = "$HOME/documents"; 98 programs.fuzzel = {
40 dl = "$HOME/Downloads"; 99 enable = true;
41 scrot = "$HOME/screenshots"; 100 settings = {
42 media = "$HOME/media"; 101 main = {
102 terminal = "${lib.getExe config.programs.alacritty.package} msg --socket /run/user/1000/alacritty.sock create-window --command ${lib.getExe' sysConfig.systemd.package "systemd-run"} --user --pty --same-dir --wait --collect --quiet --service-type=exec --expand-environment=no {cmd}";
103 layer = "overlay";
104 icon-theme = "Paper";
105 font = "Fira Sans";
106 };
107 colors = {
108 background = "000000cc";
109 text = "cdd6f4ff";
110 match = "94e2d5ff";
111 selection = "585b70ff";
112 selection-match = "94e2d5ff";
113 selection-text = "cdd6f4ff";
114 border = "b4befeff";
115 };
116 dmenu = {
117 exit-immediately-if-empty = true;
118 };
43 }; 119 };
44 programs.starship.settings = {
45 directory.substitutions = lib.mapAttrs' (name: value: let
46 value' = builtins.unsafeDiscardStringContext value;
47 value'' = if lib.hasPrefix "$HOME/" value' then "~" + lib.removePrefix "$HOME" value' else value';
48 in lib.nameValuePair value'' "~${name}"
49 ) config.programs.zsh.dirHashes;
50 }; 120 };
51 121
52 programs.nix-index.enable = true; 122 services.xembed-sni-proxy = {
123 enable = true;
124 package = pkgs.kdePackages.plasma-workspace;
125 };
126 services.network-manager-applet.enable = true;
127 services.blueman-applet.enable = true;
128
129 home.pointerCursor = {
130 package = pkgs.vanilla-dmz;
131 name = "Vanilla-DMZ-AA";
132 size = 16;
133
134 x11 = {
135 enable = true;
136 defaultCursor = "left_ptr";
137 };
138 gtk.enable = true;
139 };
140
141 gtk = {
142 enable = true;
143 font = {
144 package = pkgs.fira;
145 name = "Fira Sans";
146 size = 10;
147 };
148 theme = {
149 package = pkgs.kdePackages.breeze-gtk;
150 name = "Breeze-Dark";
151 };
152 iconTheme = {
153 package = pkgs.adwaita-icon-theme;
154 name = "Adwaita";
155 };
156 };
157 qt.enable = true;
158 qt.platformTheme.name = "gtk";
159
160 home.sessionVariables = {
161 QT_QPA_PLATFORMTHEME = lib.mkForce "gtk3";
162 };
163 home.extraProfileCommands = ''
164 export XDG_DATA_DIRS="${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}''${XDG_DATA_DIRS:+:''${XDG_DATA_DIRS}}"
165 '';
166
167 xdg.configFile."systemd/user/home-manager.service.d/before-graphical-session.conf".text = ''
168 [Unit]
169 Before=graphical-session-pre.target
170 '';
171
172 fonts = {
173 fontconfig.enable = true;
174 };
175
176 i18n.inputMethod = {
177 enable = true;
178 type = "fcitx5";
179 fcitx5 = {
180 waylandFrontend = true;
181 settings = {
182 globalOptions."Behavior/DisabledAddons" = {
183 "0" = "clipboard";
184 };
185 inputMethod = {
186 "Groups/0" = {
187 Name = "Default";
188 "Default Layout" = "us";
189 DefaultIM = "keyboard-us";
190 };
191 "Groups/0/Items/0" = {
192 Name = "keyboard-us";
193 Layout = "";
194 };
195 "GroupOrder"."0" = "Default";
196 };
197 addons = {
198 classicui.globalSection = {
199 "Vertical Candidate List" = "True";
200 Font = "Fira Sans 10";
201 MenuFont = "Fira Sans 10";
202 TrayFont = "Fira Sans Demi-Bold 10";
203 UseDarkTheme = "True";
204 };
205 quickphrase = {
206 globalSection = {
207 "Choose Modifier" = "None";
208 Spell = "True";
209 FallbackSpellLanguage = "en";
210 };
211 sections.TriggerKey."0" = "Super+E";
212 };
213 };
214 };
215 };
216 };
53 }; 217 };
54 }; 218 };
55} 219}