my nix flake.

feat(dahlia, user): whaaaaat i changed things and didnt commit???

vt3e.cat 91f85df8 0302ed7c

verified
+277 -40
+21 -21
flake.lock
··· 7 7 ] 8 8 }, 9 9 "locked": { 10 - "lastModified": 1748080874, 11 - "narHash": "sha256-sUebEzAkrY8Aq5G0GHFyRddmRNGP/a2iTtV7ISNvi/c=", 10 + "lastModified": 1750153510, 11 + "narHash": "sha256-NYHXXJZ9m4fJpKk9tKn/EExX87SqcBcRINOGF7hKRLI=", 12 12 "owner": "catppuccin", 13 13 "repo": "nix", 14 - "rev": "0ba11b12be81f0849a89ed17ab635164ea8f0112", 14 + "rev": "4e95eaf8a351956d75cc400318579967ca2b6d0f", 15 15 "type": "github" 16 16 }, 17 17 "original": { ··· 25 25 "nixpkgs-lib": "nixpkgs-lib" 26 26 }, 27 27 "locked": { 28 - "lastModified": 1743550720, 29 - "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", 28 + "lastModified": 1749398372, 29 + "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", 30 30 "owner": "hercules-ci", 31 31 "repo": "flake-parts", 32 - "rev": "c621e8422220273271f52058f618c94e405bb0f5", 32 + "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", 33 33 "type": "github" 34 34 }, 35 35 "original": { ··· 45 45 ] 46 46 }, 47 47 "locked": { 48 - "lastModified": 1748182899, 49 - "narHash": "sha256-r6MHSalDFydlUmjorVTSsyhLjIt8VWNtGc5+mffXvFQ=", 48 + "lastModified": 1750614446, 49 + "narHash": "sha256-6WH0aRFay79r775RuTqUcnoZNm6A4uHxU1sbcNIk63s=", 50 50 "owner": "nix-community", 51 51 "repo": "home-manager", 52 - "rev": "901f8fef7f349cf8a8e97b3230b22fd592df9160", 52 + "rev": "7c35504839f915abec86a96435b881ead7eb6a2b", 53 53 "type": "github" 54 54 }, 55 55 "original": { ··· 60 60 }, 61 61 "nixos-hardware": { 62 62 "locked": { 63 - "lastModified": 1747900541, 64 - "narHash": "sha256-dn64Pg9xLETjblwZs9Euu/SsjW80pd6lr5qSiyLY1pg=", 63 + "lastModified": 1750431636, 64 + "narHash": "sha256-vnzzBDbCGvInmfn2ijC4HsIY/3W1CWbwS/YQoFgdgPg=", 65 65 "owner": "NixOS", 66 66 "repo": "nixos-hardware", 67 - "rev": "11f2d9ea49c3e964315215d6baa73a8d42672f06", 67 + "rev": "1552a9f4513f3f0ceedcf90320e48d3d47165712", 68 68 "type": "github" 69 69 }, 70 70 "original": { ··· 76 76 }, 77 77 "nixpkgs": { 78 78 "locked": { 79 - "lastModified": 1748026106, 80 - "narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=", 79 + "lastModified": 1750506804, 80 + "narHash": "sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc=", 81 81 "owner": "NixOS", 82 82 "repo": "nixpkgs", 83 - "rev": "063f43f2dbdef86376cc29ad646c45c46e93234c", 83 + "rev": "4206c4cb56751df534751b058295ea61357bbbaa", 84 84 "type": "github" 85 85 }, 86 86 "original": { ··· 92 92 }, 93 93 "nixpkgs-lib": { 94 94 "locked": { 95 - "lastModified": 1743296961, 96 - "narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=", 95 + "lastModified": 1748740939, 96 + "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=", 97 97 "owner": "nix-community", 98 98 "repo": "nixpkgs.lib", 99 - "rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa", 99 + "rev": "656a64127e9d791a334452c6b6606d17539476e2", 100 100 "type": "github" 101 101 }, 102 102 "original": { ··· 123 123 "systems": "systems" 124 124 }, 125 125 "locked": { 126 - "lastModified": 1748147548, 127 - "narHash": "sha256-9IaAQkgyF4PFtVyui8vF6oJah0iVcO9DaOefjdTMthE=", 126 + "lastModified": 1750567035, 127 + "narHash": "sha256-GVNXxMZynKZt+83QQQEVXscqtkJbScvaBrwianovUW4=", 128 128 "owner": "Gerg-L", 129 129 "repo": "spicetify-nix", 130 - "rev": "f0595e3b59260457042450749eaec00a5a47db35", 130 + "rev": "e32285f5d1dfc184b039a813644e226c3914e7d7", 131 131 "type": "github" 132 132 }, 133 133 "original": {
+2
hosts/dahlia/default.nix
··· 11 11 ./virtualisation.nix 12 12 ./programs.nix 13 13 ./services.nix 14 + ./mounts.nix 14 15 ]; 15 16 16 17 time.timeZone = "Europe/London"; ··· 27 28 }; 28 29 29 30 environment.systemPackages = with pkgs; [ 31 + pulseaudio 30 32 libsForQt5.polkit-kde-agent 31 33 wlroots 32 34 wl-clipboard
+47
hosts/dahlia/mounts.nix
··· 1 + { 2 + pkgs, 3 + lib, 4 + ... 5 + }: 6 + { 7 + environment.systemPackages = [ pkgs.davfs2 ]; 8 + users.users.willow.extraGroups = [ "davfs2" ]; 9 + services.davfs2 = { 10 + enable = true; 11 + }; 12 + 13 + environment.etc."davfs2/secrets" = lib.mkForce { 14 + source = "/etc/nixos/secrets/webdav-password"; 15 + mode = "0600"; 16 + user = "root"; 17 + group = "root"; 18 + }; 19 + 20 + environment.etc."davfs2/davfs2.conf" = lib.mkForce { 21 + text = '' 22 + use_locks 0 23 + gui_optimize 1 24 + cache_size 50 25 + table_size 1024 26 + delay_upload 10 27 + if_match_bug 1 28 + ''; 29 + mode = "0644"; 30 + }; 31 + 32 + systemd.services.mount-webdav = { 33 + description = "Mount WebDAV"; 34 + wantedBy = [ "multi-user.target" ]; 35 + after = [ "network.target" ]; 36 + requires = [ "network.target" ]; 37 + serviceConfig = { 38 + Type = "oneshot"; 39 + RemainAfterExit = true; 40 + ExecStart = "${pkgs.davfs2}/bin/mount.davfs https://purelymail.com/webdav /mnt/webdav"; 41 + ExecStop = "${pkgs.davfs2}/bin/umount.davfs /mnt/webdav"; 42 + 43 + Restart = "on-failure"; 44 + RestartSec = "10s"; 45 + }; 46 + }; 47 + }
+10 -2
user/apps/default.nix
··· 5 5 ./zed.nix 6 6 ./foot.nix 7 7 ./games.nix 8 - ./spicetify.nix 9 - ./firefox.nix 8 + # ./spicetify.nix 10 9 ./obsidian.nix 10 + ./firefox 11 11 ]; 12 12 13 13 home.packages = with pkgs; [ ··· 20 20 nextcloud-client 21 21 keepassxc 22 22 23 + tidal-hifi 24 + high-tide 25 + 23 26 obs-studio 24 27 obs-studio-plugins.obs-vkcapture 25 28 obs-studio-plugins.obs-pipewire-audio-capture 26 29 obs-studio-plugins.wlrobs 27 30 ]; 31 + 32 + programs = { 33 + chromium.enable = true; 34 + }; 35 + 28 36 }
+112
user/apps/firefox/default.nix
··· 1 + { 2 + programs.firefox = { 3 + enable = true; 4 + languagePacks = [ "en-GB" ]; 5 + 6 + profiles."willow" = { 7 + settings = { 8 + "general.useragent.locale" = "en-GB"; 9 + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; 10 + 11 + "browser.profiles.enabled" = true; 12 + "browser.aboutConfig.showWarning" = false; 13 + "browser.toolbars.bookmarks.visibility" = "never"; 14 + "browser.ctrlTab.sortByRecentlyUsed" = true; 15 + "browser.tabs.inTitlebar" = 0; 16 + 17 + "browser.uiCustomization.navBarWhenVerticalTabs" = builtins.readFile ./navbar.json; 18 + "browser.uiCustomization.horizontalTabstrip" = 19 + ''["firefox-view-button","tabbrowser-tabs","new-tab-button","alltabs-button"]''; 20 + "browser.uiCustomization.state" = builtins.readFile ./ui-customization.json; 21 + 22 + "font.name.monospace.x-western" = "ZedMono Nerd Font"; 23 + "general.autoScroll" = true; 24 + 25 + "sidebar.main.tools" = "history,bookmarks,syncedtabs"; 26 + "sidebar.new-sidebar.has-used" = true; 27 + "sidebar.position_start" = false; 28 + "sidebar.revamp" = true; 29 + "sidebar.verticalTabs" = true; 30 + 31 + "media.eme.enabled" = false; 32 + }; 33 + 34 + bookmarks.force = true; 35 + 36 + bookmarks.settings = [ 37 + { 38 + name = "_"; 39 + toolbar = true; 40 + bookmarks = [ 41 + { 42 + name = "nix sites"; 43 + bookmarks = [ 44 + { 45 + name = "manual"; 46 + url = "https://nixos.org/manual/nixos/stable/"; 47 + } 48 + { 49 + name = "wiki"; 50 + url = "https://nixos.wiki/"; 51 + } 52 + { 53 + name = "nixpkgs"; 54 + url = "https://search.nixos.org/packages"; 55 + } 56 + { 57 + name = "home manager options"; 58 + url = "https://home-manager-options.extranix.com/"; 59 + } 60 + ]; 61 + } 62 + ]; 63 + } 64 + ]; 65 + 66 + containersForce = true; 67 + containers = { 68 + # icon 69 + # one of: 70 + # "briefcase", "cart", "circle", "dollar", "fence" 71 + # "fingerprint", "gift", "vacation", "food", "fruit", "pet", "tree" 72 + # "chill" 73 + # god i hate all of these icons lol. 74 + 75 + # color 76 + # one of: 77 + # "blue", "turquoise", "green", "yellow", "orange", "red", "pink", 78 + # "purple", "toolbari5 79 + 80 + "willow" = { 81 + id = 10; 82 + name = "willow"; 83 + icon = "fingerprint"; 84 + color = "blue"; 85 + }; 86 + 87 + "meow1" = { 88 + id = 11; 89 + name = "meow1"; 90 + icon = "pet"; 91 + color = "purple"; 92 + }; 93 + 94 + "meow2" = { 95 + id = 12; 96 + name = "meow2"; 97 + icon = "pet"; 98 + color = "orange"; 99 + }; 100 + 101 + "meow3" = { 102 + id = 13; 103 + name = "meow3"; 104 + icon = "pet"; 105 + color = "yellow"; 106 + }; 107 + }; 108 + 109 + # extensions.force = true; 110 + }; 111 + }; 112 + }
+13
user/apps/firefox/navbar.json
··· 1 + [ 2 + "back-button", 3 + "forward-button", 4 + "stop-reload-button", 5 + "customizableui-special-spring1", 6 + "urlbar-container", 7 + "vertical-spacer", 8 + "customizableui-special-spring2", 9 + "downloads-button", 10 + "unified-extensions-button", 11 + "alltabs-button", 12 + "sidebar-button" 13 + ]
+34
user/apps/firefox/ui-customization.json
··· 1 + { 2 + "placements": { 3 + "widget-overflow-fixed-list": [], 4 + "unified-extensions-area": [], 5 + "nav-bar": [ 6 + "back-button", 7 + "forward-button", 8 + "stop-reload-button", 9 + "customizableui-special-spring1", 10 + "urlbar-container", 11 + "vertical-spacer", 12 + "downloads-button", 13 + "unified-extensions-button" 14 + ], 15 + "toolbar-menubar": ["menubar-items"], 16 + "TabsToolbar": [], 17 + "vertical-tabs": ["tabbrowser-tabs"], 18 + "PersonalToolbar": ["personal-bookmarks"] 19 + }, 20 + "seen": [ 21 + "save-to-pocket-button", 22 + "developer-button", 23 + "_testpilot-containers-ctp-browser-action" 24 + ], 25 + "dirtyAreaCache": [ 26 + "nav-bar", 27 + "vertical-tabs", 28 + "toolbar-menubar", 29 + "TabsToolbar", 30 + "PersonalToolbar" 31 + ], 32 + "currentVersion": 22, 33 + "newElementCount": 4 34 + }
-9
user/apps/spicetify.nix
··· 18 18 colorScheme = config.catppuccin.flavor; 19 19 enabledExtensions = with spicePkgs.extensions; [ 20 20 adblockify 21 - shuffle 22 - autoSkip 23 - powerBar 24 - autoVolume 25 - 26 - history 27 21 simpleBeautifulLyrics 28 - ]; 29 - enabledCustomApps = with spicePkgs.apps; [ 30 - lyricsPlus 31 22 ]; 32 23 }; 33 24 }
+13
user/apps/zed.nix
··· 25 25 light = lib.mkForce "Catppuccin Latte"; 26 26 }; 27 27 28 + agent = { 29 + model_parameters = [ ]; 30 + default_model = { 31 + provider = "copilot_chat"; 32 + model = "claude-sonnet-4"; 33 + }; 34 + version = "2"; 35 + }; 36 + 37 + features = { 38 + edit_prediction_provider = "copilot"; 39 + }; 40 + 28 41 auto_update = false; 29 42 collaboration_panel.button = false; 30 43
+6
user/desktop/sway/binds.nix
··· 116 116 bindsym --locked XF86AudioPrev exec playerctl previous 117 117 bindsym --locked XF86AudioStop exec playerctl stop 118 118 119 + bindsym --locked XF86AudioPlay+Ctrl exec playerctl play-pause --ignore-player spotify,com.github.neithern.g4music 120 + bindsym --locked XF86AudioNext+Ctrl exec playerctl next --ignore-player spotify,com.github.neithern.g4music 121 + bindsym --locked XF86AudioPrev+Ctrl exec playerctl play-pause --ignore-player spotify,com.github.neithern.g4music 122 + bindsym --locked XF86AudioStop+Ctrl exec playerctl previous --ignore-player spotify,com.github.neithern.g4music 123 + 119 124 bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% 120 125 bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% 121 126 bindsym --locked XF86AudioMicMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle 127 + bindsym --locked XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle 122 128 ''; 123 129 }; 124 130 }
+1
user/desktop/sway/config.nix
··· 26 26 27 27 config = { 28 28 bars = [ ]; 29 + keybindings = { }; 29 30 }; 30 31 extraConfig = lib.concatStringsSep "\n" ( 31 32 lib.mapAttrsToList (ws: output: "workspace ${ws} output ${output}") workspaces
+14 -3
user/desktop/waybar/default.nix
··· 12 12 position = "bottom"; 13 13 height = 32; 14 14 15 - output = [ "DP-1" ]; 15 + output = [ 16 + "DP-1" 17 + "HDMI-A-1" 18 + ]; 16 19 17 20 modules-left = [ 18 21 "sway/workspaces" ··· 28 31 "tray" 29 32 ]; 30 33 34 + clock = { 35 + format = "{:%H:%M}"; 36 + format-alt = "{:%H:%M:%S}"; 37 + tooltip-format = "{:%Y-%m-%d}"; 38 + tooltip = true; 39 + }; 40 + 31 41 mpris = { 32 42 format = "{player_icon} {status_icon} {title} - {artist}"; 33 43 format-paused = "{player_icon} {status_icon} {title} - {artist}"; 34 44 format-stopped = ""; 35 45 player-icons = { 36 46 "spotify" = ""; 47 + "default" = ""; 37 48 }; 38 49 status-icons = { 39 50 "Playing" = "▶"; 40 51 "Paused" = "⏸"; 41 52 }; 42 - player = "spotify"; 53 + ignored-players = [ "firefox" ]; 43 54 }; 44 55 }; 45 56 ··· 48 59 layer = "bottom"; 49 60 position = "bottom"; 50 61 height = 4; 51 - output = [ "HDMI-A-1" ]; 62 + output = [ ]; 52 63 53 64 modules-left = [ 54 65 "sway/workspaces"
+3 -3
user/desktop/waybar/index.scss
··· 49 49 50 50 #workspaces button { 51 51 all: unset; 52 - background: transparent; 52 + background: alpha(@base, 1); 53 53 color: @subtext0; 54 - padding: 0 12px; 54 + padding: 0 18px; 55 55 margin: 0 1px; 56 56 border-radius: 200px; 57 - transition: 0.2s; 58 57 } 59 58 60 59 #workspaces button:hover { ··· 66 65 background: alpha(@sky, 0.8); 67 66 color: @crust; 68 67 font-weight: bold; 68 + padding: 0 24px; 69 69 } 70 70 71 71 #workspaces button.focused:hover {
-1
user/packages/tooling.nix
··· 9 9 else 10 10 bun 11 11 ) 12 - deno 13 12 nodejs_latest 14 13 15 14 python314
+1 -1
user/scripts/wallpaper.sh
··· 40 40 rm "$mapping" 41 41 [ -z "$wallpaper" ] && exit 1 42 42 else 43 - selected_pretty=$(cut -d'|' -f1 "$mapping" | dmenu -i -l 20 -p "Select wallpaper:") 43 + selected_pretty=$(cut -d'|' -f1 "$mapping" | rofi -dmenu -i -p "select wallpaper:" -lines 20) 44 44 [ -z "$selected_pretty" ] && rm "$mapping" && exit 1 45 45 46 46 wallpaper=$(grep -F "$selected_pretty|" "$mapping" | head -n1 | cut -d'|' -f2-)