authorgravatar for nmarks413@gmail.comNatalie Marks <nmarks413@gmail.com> 2025-05-28 12:06:37-07:00
committergravatar for nmarks413@gmail.comNatalie Marks <nmarks413@gmail.com> 2025-05-28 12:06:37-07:00
log40840a80842b53b3f119c95d5e67e40d070259d0
tree1e8e11710313e820a028a5b6b0fe5e000acd7353
parent800f63b000bebf518dad1b6e6e85e99640e95ec6
signature Commit is signed but in an unrecognized format.

run format


15 files changed, 697 insertions(+), 650 deletions(-)

flake.lock+21
......@@ -595,6 +595,7 @@
595595 "nixpkgs": "nixpkgs_2",
596596 "nvf": "nvf",
597597 "rust-overlay": "rust-overlay_2",
598 "zen-browser": "zen-browser",
598599 "zig": "zig",
599600 "zls": "zls"
600601 }
......@@ -845,6 +846,26 @@
845846 "type": "github"
846847 }
847848 },
849 "zen-browser": {
850 "inputs": {
851 "nixpkgs": [
852 "nixpkgs"
853 ]
854 },
855 "locked": {
856 "lastModified": 1748059546,
857 "narHash": "sha256-e0jy8RU8ofOdeS5gF9Hir+M5Wn0q7D8MkpeQXsOJdu4=",
858 "owner": "youwen5",
859 "repo": "zen-browser-flake",
860 "rev": "716a5af28d686d67146d01b14112c919b6133a84",
861 "type": "github"
862 },
863 "original": {
864 "owner": "youwen5",
865 "repo": "zen-browser-flake",
866 "type": "github"
867 }
868 },
848869 "zig": {
849870 "inputs": {
850871 "flake-compat": "flake-compat",
flake.nix+117-108
......@@ -29,6 +29,10 @@
2929 moonlight.url = "github:moonlight-mod/moonlight"; # Add `/develop` to the flake URL to use nightly.
3030 moonlight.inputs.nixpkgs.follows = "nixpkgs";
3131
32 zen-browser = {
33 url = "github:youwen5/zen-browser-flake";
34 inputs.nixpkgs.follows = "nixpkgs";
35 };
3236 nh.url = "github:viperML/nh";
3337 nh.inputs.nixpkgs.follows = "nixpkgs";
3438
......@@ -37,76 +41,79 @@
3741 nix-index-database.url = "github:nix-community/nix-index-database";
3842 nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
3943 };
40 outputs = {
41 self,
42 nixpkgs,
43 lix-module,
44 darwin,
45 ...
46 } @ inputs: let
47 lib = nixpkgs.lib;
48 # TODO: apply these overlays sooner and remove uses of legacyPackages elsewhere.
49 overlays = [
50 inputs.zig.overlays.default
51 inputs.rust-overlay.overlays.default
52 inputs.nh.overlays.default
53
54 # https://github.com/LnL7/nix-darwin/issues/1041
55 (_: prev: {
56 karabiner-elements = prev.karabiner-elements.overrideAttrs (old: {
57 version = "14.13.0";
58
59 src = prev.fetchurl {
60 inherit (old.src) url;
61 hash = "sha256-gmJwoht/Tfm5qMecmq1N6PSAIfWOqsvuHU8VDJY8bLw=";
62 };
63 });
64 })
65 ];
66
67 # Users of this flake currently use x86_64 Linux and Apple Silicon
68 systems = [
69 "x86_64-linux"
70 "aarch64-darwin"
71 ];
72 forAllSystems = f:
73 builtins.listToAttrs (
74 builtins.map (system: {
75 name = system;
76 value = f (
77 inputs
78 // {
79 inherit system;
80 pkgs = nixpkgs.legacyPackages.${system};
81 }
82 );
44 outputs =
45 {
46 self,
47 nixpkgs,
48 lix-module,
49 darwin,
50 ...
51 }@inputs:
52 let
53 lib = nixpkgs.lib;
54 # TODO: apply these overlays sooner and remove uses of legacyPackages elsewhere.
55 overlays = [
56 inputs.zig.overlays.default
57 inputs.rust-overlay.overlays.default
58 inputs.nh.overlays.default
59
60 # https://github.com/LnL7/nix-darwin/issues/1041
61 (_: prev: {
62 karabiner-elements = prev.karabiner-elements.overrideAttrs (old: {
63 version = "14.13.0";
64
65 src = prev.fetchurl {
66 inherit (old.src) url;
67 hash = "sha256-gmJwoht/Tfm5qMecmq1N6PSAIfWOqsvuHU8VDJY8bLw=";
68 };
69 });
8370 })
84 systems
85 );
71 ];
8672
87 mkSystem = import ./lib/mkSystem.nix {
88 inherit
89 overlays
90 nixpkgs
91 lix-module
92 inputs
93 mkNeovim
94 ;
95 };
96 mkNeovim = import ./lib/mkNeovim.nix {
97 inherit
98 self
99 overlays
100 nixpkgs
101 inputs
102 ;
103 };
104 in rec {
105 inherit self;
106 # "nix fmt"
107 formatter = forAllSystems (inputs: inputs.pkgs.nixfmt-tree);
108 packages = forAllSystems (
109 {system, ...}:
73 # Users of this flake currently use x86_64 Linux and Apple Silicon
74 systems = [
75 "x86_64-linux"
76 "aarch64-darwin"
77 ];
78 forAllSystems =
79 f:
80 builtins.listToAttrs (
81 builtins.map (system: {
82 name = system;
83 value = f (
84 inputs
85 // {
86 inherit system;
87 pkgs = nixpkgs.legacyPackages.${system};
88 }
89 );
90 }) systems
91 );
92
93 mkSystem = import ./lib/mkSystem.nix {
94 inherit
95 overlays
96 nixpkgs
97 lix-module
98 inputs
99 mkNeovim
100 ;
101 };
102 mkNeovim = import ./lib/mkNeovim.nix {
103 inherit
104 self
105 overlays
106 nixpkgs
107 inputs
108 ;
109 };
110 in
111 rec {
112 inherit self;
113 # "nix fmt"
114 formatter = forAllSystems (inputs: inputs.pkgs.nixfmt-tree);
115 packages = forAllSystems (
116 { system, ... }:
110117 {
111118 nvim-chloe = mkNeovim "chloe" system;
112119 nvim-natalie = mkNeovim "natalie" system;
......@@ -115,46 +122,48 @@
115122 # "nix run .#darwin-rebuild"
116123 darwin-rebuild = darwin.packages.aarch64-darwin.darwin-rebuild;
117124 }
118 );
119
120 # natalie's desktop computer
121 nixosConfigurations.nixos = mkSystem "nixos" {
122 user = "natalie";
123 host = "desktop";
124 system = "x86_64-linux";
125 extraModules = [
126 ];
127 };
128 # natalie's laptop
129 darwinConfigurations."Natalies-MacBook-Air" = mkSystem "Natalies-MacBook-Air" {
130 user = "natalie";
131 host = "laptop";
132 system = "aarch64-darwin";
133 };
125 );
134126
135 # chloe's mac studio "sandwich"
136 darwinConfigurations.sandwich = mkSystem "sandwich" {
137 user = "chloe";
138 host = "sandwich";
139 system = "aarch64-darwin";
140 };
141 # chloe's macbook air "paperback"
142 darwinConfigurations.paperback = mkSystem "paperback" {
143 user = "chloe";
144 host = "paperback";
145 system = "aarch64-darwin";
127 # natalie's desktop computer
128 nixosConfigurations.nixos = mkSystem "nixos" {
129 user = "natalie";
130 host = "desktop";
131 system = "x86_64-linux";
132 extraModules = [
133 ];
134 };
135 # natalie's laptop
136 darwinConfigurations."Natalies-MacBook-Air" = mkSystem "Natalies-MacBook-Air" {
137 user = "natalie";
138 host = "laptop";
139 system = "aarch64-darwin";
140 };
141
142 # chloe's mac studio "sandwich"
143 darwinConfigurations.sandwich = mkSystem "sandwich" {
144 user = "chloe";
145 host = "sandwich";
146 system = "aarch64-darwin";
147 };
148 # chloe's macbook air "paperback"
149 darwinConfigurations.paperback = mkSystem "paperback" {
150 user = "chloe";
151 host = "paperback";
152 system = "aarch64-darwin";
153 };
154
155 # generate checks for "nix flake check --all-systems --no-build"
156 checks.aarch64-darwin = builtins.listToAttrs (
157 builtins.map (
158 name:
159 let
160 d = darwinConfigurations.${name}.system;
161 in
162 {
163 name = "darwinConfiguration-" + d.name;
164 value = d;
165 }
166 ) (builtins.attrNames darwinConfigurations)
167 );
146168 };
147
148 # generate checks for "nix flake check --all-systems --no-build"
149 checks.aarch64-darwin = builtins.listToAttrs (
150 builtins.map (
151 name: let
152 d = darwinConfigurations.${name}.system;
153 in {
154 name = "darwinConfiguration-" + d.name;
155 value = d;
156 }
157 ) (builtins.attrNames darwinConfigurations)
158 );
159 };
160169}
lib/mkNeovim.nix+15-13
......@@ -4,7 +4,9 @@
44 # TODO: apply overlays here
55 overlays,
66 inputs,
7}: user: system: let
7}:
8user: system:
9let
810 darwin = nixpkgs.lib.strings.hasSuffix "-darwin" system;
911
1012 host = {
......@@ -15,15 +17,15 @@
1517 userDir = ../users + "/${user}";
1618 userConfig = import (userDir + "/user.nix");
1719in
18 (inputs.nvf.lib.neovimConfiguration {
19 pkgs = nixpkgs.legacyPackages.${system};
20 modules = builtins.filter (f: f != null) [
21 (../users + ("/" + user + "/vim.nix"))
22 ../modules/neovim
23 ];
24 extraSpecialArgs = {
25 inherit host;
26 flake = self;
27 user = userConfig;
28 };
29 }).neovim
20(inputs.nvf.lib.neovimConfiguration {
21 pkgs = nixpkgs.legacyPackages.${system};
22 modules = builtins.filter (f: f != null) [
23 (../users + ("/" + user + "/vim.nix"))
24 ../modules/neovim
25 ];
26 extraSpecialArgs = {
27 inherit host;
28 flake = self;
29 user = userConfig;
30 };
31}).neovim
modules/home/default.nix+8-8
......@@ -8,14 +8,14 @@
88 host,
99 mainHomeImports,
1010 ...
11}: let
11}:
12let
1213 cfg = config.programs;
13in {
14 imports =
15 mainHomeImports
16 ++ [
17 ./macos/sketchybar.nix
18 ];
14in
15{
16 imports = mainHomeImports ++ [
17 ./macos/sketchybar.nix
18 ];
1919 programs = {
2020 home-manager.enable = true;
2121 nix-index.enable = true;
......@@ -80,7 +80,7 @@ in {
8080 }
8181 ];
8282 shellAliases =
83 {}
83 { }
8484 // lib.optionalAttrs (!host.darwin) {
8585 reboot-windows = "sudo efibootmgr --bootnext 0000; sudo reboot -h now";
8686 };
modules/home/macos/sketchybar.nix+504-501
......@@ -4,536 +4,539 @@
44 config,
55 host,
66 ...
7}: {
7}:
8{
89 home.file =
9 {}
10 { }
1011 // lib.optionalAttrs host.darwin (
11 lib.attrsets.mapAttrs (file: value: (
12 lib.attrsets.overrideExisting value {enable = config.shared.darwin.tiling.enable;}
13 )) {
14 sketchybarrc = {
15 executable = true;
16 target = ".config/sketchybar/sketchybarrc";
17 text = ''
18 #!/usr/bin/env sh
19
20 source "$HOME/.config/sketchybar/colors.sh" # Loads all defined colors
21
22 ITEM_DIR="$HOME/.config/sketchybar/items" # Directory where the items are configured
23 PLUGIN_DIR="$HOME/.config/sketchybar/plugins" # Directory where all the plugin scripts are stored
24
25 FONT="SF Pro" # Needs to have Regular, Bold, Semibold, Heavy and Black variants
26 PADDINGS=3 # All paddings use this value (icon, label, background)
27
28
29 # Setting up the general bar appearance and default values
30 ${pkgs.sketchybar}/bin/sketchybar --bar height=40 \
31 blur_radius=30 \
32 position=top \
33 sticky=on \
34 padding_left=10 \
35 padding_right=10
36
37
38 ${pkgs.sketchybar}/bin/sketchybar --default icon.font="SF Pro:Semibold:12.0" \
39 icon.color=$ITEM_COLOR \
40 label.font="SF Pro:Semibold:12.0" \
41 label.color=$ITEM_COLOR \
42 background.color=$ACCENT_COLOR \
43 background.corner_radius=10 \
44 background.height=20 \
45 padding_left=4 \
46 padding_right=4 \
47 icon.padding_left=6 \
48 icon.padding_right=3 \
49 label.padding_left=3 \
50 label.padding_right=6
51
52
53 # Left
54 # source "$ITEM_DIR/apple.sh"
55 source "$ITEM_DIR/spaces.sh"
56 source "$ITEM_DIR/front_app.sh"
57
58 # Center
59 # source "$ITEM_DIR/spotify.sh"
60 source "$ITEM_DIR/calendar.sh"
61
62 # Right
63 source $ITEM_DIR/calendar.sh
64 source $ITEM_DIR/wifi.sh
65 source $ITEM_DIR/battery.sh
66 source $ITEM_DIR/volume.sh
67
68 # Forcing all item scripts to run (never do this outside of sketchybarrc)
69 ${pkgs.sketchybar}/bin/sketchybar --update
70
71 echo "sketchybar configuation loaded.."
72 '';
73 };
74 icons = {
75 executable = true;
76 target = ".config/sketchybar/plugins/icons.sh";
77 text = ''
78 #!/usr/bin/env sh
79
80 # Source the icon map with all the application icons
81 source ${pkgs.sketchybar-app-font}/bin/icon_map.sh
82
83 # Create a cache directory if it doesn't exist
84 CACHE_DIR="$HOME/.cache/sketchybar"
85 mkdir -p "$CACHE_DIR"
86
87 # Cache file for icon mappings
88 ICON_CACHE="$CACHE_DIR/icon_cache.txt"
89
90 # Create the cache file if it doesn't exist
91 if [ ! -f "$ICON_CACHE" ]; then
92 touch "$ICON_CACHE"
93 fi
94
95 # Check if the app is already in cache
96 APP_NAME=$(if [ "$1" = "Zen" ]; then echo "Zen Browser"; else echo "$1"; fi)
97
98 CACHED_ICON=$(grep "^$APP_NAME|" "$ICON_CACHE" | cut -d '|' -f2)
99
100 if [ -n "$CACHED_ICON" ]; then
101 # Cache hit, return the icon
102 echo "$CACHED_ICON"
103 exit 0
104 fi
105
106 # Get icon from the mapping function
107 __icon_map "$APP_NAME"
108
109 if [ -n "$icon_result" ]; then
110 echo "$APP_NAME|$icon_result" >>"$ICON_CACHE"
111 fi
112
113 echo "$icon_result"
114 '';
115 };
116 colors = {
117 executable = true;
118 target = ".config/sketchybar/colors.sh";
119 text = ''
120
121 export TRANSPARENT=0x00ffffff
122
123 # -- Gray Scheme --
124 export ITEM_COLOR=0xff000000
125 export ACCENT_COLOR=0xffc3c6cb
126
127 # -- White Scheme --
128 # export ITEM_COLOR=0xff000000
129 # export ACCENT_COLOR=0xffffffff
130
131 # -- Teal Scheme --
132 # export ITEM_COLOR=0xff000000
133 # export ACCENT_COLOR=0xff2cf9ed
134
135 # -- Purple Scheme --
136 # export ITEM_COLOR=0xff000000
137 # export ACCENT_COLOR=0xffeb46f9
138
139 # -- Red Scheme ---
140 # export ITEM_COLOR=0xff000000
141 # export ACCENT_COLOR=0xffff2453
142
143 # -- Blue Scheme ---
144 # export ITEM_COLOR=0xff000000
145 # export ACCENT_COLOR=0xff15bdf9
146
147 # -- Green Scheme --
148 # export ITEM_COLOR=0xff000000
149 # export ACCENT_COLOR=0xff1dfca1
150
151 # -- Orange Scheme --
152 # export ITEM_COLOR=0xffffffff
153 # export ACCENT_COLOR=0xfff97716
154
155 # -- Yellow Scheme --
156 # export ITEM_COLOR=0xff000000
157 # export ACCENT_COLOR=0xfff7fc17
158 '';
159 };
160 items_wifi = {
161 executable = true;
162 target = ".config/sketchybar/items/wifi.sh";
163 text = ''
164 #!/usr/bin/env/ sh
165
166 sketchybar --add item wifi right \
167 --set wifi \
168 icon="􀙥" \
169 label="Updating..." \
170 script="$PLUGIN_DIR/wifi.sh" \
171 --subscribe wifi wifi_change
172 '';
173 };
174 items_battery = {
175 executable = true;
176 target = ".config/sketchybar/items/battery.sh";
177 text = ''
178 #!/usr/bin/env/ sh
179 sketchybar --add item battery right \
180 --set battery update_freq=180 \
181 script="$PLUGIN_DIR/battery.sh" \
182 --subscribe battery system_woke power_source_change
183 '';
184 };
185 items_calendar = {
186 executable = true;
187 target = ".config/sketchybar/items/calendar.sh";
188 text = ''
189 #!/usr/bin/env sh
190 sketchybar --add item calendar right \
191 --set calendar icon=􀧞 \
192 update_freq=15 \
193 script="$PLUGIN_DIR/calendar.sh"
194 '';
195 };
196 items_front_app = {
197 executable = true;
198 target = ".config/sketchybar/items/front_app.sh";
199 text = ''
200 #!/usr/bin/env sh
201
202 sketchybar --add item front_app left \
203 --set front_app background.color=$ACCENT_COLOR \
204 icon.color=$ITEM_COLOR \
205 label.color=$ITEM_COLOR \
206 icon.font="sketchybar-app-font:Regular:12.0" \
207 label.font="SF Pro:Semibold:12.0" \
208 script="$PLUGIN_DIR/front_app.sh" \
209 --subscribe front_app front_app_switched
210 '';
211 };
212 items_spaces = {
213 executable = true;
214 target = ".config/sketchybar/items/spaces.sh";
215 text = ''
216 sketchybar --add event aerospace_workspace_change
217
218 sketchybar --add item aerospace_dummy left \
219 --set aerospace_dummy display=0 \
220 script="$PLUGIN_DIR/spaces.sh" \
221 --subscribe aerospace_dummy aerospace_workspace_change
222
223 for m in $(aerospace list-monitors | awk '{print $1}'); do
224 for sid in $(aerospace list-workspaces --monitor $m); do
225 sketchybar --add space space.$sid left \
226 --set space.$sid space=$sid \
227 icon=$sid \
228 background.color=$TRANSPARENT \
229 label.color=$ACCENT_COLOR \
230 icon.color=$ACCENT_COLOR \
231 display=$m \
232 label.font="sketchybar-app-font:Regular:12.0" \
233 icon.font="SF Pro:Semibold:12.0" \
234 label.padding_right=10 \
235 label.y_offset=-1 \
236 click_script="$PLUGIN_DIR/space_click.sh $sid"
237
238 apps=$(aerospace list-windows --monitor "$m" --workspace "$sid" |
239 awk -F '|' '{gsub(/^ *| *$/, "", $2); if (!seen[$2]++) print $2}')
12 lib.attrsets.mapAttrs
13 (
14 file: value: (lib.attrsets.overrideExisting value { enable = config.shared.darwin.tiling.enable; })
15 )
16 {
17 sketchybarrc = {
18 executable = true;
19 target = ".config/sketchybar/sketchybarrc";
20 text = ''
21 #!/usr/bin/env sh
22
23 source "$HOME/.config/sketchybar/colors.sh" # Loads all defined colors
24
25 ITEM_DIR="$HOME/.config/sketchybar/items" # Directory where the items are configured
26 PLUGIN_DIR="$HOME/.config/sketchybar/plugins" # Directory where all the plugin scripts are stored
27
28 FONT="SF Pro" # Needs to have Regular, Bold, Semibold, Heavy and Black variants
29 PADDINGS=3 # All paddings use this value (icon, label, background)
30
31
32 # Setting up the general bar appearance and default values
33 ${pkgs.sketchybar}/bin/sketchybar --bar height=40 \
34 blur_radius=30 \
35 position=top \
36 sticky=on \
37 padding_left=10 \
38 padding_right=10
39
40
41 ${pkgs.sketchybar}/bin/sketchybar --default icon.font="SF Pro:Semibold:12.0" \
42 icon.color=$ITEM_COLOR \
43 label.font="SF Pro:Semibold:12.0" \
44 label.color=$ITEM_COLOR \
45 background.color=$ACCENT_COLOR \
46 background.corner_radius=10 \
47 background.height=20 \
48 padding_left=4 \
49 padding_right=4 \
50 icon.padding_left=6 \
51 icon.padding_right=3 \
52 label.padding_left=3 \
53 label.padding_right=6
54
55
56 # Left
57 # source "$ITEM_DIR/apple.sh"
58 source "$ITEM_DIR/spaces.sh"
59 source "$ITEM_DIR/front_app.sh"
60
61 # Center
62 # source "$ITEM_DIR/spotify.sh"
63 source "$ITEM_DIR/calendar.sh"
64
65 # Right
66 source $ITEM_DIR/calendar.sh
67 source $ITEM_DIR/wifi.sh
68 source $ITEM_DIR/battery.sh
69 source $ITEM_DIR/volume.sh
70
71 # Forcing all item scripts to run (never do this outside of sketchybarrc)
72 ${pkgs.sketchybar}/bin/sketchybar --update
73
74 echo "sketchybar configuation loaded.."
75 '';
76 };
77 icons = {
78 executable = true;
79 target = ".config/sketchybar/plugins/icons.sh";
80 text = ''
81 #!/usr/bin/env sh
82
83 # Source the icon map with all the application icons
84 source ${pkgs.sketchybar-app-font}/bin/icon_map.sh
85
86 # Create a cache directory if it doesn't exist
87 CACHE_DIR="$HOME/.cache/sketchybar"
88 mkdir -p "$CACHE_DIR"
89
90 # Cache file for icon mappings
91 ICON_CACHE="$CACHE_DIR/icon_cache.txt"
92
93 # Create the cache file if it doesn't exist
94 if [ ! -f "$ICON_CACHE" ]; then
95 touch "$ICON_CACHE"
96 fi
24097
241 icon_strip=""
242 if [ "''${apps}" != "" ]; then
243 while read -r app; do
244 icon_strip+=" $($PLUGIN_DIR/icons.sh "$app")"
245 done <<<"''${apps}"
246 else
247 icon_strip=" —"
248 fi
98 # Check if the app is already in cache
99 APP_NAME=$(if [ "$1" = "Zen" ]; then echo "Zen Browser"; else echo "$1"; fi)
249100
250 sketchybar --set space.$sid label="$icon_strip"
101 CACHED_ICON=$(grep "^$APP_NAME|" "$ICON_CACHE" | cut -d '|' -f2)
251102
252 done
103 if [ -n "$CACHED_ICON" ]; then
104 # Cache hit, return the icon
105 echo "$CACHED_ICON"
106 exit 0
107 fi
253108
254 for empty_space in $(aerospace list-workspaces --monitor $m --empty); do
255 sketchybar --set space.$empty_space display=0
256 done
257 for focus in $(aerospace list-workspaces --focused); do
258 sketchybar --set space.$focus background.drawing=on \
259 background.color=$ACCENT_COLOR \
260 label.color=$ITEM_COLOR \
261 icon.color=$ITEM_COLOR
262 done
263 done
264 '';
265 };
266
267 items_volume = {
268 executable = true;
269 target = ".config/sketchybar/items/volume.sh";
270 text = ''
271 #/usr/bin/env sh
272
273 sketchybar --add item volume right \
274 --set volume script="$PLUGIN_DIR/volume.sh" \
275 --subscribe volume volume_change
276 '';
277 };
278 plugins_wifi = {
279 executable = true;
280 target = ".config/sketchybar/plugins/wifi.sh";
281 text = ''
282 #/usr/bin/env sh
283
284 SSID=$(system_profiler SPAirPortDataType | awk '/Current Network Information:/ { getline; print substr($0, 13, (length($0) - 13)); exit }')
285
286 if [ "$SSID" = "" ]; then
287 sketchybar --set $NAME icon="􀙈" label="Disconnected"
288 else
289 sketchybar --set $NAME icon="􀙇" label="$SSID"
290 fi
291
292 '';
293 };
294 plugins_calendar = {
295 executable = true;
296 target = ".config/sketchybar/plugins/calendar.sh";
297
298 text = ''
299 #/usr/bin/env sh
300
301 sketchybar --set $NAME label="$(date +'%a %d %b %I:%M %p')"
302 '';
303 };
304 plugins_spaces = {
305 executable = true;
306 target = ".config/sketchybar/plugins/spaces.sh";
307 text = ''
308 #!/usr/bin/env sh
309
310 source "$CONFIG_DIR/colors.sh"
311
312 update_workspace_appearance() {
313 local sid=$1
314 local is_focused=$2
315
316 if [ "$is_focused" = "true" ]; then
317 sketchybar --set space.$sid background.drawing=on \
318 background.color=$ACCENT_COLOR \
319 label.color=$ITEM_COLOR \
320 icon.color=$ITEM_COLOR
321 else
322 sketchybar --set space.$sid background.drawing=off \
323 label.color=$ACCENT_COLOR \
324 icon.color=$ACCENT_COLOR
109 # Get icon from the mapping function
110 __icon_map "$APP_NAME"
111
112 if [ -n "$icon_result" ]; then
113 echo "$APP_NAME|$icon_result" >>"$ICON_CACHE"
325114 fi
326 }
327115
328 update_icons() {
329 m=$1
330 sid=$2
116 echo "$icon_result"
117 '';
118 };
119 colors = {
120 executable = true;
121 target = ".config/sketchybar/colors.sh";
122 text = ''
123
124 export TRANSPARENT=0x00ffffff
125
126 # -- Gray Scheme --
127 export ITEM_COLOR=0xff000000
128 export ACCENT_COLOR=0xffc3c6cb
129
130 # -- White Scheme --
131 # export ITEM_COLOR=0xff000000
132 # export ACCENT_COLOR=0xffffffff
133
134 # -- Teal Scheme --
135 # export ITEM_COLOR=0xff000000
136 # export ACCENT_COLOR=0xff2cf9ed
137
138 # -- Purple Scheme --
139 # export ITEM_COLOR=0xff000000
140 # export ACCENT_COLOR=0xffeb46f9
141
142 # -- Red Scheme ---
143 # export ITEM_COLOR=0xff000000
144 # export ACCENT_COLOR=0xffff2453
145
146 # -- Blue Scheme ---
147 # export ITEM_COLOR=0xff000000
148 # export ACCENT_COLOR=0xff15bdf9
149
150 # -- Green Scheme --
151 # export ITEM_COLOR=0xff000000
152 # export ACCENT_COLOR=0xff1dfca1
153
154 # -- Orange Scheme --
155 # export ITEM_COLOR=0xffffffff
156 # export ACCENT_COLOR=0xfff97716
157
158 # -- Yellow Scheme --
159 # export ITEM_COLOR=0xff000000
160 # export ACCENT_COLOR=0xfff7fc17
161 '';
162 };
163 items_wifi = {
164 executable = true;
165 target = ".config/sketchybar/items/wifi.sh";
166 text = ''
167 #!/usr/bin/env/ sh
168
169 sketchybar --add item wifi right \
170 --set wifi \
171 icon="􀙥" \
172 label="Updating..." \
173 script="$PLUGIN_DIR/wifi.sh" \
174 --subscribe wifi wifi_change
175 '';
176 };
177 items_battery = {
178 executable = true;
179 target = ".config/sketchybar/items/battery.sh";
180 text = ''
181 #!/usr/bin/env/ sh
182 sketchybar --add item battery right \
183 --set battery update_freq=180 \
184 script="$PLUGIN_DIR/battery.sh" \
185 --subscribe battery system_woke power_source_change
186 '';
187 };
188 items_calendar = {
189 executable = true;
190 target = ".config/sketchybar/items/calendar.sh";
191 text = ''
192 #!/usr/bin/env sh
193 sketchybar --add item calendar right \
194 --set calendar icon=􀧞 \
195 update_freq=15 \
196 script="$PLUGIN_DIR/calendar.sh"
197 '';
198 };
199 items_front_app = {
200 executable = true;
201 target = ".config/sketchybar/items/front_app.sh";
202 text = ''
203 #!/usr/bin/env sh
204
205 sketchybar --add item front_app left \
206 --set front_app background.color=$ACCENT_COLOR \
207 icon.color=$ITEM_COLOR \
208 label.color=$ITEM_COLOR \
209 icon.font="sketchybar-app-font:Regular:12.0" \
210 label.font="SF Pro:Semibold:12.0" \
211 script="$PLUGIN_DIR/front_app.sh" \
212 --subscribe front_app front_app_switched
213 '';
214 };
215 items_spaces = {
216 executable = true;
217 target = ".config/sketchybar/items/spaces.sh";
218 text = ''
219 sketchybar --add event aerospace_workspace_change
220
221 sketchybar --add item aerospace_dummy left \
222 --set aerospace_dummy display=0 \
223 script="$PLUGIN_DIR/spaces.sh" \
224 --subscribe aerospace_dummy aerospace_workspace_change
331225
332 apps=$(aerospace list-windows --monitor "$m" --workspace "$sid" \
333 | awk -F '|' '{gsub(/^ *| *$/, "", $2); if (!seen[$2]++) print $2}' \
334 | sort)
226 for m in $(aerospace list-monitors | awk '{print $1}'); do
227 for sid in $(aerospace list-workspaces --monitor $m); do
228 sketchybar --add space space.$sid left \
229 --set space.$sid space=$sid \
230 icon=$sid \
231 background.color=$TRANSPARENT \
232 label.color=$ACCENT_COLOR \
233 icon.color=$ACCENT_COLOR \
234 display=$m \
235 label.font="sketchybar-app-font:Regular:12.0" \
236 icon.font="SF Pro:Semibold:12.0" \
237 label.padding_right=10 \
238 label.y_offset=-1 \
239 click_script="$PLUGIN_DIR/space_click.sh $sid"
240
241 apps=$(aerospace list-windows --monitor "$m" --workspace "$sid" |
242 awk -F '|' '{gsub(/^ *| *$/, "", $2); if (!seen[$2]++) print $2}')
335243
336 icon_strip=""
337 if [ "''${apps}" != "" ]; then
338 while read -r app; do
339 icon_strip+=" $($CONFIG_DIR/plugins/icons.sh "$app")"
340 done <<<"''${apps}"
341 else
342 icon_strip=" —"
343 fi
244 icon_strip=""
245 if [ "''${apps}" != "" ]; then
246 while read -r app; do
247 icon_strip+=" $($PLUGIN_DIR/icons.sh "$app")"
248 done <<<"''${apps}"
249 else
250 icon_strip=" —"
251 fi
344252
345 sketchybar --animate sin 10 --set space.$sid label="$icon_strip"
346 }
253 sketchybar --set space.$sid label="$icon_strip"
347254
348 update_workspace_appearance "$PREV_WORKSPACE" "false"
349 update_workspace_appearance "$FOCUSED_WORKSPACE" "true"
255 done
350256
351 for m in $(aerospace list-monitors | awk '{print $1}'); do
352 for sid in $(aerospace list-workspaces --monitor $m --visible); do
353 sketchybar --set space.$sid display=$m
257 for empty_space in $(aerospace list-workspaces --monitor $m --empty); do
258 sketchybar --set space.$empty_space display=0
259 done
260 for focus in $(aerospace list-workspaces --focused); do
261 sketchybar --set space.$focus background.drawing=on \
262 background.color=$ACCENT_COLOR \
263 label.color=$ITEM_COLOR \
264 icon.color=$ITEM_COLOR
265 done
266 done
267 '';
268 };
269
270 items_volume = {
271 executable = true;
272 target = ".config/sketchybar/items/volume.sh";
273 text = ''
274 #/usr/bin/env sh
275
276 sketchybar --add item volume right \
277 --set volume script="$PLUGIN_DIR/volume.sh" \
278 --subscribe volume volume_change
279 '';
280 };
281 plugins_wifi = {
282 executable = true;
283 target = ".config/sketchybar/plugins/wifi.sh";
284 text = ''
285 #/usr/bin/env sh
286
287 SSID=$(system_profiler SPAirPortDataType | awk '/Current Network Information:/ { getline; print substr($0, 13, (length($0) - 13)); exit }')
288
289 if [ "$SSID" = "" ]; then
290 sketchybar --set $NAME icon="􀙈" label="Disconnected"
291 else
292 sketchybar --set $NAME icon="􀙇" label="$SSID"
293 fi
294
295 '';
296 };
297 plugins_calendar = {
298 executable = true;
299 target = ".config/sketchybar/plugins/calendar.sh";
300
301 text = ''
302 #/usr/bin/env sh
303
304 sketchybar --set $NAME label="$(date +'%a %d %b %I:%M %p')"
305 '';
306 };
307 plugins_spaces = {
308 executable = true;
309 target = ".config/sketchybar/plugins/spaces.sh";
310 text = ''
311 #!/usr/bin/env sh
312
313 source "$CONFIG_DIR/colors.sh"
314
315 update_workspace_appearance() {
316 local sid=$1
317 local is_focused=$2
318
319 if [ "$is_focused" = "true" ]; then
320 sketchybar --set space.$sid background.drawing=on \
321 background.color=$ACCENT_COLOR \
322 label.color=$ITEM_COLOR \
323 icon.color=$ITEM_COLOR
324 else
325 sketchybar --set space.$sid background.drawing=off \
326 label.color=$ACCENT_COLOR \
327 icon.color=$ACCENT_COLOR
328 fi
329 }
354330
355 update_icons "$m" "$sid"
331 update_icons() {
332 m=$1
333 sid=$2
356334
357 update_icons "$m" "$PREV_WORKSPACE"
335 apps=$(aerospace list-windows --monitor "$m" --workspace "$sid" \
336 | awk -F '|' '{gsub(/^ *| *$/, "", $2); if (!seen[$2]++) print $2}' \
337 | sort)
358338
359 apps=$(aerospace list-windows --monitor "$m" --workspace "$sid" | wc -l)
360 if [ "''${apps}" -eq 0 ]; then
361 sketchybar --set space.$sid display=0
339 icon_strip=""
340 if [ "''${apps}" != "" ]; then
341 while read -r app; do
342 icon_strip+=" $($CONFIG_DIR/plugins/icons.sh "$app")"
343 done <<<"''${apps}"
344 else
345 icon_strip=" —"
362346 fi
363 done
364 done
365 '';
366 };
367
368 plugins_space_click = {
369 executable = true;
370 target = ".config/sketchybar/plugins/space_click.sh";
371 text = ''
372 #/usr/bin/env/ sh
373
374 apps=$(aerospace list-windows --workspace $1 | awk -F '|' '{gsub(/^ *| *$/, "", $2); print $2}')
375 focused=$(aerospace list-workspaces --focused)
376
377 if [ "''${apps}" = "" ] && [ "''${focused}" != "$1" ]; then
378 sketchybar --set space.$1 display=0
379 else
380 aerospace workspace $1
381 fi
382 '';
383 };
384 plugins_volume = {
385 executable = true;
386 target = ".config/sketchybar/plugins/volume.sh";
387 text = ''
388 #!/usr/bin/env sh
389
390 # The volume_change event supplies a $INFO variable in which the current volume
391 # percentage is passed to the script.
392
393 if [ "$SENDER" = "volume_change" ]; then
394
395 VOLUME=$INFO
396
397 case $VOLUME in
398 [6-9][0-9] | 100)
399 ICON="􀊩"
400 ;;
401 [3-5][0-9])
402 ICON="􀊥"
403 ;;
404 [1-9] | [1-2][0-9])
405 ICON="􀊡"
406 ;;
407 *) ICON="􀊣" ;;
408 esac
409347
410 sketchybar --set $NAME icon="$ICON" label="$VOLUME%"
411 fi
412 '';
413 };
414 plugins_front_app = {
415 executable = true;
416 target = ".config/sketchybar/plugins/front_app.sh";
417 text = ''
418 # Some events send additional information specific to the event in the $INFO
419 # variable. E.g. the front_app_switched event sends the name of the newly
420 # focused application in the $INFO variable:
421 # https://felixkratz.github.io/SketchyBar/config/events#events-and-scripting
422
423 app_switched() {
348 sketchybar --animate sin 10 --set space.$sid label="$icon_strip"
349 }
350
351 update_workspace_appearance "$PREV_WORKSPACE" "false"
352 update_workspace_appearance "$FOCUSED_WORKSPACE" "true"
353
424354 for m in $(aerospace list-monitors | awk '{print $1}'); do
425355 for sid in $(aerospace list-workspaces --monitor $m --visible); do
356 sketchybar --set space.$sid display=$m
426357
427 apps=$( (echo "$INFO"; aerospace list-windows --monitor "$m" --workspace "$sid" \
428 | awk -F '|' '{gsub(/^ *| *$/, "", $2); print $2}') \
429 | awk '!seen[$0]++' | sort)
358 update_icons "$m" "$sid"
430359
431 icon_strip=""
432 if [ "''${apps}" != "" ]; then
433 while read -r app; do
434 icon_strip+=" $($CONFIG_DIR/plugins/icons.sh "$app")"
435 done <<<"''${apps}"
436 else
437 icon_strip=" —"
438 fi
360 update_icons "$m" "$PREV_WORKSPACE"
439361
440 sketchybar --animate sin 10 --set space.$sid label="$icon_strip"
362 apps=$(aerospace list-windows --monitor "$m" --workspace "$sid" | wc -l)
363 if [ "''${apps}" -eq 0 ]; then
364 sketchybar --set space.$sid display=0
365 fi
441366 done
442367 done
443 }
444
445 if [ "$SENDER" = "front_app_switched" ]; then
446
447 sketchybar --set $NAME label="$INFO" icon="$($CONFIG_DIR/plugins/icons.sh "$INFO")"
448
449 app_switched
450 fi
451 '';
452 };
453 plugins_battery = {
454 executable = true;
455 target = ".config/sketchybar/plugins/battery.sh";
456 text = ''
457 #!/usr/bin/env sh
458 source "$CONFIG_DIR/colors.sh"
459
460 PERCENTAGE=$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1)
461 CHARGING=$(pmset -g batt | grep 'AC Power')
462
463 if [ $PERCENTAGE = "" ]; then
464 exit 0
465 fi
466
467 case ''${PERCENTAGE} in
468 9[0-9] | 100)
469 ICON="􀛨"
470 COLOR=$ITEM_COLOR
471 ;;
472 [6-8][0-9])
473 ICON="􀺸"
474 COLOR=$ITEM_COLOR
475 ;;
476 [3-5][0-9])
477 ICON="􀺶"
478 COLOR="0xFFd97706"
479 ;;
480 [1-2][0-9])
481 ICON="􀛩"
482 COLOR="0xFFf97316"
483 ;;
484 *)
485 ICON="􀛪"
486 COLOR="0xFFef4444"
487 ;;
488 esac
489
490 if [[ $CHARGING != "" ]]; then
491 ICON="􀢋"
492 COLOR=$ITEM_COLOR
493 fi
494
495 # The item invoking this script (name $NAME) will get its icon and label
496 # updated with the current battery status
497 sketchybar --set $NAME icon="$ICON" label="''${PERCENTAGE}%" icon.color="$COLOR"
498 '';
499 };
500 plugins_aerospace = {
501 executable = true;
502 target = ".config/sketchybar/plugins/aerospace.sh";
503 text = ''
504 #!/usr/bin/env bash
505 source "$HOME/.config/sketchybar/colors.sh" # Loads all defined colors
506
507 highlight_focused_workspace() {
508 if [[ "$1" = "$FOCUSED_WORKSPACE" ]]
509 then
510 ${pkgs.sketchybar}/bin/sketchybar --animate tanh 20 --set $NAME icon.highlight=on label.width=0
368 '';
369 };
370
371 plugins_space_click = {
372 executable = true;
373 target = ".config/sketchybar/plugins/space_click.sh";
374 text = ''
375 #/usr/bin/env/ sh
376
377 apps=$(aerospace list-windows --workspace $1 | awk -F '|' '{gsub(/^ *| *$/, "", $2); print $2}')
378 focused=$(aerospace list-workspaces --focused)
379
380 if [ "''${apps}" = "" ] && [ "''${focused}" != "$1" ]; then
381 sketchybar --set space.$1 display=0
511382 else
512 ${pkgs.sketchybar}/bin/sketchybar --animate tanh 20 --set $NAME icon.highlight=off label.width=dynamic
383 aerospace workspace $1
513384 fi
514 }
515
516 illuminate_mode() {
517 if [[ "$mode" = "service" ]]
518 then
519 ${pkgs.sketchybar}/bin/sketchybar --animate tanh 20 --set $NAME background.color=$ORANGE
520 elif [[ "$mode" = "resize" ]]
521 then
522 ${pkgs.sketchybar}/bin/sketchybar --animate tanh 20 --set $NAME background.color=$GREEN
523 else
524 ${pkgs.sketchybar}/bin/sketchybar --animate tanh 20 --set $NAME background.color=$BACKGROUND_1
385 '';
386 };
387 plugins_volume = {
388 executable = true;
389 target = ".config/sketchybar/plugins/volume.sh";
390 text = ''
391 #!/usr/bin/env sh
392
393 # The volume_change event supplies a $INFO variable in which the current volume
394 # percentage is passed to the script.
395
396 if [ "$SENDER" = "volume_change" ]; then
397
398 VOLUME=$INFO
399
400 case $VOLUME in
401 [6-9][0-9] | 100)
402 ICON="􀊩"
403 ;;
404 [3-5][0-9])
405 ICON="􀊥"
406 ;;
407 [1-9] | [1-2][0-9])
408 ICON="􀊡"
409 ;;
410 *) ICON="􀊣" ;;
411 esac
412
413 sketchybar --set $NAME icon="$ICON" label="$VOLUME%"
525414 fi
526 }
527 case "$SENDER" in
528 "aerospace_workspace_change")
529 highlight_focused_workspace $1
415 '';
416 };
417 plugins_front_app = {
418 executable = true;
419 target = ".config/sketchybar/plugins/front_app.sh";
420 text = ''
421 # Some events send additional information specific to the event in the $INFO
422 # variable. E.g. the front_app_switched event sends the name of the newly
423 # focused application in the $INFO variable:
424 # https://felixkratz.github.io/SketchyBar/config/events#events-and-scripting
425
426 app_switched() {
427 for m in $(aerospace list-monitors | awk '{print $1}'); do
428 for sid in $(aerospace list-workspaces --monitor $m --visible); do
429
430 apps=$( (echo "$INFO"; aerospace list-windows --monitor "$m" --workspace "$sid" \
431 | awk -F '|' '{gsub(/^ *| *$/, "", $2); print $2}') \
432 | awk '!seen[$0]++' | sort)
433
434 icon_strip=""
435 if [ "''${apps}" != "" ]; then
436 while read -r app; do
437 icon_strip+=" $($CONFIG_DIR/plugins/icons.sh "$app")"
438 done <<<"''${apps}"
439 else
440 icon_strip=" —"
441 fi
442
443 sketchybar --animate sin 10 --set space.$sid label="$icon_strip"
444 done
445 done
446 }
447
448 if [ "$SENDER" = "front_app_switched" ]; then
449
450 sketchybar --set $NAME label="$INFO" icon="$($CONFIG_DIR/plugins/icons.sh "$INFO")"
451
452 app_switched
453 fi
454 '';
455 };
456 plugins_battery = {
457 executable = true;
458 target = ".config/sketchybar/plugins/battery.sh";
459 text = ''
460 #!/usr/bin/env sh
461 source "$CONFIG_DIR/colors.sh"
462
463 PERCENTAGE=$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1)
464 CHARGING=$(pmset -g batt | grep 'AC Power')
465
466 if [ $PERCENTAGE = "" ]; then
467 exit 0
468 fi
469
470 case ''${PERCENTAGE} in
471 9[0-9] | 100)
472 ICON="􀛨"
473 COLOR=$ITEM_COLOR
474 ;;
475 [6-8][0-9])
476 ICON="􀺸"
477 COLOR=$ITEM_COLOR
478 ;;
479 [3-5][0-9])
480 ICON="􀺶"
481 COLOR="0xFFd97706"
530482 ;;
531 "aerospace_mode_change")
532 illuminate_mode
483 [1-2][0-9])
484 ICON="􀛩"
485 COLOR="0xFFf97316"
533486 ;;
534 esac
535 '';
536 };
537 }
487 *)
488 ICON="􀛪"
489 COLOR="0xFFef4444"
490 ;;
491 esac
492
493 if [[ $CHARGING != "" ]]; then
494 ICON="􀢋"
495 COLOR=$ITEM_COLOR
496 fi
497
498 # The item invoking this script (name $NAME) will get its icon and label
499 # updated with the current battery status
500 sketchybar --set $NAME icon="$ICON" label="''${PERCENTAGE}%" icon.color="$COLOR"
501 '';
502 };
503 plugins_aerospace = {
504 executable = true;
505 target = ".config/sketchybar/plugins/aerospace.sh";
506 text = ''
507 #!/usr/bin/env bash
508 source "$HOME/.config/sketchybar/colors.sh" # Loads all defined colors
509
510 highlight_focused_workspace() {
511 if [[ "$1" = "$FOCUSED_WORKSPACE" ]]
512 then
513 ${pkgs.sketchybar}/bin/sketchybar --animate tanh 20 --set $NAME icon.highlight=on label.width=0
514 else
515 ${pkgs.sketchybar}/bin/sketchybar --animate tanh 20 --set $NAME icon.highlight=off label.width=dynamic
516 fi
517 }
518
519 illuminate_mode() {
520 if [[ "$mode" = "service" ]]
521 then
522 ${pkgs.sketchybar}/bin/sketchybar --animate tanh 20 --set $NAME background.color=$ORANGE
523 elif [[ "$mode" = "resize" ]]
524 then
525 ${pkgs.sketchybar}/bin/sketchybar --animate tanh 20 --set $NAME background.color=$GREEN
526 else
527 ${pkgs.sketchybar}/bin/sketchybar --animate tanh 20 --set $NAME background.color=$BACKGROUND_1
528 fi
529 }
530 case "$SENDER" in
531 "aerospace_workspace_change")
532 highlight_focused_workspace $1
533 ;;
534 "aerospace_mode_change")
535 illuminate_mode
536 ;;
537 esac
538 '';
539 };
540 }
538541 );
539542}
modules/macos/system.nix+4-2
......@@ -4,9 +4,11 @@
44 pkgs,
55 lib,
66 ...
7}: let
7}:
8let
89 tiling = config.shared.darwin.tiling.enable;
9in {
10in
11{
1012 # Use touchid or watch to activate sudo
1113 security.pam.services.sudo_local = {
1214 enable = true;
modules/nixos/services.nix+4-3
......@@ -1,4 +1,5 @@
1{pkgs, ...}: {
1{ pkgs, ... }:
2{
23 services = {
34 avahi = {
45 enable = true;
......@@ -40,7 +41,7 @@
4041 # Enable CUPS to print documents.
4142 printing = {
4243 enable = true;
43 drivers = [pkgs.brlaser]; # Brother printer driver
44 drivers = [ pkgs.brlaser ]; # Brother printer driver
4445 };
4546
4647 pipewire = {
......@@ -55,7 +56,7 @@
5556
5657 openssh = {
5758 enable = true;
58 ports = [22];
59 ports = [ 22 ];
5960 settings = {
6061 PasswordAuthentication = true;
6162 UseDns = true;
modules/shared/nix.nix+2-1
......@@ -1,4 +1,5 @@
1{inputs, ...}: {
1{ inputs, ... }:
2{
23 nixpkgs.config = {
34 allowUnfree = true;
45 };
users/natalie/desktop/configuration.nix+8-7
......@@ -3,7 +3,8 @@
33 user,
44 host,
55 ...
6}: {
6}:
7{
78 imports = [
89 # Include the results of the hardware scan.
910 ./hardware-configuration.nix
......@@ -17,7 +18,7 @@
1718 enable = true;
1819 # Certain features, including CLI integration and system authentication support,
1920 # require enabling PolKit integration on some desktop environments (e.g. Plasma).
20 polkitPolicyOwners = [user.username];
21 polkitPolicyOwners = [ user.username ];
2122 };
2223
2324 noisetorch.enable = true;
......@@ -34,7 +35,7 @@
3435
3536 steam = {
3637 enable = true;
37 package = with pkgs; steam.override {extraPkgs = pkgs: [attr];};
38 package = with pkgs; steam.override { extraPkgs = pkgs: [ attr ]; };
3839 };
3940
4041 git = {
......@@ -58,7 +59,7 @@
5859
5960 xdg.portal = {
6061 enable = true;
61 extraPortals = with pkgs; [xdg-desktop-portal-gtk];
62 extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
6263 };
6364 virtualisation = {
6465 containers.enable = true;
......@@ -83,14 +84,14 @@
8384 hybrid-sleep.enable = false;
8485 };
8586
86 services.monitord.wantedBy = ["multi-user.target"];
87 services.monitord.wantedBy = [ "multi-user.target" ];
8788 };
8889
8990 i18n = {
9091 # Select internationalisation properties.
9192 defaultLocale = "en_US.UTF-8";
9293
93 supportedLocales = ["all"];
94 supportedLocales = [ "all" ];
9495
9596 extraLocaleSettings = {
9697 LC_ADDRESS = "en_US.UTF-8";
......@@ -170,7 +171,7 @@
170171 };
171172 interfaces.enp11s0.wakeOnLan = {
172173 enable = true;
173 policy = ["magic"];
174 policy = [ "magic" ];
174175 };
175176 };
176177
users/natalie/desktop/home.nix+3-1
......@@ -8,6 +8,7 @@
88 ...
99}:
1010{
11 programs.mangohud.enable = true;
1112 home = {
1213 stateVersion = "23.05"; # Please read the comment before changing.
1314
......@@ -29,6 +30,7 @@
2930 wineWowPackages.stable
3031 winetricks
3132 (prismlauncher.override { gamemodeSupport = true; })
33 umu-launcher
3234
3335 #window manager stuff
3436 wofi
......@@ -50,8 +52,8 @@
5052 signal-desktop
5153 inputs.zls.packages.x86_64-linux.zls
5254 rust-bin.stable.latest.default
55 inputs.zen-browser.packages.x86_64-linux.default
5356 ];
54 # programs.mangohud.enable = true;
5557 };
5658
5759 # xdg.mimeApps.defaultApplications."inode/directory" = "dolphin.desktop";
users/natalie/home.nix+2-1
......@@ -2,7 +2,8 @@
22 pkgs,
33 lib,
44 ...
5} @ args: {
5}@args:
6{
67 programs = {
78 # sort-lines:start
89 atuin.enable = true;
users/natalie/laptop/configuration.nix+3-2
......@@ -1,4 +1,5 @@
1{pkgs, ...}: {
1{ pkgs, ... }:
2{
23 environment.systemPackages = with pkgs; [
34 pinentry_mac
45 ];
......@@ -6,7 +7,7 @@
67 # Custom configuration modules in "modules" are shared between users,
78 # and can be configured in this "shared" namespace
89 shared.darwin = {
9 macAppStoreApps = ["wireguard"];
10 macAppStoreApps = [ "wireguard" ];
1011 };
1112
1213 # Create /etc/zshrc that loads the nix-darwin environment.
users/natalie/vim/default.nix+2-1
......@@ -1,4 +1,5 @@
1{...}: {
1{ ... }:
2{
23 imports = [
34 ./keybinds.nix
45 ./languages.nix
users/natalie/vim/lean.nix+2-1
......@@ -1,4 +1,5 @@
1{pkgs, ...}: {
1{ pkgs, ... }:
2{
23 vim = {
34 lazy.plugins."lean.nvim" = {
45 enabled = true;
users/natalie/vim/visuals.nix+2-1
......@@ -1,4 +1,5 @@
1{pkgs, ...}: {
1{ pkgs, ... }:
2{
23 vim = {
34 visuals = {
45 indent-blankline = {