me like nix
1{ inputs, ... }:
2
3{
4 flake.modules.homeManager.noctalia =
5 { pkgs, config, ... }:
6 {
7 imports = [ inputs.noctalia.homeModules.default ];
8
9 programs.noctalia = {
10 enable = true;
11 systemd.enable = true;
12 settings = {
13 bar.default = {
14 auto_hide = true;
15 center = [
16 "clock"
17 "weather"
18 ];
19 end = [
20 "media"
21 "notifications"
22 "clipboard"
23 "network"
24 "bluetooth"
25 "volume"
26 "battery"
27 "control-center"
28 "tray"
29 "session"
30 ];
31 margin_edge = 0;
32 reserve_space = false;
33 start = [
34 "wallpaper"
35 "workspaces"
36 ];
37 widget_spacing = 12;
38 };
39
40 location.auto_locate = true;
41
42 lockscreen = {
43 allow_empty_password = true;
44 blurred_desktop = true;
45 };
46
47 lockscreen_widgets = {
48 enabled = true;
49 schema_version = 2;
50 widget_order = [
51 "lockscreen-login-box@DP-7"
52 "lockscreen-login-box@eDP-1"
53 "lockscreen-widget-0000000000000001"
54 "lockscreen-widget-0000000000000002"
55 ];
56 grid = {
57 cell_size = 16;
58 major_interval = 4;
59 visible = true;
60 };
61 widget = {
62 "lockscreen-login-box@DP-7" = {
63 box_height = 0.0;
64 box_width = 0.0;
65 cx = 1280.0;
66 cy = 957.0;
67 output = "DP-7";
68 rotation = 0.0;
69 type = "login_box";
70 settings = {
71 background_color = "surface_variant";
72 background_opacity = 0.88;
73 background_radius = 12.0;
74 input_opacity = 1.0;
75 input_radius = 6.0;
76 show_login_button = true;
77 };
78 };
79 "lockscreen-login-box@eDP-1" = {
80 box_height = 0.0;
81 box_width = 0.0;
82 cx = 854.0;
83 cy = 944.0;
84 output = "eDP-1";
85 rotation = 0.0;
86 type = "login_box";
87 settings = {
88 background_color = "surface_variant";
89 background_opacity = 0.88;
90 background_radius = 12.0;
91 input_opacity = 1.0;
92 input_radius = 6.0;
93 show_login_button = true;
94 };
95 };
96 lockscreen-widget-0000000000000001 = {
97 box_height = 0.0;
98 box_width = 0.0;
99 cx = 723.0;
100 cy = 217.5;
101 output = "eDP-1";
102 rotation = 0.0;
103 type = "clock";
104 settings = {
105 background = true;
106 clock_style = "digital";
107 font_family = "BerkeleyMono Nerd Font";
108 };
109 };
110 lockscreen-widget-0000000000000002 = {
111 box_height = 0.0;
112 box_width = 0.0;
113 cx = 985.5;
114 cy = 219.5;
115 output = "eDP-1";
116 rotation = 0.0;
117 type = "weather";
118 };
119 };
120 };
121
122 notification = {
123 background_opacity = 0.97;
124 enable_daemon = true;
125 layer = "top";
126 offset_x = 20;
127 offset_y = 8;
128 scale = 1.0;
129 show_actions = true;
130 show_app_name = true;
131 };
132
133 osd = {
134 orientation = "vertical";
135 position = "top_right";
136 kinds = {
137 keyboard_layout = false;
138 lock_keys = false;
139 };
140 };
141
142 plugins.enabled = [
143 "noctalia/bongocat"
144 "noctalia/screen_recorder"
145 "noctalia/timer"
146 ];
147
148 shell = {
149 font_family = "BerkeleyMono Nerd Font";
150 launch_apps_as_systemd_services = true;
151 niri_overview_type_to_launch_enabled = true;
152 polkit_agent = true;
153 screen_corners.enabled = true;
154 };
155
156 theme = {
157 mode = "dark";
158 source = "builtin";
159 builtin = "Gruvbox";
160 templates = {
161 builtin_ids = [
162 "alacritty"
163 "btop"
164 "gtk3"
165 "gtk4"
166 "helix"
167 "niri"
168 "qt"
169 "starship"
170 ];
171 community_ids = [
172 "pi-agent"
173 "zen-browser"
174 "discord"
175 "steam"
176 "yazi"
177 ];
178 enable_builtin_templates = false;
179 user = {
180 alacritty = {
181 input_path = "${inputs.noctalia}/assets/templates/alacritty/alacritty.toml";
182 output_path = "$XDG_CONFIG_HOME/alacritty/themes/noctalia.toml";
183 };
184 helix = {
185 input_path = "${inputs.noctalia}/assets/templates/helix/helix.toml";
186 output_path = "$XDG_CONFIG_HOME/helix/themes/noctalia.toml";
187 };
188 starship = {
189 input_path = "${inputs.noctalia}/assets/templates/starship/starship.toml";
190 output_path = "$XDG_CONFIG_HOME/starship/noctalia.toml";
191 post_hook = ''
192 ${pkgs.runtimeShell} -c '
193 file="''${XDG_CONFIG_HOME:-$HOME/.config}/starship/noctalia.toml"
194 ${pkgs.gnugrep}/bin/grep -qE "^palette[[:space:]]*=" "$file" \
195 || ${pkgs.gnused}/bin/sed -i "1ipalette = \"noctalia\"" "$file"
196 '
197 '';
198 };
199 zellij = {
200 input_path = "${inputs.noctalia-template-zellij}/zellij.kdl";
201 output_path = "$XDG_CONFIG_HOME/zellij/themes/noctalia.kdl";
202 };
203 };
204 };
205 };
206
207 wallpaper = {
208 enabled = true;
209 directory = "${config.home.homeDirectory}/Pictures/Wallpapers";
210 automation = {
211 enabled = true;
212 interval_minutes = 15;
213 order = "random";
214 recursive = true;
215 };
216 default.path = "${config.home.homeDirectory}/Pictures/Wallpapers/car.png";
217 last.path = "${config.home.homeDirectory}/Pictures/Wallpapers/car.png";
218 monitors = {
219 DP-7.path = "${config.home.homeDirectory}/Pictures/Wallpapers/car.png";
220 eDP-1.path = "${config.home.homeDirectory}/Pictures/Wallpapers/monogatari.png";
221 };
222 };
223
224 widget = {
225 bluetooth.capsule_padding = 14.0;
226 media.hide_when_no_media = true;
227 network.show_label = false;
228 tray.drawer = true;
229 };
230 };
231 };
232 };
233}