My dotfiles for my nixos machines and infra
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Init commit lol, pls dont steal password <3

MrSnowy 401245d4

+3133
+379
.config/hypr/hyprland.conf
··· 1 + #==================================# 2 + # Mi hyperlando configu 3 + 4 + # debug:disable_logs = false 5 + # debug:overlay = true 6 + 7 + ################ 8 + ### MONITORS ### 9 + ################ 10 + 11 + # See https://wiki.hyprland.org/Configuring/Monitors/ 12 + monitor=DP-2,1920x1080@165,1920x0,1 13 + monitor=DP-1,1920x1080@165,0x0,1 14 + 15 + ################### 16 + ### MY PROGRAMS ### 17 + ################### 18 + 19 + # Set programs that you use 20 + $terminal = foot 21 + $fileManager = dolphin 22 + $menu = fish -c "rofi -show drun" 23 + $clipbowod = cliphist list | rofi -dmenu | cliphist decode | wl-copy 24 + 25 + # $sweenSwotOWO = grim -g "$(slurp -d)" - | wl-copy && wl-paste > ~/Pictures/Screenshots/Screenshot_$(date -u +%Y%m%d-%H%M%S).png 26 + $sweenSwotOWO = hyprshot -m region -o ~/Pictures/Screenshots/ -f Screenshot_$(date -u +%Y%m%d-%H%M%S).png 27 + $kill = hyprctl kill 28 + $kill_instant = kill $(hyprctl activewindow | awk '/pid:/ {print $2}') 29 + 30 + plugin { 31 + hyprsplit { 32 + num_workspaces = 10 33 + persistent_workspaces = true 34 + } 35 + } 36 + 37 + ################# 38 + ### AUTOSTART ### 39 + ################# 40 + 41 + #exec-once = /nix/store/$(ls -la /nix/store | grep polkit-kde-agent-1-5 | grep '^d' | awk '{print $9}' | head -n 1)/libexec/polkit-kde-authentication-agent-1 & 42 + #exec-once = /usr/lib64/libexec/polkit-kde-authentication-agent-1 & 43 + #exec-once=/usr/libexec/polkit-gnome-authentication-agent-1 & 44 + #exec-once = $(find /nix/store -maxdepth 3 -wholename "*-polkit-gnome-*/libexec/polkit-gnome-authentication-agent-1" -print -quit) 45 + 46 + exec-once = noisetorch -i 47 + exec-once = mako 48 + exec-once = waybar 49 + exec-once = playerctld daemon 50 + exec-once = hyprpaper 51 + exec-once = wl-paste --type text --watch cliphist store #Stores only text data 52 + exec-once = wl-paste --type image --watch cliphist store #Stores only image data 53 + #exec-once = hyprpm reload -n 54 + #exec-once = hyprctl plugin load $(find /nix/store -maxdepth 1 -wholename "*-hyprsplit-$(hyprctl version -j | jq -r .version)" -print -quit)/lib/libhyprsplit.so 55 + #exec-once = gentoo-pipewire-launcher 56 + #exec-once = kwalletd5 & 57 + 58 + exec = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # for GTK4 apps 59 + exec = gsettings set org.gnome.desktop.interface icon-theme "Adwaita" 60 + 61 + 62 + ############################# 63 + ### ENVIRONMENT VARIABLES ### 64 + ############################# 65 + 66 + # See https://wiki.hyprland.org/Configuring/Environment-variables/ 67 + 68 + env = XDG_CURRENT_DESKTOP,Hyprland 69 + env = XDG_SESSION_TYPE,wayland 70 + env = XDG_SESSION_DESKTOP,Hyprland 71 + 72 + env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 73 + env = QT_QPA_PLATFORMTHEME,qt5ct 74 + #env = QT_QPA_PLATFORM,wayland;xcb 75 + env = QT_QPA_PLATFORM,xcb 76 + 77 + env = GDK_BACKEND,wayland,x11,* 78 + env = SDL_VIDEODRIVER,wayland,x11,windows 79 + env = CLUTTER_BACKEND,wayland,x11,* 80 + env = OZONE_PLATFORM,wayland 81 + env = ELECTRON_OZONE_PLATFORM_HINT,auto 82 + 83 + env = XCURSOR_THEME,phinger-cursors-light 84 + env = XCURSOR_SIZE,24 85 + 86 + env = HYPRCURSOR_SIZE,24 87 + env = HYPRCURSOR_THEME,phinger-cursors-light 88 + 89 + 90 + ##################### 91 + ### LOOK AND FEEL ### 92 + ##################### 93 + 94 + general { 95 + gaps_in = 5 96 + gaps_out = 8 97 + 98 + border_size = 1 99 + 100 + #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg 101 + 102 + col.inactive_border = rgba(595959aa) 103 + #col.active_border = rgba(A2C7A6E6) rgba(89b4faFF) 45deg 104 + #col.inactive_border = rgba(5c6c7caa) 105 + 106 + #col.inactive_border = rgb(A6D189) 107 + 108 + col.active_border = rgb(A0D490) 109 + 110 + # Set to true enable resizing windows by clicking and dragging on borders and gaps 111 + resize_on_border = true 112 + 113 + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on 114 + allow_tearing = true 115 + 116 + layout = dwindle 117 + } 118 + 119 + # https://wiki.hyprland.org/Configuring/Variables/#decoration 120 + decoration { 121 + rounding = 5 122 + 123 + # Change transparency of focused and unfocused windows 124 + active_opacity = 1.0 125 + inactive_opacity = 1.0 126 + 127 + shadow { 128 + enabled = false 129 + range = 8 130 + #render_power = 3 131 + sharp = false 132 + color = rgba(1a1a1aee) 133 + color_inactive = rgba(1a1a1aee) 134 + } 135 + 136 + # https://wiki.hyprland.org/Configuring/Variables/#blur 137 + blur { 138 + enabled = true 139 + size = 3 140 + passes = 1 141 + 142 + vibrancy = 0.1696 143 + } 144 + } 145 + 146 + # https://wiki.hyprland.org/Configuring/Variables/#animations 147 + animations { 148 + enabled = true 149 + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more 150 + 151 + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 152 + 153 + animation = windows, 1, 6, myBezier 154 + animation = windowsOut, 1, 6, default, popin 80% 155 + animation = border, 1, 10, default 156 + animation = borderangle, 1, 8, default 157 + animation = fade, 1, 7, default 158 + animation = workspaces, 1, 4, default, slidevert 159 + } 160 + 161 + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more 162 + dwindle { 163 + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below 164 + preserve_split = true # You probably want this 165 + } 166 + 167 + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more 168 + master { 169 + new_status = master 170 + } 171 + 172 + # https://wiki.hyprland.org/Configuring/Variables/#misc 173 + misc { 174 + force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers 175 + disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( 176 + enable_anr_dialog = false 177 + } 178 + 179 + 180 + ############# 181 + ### INPUT ### 182 + ############# 183 + 184 + # https://wiki.hyprland.org/Configuring/Variables/#input 185 + input { 186 + kb_layout = us, hu 187 + kb_variant = 188 + kb_model = 189 + kb_options = grp:alt_space_toggle 190 + kb_rules = 191 + 192 + follow_mouse = 1 193 + 194 + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. 195 + 196 + touchpad { 197 + natural_scroll = false 198 + } 199 + } 200 + 201 + # https://wiki.hyprland.org/Configuring/Variables/#gestures 202 + gestures { 203 + workspace_swipe = false 204 + } 205 + 206 + # Example per-device config 207 + # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more 208 + device { 209 + name = epic-mouse-v1 210 + sensitivity = -0.5 211 + } 212 + 213 + 214 + #################### 215 + ### KEYBINDINGSS ### 216 + #################### 217 + 218 + # See https://wiki.hyprland.org/Configuring/Keywords/ 219 + $mainMod = SUPER # Sets "Windows" key as main modifier 220 + $secMod = ALT # Sets "ALT" key as main modifier 221 + 222 + bind = $mainMod, F, fullscreen, 1 223 + bind = $mainMod SHIFT, F, fullscreen, 2 224 + bind = $mainMod Shift, S, exec, $sweenSwotOWO 225 + bind = $mainMod, V, exec, $clipbowod 226 + 227 + # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more 228 + bind = $mainMod, Q, exec, $terminal 229 + bind = $mainMod, C, killactive, 230 + bind = $secMod, F4, exec, $kill_instant 231 + bind = $mainMod, F4, exec, $kill 232 + 233 + bind = $mainMod, ESCAPE, exec, $terminal -e btop 234 + 235 + # bind = $mainMod, M, exit, 236 + bind = $mainMod, E, exec, $fileManager 237 + bind = $mainMod, B, togglefloating, 238 + bind = $mainMod, SPACE, exec, $menu 239 + bind = $mainMod, P, pseudo, # dwindle 240 + bind = $mainMod, J, togglesplit, # dwindle 241 + 242 + # Move focus with mainMod + arrow keys 243 + bind = $mainMod, left, movefocus, l 244 + bind = $mainMod, right, movefocus, r 245 + bind = $mainMod, up, movefocus, u 246 + bind = $mainMod, down, movefocus, d 247 + 248 + # Move focus with mainMod + arrow keys 249 + bind = $mainMod shift, left, movewindow, l 250 + bind = $mainMod shift, right, movewindow, r 251 + bind = $mainMod shift, up, movewindow, u 252 + bind = $mainMod shift, down, movewindow, d 253 + 254 + $workspacevar = split:workspace 255 + $movetoworkspacevar = split:movetoworkspace 256 + 257 + # Switch workspaces with mainMod + [0-9] 258 + bind = $mainMod, 1, $workspacevar, 1 259 + bind = $mainMod, 2, $workspacevar, 2 260 + bind = $mainMod, 3, $workspacevar, 3 261 + bind = $mainMod, 4, $workspacevar, 4 262 + bind = $mainMod, 5, $workspacevar, 5 263 + bind = $mainMod, 6, $workspacevar, 6 264 + bind = $mainMod, 7, $workspacevar, 7 265 + bind = $mainMod, 8, $workspacevar, 8 266 + bind = $mainMod, 9, $workspacevar, 9 267 + bind = $mainMod, 0, $workspacevar, 10 268 + 269 + # Move active window to a workspace with mainMod + SHIFT + [0-9] 270 + bind = $mainMod SHIFT, 1, $movetoworkspacevar, 1 271 + bind = $mainMod SHIFT, 2, $movetoworkspacevar, 2 272 + bind = $mainMod SHIFT, 3, $movetoworkspacevar, 3 273 + bind = $mainMod SHIFT, 4, $movetoworkspacevar, 4 274 + bind = $mainMod SHIFT, 5, $movetoworkspacevar, 5 275 + bind = $mainMod SHIFT, 6, $movetoworkspacevar, 6 276 + bind = $mainMod SHIFT, 7, $movetoworkspacevar, 7 277 + bind = $mainMod SHIFT, 8, $movetoworkspacevar, 8 278 + bind = $mainMod SHIFT, 9, $movetoworkspacevar, 9 279 + bind = $mainMod SHIFT, 0, $movetoworkspacevar, 10 280 + 281 + # Example special workspace (scratchpad) 282 + 283 + #bind = $secMod, TAB, split-movetoworkspace, special:magic 284 + bind = $secMod, TAB, togglespecialworkspace, magic 285 + bind = $secMod SHIFT, TAB, $movetoworkspacevar, special:magic 286 + 287 + # Scroll through existing workspaces with mainMod + scroll 288 + bind = $mainMod, mouse_down, workspace, e+1 289 + bind = $mainMod, mouse_up, workspace, e-1 290 + 291 + # Move/resize windows with mainMod + LMB/RMB and dragging 292 + bindm = $mainMod, mouse:272, movewindow 293 + bindm = $mainMod, mouse:273, resizewindow 294 + 295 + # Example volume button that allows press and hold, volume limited to 150% 296 + bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+ & 297 + #bindel = , SHIFT XF86AudioRaiseVolume , exec, wpctl set-volume -1 1.8 @DEFAULT_AUDIO_SINK@ 1%+ # why dis not workie 298 + 299 + # Example volume button that will activate even while an input inhibitor is active 300 + bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- & 301 + 302 + bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle 303 + 304 + bind = , XF86AudioPlay, exec, playerctl play-pause 305 + bind = , XF86AudioPrev, exec, playerctl previous 306 + bind = , XF86AudioNext, exec, playerctl next 307 + 308 + bind = , XF86AudioMicMute, exec, ~/Documents/scripts/mute-mic.sh 309 + 310 + bind = , F14, exec, /mnt/SnowData/snowy/Documents/scripts/mute-mic.sh 311 + 312 + ############################## 313 + ### WINDOWS AND WORKSPACES ### 314 + ############################## 315 + 316 + # silly window rules go here :3 v 317 + $polkit = polkit-gnome-authentication-agent-1 318 + $keyring = gcr-prompter 319 + # $share-picker = hyprland-share-picker 320 + $share-picker = MainPicker 321 + $xdg-portal = xdg-desktop-portal-gtk 322 + 323 + windowrule = float, class: $polkit 324 + windowrule = center 1, class: $polkit 325 + windowrule = size 540 280, class: $polkit 326 + windowrule = stayfocused, class: $polkit 327 + windowrule = pin, class: $polkit 328 + windowrule = opacity 0.95, class: $polkit 329 + windowrule = dimaround, class: $polkit 330 + 331 + windowrule = float, class: $keyring 332 + windowrule = center 1, class: $keyring 333 + windowrule = size 1100 800, class: $keyring 334 + windowrule = stayfocused, class: $keyring 335 + windowrule = pin, class: $keyring 336 + windowrule = opacity 0.95, class: $keyring 337 + windowrule = dimaround, class: $keyring 338 + 339 + windowrule = float, title: $share-picker 340 + windowrule = center 1, title: $share-picker 341 + windowrule = size 600 360, title: $share-picker 342 + windowrule = pin, title: $share-picker 343 + windowrule = opacity 0.95, title: $share-picker 344 + windowrule = dimaround, title: $share-picker 345 + 346 + windowrule = float, class: $xdg-portal 347 + windowrule = center 1, class: $xdg-portal 348 + windowrule = pin, class: $xdg-portal 349 + 350 + # windowrule = monitor 1, title:(Euro Truck Simulator 2) 351 + # windowrule = fullscreen, title:(Euro Truck Simulator 2) 352 + 353 + # rustrover 354 + windowrule = float, title:Welcome to RustRover, class:jetbrains-rustrover 355 + windowrule = center, title:Welcome to RustRover, class:jetbrains-rustrover 356 + windowrule = size 800 600, title:Welcome to RustRover, class:jetbrains-rustrover 357 + 358 + # Zen PiP 359 + windowrule = float, title:^(Picture-in-Picture)$, class:zen-twilight 360 + windowrule = pin, title:^(Picture-in-Picture)$, class:zen-twilight 361 + windowrule = center, title:^(Picture-in-Picture)$, class:zen-twilight 362 + windowrule = size 550 310, title:^(Picture-in-Picture)$, class:zen-twilight 363 + windowrule = move 71% 1%, title:^(Picture-in-Picture)$, class:zen-twilight 364 + 365 + # # firefor PiP 366 + # windowrule = float, title:^(Picture-in-Picture)$, class:firefox-aurora 367 + # windowrule = pin, title:^(Picture-in-Picture)$, class:firefox-aurora 368 + # windowrule = center, title:^(Picture-in-Picture)$, class:firefox-aurora 369 + # windowrule = size 550 310, title:^(Picture-in-Picture)$, class:firefox-aurora 370 + # windowrule = move 71% 1%, title:^(Picture-in-Picture)$, class:firefox-aurora 371 + 372 + windowrule = nofocus, title:PenTablet 373 + windowrule = float, title:Steam Settings, class:steam 374 + windowrule = float, title:Extension: (Bitwarden Password Manager) - Bitwarden — Zen Twilight, class:zen-twilight 375 + windowrule = float, title:MainPicker 376 + windowrule = float, title:Preferences, class:blender # Doesnt seem to work..? 377 + 378 + 379 + layerrule = dimaround, rofi
+919
nixos/flake.lock
··· 1 + { 2 + "nodes": { 3 + "aquamarine": { 4 + "inputs": { 5 + "hyprutils": [ 6 + "hyprland", 7 + "hyprutils" 8 + ], 9 + "hyprwayland-scanner": [ 10 + "hyprland", 11 + "hyprwayland-scanner" 12 + ], 13 + "nixpkgs": [ 14 + "hyprland", 15 + "nixpkgs" 16 + ], 17 + "systems": [ 18 + "hyprland", 19 + "systems" 20 + ] 21 + }, 22 + "locked": { 23 + "lastModified": 1755946532, 24 + "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=", 25 + "owner": "hyprwm", 26 + "repo": "aquamarine", 27 + "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada", 28 + "type": "github" 29 + }, 30 + "original": { 31 + "owner": "hyprwm", 32 + "repo": "aquamarine", 33 + "type": "github" 34 + } 35 + }, 36 + "chaotic": { 37 + "inputs": { 38 + "flake-schemas": "flake-schemas", 39 + "home-manager": "home-manager", 40 + "jovian": "jovian", 41 + "nixpkgs": "nixpkgs", 42 + "rust-overlay": "rust-overlay" 43 + }, 44 + "locked": { 45 + "lastModified": 1757377667, 46 + "narHash": "sha256-RR9KPGEKOzWtc3s9rjOAzn2GP6hgXcPlmbGNBw2MGcQ=", 47 + "owner": "chaotic-cx", 48 + "repo": "nyx", 49 + "rev": "960a6988b572f2ed7ac453c43ae1fc4a05c297dd", 50 + "type": "github" 51 + }, 52 + "original": { 53 + "owner": "chaotic-cx", 54 + "ref": "nyxpkgs-unstable", 55 + "repo": "nyx", 56 + "type": "github" 57 + } 58 + }, 59 + "fennec-flake": { 60 + "inputs": { 61 + "flake-parts": "flake-parts", 62 + "nixpkgs": "nixpkgs_2" 63 + }, 64 + "locked": { 65 + "lastModified": 1754899525, 66 + "narHash": "sha256-B1tfF/LeK7m/LFtB8t8H3lspOCtS9oOjztk297Juyvk=", 67 + "ref": "mrrow", 68 + "rev": "9ed246b1a635ed2edb5a7ff2bf55343494622f70", 69 + "revCount": 43, 70 + "type": "git", 71 + "url": "https://git.killuaa.dev/Rouffy/fennec-flake" 72 + }, 73 + "original": { 74 + "ref": "mrrow", 75 + "type": "git", 76 + "url": "https://git.killuaa.dev/Rouffy/fennec-flake" 77 + } 78 + }, 79 + "flake-compat": { 80 + "flake": false, 81 + "locked": { 82 + "lastModified": 1747046372, 83 + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", 84 + "owner": "edolstra", 85 + "repo": "flake-compat", 86 + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", 87 + "type": "github" 88 + }, 89 + "original": { 90 + "owner": "edolstra", 91 + "repo": "flake-compat", 92 + "type": "github" 93 + } 94 + }, 95 + "flake-parts": { 96 + "inputs": { 97 + "nixpkgs-lib": "nixpkgs-lib" 98 + }, 99 + "locked": { 100 + "lastModified": 1754487366, 101 + "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", 102 + "owner": "hercules-ci", 103 + "repo": "flake-parts", 104 + "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", 105 + "type": "github" 106 + }, 107 + "original": { 108 + "owner": "hercules-ci", 109 + "repo": "flake-parts", 110 + "type": "github" 111 + } 112 + }, 113 + "flake-parts_2": { 114 + "inputs": { 115 + "nixpkgs-lib": "nixpkgs-lib_2" 116 + }, 117 + "locked": { 118 + "lastModified": 1754487366, 119 + "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", 120 + "owner": "hercules-ci", 121 + "repo": "flake-parts", 122 + "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", 123 + "type": "github" 124 + }, 125 + "original": { 126 + "owner": "hercules-ci", 127 + "repo": "flake-parts", 128 + "type": "github" 129 + } 130 + }, 131 + "flake-schemas": { 132 + "locked": { 133 + "lastModified": 1721999734, 134 + "narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=", 135 + "rev": "0a5c42297d870156d9c57d8f99e476b738dcd982", 136 + "revCount": 75, 137 + "type": "tarball", 138 + "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz" 139 + }, 140 + "original": { 141 + "type": "tarball", 142 + "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz" 143 + } 144 + }, 145 + "gitignore": { 146 + "inputs": { 147 + "nixpkgs": [ 148 + "hyprland", 149 + "pre-commit-hooks", 150 + "nixpkgs" 151 + ] 152 + }, 153 + "locked": { 154 + "lastModified": 1709087332, 155 + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", 156 + "owner": "hercules-ci", 157 + "repo": "gitignore.nix", 158 + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", 159 + "type": "github" 160 + }, 161 + "original": { 162 + "owner": "hercules-ci", 163 + "repo": "gitignore.nix", 164 + "type": "github" 165 + } 166 + }, 167 + "home-manager": { 168 + "inputs": { 169 + "nixpkgs": [ 170 + "chaotic", 171 + "nixpkgs" 172 + ] 173 + }, 174 + "locked": { 175 + "lastModified": 1757256385, 176 + "narHash": "sha256-WK7tOhWwr15mipcckhDg2no/eSpM1nIh4C9le8HgHhk=", 177 + "owner": "nix-community", 178 + "repo": "home-manager", 179 + "rev": "f35703b412c67b48e97beb6e27a6ab96a084cd37", 180 + "type": "github" 181 + }, 182 + "original": { 183 + "owner": "nix-community", 184 + "repo": "home-manager", 185 + "type": "github" 186 + } 187 + }, 188 + "home-manager_2": { 189 + "inputs": { 190 + "nixpkgs": [ 191 + "nixpkgs-unstable" 192 + ] 193 + }, 194 + "locked": { 195 + "lastModified": 1757385184, 196 + "narHash": "sha256-LCxtQn9ajvOgGRbQIRUJgfP7clMGGvV1SDW1HcSb0zk=", 197 + "owner": "nix-community", 198 + "repo": "home-manager", 199 + "rev": "26993d87fd0d3b14f7667b74ad82235f120d986e", 200 + "type": "github" 201 + }, 202 + "original": { 203 + "owner": "nix-community", 204 + "ref": "master", 205 + "repo": "home-manager", 206 + "type": "github" 207 + } 208 + }, 209 + "home-manager_3": { 210 + "inputs": { 211 + "nixpkgs": [ 212 + "zen-browser", 213 + "nixpkgs" 214 + ] 215 + }, 216 + "locked": { 217 + "lastModified": 1752603129, 218 + "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=", 219 + "owner": "nix-community", 220 + "repo": "home-manager", 221 + "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b", 222 + "type": "github" 223 + }, 224 + "original": { 225 + "owner": "nix-community", 226 + "repo": "home-manager", 227 + "type": "github" 228 + } 229 + }, 230 + "hyprcursor": { 231 + "inputs": { 232 + "hyprlang": [ 233 + "hyprland", 234 + "hyprlang" 235 + ], 236 + "nixpkgs": [ 237 + "hyprland", 238 + "nixpkgs" 239 + ], 240 + "systems": [ 241 + "hyprland", 242 + "systems" 243 + ] 244 + }, 245 + "locked": { 246 + "lastModified": 1753964049, 247 + "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", 248 + "owner": "hyprwm", 249 + "repo": "hyprcursor", 250 + "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", 251 + "type": "github" 252 + }, 253 + "original": { 254 + "owner": "hyprwm", 255 + "repo": "hyprcursor", 256 + "type": "github" 257 + } 258 + }, 259 + "hyprgraphics": { 260 + "inputs": { 261 + "hyprutils": [ 262 + "hyprland", 263 + "hyprutils" 264 + ], 265 + "nixpkgs": [ 266 + "hyprland", 267 + "nixpkgs" 268 + ], 269 + "systems": [ 270 + "hyprland", 271 + "systems" 272 + ] 273 + }, 274 + "locked": { 275 + "lastModified": 1756891319, 276 + "narHash": "sha256-/e6OXxzbAj/o97Z1dZgHre4bNaVjapDGscAujSCQSbI=", 277 + "owner": "hyprwm", 278 + "repo": "hyprgraphics", 279 + "rev": "621e2e00f1736aa18c68f7dfbf2b9cff94b8cc4d", 280 + "type": "github" 281 + }, 282 + "original": { 283 + "owner": "hyprwm", 284 + "repo": "hyprgraphics", 285 + "type": "github" 286 + } 287 + }, 288 + "hyprland": { 289 + "inputs": { 290 + "aquamarine": "aquamarine", 291 + "hyprcursor": "hyprcursor", 292 + "hyprgraphics": "hyprgraphics", 293 + "hyprland-protocols": "hyprland-protocols", 294 + "hyprland-qtutils": "hyprland-qtutils", 295 + "hyprlang": "hyprlang", 296 + "hyprutils": "hyprutils", 297 + "hyprwayland-scanner": "hyprwayland-scanner", 298 + "nixpkgs": "nixpkgs_3", 299 + "pre-commit-hooks": "pre-commit-hooks", 300 + "systems": "systems", 301 + "xdph": "xdph" 302 + }, 303 + "locked": { 304 + "lastModified": 1757359491, 305 + "narHash": "sha256-NT6lAoNk8iv5SVG0rUCAIJlPSIvoyogvnEUGSfeeZ6I=", 306 + "owner": "hyprwm", 307 + "repo": "Hyprland", 308 + "rev": "1e3a06560fa6b2d906f8ecc9ec41b50e9b034cef", 309 + "type": "github" 310 + }, 311 + "original": { 312 + "owner": "hyprwm", 313 + "repo": "Hyprland", 314 + "type": "github" 315 + } 316 + }, 317 + "hyprland-plugins": { 318 + "inputs": { 319 + "hyprland": [ 320 + "hyprland" 321 + ], 322 + "nixpkgs": [ 323 + "hyprland-plugins", 324 + "hyprland", 325 + "nixpkgs" 326 + ], 327 + "systems": [ 328 + "hyprland-plugins", 329 + "hyprland", 330 + "systems" 331 + ] 332 + }, 333 + "locked": { 334 + "lastModified": 1756806479, 335 + "narHash": "sha256-+RLX4BmuMw4c97npsBcjjEuy+s83POX9Yp8Nkj499lA=", 336 + "owner": "hyprwm", 337 + "repo": "hyprland-plugins", 338 + "rev": "b8d6d369618078b2dbb043480ca65fe3521f273b", 339 + "type": "github" 340 + }, 341 + "original": { 342 + "owner": "hyprwm", 343 + "repo": "hyprland-plugins", 344 + "type": "github" 345 + } 346 + }, 347 + "hyprland-protocols": { 348 + "inputs": { 349 + "nixpkgs": [ 350 + "hyprland", 351 + "nixpkgs" 352 + ], 353 + "systems": [ 354 + "hyprland", 355 + "systems" 356 + ] 357 + }, 358 + "locked": { 359 + "lastModified": 1749046714, 360 + "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", 361 + "owner": "hyprwm", 362 + "repo": "hyprland-protocols", 363 + "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", 364 + "type": "github" 365 + }, 366 + "original": { 367 + "owner": "hyprwm", 368 + "repo": "hyprland-protocols", 369 + "type": "github" 370 + } 371 + }, 372 + "hyprland-qt-support": { 373 + "inputs": { 374 + "hyprlang": [ 375 + "hyprland", 376 + "hyprland-qtutils", 377 + "hyprlang" 378 + ], 379 + "nixpkgs": [ 380 + "hyprland", 381 + "hyprland-qtutils", 382 + "nixpkgs" 383 + ], 384 + "systems": [ 385 + "hyprland", 386 + "hyprland-qtutils", 387 + "systems" 388 + ] 389 + }, 390 + "locked": { 391 + "lastModified": 1749154592, 392 + "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", 393 + "owner": "hyprwm", 394 + "repo": "hyprland-qt-support", 395 + "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", 396 + "type": "github" 397 + }, 398 + "original": { 399 + "owner": "hyprwm", 400 + "repo": "hyprland-qt-support", 401 + "type": "github" 402 + } 403 + }, 404 + "hyprland-qtutils": { 405 + "inputs": { 406 + "hyprland-qt-support": "hyprland-qt-support", 407 + "hyprlang": [ 408 + "hyprland", 409 + "hyprlang" 410 + ], 411 + "hyprutils": [ 412 + "hyprland", 413 + "hyprland-qtutils", 414 + "hyprlang", 415 + "hyprutils" 416 + ], 417 + "nixpkgs": [ 418 + "hyprland", 419 + "nixpkgs" 420 + ], 421 + "systems": [ 422 + "hyprland", 423 + "systems" 424 + ] 425 + }, 426 + "locked": { 427 + "lastModified": 1753819801, 428 + "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", 429 + "owner": "hyprwm", 430 + "repo": "hyprland-qtutils", 431 + "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", 432 + "type": "github" 433 + }, 434 + "original": { 435 + "owner": "hyprwm", 436 + "repo": "hyprland-qtutils", 437 + "type": "github" 438 + } 439 + }, 440 + "hyprlang": { 441 + "inputs": { 442 + "hyprutils": [ 443 + "hyprland", 444 + "hyprutils" 445 + ], 446 + "nixpkgs": [ 447 + "hyprland", 448 + "nixpkgs" 449 + ], 450 + "systems": [ 451 + "hyprland", 452 + "systems" 453 + ] 454 + }, 455 + "locked": { 456 + "lastModified": 1756810301, 457 + "narHash": "sha256-wgZ3VW4VVtjK5dr0EiK9zKdJ/SOqGIBXVG85C3LVxQA=", 458 + "owner": "hyprwm", 459 + "repo": "hyprlang", 460 + "rev": "3d63fb4a42c819f198deabd18c0c2c1ded1de931", 461 + "type": "github" 462 + }, 463 + "original": { 464 + "owner": "hyprwm", 465 + "repo": "hyprlang", 466 + "type": "github" 467 + } 468 + }, 469 + "hyprutils": { 470 + "inputs": { 471 + "nixpkgs": [ 472 + "hyprland", 473 + "nixpkgs" 474 + ], 475 + "systems": [ 476 + "hyprland", 477 + "systems" 478 + ] 479 + }, 480 + "locked": { 481 + "lastModified": 1756117388, 482 + "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=", 483 + "owner": "hyprwm", 484 + "repo": "hyprutils", 485 + "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0", 486 + "type": "github" 487 + }, 488 + "original": { 489 + "owner": "hyprwm", 490 + "repo": "hyprutils", 491 + "type": "github" 492 + } 493 + }, 494 + "hyprwayland-scanner": { 495 + "inputs": { 496 + "nixpkgs": [ 497 + "hyprland", 498 + "nixpkgs" 499 + ], 500 + "systems": [ 501 + "hyprland", 502 + "systems" 503 + ] 504 + }, 505 + "locked": { 506 + "lastModified": 1755184602, 507 + "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", 508 + "owner": "hyprwm", 509 + "repo": "hyprwayland-scanner", 510 + "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", 511 + "type": "github" 512 + }, 513 + "original": { 514 + "owner": "hyprwm", 515 + "repo": "hyprwayland-scanner", 516 + "type": "github" 517 + } 518 + }, 519 + "jovian": { 520 + "inputs": { 521 + "nix-github-actions": "nix-github-actions", 522 + "nixpkgs": [ 523 + "chaotic", 524 + "nixpkgs" 525 + ] 526 + }, 527 + "locked": { 528 + "lastModified": 1757230583, 529 + "narHash": "sha256-4uqu7sFPOaVTCogsxaGMgbzZ2vK40GVGMfUmrvK3/LY=", 530 + "owner": "Jovian-Experiments", 531 + "repo": "Jovian-NixOS", 532 + "rev": "fc3960e6c32c9d4f95fff2ef84444284d24d3bea", 533 + "type": "github" 534 + }, 535 + "original": { 536 + "owner": "Jovian-Experiments", 537 + "repo": "Jovian-NixOS", 538 + "type": "github" 539 + } 540 + }, 541 + "lsfg-vk-flake": { 542 + "inputs": { 543 + "nixpkgs": [ 544 + "nixpkgs-unstable" 545 + ] 546 + }, 547 + "locked": { 548 + "lastModified": 1756367273, 549 + "narHash": "sha256-u7/qG5xQxW+o51R2lBPj0NxU3oFrUwj78UlCKKNHGAc=", 550 + "owner": "pabloaul", 551 + "repo": "lsfg-vk-flake", 552 + "rev": "62aadfc844b2002abe47cbbc9dfd028033376248", 553 + "type": "github" 554 + }, 555 + "original": { 556 + "owner": "pabloaul", 557 + "ref": "main", 558 + "repo": "lsfg-vk-flake", 559 + "type": "github" 560 + } 561 + }, 562 + "nix-github-actions": { 563 + "inputs": { 564 + "nixpkgs": [ 565 + "chaotic", 566 + "jovian", 567 + "nixpkgs" 568 + ] 569 + }, 570 + "locked": { 571 + "lastModified": 1729697500, 572 + "narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=", 573 + "owner": "zhaofengli", 574 + "repo": "nix-github-actions", 575 + "rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf", 576 + "type": "github" 577 + }, 578 + "original": { 579 + "owner": "zhaofengli", 580 + "ref": "matrix-name", 581 + "repo": "nix-github-actions", 582 + "type": "github" 583 + } 584 + }, 585 + "nix-index": { 586 + "inputs": { 587 + "nixpkgs": [ 588 + "nixpkgs-unstable" 589 + ] 590 + }, 591 + "locked": { 592 + "lastModified": 1757218147, 593 + "narHash": "sha256-IwOwN70HvoBNB2ckaROxcaCvj5NudNc52taPsv5wtLk=", 594 + "owner": "nix-community", 595 + "repo": "nix-index-database", 596 + "rev": "9b144dc3ef6e42b888c4190e02746aab13b0e97f", 597 + "type": "github" 598 + }, 599 + "original": { 600 + "owner": "nix-community", 601 + "repo": "nix-index-database", 602 + "type": "github" 603 + } 604 + }, 605 + "nixpkgs": { 606 + "locked": { 607 + "lastModified": 1757238739, 608 + "narHash": "sha256-ovEq9v+Xc+oQH1zvQo28rT/YVqMQK2TRgUcNanvo2Zk=", 609 + "owner": "PedroHLC", 610 + "repo": "nixpkgs", 611 + "rev": "6d8fca2c92488ff860524dd3400aa90a3310123e", 612 + "type": "github" 613 + }, 614 + "original": { 615 + "owner": "NixOS", 616 + "ref": "nixos-unstable", 617 + "repo": "nixpkgs", 618 + "type": "github" 619 + } 620 + }, 621 + "nixpkgs-lib": { 622 + "locked": { 623 + "lastModified": 1753579242, 624 + "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", 625 + "owner": "nix-community", 626 + "repo": "nixpkgs.lib", 627 + "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", 628 + "type": "github" 629 + }, 630 + "original": { 631 + "owner": "nix-community", 632 + "repo": "nixpkgs.lib", 633 + "type": "github" 634 + } 635 + }, 636 + "nixpkgs-lib_2": { 637 + "locked": { 638 + "lastModified": 1753579242, 639 + "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", 640 + "owner": "nix-community", 641 + "repo": "nixpkgs.lib", 642 + "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", 643 + "type": "github" 644 + }, 645 + "original": { 646 + "owner": "nix-community", 647 + "repo": "nixpkgs.lib", 648 + "type": "github" 649 + } 650 + }, 651 + "nixpkgs-pgks-unstable": { 652 + "locked": { 653 + "lastModified": 1757034884, 654 + "narHash": "sha256-PgLSZDBEWUHpfTRfFyklmiiLBE1i1aGCtz4eRA3POao=", 655 + "owner": "NixOS", 656 + "repo": "nixpkgs", 657 + "rev": "ca77296380960cd497a765102eeb1356eb80fed0", 658 + "type": "github" 659 + }, 660 + "original": { 661 + "owner": "NixOS", 662 + "ref": "nixpkgs-unstable", 663 + "repo": "nixpkgs", 664 + "type": "github" 665 + } 666 + }, 667 + "nixpkgs-stable": { 668 + "locked": { 669 + "lastModified": 1751274312, 670 + "narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=", 671 + "owner": "NixOS", 672 + "repo": "nixpkgs", 673 + "rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674", 674 + "type": "github" 675 + }, 676 + "original": { 677 + "owner": "NixOS", 678 + "ref": "nixos-24.11", 679 + "repo": "nixpkgs", 680 + "type": "github" 681 + } 682 + }, 683 + "nixpkgs-unstable": { 684 + "locked": { 685 + "lastModified": 1757068644, 686 + "narHash": "sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4=", 687 + "owner": "NixOS", 688 + "repo": "nixpkgs", 689 + "rev": "8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9", 690 + "type": "github" 691 + }, 692 + "original": { 693 + "owner": "NixOS", 694 + "ref": "nixos-unstable", 695 + "repo": "nixpkgs", 696 + "type": "github" 697 + } 698 + }, 699 + "nixpkgs_2": { 700 + "locked": { 701 + "lastModified": 1754725699, 702 + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", 703 + "owner": "NixOS", 704 + "repo": "nixpkgs", 705 + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", 706 + "type": "github" 707 + }, 708 + "original": { 709 + "owner": "NixOS", 710 + "ref": "nixos-unstable", 711 + "repo": "nixpkgs", 712 + "type": "github" 713 + } 714 + }, 715 + "nixpkgs_3": { 716 + "locked": { 717 + "lastModified": 1757068644, 718 + "narHash": "sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4=", 719 + "owner": "NixOS", 720 + "repo": "nixpkgs", 721 + "rev": "8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9", 722 + "type": "github" 723 + }, 724 + "original": { 725 + "owner": "NixOS", 726 + "ref": "nixos-unstable", 727 + "repo": "nixpkgs", 728 + "type": "github" 729 + } 730 + }, 731 + "nixpkgs_4": { 732 + "locked": { 733 + "lastModified": 1756731054, 734 + "narHash": "sha256-kifUBw3WDopsgxUq0X9hFb2MMDeqhREbF1YttEj6IpM=", 735 + "owner": "nixos", 736 + "repo": "nixpkgs", 737 + "rev": "d042fb41a92f948e2f42038b0b9641bd501d08ce", 738 + "type": "github" 739 + }, 740 + "original": { 741 + "owner": "nixos", 742 + "repo": "nixpkgs", 743 + "type": "github" 744 + } 745 + }, 746 + "nixpkgs_5": { 747 + "locked": { 748 + "lastModified": 1755615617, 749 + "narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=", 750 + "owner": "nixos", 751 + "repo": "nixpkgs", 752 + "rev": "20075955deac2583bb12f07151c2df830ef346b4", 753 + "type": "github" 754 + }, 755 + "original": { 756 + "owner": "nixos", 757 + "ref": "nixos-unstable", 758 + "repo": "nixpkgs", 759 + "type": "github" 760 + } 761 + }, 762 + "pre-commit-hooks": { 763 + "inputs": { 764 + "flake-compat": "flake-compat", 765 + "gitignore": "gitignore", 766 + "nixpkgs": [ 767 + "hyprland", 768 + "nixpkgs" 769 + ] 770 + }, 771 + "locked": { 772 + "lastModified": 1757239681, 773 + "narHash": "sha256-E9spYi9lxm2f1zWQLQ7xQt8Xs2nWgr1T4QM7ZjLFphM=", 774 + "owner": "cachix", 775 + "repo": "git-hooks.nix", 776 + "rev": "ab82ab08d6bf74085bd328de2a8722c12d97bd9d", 777 + "type": "github" 778 + }, 779 + "original": { 780 + "owner": "cachix", 781 + "repo": "git-hooks.nix", 782 + "type": "github" 783 + } 784 + }, 785 + "root": { 786 + "inputs": { 787 + "chaotic": "chaotic", 788 + "fennec-flake": "fennec-flake", 789 + "home-manager": "home-manager_2", 790 + "hyprland": "hyprland", 791 + "hyprland-plugins": "hyprland-plugins", 792 + "lsfg-vk-flake": "lsfg-vk-flake", 793 + "nix-index": "nix-index", 794 + "nixpkgs-pgks-unstable": "nixpkgs-pgks-unstable", 795 + "nixpkgs-stable": "nixpkgs-stable", 796 + "nixpkgs-unstable": "nixpkgs-unstable", 797 + "zed-editor": "zed-editor", 798 + "zen-browser": "zen-browser" 799 + } 800 + }, 801 + "rust-overlay": { 802 + "inputs": { 803 + "nixpkgs": [ 804 + "chaotic", 805 + "nixpkgs" 806 + ] 807 + }, 808 + "locked": { 809 + "lastModified": 1757298987, 810 + "narHash": "sha256-yuFSw6fpfjPtVMmym51ozHYpJQ7SzVOTkk7tUv2JA0U=", 811 + "owner": "oxalica", 812 + "repo": "rust-overlay", 813 + "rev": "cfd63776bde44438ff2936f0c9194c79dd407a5f", 814 + "type": "github" 815 + }, 816 + "original": { 817 + "owner": "oxalica", 818 + "repo": "rust-overlay", 819 + "type": "github" 820 + } 821 + }, 822 + "systems": { 823 + "locked": { 824 + "lastModified": 1689347949, 825 + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", 826 + "owner": "nix-systems", 827 + "repo": "default-linux", 828 + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", 829 + "type": "github" 830 + }, 831 + "original": { 832 + "owner": "nix-systems", 833 + "repo": "default-linux", 834 + "type": "github" 835 + } 836 + }, 837 + "xdph": { 838 + "inputs": { 839 + "hyprland-protocols": [ 840 + "hyprland", 841 + "hyprland-protocols" 842 + ], 843 + "hyprlang": [ 844 + "hyprland", 845 + "hyprlang" 846 + ], 847 + "hyprutils": [ 848 + "hyprland", 849 + "hyprutils" 850 + ], 851 + "hyprwayland-scanner": [ 852 + "hyprland", 853 + "hyprwayland-scanner" 854 + ], 855 + "nixpkgs": [ 856 + "hyprland", 857 + "nixpkgs" 858 + ], 859 + "systems": [ 860 + "hyprland", 861 + "systems" 862 + ] 863 + }, 864 + "locked": { 865 + "lastModified": 1755354946, 866 + "narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=", 867 + "owner": "hyprwm", 868 + "repo": "xdg-desktop-portal-hyprland", 869 + "rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0", 870 + "type": "github" 871 + }, 872 + "original": { 873 + "owner": "hyprwm", 874 + "repo": "xdg-desktop-portal-hyprland", 875 + "type": "github" 876 + } 877 + }, 878 + "zed-editor": { 879 + "inputs": { 880 + "flake-parts": "flake-parts_2", 881 + "nixpkgs": "nixpkgs_4" 882 + }, 883 + "locked": { 884 + "lastModified": 1756797624, 885 + "narHash": "sha256-8EWKUNW90lu6B13B/97CROw4iji6v3CAm3avvioXho8=", 886 + "owner": "HPsaucii", 887 + "repo": "zed-editor-flake", 888 + "rev": "2c2a2aaac1cd9dd95e92dc045ce51a6d8372b02e", 889 + "type": "github" 890 + }, 891 + "original": { 892 + "owner": "HPsaucii", 893 + "repo": "zed-editor-flake", 894 + "type": "github" 895 + } 896 + }, 897 + "zen-browser": { 898 + "inputs": { 899 + "home-manager": "home-manager_3", 900 + "nixpkgs": "nixpkgs_5" 901 + }, 902 + "locked": { 903 + "lastModified": 1757395105, 904 + "narHash": "sha256-kwctEcCrHXZg80POmuOfqRqxSjy8bXhdBuNcRWaEpFA=", 905 + "owner": "0xc000022070", 906 + "repo": "zen-browser-flake", 907 + "rev": "d7b87e67233fdb42e655600f3de4c2e8a13bc6a7", 908 + "type": "github" 909 + }, 910 + "original": { 911 + "owner": "0xc000022070", 912 + "repo": "zen-browser-flake", 913 + "type": "github" 914 + } 915 + } 916 + }, 917 + "root": "root", 918 + "version": 7 919 + }
+119
nixos/flake.nix
··· 1 + { 2 + description = "Snowflake flake, heh"; 3 + 4 + inputs = { 5 + nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05"; 6 + nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; 7 + nixpkgs-extra-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; 8 + home-manager = { 9 + # url = "github:nix-community/home-manager/release-25.05"; 10 + url = "github:nix-community/home-manager/master"; 11 + inputs.nixpkgs.follows = "nixpkgs-unstable"; 12 + }; 13 + 14 + zen-browser.url = "github:0xc000022070/zen-browser-flake"; 15 + 16 + hyprland.url = "github:hyprwm/Hyprland"; 17 + 18 + chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; 19 + zed-editor.url = "github:HPsaucii/zed-editor-flake"; 20 + # fennec-flake.url = "git+https://git.killuaa.dev/Rouffy/fennec-flake?ref=mrrow"; 21 + 22 + lsfg-vk-flake = { 23 + url = "github:pabloaul/lsfg-vk-flake/main"; 24 + inputs.nixpkgs.follows = "nixpkgs-unstable"; 25 + }; 26 + 27 + nix-index = { 28 + url = "github:nix-community/nix-index-database"; 29 + inputs.nixpkgs.follows = "nixpkgs-unstable"; 30 + }; 31 + }; 32 + 33 + outputs = 34 + { 35 + self, 36 + nixpkgs-stable, 37 + nixpkgs-unstable, 38 + home-manager, 39 + zen-browser, 40 + chaotic, 41 + # fennec-flake, 42 + zed-editor, 43 + nixpkgs-pgks-unstable, 44 + lsfg-vk-flake, 45 + nix-index, 46 + ... 47 + }@inputs: 48 + { 49 + nixosConfigurations = { 50 + 51 + Snowflake = 52 + let 53 + system = "x86_64-linux"; 54 + 55 + pkgs = import nixpkgs-stable { 56 + inherit system; 57 + config.allowUnfree = true; 58 + config.android_sdk.accept_license = true; 59 + }; 60 + 61 + pkgs-unstable = import nixpkgs-unstable { 62 + inherit system; 63 + config = { 64 + allowUnfree = true; 65 + android_sdk.accept_license = true; 66 + }; 67 + }; 68 + 69 + pkgs-extra-unstable = import nixpkgs-extra-unstable { 70 + inherit system; 71 + config.allowUnfree = true; 72 + }; 73 + 74 + in 75 + nixpkgs-unstable.lib.nixosSystem { 76 + inherit system; 77 + 78 + specialArgs = { 79 + inherit pkgs-unstable; 80 + inherit pkgs-extra-unstable; 81 + }; 82 + 83 + modules = [ 84 + 85 + ( 86 + { ... }: 87 + { 88 + nixpkgs.pkgs = import nixpkgs-unstable { 89 + inherit system; 90 + config.allowUnfree = true; 91 + config.android_sdk.accept_license = true; 92 + }; 93 + } 94 + ) 95 + 96 + ./system/configuration.nix # Main configuration 97 + ./system/networking.nix # Network config 98 + 99 + chaotic.nixosModules.default 100 + lsfg-vk-flake.nixosModules.default 101 + 102 + home-manager.nixosModules.home-manager 103 + { 104 + home-manager.useGlobalPkgs = true; 105 + home-manager.useUserPackages = true; 106 + home-manager.extraSpecialArgs = { 107 + inherit inputs; 108 + inherit pkgs-extra-unstable; 109 + }; 110 + home-manager.users = { 111 + snowy = import ./home-manager/snowy.nix; 112 + }; 113 + } 114 + ]; 115 + }; 116 + 117 + }; 118 + }; 119 + }
+162
nixos/home-manager/snowy.nix
··· 1 + { 2 + inputs, 3 + pkgs, 4 + config, 5 + pkgs-extra-unstable, 6 + ... 7 + }: 8 + 9 + { 10 + imports = [ 11 + inputs.nix-index.homeModules.nix-index 12 + inputs.zen-browser.homeModules.beta 13 + ]; 14 + 15 + home.packages = with pkgs; [ 16 + # inputs.zen-browser.packages."${system}".twilight 17 + corretto17 18 + android-studio 19 + forgejo-actions-runner 20 + ctop 21 + inputs.zed-editor.packages."${pkgs.system}".zed-editor-bin 22 + # zed stuffz 23 + ente-desktop 24 + bash-language-server 25 + # shellcheck # for zed basher? 26 + # vscodium 27 + jetbrains.idea-ultimate 28 + jetbrains.rider 29 + orca-slicer 30 + godot 31 + unityhub 32 + 33 + fzf # for fish 34 + hextazy 35 + pkgs-extra-unstable.grayjay 36 + 37 + # gaphor 38 + d-spy 39 + bustle 40 + 41 + rustup 42 + gcc 43 + just 44 + 45 + # silly game 46 + clonehero 47 + 48 + # silly 49 + loupe 50 + gnome-clocks 51 + helvum 52 + krita 53 + # orca-slicer 54 + protonplus 55 + protontricks 56 + winetricks 57 + obsidian 58 + element-desktop 59 + radio-cli # rust 60 + heroic 61 + hydralauncher 62 + 63 + wineWowPackages.staging 64 + # wine64 65 + ]; 66 + 67 + programs = { 68 + 69 + helix = { 70 + defaultEditor = true; 71 + }; 72 + 73 + vscode = { 74 + enable = true; 75 + package = pkgs.vscode; 76 + }; 77 + 78 + nix-your-shell = { 79 + enable = true; 80 + enableFishIntegration = true; 81 + }; 82 + 83 + obs-studio = { 84 + enable = true; 85 + plugins = with pkgs; [ 86 + obs-studio-plugins.obs-vkcapture 87 + obs-studio-plugins.obs-pipewire-audio-capture 88 + obs-studio-plugins.obs-text-pthread 89 + ]; 90 + }; 91 + 92 + zen-browser = { 93 + enable = true; 94 + }; 95 + 96 + # zed-editor = { 97 + # enable = true; 98 + # }; 99 + 100 + direnv = { 101 + enable = true; 102 + silent = true; 103 + nix-direnv.enable = true; 104 + }; 105 + 106 + mpv = { 107 + enable = true; 108 + config = { 109 + sub-font = "Arial Regular"; 110 + sub-border-size = 10; 111 + sub-font-size = 52; 112 + sub-pos = 102; 113 + sub-color = "#ffffff"; 114 + sub-ass-override = "force"; 115 + profile = "high-quality"; 116 + # gpu-api = "vulkan"; 117 + gpu-api = "opengl"; 118 + vo = "gpu-next"; 119 + hwdec = "auto-copy"; 120 + vaapi-device = "/dev/dri/renderD128"; 121 + demuxer-max-bytes = "5120MiB"; 122 + }; 123 + }; 124 + }; 125 + 126 + # services = { 127 + # # ollama = { 128 + # # enable = true; 129 + # # acceleration = "rocm"; 130 + # # }; 131 + # }; 132 + 133 + wayland.windowManager.hyprland = { 134 + enable = true; 135 + 136 + plugins = [ 137 + pkgs-extra-unstable.hyprlandPlugins.hyprsplit 138 + ]; 139 + 140 + settings = { 141 + exec-once = [ 142 + "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" 143 + ]; 144 + }; 145 + 146 + # Make it base it on my hyprland config, I dont like managing configs throug home manager tbh. 147 + extraConfig = builtins.readFile ../../.config/hypr/hyprland.conf; 148 + }; 149 + 150 + dconf.settings = { 151 + "org/gnome/desktop/interface" = { 152 + color-scheme = "prefer-dark"; 153 + cursor-size = 24; 154 + cursor-theme = "phinger-cursors-light"; 155 + gtk-theme = "adw-gtk3-dark"; 156 + icon-theme = "Adwaita"; 157 + }; 158 + }; 159 + 160 + home.stateVersion = "24.11"; 161 + home.enableNixpkgsReleaseCheck = false; 162 + }
+673
nixos/system/configuration.nix
··· 1 + # Edit this configuration file to define what should be installed on 2 + # your system. Help is available in the configuration.nix(5) man page, on 3 + # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). 4 + 5 + { 6 + config, 7 + lib, 8 + pkgs, 9 + pkgs-unstable, 10 + ... 11 + }: 12 + 13 + { 14 + imports = [ 15 + # Include the results of the hardware scan. 16 + ./hardware-configuration.nix 17 + ]; 18 + 19 + # QUICKSHELl 20 + qt.enable = true; 21 + 22 + nix = { 23 + settings = { 24 + experimental-features = [ 25 + "nix-command" 26 + "flakes" 27 + ]; 28 + trusted-users = [ 29 + # "root" 30 + "snowy" 31 + ]; 32 + auto-optimise-store = true; 33 + use-xdg-base-directories = true; 34 + }; 35 + 36 + gc = { 37 + automatic = true; 38 + dates = "daily"; 39 + persistent = true; 40 + options = "--delete-older-than 1d"; 41 + }; 42 + }; 43 + 44 + zramSwap.enable = true; 45 + 46 + swapDevices = [ 47 + { 48 + device = "/swapfile"; 49 + size = 16 * 1024; # 32GB 50 + } 51 + ]; 52 + 53 + # Use the systemd-boot EFI boot loader. 54 + boot = { 55 + supportedFilesystems = [ "ntfs" ]; 56 + # kernelPackages = pkgs.linuxPackages_cachyos-rc; 57 + kernelPackages = pkgs.linuxPackages_cachyos; 58 + kernelParams = [ ]; 59 + kernel.sysctl = { 60 + "vm.swappiness" = 100; 61 + }; 62 + 63 + extraModprobeConfig = '' 64 + options snd-hda-intel power_save=0 power_save_controller=N 65 + options amdgpu ppfeaturemask=0xFFF7FFFF 66 + ''; 67 + 68 + initrd.kernelModules = [ 69 + "kvm-amd" 70 + "amdgpu" 71 + ]; 72 + 73 + kernelModules = [ 74 + "ntsync" 75 + ]; 76 + 77 + # todo! do the gaming vm_mapsize thing 78 + loader = { 79 + systemd-boot = { 80 + enable = true; 81 + editor = true; 82 + consoleMode = "max"; 83 + memtest86.enable = true; 84 + }; 85 + 86 + efi.canTouchEfiVariables = true; 87 + }; 88 + }; 89 + 90 + virtualisation = { 91 + libvirtd = { 92 + enable = true; 93 + qemu = { 94 + swtpm.enable = true; 95 + ovmf.packages = [ 96 + pkgs.OVMFFull.fd 97 + ]; 98 + }; 99 + }; 100 + 101 + spiceUSBRedirection.enable = true; 102 + 103 + docker = { 104 + rootless = { 105 + enable = true; 106 + setSocketVariable = true; 107 + }; 108 + }; 109 + 110 + # waydroid = { 111 + # enable = true; 112 + # }; 113 + 114 + # lxd = { 115 + # enable = true; 116 + # recommendedSysctlSettings = true; 117 + # ui = { 118 + # enable = true; 119 + # }; 120 + # }; 121 + }; 122 + 123 + hardware = { 124 + graphics = { 125 + enable = true; 126 + enable32Bit = true; 127 + extraPackages = with pkgs; [ 128 + mesa 129 + libva 130 + libvdpau-va-gl 131 + 132 + #vulkano 133 + vulkan-loader 134 + vulkan-validation-layers 135 + 136 + #AMD VLK 137 + # amdvlk 138 + # driversi686Linux.amdvlk 139 + 140 + #opencl 141 + rocmPackages.clr.icd 142 + ]; 143 + }; 144 + 145 + cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 146 + 147 + opentabletdriver.enable = true; 148 + ledger.enable = true; 149 + keyboard.qmk.enable = true; 150 + 151 + bluetooth = { 152 + enable = true; # enables support for Bluetooth 153 + powerOnBoot = true; # powers up the default Bluetooth controller on boot 154 + input = { 155 + General = { 156 + ClassicBondedOnly = false; 157 + UserspaceHID = true; 158 + }; 159 + }; 160 + }; 161 + }; 162 + 163 + security = { 164 + sudo = { 165 + enable = false; 166 + # extraConfig = '' 167 + # Defaults passwd_timeout=0 168 + # ''; 169 + }; 170 + 171 + sudo-rs = { 172 + enable = true; 173 + wheelNeedsPassword = true; 174 + execWheelOnly = true; 175 + extraConfig = '' 176 + Defaults passwd_timeout=0 177 + ''; 178 + }; 179 + 180 + pam.services = { 181 + greetd.enableGnomeKeyring = true; 182 + greetd-password.enableGnomeKeyring = true; 183 + }; 184 + 185 + wrappers = { 186 + docker-rootlesskit = { 187 + owner = "root"; 188 + group = "root"; 189 + capabilities = "cap_net_bind_service+ep"; 190 + source = "${pkgs.rootlesskit}/bin/rootlesskit"; 191 + }; 192 + 193 + qemu-netcap = { 194 + source = "${pkgs.qemu_kvm}/bin/qemu-system-x86_64"; 195 + capabilities = "cap_net_bind_service=ep"; 196 + owner = "snowy"; 197 + group = "wheel"; 198 + }; 199 + 200 + passt = { 201 + source = "${pkgs.passt}/bin/passt"; 202 + capabilities = "cap_net_bind_service=ep"; 203 + owner = "snowy"; # Replace with your actual username 204 + group = "wheel"; 205 + }; 206 + }; 207 + 208 + }; 209 + 210 + # Set your time zone. 211 + time.timeZone = "Europe/Berlin"; 212 + 213 + # Select internationalisation properties. 214 + i18n = { 215 + defaultLocale = "en_US.UTF-8"; 216 + extraLocaleSettings = { 217 + LANG = "en_US.UTF-8"; 218 + LANGUAGE = "en_US.UTF-8"; 219 + LC_TIME = "nl_NL.UTF-8"; 220 + # LC_ALL = "en_US.UTF-8"; 221 + }; 222 + }; 223 + 224 + # console = { 225 + # font = "Lat2-Terminus16"; 226 + # keyMap = "us"; 227 + # useXkbConfig = true; # use xkb.options in tty. 228 + # }; 229 + 230 + systemd.services = { 231 + lact = { 232 + description = "AMDGPU Control Deamon"; 233 + after = [ "multi-user.target" ]; 234 + wantedBy = [ "multi-user.target" ]; 235 + serviceConfig = { 236 + ExecStart = "${pkgs.lact}/bin/lact daemon"; 237 + }; 238 + enable = true; 239 + }; 240 + NetworkManager-wait-online.enable = false; 241 + # firewall.enable = false; 242 + }; 243 + 244 + services = { 245 + 246 + udev = { 247 + enable = true; 248 + extraRules = ""; 249 + packages = [ 250 + pkgs.opentabletdriver 251 + ]; 252 + }; 253 + 254 + pipewire = { 255 + enable = true; 256 + alsa.enable = true; 257 + alsa.support32Bit = true; 258 + pulse.enable = true; 259 + jack.enable = true; 260 + wireplumber.enable = true; 261 + }; 262 + 263 + greetd = { 264 + enable = true; 265 + settings = { 266 + default_session = { 267 + command = "${pkgs.tuigreet}/bin/tuigreet --remember --remember-session --user-menu --time --greeting 'Hello, Snowflake!'"; 268 + user = "greeter"; 269 + }; 270 + }; 271 + }; 272 + 273 + # Configure keymap in X11 274 + xserver.xkb = { 275 + layout = "us"; 276 + options = "caps:escape"; 277 + }; 278 + 279 + mullvad-vpn = { 280 + enable = true; 281 + package = pkgs.mullvad-vpn; 282 + }; 283 + 284 + ntp.enable = true; 285 + gvfs.enable = true; 286 + gnome.gnome-keyring.enable = true; 287 + flatpak.enable = true; 288 + blueman.enable = true; 289 + 290 + dbus.packages = with pkgs; [ 291 + gnome-keyring 292 + gcr 293 + libsecret 294 + ]; 295 + 296 + # open-webui = { 297 + # enable = true; 298 + # # package = pkgs.open-webui; 299 + # }; 300 + 301 + tailscale = { 302 + enable = true; 303 + extraUpFlags = [ 304 + "--accept-dns=false" 305 + ]; 306 + }; 307 + 308 + lsfg-vk = { 309 + enable = true; 310 + }; 311 + 312 + # xserver.enable = true; 313 + #xserver.displayManager.gdm.enable = true; 314 + desktopManager.gnome.enable = true; 315 + 316 + sunshine = { 317 + enable = true; 318 + autoStart = true; 319 + capSysAdmin = true; 320 + openFirewall = true; 321 + }; 322 + }; 323 + # Enable touchpad support (enabled default in most desktopManager). 324 + # services.libinput.enable = true; 325 + 326 + # Define a user account. Don't forget to set a password with ‘passwd’. 327 + # users.users.alice = { 328 + # isNormalUser = true; 329 + # extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. 330 + # packages = with pkgs; [ 331 + # tree 332 + # ]; 333 + # }; 334 + 335 + xdg = { 336 + portal = { 337 + enable = true; 338 + xdgOpenUsePortal = true; 339 + extraPortals = with pkgs; [ 340 + xdg-desktop-portal-hyprland 341 + xdg-desktop-portal-gtk 342 + ]; 343 + configPackages = [ pkgs.hyprland ]; 344 + }; 345 + }; 346 + 347 + users.users = { 348 + snowy = { 349 + isNormalUser = true; 350 + description = "snowy"; 351 + home = "/mnt/SnowData/snowy"; 352 + shell = pkgs.fish; 353 + extraGroups = [ 354 + "wheel" 355 + "wireshark" 356 + "input" 357 + "libvirtd" 358 + ]; 359 + }; 360 + }; 361 + 362 + programs = { 363 + # firefox = { 364 + # enable = true; 365 + # package = pkgs-unstable.firefox-devedition; 366 + # }; 367 + 368 + steam = { 369 + enable = true; 370 + remotePlay.openFirewall = true; 371 + localNetworkGameTransfers.openFirewall = true; 372 + dedicatedServer.openFirewall = true; 373 + protontricks.enable = true; 374 + }; 375 + 376 + gamescope.enable = true; 377 + noisetorch.enable = true; 378 + adb.enable = true; 379 + fish.enable = true; 380 + 381 + gamemode = { 382 + enable = true; 383 + 384 + settings = { 385 + custom = { 386 + start = "${pkgs.libnotify}/bin/notify-send 'GameMode started!'"; 387 + end = "${pkgs.libnotify}/bin/notify-send 'GameMode stopped!'"; 388 + }; 389 + }; 390 + }; 391 + 392 + hyprland = { 393 + enable = true; 394 + xwayland.enable = true; 395 + withUWSM = true; 396 + #systemd.enable = true; 397 + #portalPackage = unstable.xdg-desktop-portal-hyprland; 398 + #package = unstable.hyprland; 399 + }; 400 + 401 + wireshark = { 402 + enable = true; 403 + dumpcap.enable = true; 404 + usbmon.enable = true; 405 + }; 406 + 407 + seahorse.enable = true; 408 + dconf.enable = true; 409 + 410 + nautilus-open-any-terminal = { 411 + enable = true; 412 + terminal = "foot"; 413 + }; 414 + 415 + gnupg.agent = { 416 + enable = true; 417 + enableSSHSupport = true; 418 + pinentryPackage = pkgs.pinentry-gnome3; 419 + }; 420 + 421 + nix-ld.enable = true; 422 + 423 + # home-manager.enable = true; 424 + }; 425 + 426 + fonts = { 427 + enableDefaultPackages = true; 428 + packages = with pkgs; [ 429 + noto-fonts 430 + noto-fonts-cjk-sans 431 + noto-fonts-cjk-serif 432 + noto-fonts-emoji-blob-bin 433 + noto-fonts-lgc-plus 434 + jetbrains-mono 435 + ]; 436 + }; 437 + 438 + # List packages installed in system profile. To search, run: 439 + # $ nix search wget 440 + # 441 + environment = { 442 + # etc = { 443 + # "qemu/OVMF_CODE.secure.fd".source = "${pkgs.qemu}/share/qemu/edk2-x86_64-secure-code.fd"; 444 + # "qemu/OVMF_VARS.fd".source = "${pkgs.qemu}/share/qemu/edk2-i386-vars.fd"; 445 + # }; 446 + 447 + systemPackages = with pkgs; [ 448 + nh 449 + glib # for gsettings 450 + # vscodium-fhs 451 + adwaita-icon-theme 452 + adw-gtk3 453 + 454 + tuigreet 455 + libsecret 456 + hyprpicker 457 + hyprshot 458 + nixd 459 + nixfmt-rfc-style 460 + 461 + unzip 462 + unrar 463 + p7zip 464 + git 465 + wget 466 + curl 467 + jq 468 + openssh 469 + dosfstools 470 + btrfs-progs 471 + corretto21 472 + 473 + gst_all_1.gstreamer 474 + gst_all_1.gst-plugins-base 475 + gst_all_1.gst-plugins-good 476 + gst_all_1.gst-plugins-bad 477 + gst_all_1.gst-plugins-ugly 478 + gst_all_1.gst-libav 479 + gst_all_1.gst-vaapi 480 + # corretto17 481 + 482 + kdePackages.qtwayland 483 + libsForQt5.qt5.qtwayland 484 + 485 + btop-rocm 486 + gdu 487 + bat 488 + less 489 + tree 490 + eza 491 + fd 492 + dysk 493 + onefetch 494 + fastfetch 495 + cpufetch 496 + alsa-utils 497 + speedtest-cli 498 + # zopfli 499 + fwupd 500 + android-tools 501 + 502 + zellij 503 + helix 504 + nano 505 + yazi 506 + 507 + bluez-tools 508 + passt # needed for user-mode port forwarding in vm 509 + #firewalld 510 + 511 + # winePackages.stagingFull 512 + 513 + # wineWowPackages.staging 514 + vulkan-tools 515 + rocmPackages.rocminfo 516 + rocmPackages.rocm-smi 517 + amdgpu_top 518 + mangohud 519 + mangojuice 520 + 521 + rofi-wayland 522 + mako 523 + libnotify 524 + playerctl 525 + waybar 526 + polkit_gnome 527 + #gnome-keyring 528 + cliphist 529 + wl-clipboard 530 + lact 531 + 532 + libsForQt5.qt5ct 533 + kdePackages.qt6ct 534 + dconf-editor 535 + nautilus 536 + file-roller 537 + foot 538 + blueman 539 + # mpv 540 + pavucontrol 541 + 542 + niri 543 + xwayland-satellite 544 + xdg-desktop-portal-gnome 545 + 546 + hyprpaper 547 + cosmic-session 548 + 549 + virt-manager 550 + # syncthing 551 + prismlauncher 552 + # obs-studio 553 + signal-desktop 554 + qbittorrent 555 + # transmission_4-gtk 556 + wireshark-qt 557 + scrcpy 558 + glogg 559 + 560 + youtube-music 561 + vesktop 562 + r2modman 563 + #libsForQt5.xp-pen-g430-drive 564 + libsForQt5.xp-pen-deco-01-v2-driver 565 + # jetbrains-toolbox 566 + # jetbrains.webstorm 567 + # jetbrains.rust-rover 568 + # jetbrains.idea-ultimate 569 + # postman 570 + # insomnia 571 + hoppscotch 572 + # zed-editor-fhs 573 + 574 + ani-cli 575 + syncplay 576 + # ollama-rocm 577 + mumble 578 + monero-gui 579 + p2pool 580 + #keyguard 581 + bitwarden-desktop 582 + devenv 583 + # heroic 584 + # stremio 585 + # grayjay 586 + 587 + # QUICKSHELL 588 + quickshell 589 + qt6.full 590 + 591 + (discord.override { 592 + withOpenASAR = true; 593 + withVencord = true; 594 + }) 595 + ]; 596 + 597 + gnome.excludePackages = with pkgs; [ 598 + orca 599 + evince 600 + # file-roller 601 + geary 602 + gnome-disk-utility 603 + # seahorse 604 + # sushi 605 + # sysprof 606 + # 607 + # gnome-shell-extensions 608 + # 609 + # adwaita-icon-theme 610 + # nixos-background-info 611 + gnome-backgrounds 612 + # gnome-bluetooth 613 + # gnome-color-manager 614 + # gnome-control-center 615 + # gnome-shell-extensions 616 + #gnome-tour # GNOME Shell detects the .desktop file on first log-in. 617 + gnome-user-docs 618 + # glib # for gsettings program 619 + # gnome-menus 620 + # gtk3.out # for gtk-launch program 621 + # xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/ 622 + # xdg-user-dirs-gtk # Used to create the default bookmarks 623 + # 624 + baobab 625 + epiphany 626 + gnome-text-editor 627 + gnome-calculator 628 + gnome-calendar 629 + gnome-characters 630 + gnome-clocks 631 + gnome-console 632 + gnome-contacts 633 + gnome-font-viewer 634 + gnome-logs 635 + gnome-maps 636 + gnome-music 637 + gnome-system-monitor 638 + gnome-weather 639 + loupe 640 + # nautilus 641 + gnome-connections 642 + simple-scan 643 + snapshot 644 + totem 645 + yelp 646 + gnome-software 647 + ]; 648 + }; 649 + 650 + # Copy the NixOS configuration file and link it from the resulting system 651 + # (/run/current-system/configuration.nix). This is useful in case you 652 + # accidentally delete configuration.nix. 653 + # system.copySystemConfiguration = true; 654 + 655 + # This option defines the first version of NixOS you have installed on this particular machine, 656 + # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. 657 + # 658 + # Most users should NEVER change this value after the initial install, for any reason, 659 + # even if you've upgraded your system to a new NixOS release. 660 + # 661 + # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, 662 + # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how 663 + # to actually do that. 664 + # 665 + # This value being lower than the current NixOS release does NOT mean your system is 666 + # out of date, out of support, or vulnerable. 667 + # 668 + # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, 669 + # and migrated your data accordingly. 670 + # 671 + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . 672 + system.stateVersion = "24.11"; # Did you read the comment? 673 + }
+69
nixos/system/hardware-configuration.nix
··· 1 + # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 + # and may be overwritten by future invocations. Please make changes 3 + # to /etc/nixos/configuration.nix instead. 4 + { 5 + config, 6 + lib, 7 + pkgs, 8 + modulesPath, 9 + ... 10 + }: 11 + 12 + { 13 + imports = [ 14 + (modulesPath + "/installer/scan/not-detected.nix") 15 + ]; 16 + 17 + boot.initrd.availableKernelModules = [ 18 + "nvme" 19 + "xhci_pci" 20 + "ahci" 21 + "usb_storage" 22 + "usbhid" 23 + "sd_mod" 24 + ]; 25 + boot.initrd.kernelModules = [ ]; 26 + boot.kernelModules = [ "kvm-amd" ]; 27 + boot.extraModulePackages = [ ]; 28 + 29 + fileSystems = { 30 + "/" = { 31 + device = "/dev/disk/by-uuid/6a6610f1-50b6-4452-bdb8-0e1f03a2df4b"; 32 + fsType = "ext4"; 33 + }; 34 + 35 + "/boot" = { 36 + device = "/dev/disk/by-uuid/0B19-FF03"; 37 + fsType = "vfat"; 38 + options = [ 39 + "fmask=0077" 40 + "dmask=0077" 41 + ]; 42 + }; 43 + 44 + "/mnt/SnowData" = { 45 + device = "/dev/disk/by-uuid/733a2bdb-068f-42d6-9dfc-1404952fcbaf"; 46 + fsType = "ext4"; 47 + }; 48 + 49 + # "/mnt/SnowStorage" = { 50 + # device = "/dev/hdd-pool/SnowStorage"; 51 + # fsType = "btrfs"; 52 + # options = [ 53 + # "compress=zstd:3 autodefrag noatime" 54 + # ]; 55 + # }; 56 + }; 57 + 58 + swapDevices = [ ]; 59 + 60 + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking 61 + # (the default) this is the recommended approach. When using systemd-networkd it's 62 + # still possible to use this option, but it's recommended to use it in conjunction 63 + # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. 64 + # networking.useDHCP = lib.mkDefault true; 65 + # networking.interfaces.enp9s0.useDHCP = lib.mkDefault true; 66 + 67 + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 68 + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 69 + }
+157
nixos/system/networking.nix
··· 1 + { 2 + config, 3 + lib, 4 + pkgs, 5 + pkgs-unstable, 6 + ... 7 + }: 8 + 9 + { 10 + # services.resolved.enable = false; 11 + 12 + networking = { 13 + hostName = "Snowflake"; 14 + #wireless.enable = true; 15 + networkmanager.enable = true; 16 + # useDHCP = true; 17 + 18 + # search = [ 19 + # "taila3a3d2.ts.net" 20 + # ]; 21 + 22 + nameservers = [ 23 + # Cloudflare 24 + "2606:4700:4700::1111" 25 + "1.1.1.1" 26 + "2606:4700:4700::1001" 27 + "1.0.0.1" 28 + # "100.100.100.100" 29 + ]; 30 + 31 + # resolvconf = { 32 + # enable = true; 33 + # dnsExtensionMechanism = true; # ensures resolvconf picks up new nameservers 34 + # }; 35 + 36 + # nat = { 37 + # enable = true; 38 + # enableIPv6 = true; 39 + # externalInterface = "wlan0"; 40 + # internalInterfaces = [ "enp9s0" ]; 41 + # }; 42 + 43 + # useNetworkd = true; 44 + 45 + # wireless.iwd = { 46 + # enable = true; 47 + 48 + # settings = { 49 + # Network = { 50 + # EnableIPv6 = true; 51 + # NameResolvingService = "resolvconf"; 52 + # }; 53 + # Settings = { 54 + # AutoConnect = true; 55 + # }; 56 + # }; 57 + # }; 58 + 59 + # # Open ports in the firewall. 60 + firewall = { 61 + enable = true; 62 + 63 + allowedTCPPorts = [ 64 + 12315 65 + # 44217 66 + 34281 67 + # 8080 68 + 27016 69 + 70 + 53 71 + 72 + 33693 73 + ]; 74 + 75 + allowedUDPPorts = [ 76 + # 1231 77 + 27016 78 + 79 + # networking 80 + 53 81 + 67 82 + ]; 83 + }; 84 + }; 85 + 86 + # systemd.network = { 87 + # enable = true; 88 + # wait-online.enable = false; 89 + 90 + # networks = { 91 + 92 + # "10-wlp" = { 93 + # matchConfig.Name = "enp9s0"; 94 + # networkConfig = { 95 + # DHCP = "ipv4"; 96 + # IPv4Forwarding = true; 97 + # IPv6Forwarding = true; 98 + # IPv6AcceptRA = true; 99 + # # DNS = [ 100 + # # "1.1.1.1" 101 + # # "1.0.0.1" 102 + # # "2606:4700:4700::1111" 103 + # # "2606:4700:4700::1001" 104 + # # ]; 105 + # }; 106 + # }; 107 + 108 + # "99-ethernet-default-dhcp" = { 109 + # matchConfig = { 110 + # Kind = "!*"; 111 + # Type = "ether"; 112 + # }; 113 + 114 + # networkConfig = { 115 + # DHCP = "yes"; 116 + # IPv6PrivacyExtensions = "kernel"; 117 + # }; 118 + # }; 119 + 120 + # "99-wireless-client-dhcp" = { 121 + # matchConfig.WLANInterfaceType = "station"; 122 + # networkConfig = { 123 + # DHCP = "yes"; 124 + # IPv6PrivacyExtensions = "kernel"; 125 + # }; 126 + 127 + # dhcpV4Config.RouteMetric = 1025; 128 + 129 + # ipv6AcceptRAConfig.RouteMetric = 1025; 130 + # }; 131 + 132 + # # "20-lan" = { 133 + # # matchConfig.Name = "enp9s0"; 134 + # # networkConfig = { 135 + # # DHCPServer = true; 136 + # # IPv4Forwarding = true; 137 + # # IPv6Forwarding = true; 138 + # # IPv6SendRA = true; 139 + # # IPMasquerade = "both"; 140 + # # Address = [ "192.168.100.1/24" ]; 141 + # # }; 142 + # # dhcpServerConfig = { 143 + # # # DNS = [ 144 + # # # "1.1.1.1" 145 + # # # "1.0.0.1" 146 + # # # "2606:4700:4700::1111" 147 + # # # "2606:4700:4700::1001" 148 + # # # ]; 149 + # # PoolOffset = 10; 150 + # # PoolSize = 100; 151 + # # }; 152 + # # linkConfig.RequiredForOnline = "no"; 153 + # # }; 154 + 155 + # }; 156 + # }; 157 + }
+254
server/configuration.nix
··· 1 + # Edit this configuration file to define what should be installed on 2 + # your system. Help is available in the configuration.nix(5) man page, on 3 + # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). 4 + 5 + { config, lib, pkgs, ... }: 6 + 7 + { 8 + imports = 9 + [ # Include the results of the hardware scan. 10 + ./hardware-configuration.nix 11 + ]; 12 + 13 + zramSwap = { 14 + enable = true; 15 + algorithm = "zstd"; 16 + }; 17 + 18 + swapDevices = [{ 19 + device = "/swapfile"; 20 + size = 8 * 1024; # 16GB 21 + }]; 22 + 23 + nix = { 24 + settings = { 25 + experimental-features = [ 26 + "nix-command" 27 + "flakes" 28 + ]; 29 + # trusted-user = { 30 + # "@wheel" 31 + # }; 32 + auto-optimise-store = true; 33 + }; 34 + gc = { 35 + automatic = true; 36 + dates = "daily"; 37 + }; 38 + }; 39 + 40 + # Use grub so it works on both EFI and BOOT 41 + boot = { 42 + loader = { 43 + efi.canTouchEfiVariables = true; 44 + 45 + grub = { 46 + enable = true; 47 + timeoutStyle = "hidden"; 48 + efiSupport = true; 49 + # efiInstallAsRemovable = true; 50 + device = "nodev"; 51 + splashImage = null; 52 + }; 53 + }; 54 + 55 + blacklistedKernelModules = [ 56 + # Obscure network protocols 57 + "ax25" 58 + "netrom" 59 + "rose" 60 + 61 + # Old or rare or insufficiently audited filesystems 62 + "adfs" 63 + "affs" 64 + "bfs" 65 + "befs" 66 + "cramfs" 67 + "efs" 68 + "erofs" 69 + "exofs" 70 + "freevxfs" 71 + "f2fs" 72 + "hfs" 73 + "hpfs" 74 + "jfs" 75 + "minix" 76 + "nilfs2" 77 + "ntfs" 78 + "omfs" 79 + "qnx4" 80 + "qnx6" 81 + "sysv" 82 + "ufs" 83 + ]; 84 + }; 85 + 86 + networking = { 87 + hostName = "snow-den"; 88 + # nameservers = []; 89 + 90 + # interfaces = { 91 + # ens18 = { 92 + # ipv4 = { 93 + # addresses = [ 94 + # { 95 + # address = "193.24.209.147"; 96 + # prefixLength = 24; 97 + # } 98 + # ]; 99 + # }; 100 + # }; 101 + # }; 102 + 103 + firewall = { 104 + enable = true; 105 + allowedTCPPorts = [ 106 + 22 107 + 335 108 + ]; 109 + allowedUDPPorts = [ 110 + 111 + ]; 112 + }; 113 + }; 114 + 115 + time.timeZone = "Europe/Berlin"; # Set your time zone. 116 + i18n.defaultLocale = "en_US.UTF-8"; # Select internationalisation properties. 117 + 118 + environment = { 119 + defaultPackages = []; # Disable any default installed packages 120 + 121 + systemPackages = with pkgs; [ 122 + fastfetch 123 + helix 124 + # wget 125 + btop 126 + ]; 127 + }; 128 + 129 + fonts.fontconfig.enable = false; 130 + 131 + system = { 132 + stateVersion = "25.05"; 133 + tools = { 134 + nixos-version.enable = true; 135 + nixos-rebuild.enable = true; 136 + nixos-option.enable = true; 137 + 138 + nixos-generate-config.enable = false; 139 + nixos-install.enable = false; 140 + nixos-build-vms.enable = false; 141 + }; 142 + }; 143 + 144 + 145 + services = { 146 + dnsmasq = { 147 + enable = true; 148 + settings = { 149 + server = [ 150 + "1.1.1.1" 151 + "2606:4700:4700::1111" 152 + "1.0.0.1" 153 + "2606:4700:4700::1001" 154 + "194.242.2.2" 155 + "2a07:e340::2" 156 + ]; 157 + }; 158 + }; 159 + 160 + openssh = { 161 + enable = true; 162 + ports = [ 163 + 335 164 + ]; 165 + allowSFTP = true; 166 + settings = { 167 + PasswordAuthentication = false; 168 + PermitRootLogin = "no"; 169 + }; 170 + }; 171 + 172 + endlessh-go = { 173 + enable = true; 174 + port = 22; 175 + 176 + # prometheus = { 177 + # enable = true; 178 + # port = 2112; 179 + # }; 180 + }; 181 + 182 + # prometheus = { 183 + # enable = true; 184 + # }; 185 + }; 186 + 187 + programs = { 188 + nano.enable = false; 189 + fish.enable = true; 190 + nh = { 191 + enable = true; 192 + flake = "/etc/nixos"; 193 + }; 194 + }; 195 + 196 + security = { 197 + sudo.enable = false; 198 + sudo-rs = { 199 + enable = true; 200 + wheelNeedsPassword = true; 201 + execWheelOnly = true; 202 + # extraConfig = '' 203 + # Defaults passwd_timeout=0 204 + # ''; 205 + }; 206 + 207 + wrappers = { 208 + docker-rootlesskit = { 209 + owner = "root"; 210 + group = "root"; 211 + capabilities = "cap_net_bind_service+ep"; 212 + source = "${pkgs.rootlesskit}/bin/rootlesskit"; 213 + }; 214 + }; 215 + }; 216 + 217 + virtualisation = { 218 + docker = { 219 + rootless = { 220 + enable = true; 221 + setSocketVariable = true; 222 + }; 223 + }; 224 + 225 + lxd = { 226 + enable = true; 227 + recommendedSysctlSettings = true; 228 + ui = { 229 + enable = true; 230 + package = pkgs.lxd-ui; 231 + }; 232 + }; 233 + }; 234 + 235 + users.users = { 236 + snow = { 237 + isNormalUser = true; 238 + description = "snow"; 239 + extraGroups = [ 240 + "wheel" 241 + ]; 242 + shell = pkgs.fish; 243 + openssh.authorizedKeys.keys = [ 244 + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL2za6psnuIMZ6FrdUehhyQlqYvy05+wv8dKER+Lctna snowy@Snowflake" 245 + ]; 246 + }; 247 + root = { 248 + shell = pkgs.fish; 249 + openssh.authorizedKeys.keys = [ 250 + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL2za6psnuIMZ6FrdUehhyQlqYvy05+wv8dKER+Lctna snowy@Snowflake" 251 + ]; 252 + }; 253 + }; 254 + }
+117
server/flake.lock
··· 1 + { 2 + "nodes": { 3 + "home-manager": { 4 + "inputs": { 5 + "nixpkgs": [ 6 + "nixpkgs" 7 + ] 8 + }, 9 + "locked": { 10 + "lastModified": 1748737919, 11 + "narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=", 12 + "owner": "nix-community", 13 + "repo": "home-manager", 14 + "rev": "5675a9686851d9626560052a032c4e14e533c1fa", 15 + "type": "github" 16 + }, 17 + "original": { 18 + "owner": "nix-community", 19 + "ref": "master", 20 + "repo": "home-manager", 21 + "type": "github" 22 + } 23 + }, 24 + "nixpkgs": { 25 + "locked": { 26 + "lastModified": 1748437600, 27 + "narHash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=", 28 + "owner": "NixOS", 29 + "repo": "nixpkgs", 30 + "rev": "7282cb574e0607e65224d33be8241eae7cfe0979", 31 + "type": "github" 32 + }, 33 + "original": { 34 + "owner": "NixOS", 35 + "ref": "nixos-25.05", 36 + "repo": "nixpkgs", 37 + "type": "github" 38 + } 39 + }, 40 + "nixpkgs_2": { 41 + "locked": { 42 + "lastModified": 1748798537, 43 + "narHash": "sha256-l7ObzI637Tvty57eGKWhDtILX+PTZNSSwMTLj8JOxoQ=", 44 + "owner": "nixos", 45 + "repo": "nixpkgs", 46 + "rev": "f0baa02d9422bd78a1b9072950b6c3f53e885332", 47 + "type": "github" 48 + }, 49 + "original": { 50 + "owner": "nixos", 51 + "repo": "nixpkgs", 52 + "type": "github" 53 + } 54 + }, 55 + "root": { 56 + "inputs": { 57 + "home-manager": "home-manager", 58 + "nixpkgs": "nixpkgs", 59 + "zenium": "zenium" 60 + } 61 + }, 62 + "systems": { 63 + "locked": { 64 + "lastModified": 1681028828, 65 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 66 + "owner": "nix-systems", 67 + "repo": "default", 68 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 69 + "type": "github" 70 + }, 71 + "original": { 72 + "owner": "nix-systems", 73 + "repo": "default", 74 + "type": "github" 75 + } 76 + }, 77 + "utils": { 78 + "inputs": { 79 + "systems": "systems" 80 + }, 81 + "locked": { 82 + "lastModified": 1731533236, 83 + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 84 + "owner": "numtide", 85 + "repo": "flake-utils", 86 + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 87 + "type": "github" 88 + }, 89 + "original": { 90 + "owner": "numtide", 91 + "repo": "flake-utils", 92 + "type": "github" 93 + } 94 + }, 95 + "zenium": { 96 + "inputs": { 97 + "nixpkgs": "nixpkgs_2", 98 + "utils": "utils" 99 + }, 100 + "locked": { 101 + "lastModified": 1748638806, 102 + "narHash": "sha256-V8Qhs8TJXgYwxze5T36hpCUBK5U5aBDawFDIcsc9dkE=", 103 + "ref": "refs/heads/project-refactor", 104 + "rev": "f66c84a58b49727c2706628773ec041b03a602bb", 105 + "revCount": 28458, 106 + "type": "git", 107 + "url": "https://git.killuaa.dev/Rouffy/Zenium" 108 + }, 109 + "original": { 110 + "type": "git", 111 + "url": "https://git.killuaa.dev/Rouffy/Zenium" 112 + } 113 + } 114 + }, 115 + "root": "root", 116 + "version": 7 117 + }
+45
server/flake.nix
··· 1 + { 2 + description = "Snow's Server Flake"; 3 + inputs = { 4 + nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; 5 + 6 + home-manager = { 7 + url = "github:nix-community/home-manager/master"; 8 + inputs.nixpkgs.follows = "nixpkgs"; 9 + }; 10 + 11 + }; 12 + 13 + outputs = 14 + { 15 + nixpkgs, 16 + home-manager, 17 + ... 18 + }@inputs: 19 + 20 + let 21 + system = "x86_64-linux"; 22 + in 23 + { 24 + nixosConfigurations.snow-den = nixpkgs.lib.nixosSystem { 25 + specialArgs = { 26 + inherit inputs; 27 + }; 28 + 29 + modules = [ 30 + ./configuration.nix 31 + "${nixpkgs}/nixos/modules/profiles/minimal.nix" 32 + 33 + home-manager.nixosModules.home-manager 34 + { 35 + home-manager.useGlobalPkgs = true; 36 + home-manager.useUserPackages = true; 37 + home-manager.extraSpecialArgs = { inherit inputs; }; 38 + home-manager.users = { 39 + snow = import ./home-manager/snow.nix; 40 + }; 41 + } 42 + ]; 43 + }; 44 + }; 45 + }
+37
server/hardware-configuration.nix
··· 1 + # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 + # and may be overwritten by future invocations. Please make changes 3 + # to /etc/nixos/configuration.nix instead. 4 + { config, lib, pkgs, modulesPath, ... }: 5 + 6 + { 7 + imports = 8 + [ (modulesPath + "/profiles/qemu-guest.nix") 9 + ]; 10 + 11 + boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ]; 12 + boot.initrd.kernelModules = [ ]; 13 + boot.kernelModules = [ "kvm-amd" ]; 14 + boot.extraModulePackages = [ ]; 15 + 16 + fileSystems."/" = 17 + { device = "/dev/disk/by-label/nixos"; 18 + fsType = "ext4"; 19 + }; 20 + 21 + fileSystems."/boot" = 22 + { device = "/dev/disk/by-label/boot"; 23 + fsType = "vfat"; 24 + options = [ "fmask=0077" "dmask=0077" ]; 25 + }; 26 + 27 + swapDevices = [ ]; 28 + 29 + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking 30 + # (the default) this is the recommended approach. When using systemd-networkd it's 31 + # still possible to use this option, but it's recommended to use it in conjunction 32 + # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. 33 + networking.useDHCP = lib.mkDefault true; 34 + # networking.interfaces.enp1s0.useDHCP = lib.mkDefault true; 35 + 36 + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 37 + }
+68
server/home-manager/apps/fastfetch.nix
··· 1 + { ... }: 2 + { 3 + programs.fastfetch = { 4 + enable = true; 5 + settings = { 6 + "$schema" = "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json"; 7 + # logo = { 8 + # type = "raw"; 9 + # source = "~/Documents/Misc./images/fastfetch/choppah2.sixel"; 10 + # width = 40; 11 + # height = 19; 12 + # }; 13 + display = { 14 + separator = " ➜ "; 15 + }; 16 + modules = [ 17 + { 18 + type = "title"; 19 + format = "{6}{7}\u001b[33m{2}\u001b[0m"; 20 + } 21 + { 22 + type = "custom"; 23 + format = "-====================-"; 24 + outputColor = "separator"; 25 + } 26 + { 27 + type = "os"; 28 + key = "{#34}  OS"; 29 + } 30 + { 31 + type = "kernel"; 32 + key = "{#33}  Kernel"; 33 + } 34 + { 35 + type = "packages"; 36 + key = "{#35} 󰏗 Packages"; 37 + } 38 + { 39 + type = "wm"; 40 + key = "{#36} 󰇄 WM"; 41 + } 42 + { 43 + type = "uptime"; 44 + key = "{#33}  Uptime"; 45 + } 46 + { 47 + type = "shell"; 48 + key = "{#34}  Shell"; 49 + } 50 + "break" 51 + { 52 + type = "cpu"; 53 + key = "{#35}  CPU"; 54 + } 55 + { 56 + type = "memory"; 57 + key = "{#39}  Memory"; 58 + } 59 + { 60 + type = "disk"; 61 + key = "{#37}  Drive"; 62 + } 63 + "break" 64 + "break" 65 + ]; 66 + }; 67 + }; 68 + }
+33
server/home-manager/apps/fish.nix
··· 1 + { ... }: 2 + { 3 + programs.fish = { 4 + enable = true; 5 + generateCompletions = true; 6 + functions = { 7 + docker = { 8 + body = '' 9 + if test (count $argv) -eq 1; and test "$argv[1]" = ps 10 + ctop 11 + else 12 + command docker $argv 13 + end 14 + ''; 15 + }; 16 + }; 17 + shellInit = '' 18 + set -xg fish_color_command blue 19 + ''; 20 + shellAliases = { 21 + fetch = "clear && fastfetch"; 22 + helix = "hx"; 23 + ls = "eza -ihA --icons"; 24 + cat = "/etc/profiles/per-user/snow/bin/bat"; 25 + bat = "/run/current-system/sw/bin/cat"; 26 + ctl = "sudo systemctl"; 27 + myip = "curl https://ipinfo.io/ip"; 28 + reslave = "sudo nix flake update --flake ~/.config/nixos && nh os switch ~/.config/nixos && sudo nix-collect-garbage -d && nix-collect-garbage -d && sudo nix-env --delete-generations +1"; 29 + rebuild = "nh os switch ~/.config/nixos"; 30 + docres = "docker compose down && docker compose up -d"; 31 + }; 32 + }; 33 + }
+48
server/home-manager/apps/helix.nix
··· 1 + { ... }: 2 + { 3 + programs.helix = { 4 + enable = true; 5 + defaultEditor = true; 6 + languages = { 7 + language = [ 8 + { 9 + name = "nix"; 10 + file-types = [ "nix" ]; 11 + indent = { 12 + tab-width = 2; 13 + unit = " "; 14 + }; 15 + formatter = { 16 + command = "nixfmt"; 17 + }; 18 + auto-format = true; 19 + } 20 + ]; 21 + }; 22 + settings = { 23 + theme = "monokai_soda"; 24 + editor = { 25 + scroll-lines = 5; 26 + true-color = true; 27 + #color-modes = true; 28 + popup-border = "all"; 29 + #clipboard-provider = "wayland"; 30 + }; 31 + editor.cursor-shape = { 32 + insert = "block"; 33 + normal = "block"; 34 + select = "block"; 35 + }; 36 + editor.lsp = { 37 + display-inlay-hints = true; 38 + display-progress-messages = true; 39 + }; 40 + keys.select = { 41 + y = ":clipboard-yank"; 42 + }; 43 + keys.normal = { 44 + y = ":clipboard-yank"; 45 + }; 46 + }; 47 + }; 48 + }
+53
server/home-manager/snow.nix
··· 1 + { pkgs, inputs, ... }: 2 + { 3 + imports = [ 4 + ./apps/helix.nix 5 + ./apps/fish.nix 6 + ./apps/fastfetch.nix 7 + ]; 8 + home.username = "snow"; 9 + home.homeDirectory = "/home/snow"; 10 + home.file = { 11 + ".local/bin/zed_server/zenium-remote-server" = { 12 + source = "${ 13 + inputs.zenium.packages."${pkgs.system}".zenium-remote-server-bin 14 + }/bin/zenium-remote-server"; 15 + recursive = true; 16 + }; 17 + }; 18 + 19 + home.packages = with pkgs; [ 20 + git 21 + nixd 22 + nixfmt-rfc-style 23 + devenv 24 + # yazi 25 + ctop 26 + inputs.zenium.packages."${system}".zenium-remote-server-bin 27 + ]; 28 + 29 + services = { 30 + cliphist = { 31 + enable = true; 32 + allowImages = true; 33 + }; 34 + }; 35 + 36 + programs = { 37 + home-manager = { 38 + enable = true; 39 + }; 40 + bat = { 41 + enable = true; 42 + }; 43 + eza = { 44 + enable = true; 45 + enableFishIntegration = true; 46 + git = true; 47 + icons = "always"; 48 + }; 49 + }; 50 + 51 + home.stateVersion = "25.05"; 52 + home.enableNixpkgsReleaseCheck = false; 53 + }