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 position = "top_right";
135 kinds = {
136 keyboard_layout = false;
137 lock_keys = false;
138 };
139 };
140
141 plugins.enabled = [
142 "noctalia/bongocat"
143 "noctalia/screen_recorder"
144 "noctalia/timer"
145 ];
146
147 shell = {
148 font_family = "BerkeleyMono Nerd Font";
149 launch_apps_as_systemd_services = true;
150 niri_overview_type_to_launch_enabled = true;
151 polkit_agent = true;
152 };
153
154 theme = {
155 mode = "dark";
156 source = "builtin";
157 builtin = "Gruvbox";
158 templates = {
159 builtin_ids = [ "niri" ];
160 community_ids = [
161 "pi-agent"
162 "zen-browser"
163 "discord"
164 "steam"
165 "yazi"
166 ];
167 enable_builtin_templates = true;
168 user = {
169 alacritty = {
170 input_path = "${inputs.noctalia}/assets/templates/alacritty/alacritty.toml";
171 output_path = "$XDG_CONFIG_HOME/alacritty/themes/noctalia.toml";
172 };
173 helix = {
174 input_path = "${inputs.noctalia}/assets/templates/helix/helix.toml";
175 output_path = "$XDG_CONFIG_HOME/helix/themes/noctalia.toml";
176 };
177 starship = {
178 input_path = "${inputs.noctalia}/assets/templates/starship/starship.toml";
179 output_path = "$XDG_CONFIG_HOME/starship/noctalia.toml";
180 post_hook = ''
181 ${pkgs.runtimeShell} -c '
182 file="''${XDG_CONFIG_HOME:-$HOME/.config}/starship/noctalia.toml"
183 ${pkgs.gnugrep}/bin/grep -qE "^palette[[:space:]]*=" "$file" \
184 || ${pkgs.gnused}/bin/sed -i "1ipalette = \"noctalia\"" "$file"
185 '
186 '';
187 };
188
189 zellij = {
190 input_path = "${inputs.noctalia-template-zellij}/zellij.kdl";
191 output_path = "$XDG_CONFIG_HOME/zellij/themes/noctalia.kdl";
192 };
193 };
194 };
195 };
196
197 wallpaper = {
198 enabled = true;
199 directory = "${config.home.homeDirectory}/Pictures/Wallpapers";
200 automation = {
201 enabled = true;
202 interval_minutes = 15;
203 order = "random";
204 recursive = true;
205 };
206 default.path = "${config.home.homeDirectory}/Pictures/Wallpapers/car.png";
207 last.path = "${config.home.homeDirectory}/Pictures/Wallpapers/car.png";
208 monitors = {
209 DP-7.path = "${config.home.homeDirectory}/Pictures/Wallpapers/car.png";
210 eDP-1.path = "${config.home.homeDirectory}/Pictures/Wallpapers/monogatari.png";
211 };
212 };
213
214 widget = {
215 bluetooth.capsule_padding = 14.0;
216 media.hide_when_no_media = true;
217 network.show_label = false;
218 tray.drawer = true;
219 };
220 };
221 };
222 };
223}