diff --git a/.mailmap b/.mailmap deleted file mode 100644 index a9b7eb4..0000000 --- a/.mailmap +++ /dev/null @@ -1,5 +0,0 @@ -zoey zackartz -zoey zack -zoey zack -zoey Zachary Myers -zoey Zachary Myers diff --git a/.sops.yaml b/.sops.yaml deleted file mode 100644 index 9049d07..0000000 --- a/.sops.yaml +++ /dev/null @@ -1,25 +0,0 @@ -keys: - - &personal_pgp_key 0x141576B17B4AE789 - - &pc_main 0DCB1C584AECEB2674BB76C179FE3B714935CDAB - - &venus age1l6v7c5cp6sh6typgskwfufzkn3qw4av7r42z7lqyns6mtupytqhs2fg49u - - &personal_age_key age16p54d6tx3mg0htkzj43q2mzpvlqj4gz63mz5qzx8mpsp5zx4xexsszdhuk - -creation_rules: - # This rule applies to any file named 'secrets.yaml' directly in the 'secrets/' directory - # or 'secrets/github-deploy-key.yaml' etc. - - path_regex: "secrets/vpn-config.yaml$" - key_groups: - - pgp: - - *personal_pgp_key - - *pc_main - - path_regex: "secrets/matrix-db.yaml$" - key_groups: - - age: - - *venus - - *personal_age_key - # Add host keys for decryption on the target system - # sops-nix will automatically pick up the system's SSH host keys - # as decryption keys if enabled in your NixOS config. - # So you typically don't list them explicitly here unless you - # want to restrict it to specific fingerprints, which is rare. - # This part ensures your *personal* key can decrypt it. diff --git a/f.nix b/f.nix deleted file mode 100644 index 494efd3..0000000 --- a/f.nix +++ /dev/null @@ -1,201 +0,0 @@ -{ - config, - lib, - pkgs, - inputs, - ... -}: -with lib; -with lib.custom; let - cfg = config.wms.hyprland; - - mkService = recursiveUpdate { - Unit.PartOf = ["graphical-session.target"]; - Unit.After = ["graphical-session.target"]; - Install.WantedBy = ["graphical-session.target"]; - }; - - mod = "SUPER"; -in { - options.wms.hyprland = with types; { - enable = mkBoolOpt false "Enable Hyprland"; - }; - - config = mkIf cfg.enable { - home.packages = with pkgs; [ - xwayland - grim - slurp - ]; - - wayland.windowManager.hyprland = { - enable = true; - # package = inputs.hyprland.packages.${pkgs.system}.hyprland; - xwayland.enable = true; - - systemd = { - enable = false; - enableXdgAutostart = true; - }; - }; - imports = [./conf/binds.nix]; - wayland.windowManager.hyprland.settings = with colors; { - exec-once = [ - # "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" - # "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" - "zen" - "vesktop" - "cider-2" - "networkmanagerapplet" - "[workspace 9 silent] kitty" - "[workspace 9 silent] kitty" - "[workspace 9 silent] kitty" - "[workspace 10 silent] kitty" - ]; - - env = [ - "XDG_SESSION_TYPE,wayland" - "XDG_SESSION_DESKTOP,Hyprland" - "XDG_CURRENT_DESKTOP,Hyprland" - ]; - - general = { - # gaps - gaps_in = 2; - gaps_out = 4; - - # border thiccness - border_size = 2; - - # active border color - "col.active_border" = "rgb(${rose})"; - "col.inactive_border" = "rgb(${muted})"; - }; - - input = { - kb_layout = "us,ru(phonetic)"; - kb_options = grp:win_space_toggle; - sensitivity = 0; # -1.0 - 1.0, 0 means no modification. - accel_profile = "flat"; - force_no_accel = false; - }; - - dwindle = { - force_split = 2; - }; - - decoration = { - # fancy corners - rounding = 6; - # blur - blur = { - enabled = true; - size = 8; - passes = 2; - new_optimizations = 1; - contrast = 1; - brightness = 1; - }; - - shadow = { - # shadow config - enabled = false; - # range = 60; - # render_power = 5; - # color = "rgba(07061f29)"; - }; - }; - - misc = { - # disable redundant renders - disable_splash_rendering = true; - force_default_wallpaper = 0; - disable_hyprland_logo = true; - - vfr = false; - vrr = 2; - - # dpms - # mouse_move_enables_dpms = true; # enable dpms on mouse/touchpad action - # key_press_enables_dpms = true; # enable dpms on keyboard action - disable_autoreload = true; # autoreload is unnecessary on nixos, because the config is readonly anyway - }; - - xwayland = { - force_zero_scaling = true; - }; - - cursor = { - no_hardware_cursors = true; - }; - - monitor = ["DP-1,1920x1080@165,0x0,1"]; - - layerrule = [ - "blur, ^(gtk-layer-shell)$" - "blur, ^(launcher)$" - "ignorezero, ^(gtk-layer-shell)$" - "ignorezero, ^(launcher)$" - "blur, notifications" - "ignorezero, notificatios" - "blur, bar" - "ignorezero, bar" - "ignorezero, ^(gtk-layer-shell|anyrun)$" - "blur, ^(gtk-layer-shell|anyrun)$" - "noanim, launcher" - "noanim, bar" - ]; - workspace = [ - "1,monitor:DP-1" - "2,monitor:DP-1" - "3,monitor:DP-1" - "9,monitor:DP-1" - "10,monitor:DP-1" - ]; - windowrulev2 = [ - # only allow shadows for floating windows - "noshadow, floating:0" - "tile, title:Cider" - - "idleinhibit focus, class:^(mpv)$" - - "float, title:^(Picture-in-Picture)$" - "pin, title:^(Picture-in-Picture)$" - - "float,class:udiskie" - - # "workspace special silent,class:^(pavucontrol)$" - - "float, class:^(imv)$" - - # throw sharing indicators away - "workspace special silent, title:^(Firefox — Sharing Indicator)$" - "workspace special silent, title:^(.*is sharing (your screen|a window)\.)$" - - # specify what applications start on (at boot and normal startup of the app) - "workspace 2, class:^(vesktop)$" - "workspace 3, class:^(cider)$" - "workspace 4, class:^(zen)" - ]; - }; - - # # fake a tray to let apps start - # # https://github.com/nix-community/home-manager/issues/2064 - # systemd.user.targets.tray = { - # Unit = { - # Description = "Home Manager System Tray"; - # Requires = ["graphical-session-pre.target"]; - # }; - # }; - - systemd.user.services = { - swaybg = mkService { - Unit.Description = "Wallpaper chooser"; - Service = { - ExecStart = "${getExe pkgs.swaybg} -i ${wallpaper}"; - Restart = "always"; - }; - }; - }; - }; -} diff --git a/flake.lock b/flake.lock index ff47e4f..a70cdc5 100644 --- a/flake.lock +++ b/flake.lock @@ -10,11 +10,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1762618334, - "narHash": "sha256-wyT7Pl6tMFbFrs8Lk/TlEs81N6L+VSybPfiIgzU8lbQ=", + "lastModified": 1754433428, + "narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=", "owner": "ryantm", "repo": "agenix", - "rev": "fcdea223397448d35d9b31f798479227e80183f6", + "rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d", "type": "github" }, "original": { @@ -65,11 +65,11 @@ ] }, "locked": { - "lastModified": 1767024902, - "narHash": "sha256-sMdk6QkMDhIOnvULXKUM8WW8iyi551SWw2i6KQHbrrU=", + "lastModified": 1753216019, + "narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "b8a0c5ba5a9fbd2c660be7dd98bdde0ff3798556", + "rev": "be166e11d86ba4186db93e10c54a141058bdce49", "type": "github" }, "original": { @@ -139,11 +139,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1767967164, - "narHash": "sha256-Cx4VETh9dGoQYDtWhre7g66d7SAr+h1h6f+SSHxVrck=", + "lastModified": 1754950929, + "narHash": "sha256-75hsUMshZ5ZlO/X2JWfZqKHPM66uhUNsDG/Zozwh/xs=", "owner": "catppuccin", "repo": "nix", - "rev": "e973584280e3b0e1d5b5a1a5e9948dc222c54af7", + "rev": "45512611f1537c75e439d508409efc6901286645", "type": "github" }, "original": { @@ -154,57 +154,34 @@ }, "chaotic": { "inputs": { + "fenix": "fenix", "flake-schemas": "flake-schemas", "home-manager": "home-manager_2", "jovian": "jovian", - "nixpkgs": "nixpkgs_5", - "rust-overlay": "rust-overlay" + "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1765204341, - "narHash": "sha256-7xd45skcuLCu2DHxVvU+W/z+7CUOjyv+QPtT4PLZaIU=", + "lastModified": 1748296215, + "narHash": "sha256-xRctAsHhXMvjLHrTEYT9oOn4EHZuYxXA/13JZBOuweQ=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "aacb796ccd42be1555196c20013b9b674b71df75", + "rev": "7b20daf110d06962ee99114220f2fb98cdc8673d", "type": "github" }, "original": { "owner": "chaotic-cx", "repo": "nyx", + "rev": "7b20daf110d06962ee99114220f2fb98cdc8673d", "type": "github" } }, - "ciderd": { - "inputs": { - "crane": "crane", - "flake-parts": "flake-parts", - "nixpkgs": [ - "nixpkgs" - ], - "rust-overlay": "rust-overlay_2", - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1753646135, - "narHash": "sha256-2u+EWR5ivcoGyfjvchoRoyiFdZMvia2uJv/W3JhNN88=", - "ref": "refs/heads/main", - "rev": "c12b4787ca1d99d5bcb2172a625c31c0ac306daa", - "revCount": 4, - "type": "git", - "url": "https://code.zoeys.cloud/zoey/ciderd" - }, - "original": { - "type": "git", - "url": "https://code.zoeys.cloud/zoey/ciderd" - } - }, "crane": { "locked": { - "lastModified": 1753316655, - "narHash": "sha256-tzWa2kmTEN69OEMhxFy+J2oWSvZP5QhEgXp3TROOzl0=", + "lastModified": 1733016477, + "narHash": "sha256-Hh0khbqBeCtiNS0SJgqdWrQDem9WlPEc2KF5pAY+st0=", "owner": "ipetkov", "repo": "crane", - "rev": "f35a3372d070c9e9ccb63ba7ce347f0634ddf3d2", + "rev": "76d64e779e2fbaf172110038492343a8c4e29b55", "type": "github" }, "original": { @@ -214,27 +191,18 @@ } }, "crane_2": { - "locked": { - "lastModified": 1762189950, - "narHash": "sha256-aotggLUXjlDGqKWibGPQcMZJGgdr79S21ISrv1Wz6RI=", - "owner": "ipetkov", - "repo": "crane", - "rev": "50700219af884287ad7c85507e2f163b23a027a9", - "type": "github" + "inputs": { + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ] }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "crane_3": { "locked": { - "lastModified": 1754269165, - "narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=", + "lastModified": 1717535930, + "narHash": "sha256-1hZ/txnbd/RmiBPNUs7i8UQw2N89uAK3UzrGAWdnFfU=", "owner": "ipetkov", "repo": "crane", - "rev": "444e81206df3f7d92780680e45858e31d2f07a08", + "rev": "55e7754ec31dac78980c8be45f8a28e80e370946", "type": "github" }, "original": { @@ -267,14 +235,14 @@ }, "darwin_2": { "inputs": { - "nixpkgs": "nixpkgs_8" + "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1768220509, - "narHash": "sha256-8wMrJP/Xk5Dkm0TxzaERLt3eGFEhHTWaJKUpK3AoL4o=", + "lastModified": 1751313918, + "narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "7b1d394e7d9112d4060e12ef3271b38a7c43e83b", + "rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf", "type": "github" }, "original": { @@ -290,11 +258,11 @@ ] }, "locked": { - "lastModified": 1766150702, - "narHash": "sha256-P0kM+5o+DKnB6raXgFEk3azw8Wqg5FL6wyl9jD+G5a4=", + "lastModified": 1754971456, + "narHash": "sha256-p04ZnIBGzerSyiY2dNGmookCldhldWAu03y0s3P8CB0=", "owner": "nix-community", "repo": "disko", - "rev": "916506443ecd0d0b4a0f4cf9d40a3c22ce39b378", + "rev": "8246829f2e675a46919718f9a64b71afe3bfb22d", "type": "github" }, "original": { @@ -303,38 +271,17 @@ "type": "github" } }, - "dms": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "quickshell": "quickshell" - }, - "locked": { - "lastModified": 1768311656, - "narHash": "sha256-u8ag2bxkOmsn5l20sdWDnSKZX+HAjGRZGzsADEpKah0=", - "owner": "AvengeMedia", - "repo": "DankMaterialShell", - "rev": "8891c388d0f06343da507087412d07199ddad153", - "type": "github" - }, - "original": { - "owner": "AvengeMedia", - "repo": "DankMaterialShell", - "type": "github" - } - }, "emacs-overlay": { "inputs": { - "nixpkgs": "nixpkgs_9", + "nixpkgs": "nixpkgs_7", "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1768295847, - "narHash": "sha256-vcHIiukrOYQLaGv/rtYS8BlkiwoZwJ+odNhgxOWNGZs=", + "lastModified": 1755019161, + "narHash": "sha256-xOZSwUqlTa3ADZs8mV58AVV/SYvQU+1GPo4RvJJHuC4=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "51c96db303d7c57290f14660b8832c25743d3971", + "rev": "a86865a7014f4e91cdf045177fd57ab917972f73", "type": "github" }, "original": { @@ -343,61 +290,29 @@ "type": "github" } }, - "firefox-addons": { + "fenix": { "inputs": { "nixpkgs": [ + "chaotic", "nixpkgs" - ] + ], + "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "dir": "pkgs/firefox-addons", - "lastModified": 1768277016, - "narHash": "sha256-nGObauOcAGhTlyb/MfZ4uOOCIHqBc7jtV+gJjPjsPDw=", - "owner": "rycee", - "repo": "nur-expressions", - "rev": "a648659ba1699d97760cca3eadcae82114b03b48", - "type": "gitlab" + "lastModified": 1747392669, + "narHash": "sha256-zky3+lndxKRu98PAwVK8kXPdg+Q1NVAhaI7YGrboKYA=", + "owner": "nix-community", + "repo": "fenix", + "rev": "c3c27e603b0d9b5aac8a16236586696338856fbb", + "type": "github" }, "original": { - "dir": "pkgs/firefox-addons", - "owner": "rycee", - "repo": "nur-expressions", - "type": "gitlab" + "owner": "nix-community", + "repo": "fenix", + "type": "github" } }, "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1761588595, - "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1767039857, - "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", - "owner": "NixOS", - "repo": "flake-compat", - "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_3": { "flake": false, "locked": { "lastModified": 1747046372, @@ -413,14 +328,62 @@ "type": "github" } }, + "flake-compat_10": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-compat_4": { "flake": false, "locked": { - "lastModified": 1761588595, - "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -430,6 +393,38 @@ } }, "flake-compat_5": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_6": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_7": { "flake": false, "locked": { "lastModified": 1650374568, @@ -445,14 +440,30 @@ "type": "github" } }, - "flake-compat_6": { + "flake-compat_8": { "flake": false, "locked": { - "lastModified": 1767039857, - "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_9": { + "flake": false, + "locked": { + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { @@ -466,11 +477,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1753121425, - "narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=", + "lastModified": 1733269028, + "narHash": "sha256-kVq/jAKKtbvWwbL9wf0SKDxtxsC5Gb+nlIYEFnyXhGA=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "644e0fc48951a860279da645ba77fe4a6e814c5e", + "rev": "e37654df08605b510ad84eceaafcc7248495e843", "type": "github" }, "original": { @@ -481,14 +492,17 @@ }, "flake-parts_2": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_2" + "nixpkgs-lib": [ + "lanzaboote", + "nixpkgs" + ] }, "locked": { - "lastModified": 1762440070, - "narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=", + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", "type": "github" }, "original": { @@ -500,16 +514,16 @@ "flake-parts_3": { "inputs": { "nixpkgs-lib": [ - "lanzaboote", + "neovim-nightly-overlay", "nixpkgs" ] }, "locked": { - "lastModified": 1754091436, - "narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=", + "lastModified": 1754487366, + "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd", + "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", "type": "github" }, "original": { @@ -522,33 +536,33 @@ "inputs": { "nixpkgs-lib": [ "neovim-nightly-overlay", + "hercules-ci-effects", "nixpkgs" ] }, "locked": { - "lastModified": 1768135262, - "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", + "lastModified": 1751413152, + "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", + "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" + "id": "flake-parts", + "type": "indirect" } }, "flake-parts_5": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_3" + "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { - "lastModified": 1767609335, - "narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=", + "lastModified": 1754487366, + "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "250481aafeb741edfe23d29195671c19b36b6dca", + "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", "type": "github" }, "original": { @@ -559,7 +573,7 @@ }, "flake-parts_6": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_4" + "nixpkgs-lib": "nixpkgs-lib_3" }, "locked": { "lastModified": 1727826117, @@ -577,7 +591,7 @@ }, "flake-parts_7": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_5" + "nixpkgs-lib": "nixpkgs-lib_4" }, "locked": { "lastModified": 1719994518, @@ -644,6 +658,25 @@ "type": "github" } }, + "flake-utils-plus_2": { + "inputs": { + "flake-utils": "flake-utils_8" + }, + "locked": { + "lastModified": 1715533576, + "narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=", + "owner": "gytis-ivaskevicius", + "repo": "flake-utils-plus", + "rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f", + "type": "github" + }, + "original": { + "owner": "gytis-ivaskevicius", + "repo": "flake-utils-plus", + "rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f", + "type": "github" + } + }, "flake-utils_2": { "inputs": { "systems": "systems_4" @@ -685,11 +718,11 @@ "systems": "systems_10" }, "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -703,11 +736,11 @@ "systems": "systems_11" }, "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "type": "github" }, "original": { @@ -789,17 +822,16 @@ "inputs": { "flake-compat": "flake-compat", "flake-utils": "flake-utils_3", - "home-manager": "home-manager_3", - "nixpkgs": "nixpkgs_10", + "nixpkgs": "nixpkgs_8", "zig": "zig", "zon2nix": "zon2nix" }, "locked": { - "lastModified": 1768242096, - "narHash": "sha256-lqjA2rS5WL7+ZXqHjMp2/gvQfrYczFt8BICiQUGlStA=", + "lastModified": 1755031533, + "narHash": "sha256-LtiPVIpAw4DUroo5Q/Nf6LNqIe79W3z8d24SPQINOlY=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "c90f47f11f5ceaf0f161350c3755db2c50ade3f1", + "rev": "aa4cbf444b2f4ba822c8e947a2ea30b1cf330071", "type": "github" }, "original": { @@ -821,11 +853,34 @@ ] }, "locked": { - "lastModified": 1763988335, - "narHash": "sha256-QlcnByMc8KBjpU37rbq5iP7Cp97HvjRP0ucfdh+M4Qc=", + "lastModified": 1750779888, + "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "50b9238891e388c9fdc6a5c49e49c42533a1b5ce", + "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "git-hooks_2": { + "inputs": { + "flake-compat": "flake-compat_6", + "gitignore": "gitignore_4", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1754416808, + "narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864", "type": "github" }, "original": { @@ -900,6 +955,50 @@ "type": "github" } }, + "gitignore_4": { + "inputs": { + "nixpkgs": [ + "neovim-nightly-overlay", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "hercules-ci-effects": { + "inputs": { + "flake-parts": "flake-parts_4", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1752595130, + "narHash": "sha256-CNBgr4OZSuklGtNOa9CnTNo9+Xceqn/EDAC1Tc43fH8=", + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "rev": "5f2e09654b2e70ba643e41609d9f9b6640f22113", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "hercules-ci-effects", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -929,11 +1028,11 @@ ] }, "locked": { - "lastModified": 1764998300, - "narHash": "sha256-fZatn/KLfHLDXnF0wy7JxXqGaZmGDTVufT4o/AOlj44=", + "lastModified": 1748182899, + "narHash": "sha256-r6MHSalDFydlUmjorVTSsyhLjIt8VWNtGc5+mffXvFQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "27a6182347ccae90a88231ae0dc5dfa7d15815bb", + "rev": "901f8fef7f349cf8a8e97b3230b22fd592df9160", "type": "github" }, "original": { @@ -945,16 +1044,15 @@ "home-manager_3": { "inputs": { "nixpkgs": [ - "ghostty", "nixpkgs" ] }, "locked": { - "lastModified": 1768068402, - "narHash": "sha256-bAXnnJZKJiF7Xr6eNW6+PhBf1lg2P1aFUO9+xgWkXfA=", + "lastModified": 1754974548, + "narHash": "sha256-XMjUjKD/QRPcqUnmSDczSYdw46SilnG0+wkho654DFM=", "owner": "nix-community", "repo": "home-manager", - "rev": "8bc5473b6bc2b6e1529a9c4040411e1199c43b4c", + "rev": "27a26be51ff0162a8f67660239f9407dba68d7c5", "type": "github" }, "original": { @@ -964,26 +1062,6 @@ } }, "home-manager_4": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1768271922, - "narHash": "sha256-zmFw7AtcmfMxW3vR7AiGeQQeHhdrd2x7a3hxzd6vJYI=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "fbd566923adcfa67be512a14a79467e2ab8a5777", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "home-manager_5": { "inputs": { "nixpkgs": [ "zen-browser", @@ -991,11 +1069,11 @@ ] }, "locked": { - "lastModified": 1767104570, - "narHash": "sha256-GKgwu5//R+cLdKysZjGqvUEEOGXXLdt93sNXeb2M/Lk=", + "lastModified": 1752603129, + "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=", "owner": "nix-community", "repo": "home-manager", - "rev": "e4e78a2cbeaddd07ab7238971b16468cc1d14daf", + "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b", "type": "github" }, "original": { @@ -1049,11 +1127,11 @@ ] }, "locked": { - "lastModified": 1766946335, - "narHash": "sha256-MRD+Jr2bY11MzNDfenENhiK6pvN+nHygxdHoHbZ1HtE=", + "lastModified": 1754305013, + "narHash": "sha256-u+M2f0Xf1lVHzIPQ7DsNCDkM1NYxykOSsRr4t3TbSM4=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "4af02a3925b454deb1c36603843da528b67ded6c", + "rev": "4c1d63a0f22135db123fc789f174b89544c6ec2d", "type": "github" }, "original": { @@ -1074,11 +1152,11 @@ "systems": "systems_7" }, "locked": { - "lastModified": 1766230298, - "narHash": "sha256-9Qg2/L69yghAH9KLjxOv/n7Sn5JSJDLGnQjJok4r3ZM=", + "lastModified": 1752164251, + "narHash": "sha256-v/FnmgSkOypGkpDHQW8KK0uVIyh2njVgEa7hOpWW9ZM=", "owner": "hyprwm", "repo": "hypridle", - "rev": "833eb85d05deb73ead48e57826e7385384fd55a6", + "rev": "dda793b66a79e5602675fa370dd9a93f1d70a60e", "type": "github" }, "original": { @@ -1092,23 +1170,22 @@ "aquamarine": "aquamarine", "hyprcursor": "hyprcursor", "hyprgraphics": "hyprgraphics", - "hyprland-guiutils": "hyprland-guiutils", "hyprland-protocols": "hyprland-protocols_2", + "hyprland-qtutils": "hyprland-qtutils", "hyprlang": "hyprlang_2", "hyprutils": "hyprutils_2", "hyprwayland-scanner": "hyprwayland-scanner_2", - "hyprwire": "hyprwire", - "nixpkgs": "nixpkgs_11", + "nixpkgs": "nixpkgs_9", "pre-commit-hooks": "pre-commit-hooks", "systems": "systems_8", "xdph": "xdph" }, "locked": { - "lastModified": 1768238888, - "narHash": "sha256-6+TIBr+Cm41UgoSqYGl2zQOxKt35sHcemv/dRPsZQzQ=", + "lastModified": 1755025881, + "narHash": "sha256-M+YNvxtEkUMFv2UBiO9A0UW41GJueG43NY1wdlD0Z9Q=", "ref": "refs/heads/main", - "rev": "8d03fcc8d76245be013254ea30fbe534f680dc9f", - "revCount": 6807, + "rev": "2b6e2ceb2e66407e80b98015eb9f559f06405b2f", + "revCount": 6360, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -1119,52 +1196,6 @@ "url": "https://github.com/hyprwm/Hyprland" } }, - "hyprland-guiutils": { - "inputs": { - "aquamarine": [ - "hyprland", - "aquamarine" - ], - "hyprgraphics": [ - "hyprland", - "hyprgraphics" - ], - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprtoolkit": "hyprtoolkit", - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1767023960, - "narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=", - "owner": "hyprwm", - "repo": "hyprland-guiutils", - "rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-guiutils", - "type": "github" - } - }, "hyprland-protocols": { "inputs": { "nixpkgs": [ @@ -1177,11 +1208,11 @@ ] }, "locked": { - "lastModified": 1765214753, - "narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=", + "lastModified": 1749046714, + "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab", + "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", "type": "github" }, "original": { @@ -1202,11 +1233,11 @@ ] }, "locked": { - "lastModified": 1765214753, - "narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=", + "lastModified": 1749046714, + "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab", + "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", "type": "github" }, "original": { @@ -1215,6 +1246,74 @@ "type": "github" } }, + "hyprland-qt-support": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprland-qtutils", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "hyprland-qtutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-qtutils", + "systems" + ] + }, + "locked": { + "lastModified": 1749154592, + "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "type": "github" + } + }, + "hyprland-qtutils": { + "inputs": { + "hyprland-qt-support": "hyprland-qt-support", + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland-qtutils", + "hyprlang", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753819801, + "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "type": "github" + } + }, "hyprlang": { "inputs": { "hyprutils": [ @@ -1231,11 +1330,11 @@ ] }, "locked": { - "lastModified": 1764612430, - "narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=", + "lastModified": 1749145882, + "narHash": "sha256-qr0KXeczF8Sma3Ae7+dR2NHhvG7YeLBJv19W4oMu6ZE=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "0d00dc118981531aa731150b6ea551ef037acddd", + "rev": "1bfb84f54d50c7ae6558c794d3cfd5f6a7e6e676", "type": "github" }, "original": { @@ -1260,11 +1359,11 @@ ] }, "locked": { - "lastModified": 1764612430, - "narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=", + "lastModified": 1753622892, + "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "0d00dc118981531aa731150b6ea551ef037acddd", + "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809", "type": "github" }, "original": { @@ -1273,58 +1372,6 @@ "type": "github" } }, - "hyprtoolkit": { - "inputs": { - "aquamarine": [ - "hyprland", - "hyprland-guiutils", - "aquamarine" - ], - "hyprgraphics": [ - "hyprland", - "hyprland-guiutils", - "hyprgraphics" - ], - "hyprlang": [ - "hyprland", - "hyprland-guiutils", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprland-guiutils", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprland-guiutils", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "hyprland-guiutils", - "nixpkgs" - ], - "systems": [ - "hyprland", - "hyprland-guiutils", - "systems" - ] - }, - "locked": { - "lastModified": 1764592794, - "narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=", - "owner": "hyprwm", - "repo": "hyprtoolkit", - "rev": "5cfe0743f0e608e1462972303778d8a0859ee63e", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprtoolkit", - "type": "github" - } - }, "hyprutils": { "inputs": { "nixpkgs": [ @@ -1337,11 +1384,11 @@ ] }, "locked": { - "lastModified": 1766160771, - "narHash": "sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw=", + "lastModified": 1749135356, + "narHash": "sha256-Q8mAKMDsFbCEuq7zoSlcTuxgbIBVhfIYpX0RjE32PS0=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "5ac060bfcf2f12b3a6381156ebbc13826a05b09f", + "rev": "e36db00dfb3a3d3fdcc4069cb292ff60d2699ccb", "type": "github" }, "original": { @@ -1362,11 +1409,11 @@ ] }, "locked": { - "lastModified": 1766253372, - "narHash": "sha256-1+p4Kw8HdtMoFSmJtfdwjxM4bPxDK9yg27SlvUMpzWA=", + "lastModified": 1754481650, + "narHash": "sha256-6u6HdEFJh5gY6VfyMQbhP7zDdVcqOrCDTkbiHJmAtMI=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "51a4f93ce8572e7b12b7284eb9e6e8ebf16b4be9", + "rev": "df6b8820c4a0835d83d0c7c7be86fbc555f1f7fd", "type": "github" }, "original": { @@ -1387,11 +1434,11 @@ ] }, "locked": { - "lastModified": 1763640274, - "narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=", + "lastModified": 1749145760, + "narHash": "sha256-IHaGWpGrv7seFWdw/1A+wHtTsPlOGIKMrk1TUIYJEFI=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671", + "rev": "817918315ea016cc2d94004bfb3223b5fd9dfcc6", "type": "github" }, "original": { @@ -1412,11 +1459,11 @@ ] }, "locked": { - "lastModified": 1763640274, - "narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=", + "lastModified": 1751897909, + "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671", + "rev": "fcca0c61f988a9d092cbb33e906775014c61579d", "type": "github" }, "original": { @@ -1425,35 +1472,6 @@ "type": "github" } }, - "hyprwire": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1767473322, - "narHash": "sha256-RGOeG+wQHeJ6BKcsSB8r0ZU77g9mDvoQzoTKj2dFHwA=", - "owner": "hyprwm", - "repo": "hyprwire", - "rev": "d5e7d6b49fe780353c1cf9a1cf39fa8970bd9d11", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwire", - "type": "github" - } - }, "jovian": { "inputs": { "nix-github-actions": "nix-github-actions", @@ -1463,11 +1481,11 @@ ] }, "locked": { - "lastModified": 1764922999, - "narHash": "sha256-LSvUxKm6S6ZAd/otQSkAHd3+8KJhi8OwGJGSe0K//B8=", + "lastModified": 1747990026, + "narHash": "sha256-sG5VbID+x5+xUC+jjgHibnzg8IllVcH+K2TLmYHLPME=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "9b9ead1b5591b68f4048e7205ba1397bc85ce6c4", + "rev": "e2f4ced874406541a7957f7e2b8f05a0d59a0f00", "type": "github" }, "original": { @@ -1478,21 +1496,21 @@ }, "kb-gui": { "inputs": { - "crane": "crane_2", - "flake-parts": "flake-parts_2", + "crane": "crane", + "flake-parts": "flake-parts", "nixpkgs": [ "nixpkgs" ], - "rust-overlay": "rust-overlay_3", + "rust-overlay": "rust-overlay", "systems": "systems_9", - "treefmt-nix": "treefmt-nix_2" + "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1762441433, - "narHash": "sha256-YWYrxn2MK8cxvg8eFXRQa2on57ScJK9cR3e6ojnkQx8=", + "lastModified": 1733281564, + "narHash": "sha256-Yr9mk33lrryea4b7dlOWgI7Cjrfz5Q3cjEyjPqZ9FK8=", "owner": "zackartz", "repo": "kb-gui", - "rev": "10a48d8de7504c7860aa32afc5a8c2e9e68a1339", + "rev": "499dab14fc2935e802e259501e86f5ffe8fb2f2e", "type": "github" }, "original": { @@ -1503,54 +1521,36 @@ }, "lanzaboote": { "inputs": { - "crane": "crane_3", + "crane": "crane_2", "flake-compat": "flake-compat_3", - "flake-parts": "flake-parts_3", + "flake-parts": "flake-parts_2", + "flake-utils": "flake-utils_4", "nixpkgs": [ "nixpkgs" ], "pre-commit-hooks-nix": "pre-commit-hooks-nix", - "rust-overlay": "rust-overlay_4" + "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1762205063, - "narHash": "sha256-If6vQ+KvtKs3ARBO9G3l+4wFSCYtRBrwX1z+I+B61wQ=", + "lastModified": 1718178907, + "narHash": "sha256-eSZyrQ9uoPB9iPQ8Y5H7gAmAgAvCw3InStmU3oEjqsE=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "88b8a563ff5704f4e8d8e5118fb911fa2110ca05", + "rev": "b627ccd97d0159214cee5c7db1412b75e4be6086", "type": "github" }, "original": { "owner": "nix-community", - "ref": "v0.4.3", + "ref": "v0.4.1", "repo": "lanzaboote", "type": "github" } }, - "lazyvim": { - "inputs": { - "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_14" - }, - "locked": { - "lastModified": 1767986188, - "narHash": "sha256-z3m/3JomuimxQUVauP9n1GO+QHa50xvAMLKKw1vWE0Q=", - "owner": "pfassina", - "repo": "lazyvim-nix", - "rev": "af3997a8b663ae0d570ae04867cd4b51873adfe2", - "type": "github" - }, - "original": { - "owner": "pfassina", - "repo": "lazyvim-nix", - "type": "github" - } - }, "lexical": { "inputs": { "flake-parts": "flake-parts_7", - "nixpkgs": "nixpkgs_25", - "systems": "systems_20" + "nixpkgs": "nixpkgs_24", + "systems": "systems_21" }, "locked": { "lastModified": 1727126932, @@ -1569,15 +1569,15 @@ "lix": { "flake": false, "locked": { - "lastModified": 1751235704, - "narHash": "sha256-J4ycLoXHPsoBoQtEXFCelL4xlq5pT8U9tNWNKm43+YI=", - "rev": "1d7368585eebaa2c4bdbcb88fe600cfb2239b2c6", + "lastModified": 1729298361, + "narHash": "sha256-hiGtfzxFkDc9TSYsb96Whg0vnqBVV7CUxyscZNhed0U=", + "rev": "ad9d06f7838a25beec425ff406fe68721fef73be", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/1d7368585eebaa2c4bdbcb88fe600cfb2239b2c6.tar.gz?rev=1d7368585eebaa2c4bdbcb88fe600cfb2239b2c6" + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/ad9d06f7838a25beec425ff406fe68721fef73be.tar.gz?rev=ad9d06f7838a25beec425ff406fe68721fef73be" }, "original": { "type": "tarball", - "url": "https://git.lix.systems/lix-project/lix/archive/release-2.93.tar.gz" + "url": "https://git.lix.systems/lix-project/lix/archive/2.91.1.tar.gz" } }, "lix-module": { @@ -1590,15 +1590,15 @@ ] }, "locked": { - "lastModified": 1751240025, - "narHash": "sha256-SXUAlxpjPRkArRMHy5+Hdi+PiC+ND9yzzIjiaHmTvQU=", - "rev": "8b1094356f4723d6e89d3f8a95b333ee16d9ab02", + "lastModified": 1729360442, + "narHash": "sha256-6U0CyPycIBc04hbYy2hBINnVso58n/ZyywY2BD3hu+s=", + "rev": "9098ac95768f7006d7e070b88bae76939f6034e6", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/8b1094356f4723d6e89d3f8a95b333ee16d9ab02.tar.gz" + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/9098ac95768f7006d7e070b88bae76939f6034e6.tar.gz" }, "original": { "type": "tarball", - "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.2-1.tar.gz" + "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz" } }, "mailserver": { @@ -1606,14 +1606,15 @@ "blobs": "blobs", "flake-compat": "flake-compat_4", "git-hooks": "git-hooks", - "nixpkgs": "nixpkgs_15" + "nixpkgs": "nixpkgs_12", + "nixpkgs-25_05": "nixpkgs-25_05" }, "locked": { - "lastModified": 1766321686, - "narHash": "sha256-icOWbnD977HXhveirqA10zoqvErczVs3NKx8Bj+ikHY=", + "lastModified": 1754605910, + "narHash": "sha256-kVWxzm44ywJTb4REfwWCYXnROISykG0yE+X5A3Gov24=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "7d433bf89882f61621f95082e90a4ab91eb0bdd3", + "rev": "57d9624c71ca65bee69b30d72b11f6c5257e9500", "type": "gitlab" }, "original": { @@ -1624,16 +1625,20 @@ }, "neovim-nightly-overlay": { "inputs": { - "flake-parts": "flake-parts_4", + "flake-compat": "flake-compat_5", + "flake-parts": "flake-parts_3", + "git-hooks": "git-hooks_2", + "hercules-ci-effects": "hercules-ci-effects", "neovim-src": "neovim-src", - "nixpkgs": "nixpkgs_16" + "nixpkgs": "nixpkgs_13", + "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1768262756, - "narHash": "sha256-XQkiKx2Ht/C4P4CLMPFwd2clweZ//QgQP/q7ia5l+FM=", + "lastModified": 1755033072, + "narHash": "sha256-KQ5qgugljc44XtEVmGzRdBwTDIqARCM3b/9dRsEBZIk=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "8412b167e9c931c249f5cb41b62127aeed6543f7", + "rev": "3cf910c2727eed304b8aabcfddc109e0c0371bfb", "type": "github" }, "original": { @@ -1645,11 +1650,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1768244281, - "narHash": "sha256-lf5o9k+rUrYhwFlvE9GPUPeni/rEGf/KXU+u58lpfh4=", + "lastModified": 1754951943, + "narHash": "sha256-jDrRkJQ+iDDAZn+8bi6lxumSNUwgdyFgJVTzVwz1lIM=", "owner": "neovim", "repo": "neovim", - "rev": "d2ca90d87e3246b5b827ed08f8c0dfc8ad6ae4c8", + "rev": "a26cdcb20e68f38f636b14a03c3f9657f5c74f67", "type": "github" }, "original": { @@ -1662,17 +1667,17 @@ "inputs": { "niri-stable": "niri-stable", "niri-unstable": "niri-unstable", - "nixpkgs": "nixpkgs_17", - "nixpkgs-stable": "nixpkgs-stable_2", + "nixpkgs": "nixpkgs_14", + "nixpkgs-stable": "nixpkgs-stable_3", "xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1768306584, - "narHash": "sha256-GWLONqOKcsWKFYqoEIFbIv6Ti/xoSvsYC9LzZzB1oj4=", + "lastModified": 1755008894, + "narHash": "sha256-QDlUT5Bvq9YXZI3YLtOGIbEJo/bEbtRJmyPsoC6UXFg=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "1b8c8ba473cf336d74ffb05ee453c8fe6a05bbbc", + "rev": "5196ae4f1ffece7433e0c441f396ccc045919aa3", "type": "github" }, "original": { @@ -1686,14 +1691,14 @@ "nixpkgs": [ "nixpkgs" ], - "rust-overlay": "rust-overlay_5" + "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1768196703, - "narHash": "sha256-mttBQdVnVFO3mn+M+oqCsZZOtS2HvXYy+VaHxb8YuMw=", + "lastModified": 1754894368, + "narHash": "sha256-I7uSAOosX79BLVTWRHWHvT9z3Lv8rDYY3RogV/0Gne0=", "owner": "YaLTeR", "repo": "niri", - "rev": "3672e79369d72297abda8878245ea4ec327062c6", + "rev": "0044578681cee50fd7ad49fcb8d1e2ea53d85fe4", "type": "github" }, "original": { @@ -1705,16 +1710,16 @@ "niri-stable": { "flake": false, "locked": { - "lastModified": 1756556321, - "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=", + "lastModified": 1748151941, + "narHash": "sha256-z4viQZLgC2bIJ3VrzQnR+q2F3gAOEQpU1H5xHtX/2fs=", "owner": "YaLTeR", "repo": "niri", - "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294", + "rev": "8ba57fcf25d2fc9565131684a839d58703f1dae7", "type": "github" }, "original": { "owner": "YaLTeR", - "ref": "v25.08", + "ref": "v25.05.1", "repo": "niri", "type": "github" } @@ -1722,11 +1727,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1768196703, - "narHash": "sha256-mttBQdVnVFO3mn+M+oqCsZZOtS2HvXYy+VaHxb8YuMw=", + "lastModified": 1754894368, + "narHash": "sha256-I7uSAOosX79BLVTWRHWHvT9z3Lv8rDYY3RogV/0Gne0=", "owner": "YaLTeR", "repo": "niri", - "rev": "3672e79369d72297abda8878245ea4ec327062c6", + "rev": "0044578681cee50fd7ad49fcb8d1e2ea53d85fe4", "type": "github" }, "original": { @@ -1742,11 +1747,11 @@ ] }, "locked": { - "lastModified": 1768220509, - "narHash": "sha256-8wMrJP/Xk5Dkm0TxzaERLt3eGFEhHTWaJKUpK3AoL4o=", + "lastModified": 1751313918, + "narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=", "owner": "nix-darwin", "repo": "nix-darwin", - "rev": "7b1d394e7d9112d4060e12ef3271b38a7c43e83b", + "rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf", "type": "github" }, "original": { @@ -1777,26 +1782,6 @@ "type": "github" } }, - "nix-matrix-modules": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1765214213, - "narHash": "sha256-WSk8CTdIDFFP5VMJj9beve19nPMMdTsWnkCHVXqO/3E=", - "owner": "D4ndellion", - "repo": "nixos-matrix-modules", - "rev": "82959f612ffd523a49c92f84358a9980a851747b", - "type": "github" - }, - "original": { - "owner": "D4ndellion", - "repo": "nixos-matrix-modules", - "type": "github" - } - }, "nixlib": { "locked": { "lastModified": 1736643958, @@ -1820,11 +1805,11 @@ ] }, "locked": { - "lastModified": 1764234087, - "narHash": "sha256-NHF7QWa0ZPT8hsJrvijREW3+nifmF2rTXgS2v0tpcEA=", + "lastModified": 1751903740, + "narHash": "sha256-PeSkNMvkpEvts+9DjFiop1iT2JuBpyknmBUs0Un0a4I=", "owner": "nix-community", "repo": "nixos-generators", - "rev": "032a1878682fafe829edfcf5fdfad635a2efe748", + "rev": "032decf9db65efed428afd2fa39d80f7089085eb", "type": "github" }, "original": { @@ -1835,27 +1820,27 @@ }, "nixos-stable": { "locked": { - "lastModified": 1767313136, - "narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", + "lastModified": 1751274312, + "narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d", + "rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-25.05", + "ref": "nixos-24.11", "repo": "nixpkgs", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1768127708, - "narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=", + "lastModified": 1754725699, + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", "owner": "nixos", "repo": "nixpkgs", - "rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38", + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", "type": "github" }, "original": { @@ -1865,28 +1850,41 @@ "type": "github" } }, - "nixpkgs-lib": { + "nixpkgs-25_05": { "locked": { - "lastModified": 1751159883, - "narHash": "sha256-urW/Ylk9FIfvXfliA1ywh75yszAbiTEVgpPeinFyVZo=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "14a40a1d7fb9afa4739275ac642ed7301a9ba1ab", + "lastModified": 1753749649, + "narHash": "sha256-+jkEZxs7bfOKfBIk430K+tK9IvXlwzqQQnppC2ZKFj4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1f08a4df998e21f4e8be8fb6fbf61d11a1a5076a", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1733096140, + "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + } + }, "nixpkgs-lib_2": { "locked": { - "lastModified": 1761765539, - "narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=", + "lastModified": 1753579242, + "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "719359f4562934ae99f5443f20aa06c2ffff91fc", + "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", "type": "github" }, "original": { @@ -1896,21 +1894,6 @@ } }, "nixpkgs-lib_3": { - "locked": { - "lastModified": 1765674936, - "narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-lib_4": { "locked": { "lastModified": 1727825735, "narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=", @@ -1922,7 +1905,7 @@ "url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz" } }, - "nixpkgs-lib_5": { + "nixpkgs-lib_4": { "locked": { "lastModified": 1719876945, "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", @@ -1936,11 +1919,43 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1767313136, - "narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", + "lastModified": 1751274312, + "narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d", + "rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1710695816, + "narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "614b4613980a522ba49f0d194531beddbb7220d3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_3": { + "locked": { + "lastModified": 1754937576, + "narHash": "sha256-3sWA5WJybUE16kIMZ3+uxcxKZY/JRR4DFBqLdSLBo7w=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ddae11e58c0c345bf66efbddbf2192ed0e58f896", "type": "github" }, "original": { @@ -1950,42 +1965,45 @@ "type": "github" } }, - "nixpkgs-stable_2": { - "locked": { - "lastModified": 1768242861, - "narHash": "sha256-F4IIxa5xDHjtrmMcayM8lHctUq1oGltfBQu2+oqDWP4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1327e798cb055f96f92685df444e9a2c326ab5ed", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.11", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_10": { "locked": { - "lastModified": 1768032153, - "narHash": "sha256-zvxtwlM8ZlulmZKyYCQAPpkm5dngSEnnHjmjV7Teloc=", - "rev": "3146c6aa9995e7351a398e17470e15305e6e18ff", - "type": "tarball", - "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre925418.3146c6aa9995/nixexprs.tar.xz" + "lastModified": 1728538411, + "narHash": "sha256-f0SBJz1eZ2yOuKUr5CA9BHULGXVSn6miBuUWdTyhUhU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b69de56fac8c2b6f8fd27f2eca01dcda8e0a4221", + "type": "github" }, "original": { - "type": "tarball", - "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz" + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs_11": { "locked": { - "lastModified": 1767379071, - "narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=", + "lastModified": 1731890469, + "narHash": "sha256-D1FNZ70NmQEwNxpSSdTXCSklBH1z2isPR84J6DQrJGs=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "5083ec887760adfe12af64830a66807423a859a7", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_12": { + "locked": { + "lastModified": 1753939845, + "narHash": "sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1+A4GQej/lBk5y7I=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fb7944c166a3b630f177938e478f0378e64ce108", + "rev": "94def634a20494ee057c76998843c015909d6311", "type": "github" }, "original": { @@ -1995,33 +2013,17 @@ "type": "github" } }, - "nixpkgs_12": { - "locked": { - "lastModified": 1744536153, - "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_13": { "locked": { - "lastModified": 1761236834, - "narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=", - "owner": "nixos", + "lastModified": 1754800730, + "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "d5faa84122bc0a1fd5d378492efce4e289f8eac1", + "rev": "641d909c4a7538f1539da9240dedb1755c907e40", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" @@ -2029,11 +2031,11 @@ }, "nixpkgs_14": { "locked": { - "lastModified": 1752480373, - "narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=", + "lastModified": 1754725699, + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08", + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", "type": "github" }, "original": { @@ -2045,69 +2047,21 @@ }, "nixpkgs_15": { "locked": { - "lastModified": 1764374374, - "narHash": "sha256-naS7hg/D1yLKSZoENx9gvsPLFiNEOTcqamJSu0OEvCA=", - "owner": "NixOS", + "lastModified": 1754725699, + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "6a49303095abc094ee77dc243a9e351b642e8e75", + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable-small", + "owner": "nixos", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_16": { - "locked": { - "lastModified": 1768178648, - "narHash": "sha256-kz/F6mhESPvU1diB7tOM3nLcBfQe7GU7GQCymRlTi/s=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "3fbab70c6e69c87ea2b6e48aa6629da2aa6a23b0", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_17": { - "locked": { - "lastModified": 1768127708, - "narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_18": { - "locked": { - "lastModified": 1768127708, - "narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_19": { "locked": { "lastModified": 1702151865, "narHash": "sha256-9VAt19t6yQa7pHZLDbil/QctAgVsA66DLnzdRGqDisg=", @@ -2123,6 +2077,54 @@ "type": "github" } }, + "nixpkgs_17": { + "locked": { + "lastModified": 1736189585, + "narHash": "sha256-GBC2LIBk9BuJR4HXfjuNlIWeY15U6jFvaqc7PeToGLw=", + "owner": "jorikvanveen", + "repo": "nixpkgs-posting", + "rev": "135109926a3f11510d6f340ea9c8880385a0438f", + "type": "github" + }, + "original": { + "owner": "jorikvanveen", + "ref": "135109926a3f11510d6f340ea9c8880385a0438f", + "repo": "nixpkgs-posting", + "type": "github" + } + }, + "nixpkgs_18": { + "locked": { + "lastModified": 1712883908, + "narHash": "sha256-icE1IJE9fHcbDfJ0+qWoDdcBXUoZCcIJxME4lMHwvSM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a0c9e3aee1000ac2bfb0e5b98c94c946a5d180a9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_19": { + "locked": { + "lastModified": 1744536153, + "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_2": { "locked": { "lastModified": 1712883908, @@ -2141,53 +2143,21 @@ }, "nixpkgs_20": { "locked": { - "lastModified": 1736189585, - "narHash": "sha256-GBC2LIBk9BuJR4HXfjuNlIWeY15U6jFvaqc7PeToGLw=", - "owner": "jorikvanveen", - "repo": "nixpkgs-posting", - "rev": "135109926a3f11510d6f340ea9c8880385a0438f", + "lastModified": 1744868846, + "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", "type": "github" }, "original": { - "owner": "jorikvanveen", - "ref": "135109926a3f11510d6f340ea9c8880385a0438f", - "repo": "nixpkgs-posting", + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", "type": "github" } }, "nixpkgs_21": { - "locked": { - "lastModified": 1712883908, - "narHash": "sha256-icE1IJE9fHcbDfJ0+qWoDdcBXUoZCcIJxME4lMHwvSM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a0c9e3aee1000ac2bfb0e5b98c94c946a5d180a9", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_22": { - "locked": { - "lastModified": 1768032153, - "narHash": "sha256-6kD1MdY9fsE6FgSwdnx29hdH2UcBKs3/+JJleMShuJg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "3146c6aa9995e7351a398e17470e15305e6e18ff", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_23": { "locked": { "lastModified": 1740547748, "narHash": "sha256-Ly2fBL1LscV+KyCqPRufUBuiw+zmWrlJzpWOWbahplg=", @@ -2203,13 +2173,29 @@ "type": "github" } }, - "nixpkgs_24": { + "nixpkgs_22": { "locked": { - "lastModified": 1766902085, - "narHash": "sha256-coBu0ONtFzlwwVBzmjacUQwj3G+lybcZ1oeNSQkgC0M=", + "lastModified": 1747542820, + "narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_23": { + "locked": { + "lastModified": 1752480373, + "narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c0b0e0fddf73fd517c3471e546c0df87a42d53f4", + "rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08", "type": "github" }, "original": { @@ -2219,7 +2205,7 @@ "type": "github" } }, - "nixpkgs_25": { + "nixpkgs_24": { "locked": { "lastModified": 1719931832, "narHash": "sha256-0LD+KePCKKEb4CcPsTBOwf019wDtZJanjoKm1S8q3Do=", @@ -2251,11 +2237,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1767116409, - "narHash": "sha256-5vKw92l1GyTnjoLzEagJy5V5mDFck72LiQWZSOnSicw=", + "lastModified": 1754498491, + "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cad22e7d996aea55ecab064e84834289143e44a0", + "rev": "c2ae88e026f9525daf89587f3cbee584b92b6134", "type": "github" }, "original": { @@ -2267,11 +2253,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1764950072, - "narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=", + "lastModified": 1748190013, + "narHash": "sha256-R5HJFflOfsP5FBtk+zE8FpL8uqE7n62jqOsADvVshhE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f61125a668a320878494449750330ca58b78c557", + "rev": "62b852f6c6742134ade1abdd2a21685fd617a291", "type": "github" }, "original": { @@ -2283,11 +2269,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1744536153, - "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", + "lastModified": 1747728033, + "narHash": "sha256-NnXFQu7g4LnvPIPfJmBuZF7LFy/fey2g2+LCzjQhTUk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", + "rev": "2f9173bde1d3fbf1ad26ff6d52f952f9e9da52ea", "type": "github" }, "original": { @@ -2299,43 +2285,40 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1747958103, - "narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=", - "owner": "nixos", + "lastModified": 1754725699, + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "fe51d34885f7b5e3e7b59572796e1bcb427eccb1", + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", + "owner": "NixOS", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_8": { "locked": { - "lastModified": 1765934234, - "narHash": "sha256-pJjWUzNnjbIAMIc5gRFUuKCDQ9S1cuh3b2hKgA7Mc4A=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "af84f9d270d404c17699522fab95bbf928a2d92f", - "type": "github" + "lastModified": 1748189127, + "narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=", + "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" + "type": "tarball", + "url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz" } }, "nixpkgs_9": { "locked": { - "lastModified": 1768127708, - "narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=", + "lastModified": 1754725699, + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38", + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", "type": "github" }, "original": { @@ -2367,7 +2350,7 @@ "pnpm2nix_2": { "inputs": { "flake-utils": "flake-utils_6", - "nixpkgs": "nixpkgs_19" + "nixpkgs": "nixpkgs_16" }, "locked": { "lastModified": 1706694632, @@ -2385,7 +2368,7 @@ }, "posting": { "inputs": { - "nixpkgs": "nixpkgs_20", + "nixpkgs": "nixpkgs_17", "utils": "utils" }, "locked": { @@ -2412,11 +2395,11 @@ ] }, "locked": { - "lastModified": 1767281941, - "narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=", + "lastModified": 1754416808, + "narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa", + "rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864", "type": "github" }, "original": { @@ -2435,14 +2418,15 @@ "nixpkgs": [ "lanzaboote", "nixpkgs" - ] + ], + "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "lastModified": 1717664902, + "narHash": "sha256-7XfBuLULizXjXfBYy/VV+SpYMHreNRHk9nKMsm1bgb4=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "rev": "cc4d466cb1254af050ff7bdf47f6d404a7c646d1", "type": "github" }, "original": { @@ -2469,28 +2453,26 @@ "quickshell": { "inputs": { "nixpkgs": [ - "dms", "nixpkgs" ] }, "locked": { - "lastModified": 1766725085, - "narHash": "sha256-O2aMFdDUYJazFrlwL7aSIHbUSEm3ADVZjmf41uBJfHs=", + "lastModified": 1753595452, + "narHash": "sha256-vqkSDvh7hWhPvNjMjEDV4KbSCv2jyl2Arh73ZXe274k=", "ref": "refs/heads/master", - "rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff", - "revCount": 715, + "rev": "a5431dd02dc23d9ef1680e67777fed00fe5f7cda", + "revCount": 665, "type": "git", - "url": "https://git.outfoxxed.me/quickshell/quickshell" + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" }, "original": { - "rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff", "type": "git", - "url": "https://git.outfoxxed.me/quickshell/quickshell" + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" } }, "resume": { "inputs": { - "nixpkgs": "nixpkgs_21", + "nixpkgs": "nixpkgs_18", "systems": "systems_14" }, "locked": { @@ -2513,15 +2495,15 @@ "nixpkgs": [ "nixpkgs" ], - "rust-overlay": "rust-overlay_6", + "rust-overlay": "rust-overlay_4", "systems": "systems_15" }, "locked": { - "lastModified": 1768157344, - "narHash": "sha256-aqmqpQmw7amFqo2V/TKLUH+vTnUAAQ2tt4wBVPOM6Ak=", + "lastModified": 1754859129, + "narHash": "sha256-0EFzamQa56bOOI8Wkh22e6CqiwTze9mANjUEkT88+gE=", "owner": "raphamorim", "repo": "rio", - "rev": "203f2968ecf4b64791457b982e6e070392004dbb", + "rev": "eb9fe5fd44fc99c3095327730af3c0cf2283d824", "type": "github" }, "original": { @@ -2538,58 +2520,69 @@ "blog": "blog", "catppuccin": "catppuccin", "chaotic": "chaotic", - "ciderd": "ciderd", "darwin": "darwin_2", "disko": "disko", - "dms": "dms", "emacs-overlay": "emacs-overlay", - "firefox-addons": "firefox-addons", "ghostty": "ghostty", - "home-manager": "home-manager_4", + "home-manager": "home-manager_3", "hypridle": "hypridle", "hyprland": "hyprland", "kb-gui": "kb-gui", "lanzaboote": "lanzaboote", - "lazyvim": "lazyvim", "lix-module": "lix-module", "mailserver": "mailserver", "neovim-nightly-overlay": "neovim-nightly-overlay", "niri": "niri", "niri-src": "niri-src", "nix-darwin": "nix-darwin", - "nix-matrix-modules": "nix-matrix-modules", "nixos-generators": "nixos-generators", "nixos-stable": "nixos-stable", - "nixpkgs": "nixpkgs_18", + "nixpkgs": "nixpkgs_15", "pnpm2nix": "pnpm2nix_2", "posting": "posting", + "quickshell": "quickshell", "resume": "resume", "rio-term": "rio-term", + "rust-overlay": "rust-overlay_5", "snowfall-lib": "snowfall-lib", "solaar": "solaar", "sops-nix": "sops-nix", "spicetify-nix": "spicetify-nix", "systems": "systems_19", "umu": "umu", - "vpn-confinement": "vpn-confinement", + "walker": "walker", "waybar": "waybar", "zen-browser": "zen-browser", "zoeycomputer": "zoeycomputer" } }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1747323949, + "narHash": "sha256-G4NwzhODScKnXqt2mEQtDFOnI0wU3L1WxsiHX3cID/0=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "f8e784353bde7cbf9a9046285c1caf41ac484ebe", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, "rust-overlay": { "inputs": { - "nixpkgs": [ - "chaotic", - "nixpkgs" - ] + "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1765075567, - "narHash": "sha256-KFDCdQcHJ0hE3Nt5Gm5enRIhmtEifAjpxgUQ3mzSJpA=", + "lastModified": 1733279627, + "narHash": "sha256-NCNDAGPkdFdu+DLErbmNbavmVW9AwkgP7azROFFSB0U=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "769156779b41e8787a46ca3d7d76443aaf68be6f", + "rev": "4da5a80ef76039e80468c902f1e9f5c0eab87d96", "type": "github" }, "original": { @@ -2600,14 +2593,21 @@ }, "rust-overlay_2": { "inputs": { - "nixpkgs": "nixpkgs_6" + "flake-utils": [ + "lanzaboote", + "flake-utils" + ], + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ] }, "locked": { - "lastModified": 1753584741, - "narHash": "sha256-i147iFSy4K4PJvID+zoszLbRi2o+YV8AyG4TUiDQ3+I=", + "lastModified": 1717813066, + "narHash": "sha256-wqbRwq3i7g5EHIui0bIi84mdqZ/It1AXBSLJ5tafD28=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "69dfe029679e73b8d159011c9547f6148a85ca6b", + "rev": "6dc3e45fe4aee36efeed24d64fc68b1f989d5465", "type": "github" }, "original": { @@ -2618,14 +2618,17 @@ }, "rust-overlay_3": { "inputs": { - "nixpkgs": "nixpkgs_12" + "nixpkgs": [ + "niri-src", + "nixpkgs" + ] }, "locked": { - "lastModified": 1762396738, - "narHash": "sha256-BarSecuxtzp1boERdABLkkoxQTi6s/V33lJwUbWLrLY=", + "lastModified": 1752374969, + "narHash": "sha256-Ky3ynEkJXih7mvWyt9DWoiSiZGqPeHLU1tlBU4b0mcc=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "c63598992afd54d215d54f2b764adc0484c2b159", + "rev": "75fb000638e6d0f57cb1e8b7a4550cbdd8c76f1d", "type": "github" }, "original": { @@ -2636,17 +2639,14 @@ }, "rust-overlay_4": { "inputs": { - "nixpkgs": [ - "lanzaboote", - "nixpkgs" - ] + "nixpkgs": "nixpkgs_19" }, "locked": { - "lastModified": 1761791894, - "narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=", + "lastModified": 1754707163, + "narHash": "sha256-wgVgOsyJUDn2ZRpzu2gELKALoJXlBSoZJSln+Tlg5Pw=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "59c45eb69d9222a4362673141e00ff77842cd219", + "rev": "ac39ab4c8ed7cefe48d5ae5750f864422df58f01", "type": "github" }, "original": { @@ -2658,37 +2658,15 @@ "rust-overlay_5": { "inputs": { "nixpkgs": [ - "niri-src", "nixpkgs" ] }, "locked": { - "lastModified": 1757989933, - "narHash": "sha256-9cpKYWWPCFhgwQTww8S94rTXgg8Q8ydFv9fXM6I8xQM=", + "lastModified": 1754966322, + "narHash": "sha256-7f/LH60DnjjQVKbXAsHIniGaU7ixVM7eWU3hyjT24YI=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "8249aa3442fb9b45e615a35f39eca2fe5510d7c3", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_6": { - "inputs": { - "nixpkgs": [ - "rio-term", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1768012928, - "narHash": "sha256-HFFVQaux1JoOjEvgBT0ASk1Je+jsipyO5c91FoLMed8=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "312b4371e72f644ffcff25b23615195e3b390643", + "rev": "7c13cec2e3828d964b9980d0ffd680bd8d4dce90", "type": "github" }, "original": { @@ -2699,18 +2677,18 @@ }, "snowfall-lib": { "inputs": { - "flake-compat": "flake-compat_5", + "flake-compat": "flake-compat_7", "flake-utils-plus": "flake-utils-plus", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1765361626, - "narHash": "sha256-kX0Dp/kYSRbQ+yd9e3lmmUWdNbipufvKfL2IzbrSpnY=", + "lastModified": 1736130495, + "narHash": "sha256-4i9nAJEZFv7vZMmrE0YG55I3Ggrtfo5/T07JEpEZ/RM=", "owner": "snowfallorg", "repo": "lib", - "rev": "c566ad8b7352c30ec3763435de7c8f1c46ebb357", + "rev": "02d941739f98a09e81f3d2d9b3ab08918958beac", "type": "github" }, "original": { @@ -2719,19 +2697,44 @@ "type": "github" } }, + "snowfall-lib_2": { + "inputs": { + "flake-compat": "flake-compat_9", + "flake-utils-plus": "flake-utils-plus_2", + "nixpkgs": [ + "solaar", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1718097323, + "narHash": "sha256-zCgs8Wp7rdt0tjNUHMUIvi6sIvDoprWIHwvTGq+LMK0=", + "owner": "snowfallorg", + "repo": "lib", + "rev": "aa19b02b63025263cec041fcb7a0857c3cb98859", + "type": "github" + }, + "original": { + "owner": "snowfallorg", + "ref": "v3.0.3", + "repo": "lib", + "type": "github" + } + }, "solaar": { "inputs": { + "flake-compat": "flake-compat_8", "nixpkgs": [ "nixpkgs" ], - "utils": "utils_2" + "snowfall-lib": "snowfall-lib_2" }, "locked": { - "lastModified": 1767894877, - "narHash": "sha256-DB9vEEnEYilGUaHCljMRzT1embzD7uEjJugzRJgiLos=", + "lastModified": 1751535505, + "narHash": "sha256-MOFgDU5wtIe96/dBfjWHDuV372+jGq5IBB/3km0yBr0=", "owner": "Svenum", "repo": "Solaar-Flake", - "rev": "f5cac914bdeeecac7fca07e99c8fee18336f5bd5", + "rev": "b6668450e18e3f788855fc5f54a84861ec3ffee9", "type": "github" }, "original": { @@ -2743,14 +2746,14 @@ }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_22" + "nixpkgs": "nixpkgs_20" }, "locked": { - "lastModified": 1768271704, - "narHash": "sha256-jJqlW8A3OZ5tYbXphF7U8P8g/3Cn8PPwPa4YlJ/9agg=", + "lastModified": 1754988908, + "narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=", "owner": "Mic92", "repo": "sops-nix", - "rev": "691b8b6713855d0fe463993867291c158472fc6f", + "rev": "3223c7a92724b5d804e9988c6b447a0d09017d48", "type": "github" }, "original": { @@ -2767,11 +2770,11 @@ "systems": "systems_18" }, "locked": { - "lastModified": 1768107098, - "narHash": "sha256-mSthw4k7jkB5S8+NYZwrQFItLj+17Se7Wn0pIfdASbc=", + "lastModified": 1754801101, + "narHash": "sha256-oxWjZ/SfhCvHFNePZcUu+LcE5j4xxuIt/yaoaSvMZk0=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "2e40e07527f9d724b1578f0af590ab345e836ec3", + "rev": "fcbfc21572518c68317df992929b28df9a1d8468", "type": "github" }, "original": { @@ -2871,6 +2874,7 @@ } }, "systems_15": { + "flake": false, "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -2961,6 +2965,21 @@ } }, "systems_20": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_21": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -2975,7 +2994,7 @@ "type": "github" } }, - "systems_21": { + "systems_22": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -3097,14 +3116,14 @@ }, "treefmt-nix": { "inputs": { - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_11" }, "locked": { - "lastModified": 1753439394, - "narHash": "sha256-Bv9h1AJegLI8uAhiJ1sZ4XAndYxhgf38tMgCQwiEpmc=", + "lastModified": 1733222881, + "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "2673921c03d6e75fdf4aa93e025772608d1482cf", + "rev": "49717b5af6f80172275d47a418c9719a31a78b53", "type": "github" }, "original": { @@ -3115,14 +3134,17 @@ }, "treefmt-nix_2": { "inputs": { - "nixpkgs": "nixpkgs_13" + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ] }, "locked": { - "lastModified": 1762410071, - "narHash": "sha256-aF5fvoZeoXNPxT0bejFUBXeUjXfHLSL7g+mjR/p5TEg=", + "lastModified": 1754847726, + "narHash": "sha256-2vX8QjO5lRsDbNYvN9hVHXLU6oMl+V/PsmIiJREG4rE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "97a30861b13c3731a84e09405414398fbf3e109f", + "rev": "7d81f6fb2e19bf84f1c65135d1060d829fae2408", "type": "github" }, "original": { @@ -3133,15 +3155,15 @@ }, "umu": { "inputs": { - "nixpkgs": "nixpkgs_23" + "nixpkgs": "nixpkgs_21" }, "locked": { "dir": "packaging/nix", - "lastModified": 1765757739, - "narHash": "sha256-mFur6BsNkJm4tH0O4lkOaCVtZnEeNlw9xDkZUSnzHIU=", + "lastModified": 1754958339, + "narHash": "sha256-Vp2pKLJHaaTciDXv9mmVi0oUEGrojmd8DUKRxn9Y7Ow=", "owner": "Open-Wine-Components", "repo": "umu-launcher", - "rev": "bb5c870fe076e21fe60cb652b57365022fbfd77a", + "rev": "214514f3b5ce336057e7b317dc0a1d5a9d0c0053", "type": "github" }, "original": { @@ -3169,53 +3191,38 @@ "type": "github" } }, - "utils_2": { + "walker": { "inputs": { - "flake-utils": "flake-utils_8" + "nixpkgs": "nixpkgs_22", + "systems": "systems_20" }, "locked": { - "lastModified": 1738591040, - "narHash": "sha256-4WNeriUToshQ/L5J+dTSWC5OJIwT39SEP7V7oylndi8=", - "owner": "gytis-ivaskevicius", - "repo": "flake-utils-plus", - "rev": "afcb15b845e74ac5e998358709b2b5fe42a948d1", + "lastModified": 1754997358, + "narHash": "sha256-8/uC42FRPz86lwSxPBGqUNcRLEDTGlNFhPsSfGoG4ig=", + "owner": "abenz1267", + "repo": "walker", + "rev": "363e4a5c8c5fabd9ab35e1ef342d141a84de0fc7", "type": "github" }, "original": { - "owner": "gytis-ivaskevicius", - "repo": "flake-utils-plus", - "rev": "afcb15b845e74ac5e998358709b2b5fe42a948d1", - "type": "github" - } - }, - "vpn-confinement": { - "locked": { - "lastModified": 1767604552, - "narHash": "sha256-FddhMxnc99KYOZ/S3YNqtDSoxisIhVtJ7L4s8XD2u0A=", - "owner": "Maroka-chan", - "repo": "VPN-Confinement", - "rev": "a6b2da727853886876fd1081d6bb2880752937f3", - "type": "github" - }, - "original": { - "owner": "Maroka-chan", - "repo": "VPN-Confinement", + "owner": "abenz1267", + "repo": "walker", "type": "github" } }, "waybar": { "inputs": { - "flake-compat": "flake-compat_6", + "flake-compat": "flake-compat_10", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1767985335, - "narHash": "sha256-JDeI7oyjibtX7FKQYMCBP6l0Q2aSdSephIb74X6tASM=", + "lastModified": 1754637322, + "narHash": "sha256-mGiBZjfvtZZkSHrha4UF2l1Ogbij8J//r2h4gcZAJ6w=", "owner": "Alexays", "repo": "Waybar", - "rev": "a02180a815b651f1bc08a359f23241c941bfafed", + "rev": "41de8964f1e3278edf07902ad68ca5e01e7abeeb", "type": "github" }, "original": { @@ -3252,11 +3259,11 @@ ] }, "locked": { - "lastModified": 1761431178, - "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", + "lastModified": 1753633878, + "narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", + "rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a", "type": "github" }, "original": { @@ -3268,16 +3275,16 @@ "xwayland-satellite-stable": { "flake": false, "locked": { - "lastModified": 1755491097, - "narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=", + "lastModified": 1748488455, + "narHash": "sha256-IiLr1alzKFIy5tGGpDlabQbe6LV1c9ABvkH6T5WmyRI=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "388d291e82ffbc73be18169d39470f340707edaa", + "rev": "3ba30b149f9eb2bbf42cf4758d2158ca8cceef73", "type": "github" }, "original": { "owner": "Supreeeme", - "ref": "v0.7", + "ref": "v0.6", "repo": "xwayland-satellite", "type": "github" } @@ -3285,11 +3292,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1768106915, - "narHash": "sha256-HlLo9zH4ULRXlmlIK948cHmdVhxyHgTHxGaoCRlW4k8=", + "lastModified": 1754533920, + "narHash": "sha256-fCZ68Yud1sUCq6UNXj0SDyiBgVA8gJUE+14ZFGsFJG8=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "72245e108f3b03c3c4474d2de9de2d1830849603", + "rev": "e0d1dad25a158551ab58547b2ece4b7d5a19929c", "type": "github" }, "original": { @@ -3300,15 +3307,15 @@ }, "zen-browser": { "inputs": { - "home-manager": "home-manager_5", - "nixpkgs": "nixpkgs_24" + "home-manager": "home-manager_4", + "nixpkgs": "nixpkgs_23" }, "locked": { - "lastModified": 1768279254, - "narHash": "sha256-D4+/DD5/dhSihHxbSJnY9hi/3QiYnfqWT29ZpQRf1xw=", + "lastModified": 1754972926, + "narHash": "sha256-2CEQSI3o7XWMc/DOdeNf6gTKjgGf8hHS0TB0HYPmSmA=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "e862bd9ebbcd3265f1da6d1bdfe37d8732029d08", + "rev": "508a7c0c5c993d237773be89f5ca91ff8c997b44", "type": "github" }, "original": { @@ -3333,11 +3340,11 @@ ] }, "locked": { - "lastModified": 1763295135, - "narHash": "sha256-sGv/NHCmEnJivguGwB5w8LRmVqr1P72OjS+NzcJsssE=", + "lastModified": 1748261582, + "narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=", "owner": "mitchellh", "repo": "zig-overlay", - "rev": "64f8b42cfc615b2cf99144adf2b7728c7847c72a", + "rev": "aafb1b093fb838f7a02613b719e85ec912914221", "type": "github" }, "original": { @@ -3354,14 +3361,14 @@ "nixpkgs" ], "process-compose-flake": "process-compose-flake", - "systems": "systems_21" + "systems": "systems_22" }, "locked": { - "lastModified": 1762532307, - "narHash": "sha256-oXTQEIkvEzVRzsXVwubyVKJlD7C87d++FmJ5zIkV7o4=", + "lastModified": 1731607548, + "narHash": "sha256-a0xLkdgQ4TIJVtY8fXnidtmsqlg63V9YYM7Hf32m7pk=", "ref": "refs/heads/main", - "rev": "ee959326475cb1fb9d6488a9b31c0ac205d8bbe0", - "revCount": 76, + "rev": "49677f2d9b2cb94c36fe7a9df2bd5e9a8c00b94f", + "revCount": 75, "type": "git", "url": "https://code.zoeys.cloud/zoey/zoeys.computer.git" }, @@ -3372,23 +3379,27 @@ }, "zon2nix": { "inputs": { + "flake-utils": [ + "ghostty", + "flake-utils" + ], "nixpkgs": [ "ghostty", "nixpkgs" ] }, "locked": { - "lastModified": 1768231828, - "narHash": "sha256-wL/8Iij4T2OLkhHcc4NieOjf7YeJffaUYbCiCqKv/+0=", + "lastModified": 1742104771, + "narHash": "sha256-LhidlyEA9MP8jGe1rEnyjGFCzLLgCdDpYeWggibayr0=", "owner": "jcollie", "repo": "zon2nix", - "rev": "c28e93f3ba133d4c1b1d65224e2eebede61fd071", + "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613", "type": "github" }, "original": { "owner": "jcollie", "repo": "zon2nix", - "rev": "c28e93f3ba133d4c1b1d65224e2eebede61fd071", + "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613", "type": "github" } } diff --git a/flake.nix b/flake.nix index 76d4b68..cb6423a 100644 --- a/flake.nix +++ b/flake.nix @@ -12,7 +12,7 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - nixos-stable.url = "github:nixos/nixpkgs/nixos-25.05"; + nixos-stable.url = "github:nixos/nixpkgs/nixos-24.11"; home-manager = { url = "github:nix-community/home-manager"; @@ -31,28 +31,19 @@ inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; }; + walker.url = "github:abenz1267/walker"; + resume.url = "git+https://code.zoeys.cloud/zoey/resume.git"; ags.url = "github:Aylur/ags/v1"; ags.inputs.nixpkgs.follows = "nixpkgs"; agenix.url = "github:ryantm/agenix"; agenix.inputs.nixpkgs.follows = "nixpkgs"; - firefox-addons = { - url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - # to replace with sops-nix sops-nix.url = "github:Mic92/sops-nix"; pnpm2nix.url = "github:nzbr/pnpm2nix-nzbr"; - dms.url = "github:AvengeMedia/DankMaterialShell"; - dms.inputs.nixpkgs.follows = "nixpkgs"; - - nix-matrix-modules.url = "github:D4ndellion/nixos-matrix-modules"; - nix-matrix-modules.inputs.nixpkgs.follows = "nixpkgs"; - solaar = { url = "github:Svenum/Solaar-Flake/main"; # Uncomment line for latest unstable version inputs.nixpkgs.follows = "nixpkgs"; @@ -66,18 +57,12 @@ blog.url = "git+https://code.zoeys.cloud/zoey/web.git"; lanzaboote = { - url = "github:nix-community/lanzaboote/v0.4.3"; + url = "github:nix-community/lanzaboote/v0.4.1"; # Optional but recommended to limit the size of your system closure. inputs.nixpkgs.follows = "nixpkgs"; }; - ciderd = { - url = "git+https://code.zoeys.cloud/zoey/ciderd"; - - inputs.nixpkgs.follows = "nixpkgs"; - }; - hypridle = { url = "github:hyprwm/hypridle"; inputs.nixpkgs.follows = "nixpkgs"; @@ -129,7 +114,7 @@ posting.url = "github:jorikvanveen/posting-flake"; lix-module = { - url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.2-1.tar.gz"; + url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -139,21 +124,26 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + disko.url = "github:nix-community/disko"; disko.inputs.nixpkgs.follows = "nixpkgs"; niri-src.url = "github:YaLTeR/niri"; niri-src.inputs.nixpkgs.follows = "nixpkgs"; - # niri-src.url = "github:visualglitch91/niri/feat/blur"; - # niri-src.inputs.nixpkgs.follows = "nixpkgs"; + quickshell = { + url = "git+https://git.outfoxxed.me/outfoxxed/quickshell"; + + inputs.nixpkgs.follows = "nixpkgs"; + }; niri.url = "github:sodiboo/niri-flake"; - chaotic.url = "github:chaotic-cx/nyx"; - lazyvim.url = "github:pfassina/lazyvim-nix"; - - vpn-confinement.url = "github:Maroka-chan/VPN-Confinement"; + chaotic.url = "github:chaotic-cx/nyx/7b20daf110d06962ee99114220f2fb98cdc8673d"; }; outputs = inputs @ {self, ...}: let @@ -162,22 +152,22 @@ src = ./.; overlays = with inputs; [ - # rust-overlay.overlays.default + rust-overlay.overlays.default (final: prev: { ghostty = ghostty.packages."x86_64-linux".default; }) - # (final: prev: { - # shadps4 = prev.shadps4.overrideAttrs { - # src = prev.fetchFromGitHub { - # owner = "shadps4-emu"; - # repo = "shadPS4"; - # rev = "41b39428335025e65f9e707ed8d5a9a1b09ba942"; - # hash = "sha256-5oe2By8TjJJIVubkp5lzqx2slBR7hxIHV4wZLgRYKl8="; - # fetchSubmodules = true; - # }; - # patches = []; - # }; - # }) + (final: prev: { + shadps4 = prev.shadps4.overrideAttrs { + src = prev.fetchFromGitHub { + owner = "shadps4-emu"; + repo = "shadPS4"; + rev = "41b39428335025e65f9e707ed8d5a9a1b09ba942"; + hash = "sha256-5oe2By8TjJJIVubkp5lzqx2slBR7hxIHV4wZLgRYKl8="; + fetchSubmodules = true; + }; + patches = []; + }; + }) niri.overlays.niri ]; @@ -196,9 +186,7 @@ spicetify-nix.homeManagerModules.default catppuccin.homeModules.default ags.homeManagerModules.default - dms.homeModules.dankMaterialShell.default - dms.homeModules.dankMaterialShell.niri - lazyvim.homeManagerModules.default + walker.homeManagerModules.default ]; systems.modules.nixos = with inputs; [ @@ -214,8 +202,6 @@ disko.nixosModules.disko niri.nixosModules.niri chaotic.nixosModules.default - nix-matrix-modules.nixosModules.default - vpn-confinement.nixosModules.default ]; systems.modules.earth = with inputs; [ diff --git a/homes/aarch64-darwin/zack@mercury/default.nix b/homes/aarch64-darwin/zack@mercury/default.nix index 48eb55a..0023d2e 100644 --- a/homes/aarch64-darwin/zack@mercury/default.nix +++ b/homes/aarch64-darwin/zack@mercury/default.nix @@ -44,6 +44,8 @@ catppuccin.fzf.enable = true; home.packages = with pkgs; [ + devenv + (discord.override { withOpenASAR = true; withVencord = true; diff --git a/homes/x86_64-linux/aspect@pluto/default.nix b/homes/x86_64-linux/aspect@pluto/default.nix index 07ecf15..7f23280 100644 --- a/homes/x86_64-linux/aspect@pluto/default.nix +++ b/homes/x86_64-linux/aspect@pluto/default.nix @@ -53,10 +53,12 @@ programs.cava = { enable = true; + catppuccin.enable = true; }; programs.btop = { enable = true; + catppuccin.enable = true; extraConfig = '' update_ms = 100 vim_keys = true @@ -65,9 +67,11 @@ programs.lazygit = { enable = true; + catppuccin.enable = true; }; programs.fzf = { enable = true; + catppuccin.enable = true; }; } diff --git a/homes/x86_64-linux/zack@pluto/default.nix b/homes/x86_64-linux/zack@pluto/default.nix index 3246fc9..0d117f0 100644 --- a/homes/x86_64-linux/zack@pluto/default.nix +++ b/homes/x86_64-linux/zack@pluto/default.nix @@ -52,10 +52,12 @@ programs.cava = { enable = true; + catppuccin.enable = true; }; programs.btop = { enable = true; + catppuccin.enable = true; extraConfig = '' update_ms = 100 vim_keys = true @@ -64,9 +66,11 @@ programs.lazygit = { enable = true; + catppuccin.enable = true; }; programs.fzf = { enable = true; + catppuccin.enable = true; }; } diff --git a/homes/x86_64-linux/zoey@earth/default.nix b/homes/x86_64-linux/zoey@earth/default.nix index ce16dd2..d00f826 100644 --- a/homes/x86_64-linux/zoey@earth/default.nix +++ b/homes/x86_64-linux/zoey@earth/default.nix @@ -2,15 +2,16 @@ config, inputs, pkgs, + system, lib, ... }: { wms.hyprland.enable = false; wms.niri.enable = true; - apps = { web.librewolf.enable = true; - web.librewolf.setDefault = true; + web.zen.setDefault = true; + web.zen.enable = true; tools.git.enable = true; tools.tmux.enable = true; @@ -30,13 +31,14 @@ term.alacritty.enable = true; term.ghostty.enable = true; + music.spotify.enable = true; video.mpv.enable = true; mail.aerc.enable = true; helpers = { - waybar.enable = false; - swaync.enable = false; + waybar.enable = true; + swaync.enable = true; }; }; @@ -62,37 +64,13 @@ }; }; - catppuccin.vivid.enable = false; - - programs = { - dankMaterialShell = { - enable = true; - - niri.enableKeybinds = true; - systemd.enable = true; - - enableCalendarEvents = true; - enableDynamicTheming = true; - enableSystemMonitoring = true; - enableAudioWavelength = true; - }; - }; - - systemd.user.services.polkit-gnome-authentication-agent-1 = { - Unit = { - Description = "polkit-gnome-authentication-agent-1"; - Wants = ["graphical-session.target"]; - After = ["graphical-session.target"]; - }; - Install = { - WantedBy = ["graphical-session.target"]; - }; - Service = { - Type = "simple"; - ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; - Restart = "on-failure"; - RestartSec = 1; - TimeoutStopSec = 10; + programs.distrobox = { + enable = true; + containers = { + proton-tkg = { + image = "archlinux"; + additional_packages = "build-essential git"; + }; }; }; @@ -137,7 +115,7 @@ catppuccin.enable = true; catppuccin.flavor = "mocha"; - catppuccin.accent = "blue"; + catppuccin.accent = "red"; catppuccin.aerc.enable = true; @@ -147,13 +125,6 @@ work.vpn.enable = true; - programs.obs-studio = { - enable = true; - package = pkgs.obs-studio.override { - cudaSupport = true; - }; - }; - programs.atuin = { enable = true; enableFishIntegration = config.programs.fish.enable; @@ -164,33 +135,24 @@ home.packages = with pkgs; [ gimp3 slack - zulip - - cabextract - p7zip - - himalaya drawio + littlenavmap + app2unit awscli2 monero-cli + devenv - tidal-hifi - + zoom-us pandoc - cider-2 - feather + nexusmods-app-unfree + prismlauncher - - qt6Packages.qt5compat - libsForQt5.qt5.qtgraphicaleffects - kdePackages.qtdeclarative - - # prismlauncher + obs-studio (discord.override { withOpenASAR = true; @@ -212,6 +174,12 @@ heroic cartridges + darktable + + thunderbird + + custom.nvidia-nsight + custom.enc neural-amp-modeler-lv2 @@ -258,10 +226,12 @@ zed-editor rmpc + inputs.zen-browser.packages.${pkgs.system}.beta + starfetch lib.custom.nixos-stable.kiwix - mpc + mpc-cli zathura gpgme.dev @@ -279,17 +249,9 @@ man-pages man-pages-posix - devenv + ardour ]; - programs.thunderbird = { - enable = true; - - profiles.${config.home.username} = { - isDefault = true; - }; - }; - programs.vesktop = { enable = true; }; @@ -299,6 +261,8 @@ options = ["--cmd cd"]; }; + services.quickshell.enable = false; + home.file.".mozilla/native-messaging-hosts/gpgmejson.json".text = builtins.toJSON { name = "gpgmejson"; description = "JavaScript binding for GnuPG"; @@ -349,7 +313,7 @@ services = { gpg-agent = { enable = true; - pinentry.package = lib.mkForce pkgs.pinentry-gnome3; + pinentryPackage = lib.mkForce pkgs.pinentry-gnome3; enableSshSupport = true; enableZshIntegration = true; enableFishIntegration = true; diff --git a/homes/x86_64-linux/zoey@pluto/default.nix b/homes/x86_64-linux/zoey@pluto/default.nix index 45f81b3..392df33 100644 --- a/homes/x86_64-linux/zoey@pluto/default.nix +++ b/homes/x86_64-linux/zoey@pluto/default.nix @@ -52,10 +52,12 @@ programs.cava = { enable = true; + catppuccin.enable = true; }; programs.btop = { enable = true; + catppuccin.enable = true; extraConfig = '' update_ms = 100 vim_keys = true @@ -64,9 +66,11 @@ programs.lazygit = { enable = true; + catppuccin.enable = true; }; programs.fzf = { enable = true; + catppuccin.enable = true; }; } diff --git a/homes/x86_64-linux/zoey@venus/default.nix b/homes/x86_64-linux/zoey@venus/default.nix index 5d7ee0b..2a2a6c5 100644 --- a/homes/x86_64-linux/zoey@venus/default.nix +++ b/homes/x86_64-linux/zoey@venus/default.nix @@ -50,22 +50,22 @@ options = ["--cmd cd"]; }; - catppuccin.btop.enable = true; programs.btop = { enable = true; + catppuccin.enable = true; extraConfig = '' update_ms = 100 vim_keys = true ''; }; - catppuccin.lazygit.enable = true; programs.lazygit = { enable = true; + catppuccin.enable = true; }; - catppuccin.fzf.enable = true; programs.fzf = { enable = true; + catppuccin.enable = true; }; } diff --git a/modules/home/apps/helpers/swaync/default.nix b/modules/home/apps/helpers/swaync/default.nix index b692443..fcefdf1 100644 --- a/modules/home/apps/helpers/swaync/default.nix +++ b/modules/home/apps/helpers/swaync/default.nix @@ -362,7 +362,5 @@ in { } ''; }; - - systemd.user.services.swaync.Service.Environment = ["GSK_RENDERER=gl"]; }; } diff --git a/modules/home/apps/helpers/walker/default.nix b/modules/home/apps/helpers/walker/default.nix new file mode 100644 index 0000000..6c46e23 --- /dev/null +++ b/modules/home/apps/helpers/walker/default.nix @@ -0,0 +1,611 @@ +{ + config, + lib, + pkgs, + ... +}: +with lib; +with lib.custom; let + cfg = config.apps.helpers.walker; +in { + options.apps.helpers.walker = with types; { + enable = mkBoolOpt false "Enable Walker"; + }; + + config = mkIf cfg.enable { + programs.walker = { + enable = true; + runAsService = true; + + theme = { + layout = { + ui = { + anchors = { + bottom = true; + left = true; + right = true; + top = true; + }; + + window = { + h_align = "fill"; + v_align = "fill"; + + box = { + h_align = "center"; + width = 450; + + bar = { + orientation = "horizontal"; + position = "end"; + + entry = { + h_align = "fill"; + h_expand = true; + + icon = { + h_align = "center"; + h_expand = true; + pixel_size = 24; + theme = ""; + }; + }; + }; + + margins = { + top = 450; + }; + + ai_scroll = { + name = "aiScroll"; + h_align = "fill"; + v_align = "fill"; + max_height = 300; + min_width = 400; + height = 300; + width = 400; + + margins = { + top = 8; + }; + + list = { + name = "aiList"; + orientation = "vertical"; + width = 400; + spacing = 10; + + item = { + name = "aiItem"; + h_align = "fill"; + v_align = "fill"; + x_align = 0; + y_align = 0; + wrap = true; + }; + }; + }; + + scroll = { + list = { + marker_color = "#1BFFE1"; + max_height = 300; + max_width = 400; + min_width = 400; + width = 400; + + item = { + activation_label = { + h_align = "fill"; + v_align = "fill"; + width = 20; + x_align = 0.5; + y_align = 0.5; + }; + + icon = { + pixel_size = 26; + theme = ""; + }; + }; + + margins = { + top = 8; + }; + }; + }; + + search = { + prompt = { + name = "prompt"; + icon = "edit-find"; + theme = ""; + pixel_size = 18; + h_align = "center"; + v_align = "center"; + }; + + clear = { + name = "clear"; + icon = "edit-clear"; + theme = ""; + pixel_size = 18; + h_align = "center"; + v_align = "center"; + }; + + input = { + h_align = "fill"; + h_expand = true; + icons = true; + }; + + spinner = { + hide = true; + }; + }; + }; + }; + }; + }; + + style = '' + @define-color foreground ${colors.fg.hex}; /* text */ + @define-color background ${colors.bg.hex}; /* base */ + @define-color cursor ${colors.primary.hex}; /* rosewater */ + + @define-color color0 ${colors.surface0.hex}; /* surface0 */ + @define-color color1 ${colors.red.hex}; /* red */ + @define-color color2 ${colors.green.hex}; /* green */ + @define-color color3 ${colors.yellow.hex}; /* yellow */ + @define-color color4 ${colors.blue.hex}; /* blue */ + @define-color color5 ${colors.pink.hex}; /* pink */ + @define-color color6 ${colors.teal.hex}; /* teal */ + @define-color color7 ${colors.subtext1.hex}; /* subtext1 */ + @define-color color8 ${colors.surface1.hex}; /* surface1 */ + @define-color color9 ${colors.red.hex}; /* red */ + @define-color color10 ${colors.green.hex}; /* green */ + @define-color color11 ${colors.yellow.hex}; /* yellow */ + @define-color color12 ${colors.blue.hex}; /* blue */ + @define-color color13 ${colors.pink.hex}; /* pink */ + @define-color color14 ${colors.teal.hex}; /* teal */ + @define-color color15 ${colors.subtext0.hex}; /* subtext0 */ + + #window, + #box, + #aiScroll, + #aiList, + #search, + #password, + #input, + #prompt, + #clear, + #typeahead, + #list, + child, + scrollbar, + slider, + #item, + #text, + #label, + #bar, + #sub, + #activationlabel { + all: unset; + } + + #cfgerr { + background: rgba(255, 0, 0, 0.4); + margin-top: 20px; + padding: 8px; + font-size: 1.2em; + } + + #window { + color: @foreground; + } + + #box { + border-radius: 2px; + background: @background; + padding: 32px; + border: 1px solid lighter(@background); + box-shadow: + 0 19px 38px rgba(0, 0, 0, 0.3), + 0 15px 12px rgba(0, 0, 0, 0.22); + } + + #search { + box-shadow: + 0 1px 3px rgba(0, 0, 0, 0.1), + 0 1px 2px rgba(0, 0, 0, 0.22); + background: lighter(@background); + padding: 8px; + } + + #prompt { + margin-left: 4px; + margin-right: 12px; + color: @foreground; + opacity: 0.2; + } + + #clear { + color: @foreground; + opacity: 0.8; + } + + #password, + #input, + #typeahead { + border-radius: 2px; + } + + #input { + background: none; + } + + #password { + } + + #spinner { + padding: 8px; + } + + #typeahead { + color: @foreground; + opacity: 0.8; + } + + #input placeholder { + opacity: 0.5; + } + + #list { + } + + child { + padding: 8px; + border-radius: 2px; + } + + child:selected, + child:hover { + background: alpha(@color1, 0.4); + } + + #item { + } + + #icon { + margin-right: 8px; + } + + #text { + } + + #label { + font-weight: 500; + } + + #sub { + opacity: 0.5; + font-size: 0.8em; + } + + #activationlabel { + } + + #bar { + } + + .barentry { + } + + .activation #activationlabel { + } + + .activation #text, + .activation #icon, + .activation #search { + opacity: 0.5; + } + + .aiItem { + padding: 10px; + border-radius: 2px; + color: @foreground; + background: @background; + } + + .aiItem.user { + padding-left: 0; + padding-right: 0; + } + + .aiItem.assistant { + background: lighter(@background); + } + ''; + }; + + config = { + app_launch_prefix = ""; + terminal_title_flag = ""; + locale = ""; + close_when_open = false; + theme = "nixos"; + monitor = ""; + hotreload_theme = false; + as_window = false; + timeout = 0; + disable_click_to_close = false; + force_keyboard_focus = false; + + keys = { + accept_typeahead = ["tab"]; + trigger_labels = "lalt"; + next = ["down"]; + prev = ["up"]; + close = ["esc"]; + remove_from_history = ["shift backspace"]; + resume_query = ["ctrl r"]; + toggle_exact_search = ["ctrl m"]; + + activation_modifiers = { + keep_open = "shift"; + alternate = "alt"; + }; + + ai = { + clear_session = ["ctrl x"]; + copy_last_response = ["ctrl c"]; + resume_session = ["ctrl r"]; + run_last_response = ["ctrl e"]; + }; + }; + + events = { + on_activate = ""; + on_selection = ""; + on_exit = ""; + on_launch = ""; + on_query_change = ""; + }; + + list = { + dynamic_sub = true; + keyboard_scroll_style = "emacs"; + max_entries = 50; + show_initial_entries = true; + single_click = true; + visibility_threshold = 20; + placeholder = "No Results"; + }; + + search = { + argument_delimiter = "#"; + placeholder = "Search..."; + delay = 0; + resume_last_query = false; + }; + + activation_mode = { + labels = "jkl;asdf"; + }; + + builtins = { + applications = { + weight = 5; + name = "applications"; + placeholder = "Applications"; + prioritize_new = true; + hide_actions_with_empty_query = true; + context_aware = true; + refresh = true; + show_sub_when_single = true; + show_icon_when_single = true; + show_generic = true; + history = true; + + actions = { + enabled = true; + hide_category = false; + hide_without_query = true; + }; + }; + + bookmarks = { + weight = 5; + placeholder = "Bookmarks"; + name = "bookmarks"; + icon = "bookmark"; + switcher_only = true; + + entries = [ + { + label = "Walker"; + url = "https://github.com/abenz1267/walker"; + keywords = ["walker" "github"]; + } + ]; + }; + + xdph_picker = { + hidden = true; + weight = 5; + placeholder = "Screen/Window Picker"; + show_sub_when_single = true; + name = "xdphpicker"; + switcher_only = true; + }; + + ai = { + weight = 5; + placeholder = "AI"; + name = "ai"; + icon = "help-browser"; + switcher_only = true; + show_sub_when_single = true; + + anthropic = { + prompts = [ + { + model = "claude-3-7-sonnet-20250219"; + temperature = 1; + max_tokens = 1000; + label = "General Assistant"; + prompt = "You are a helpful general assistant. Keep your answers short and precise."; + } + ]; + }; + }; + + calc = { + require_number = true; + weight = 5; + name = "calc"; + icon = "accessories-calculator"; + placeholder = "Calculator"; + min_chars = 4; + }; + + windows = { + weight = 5; + icon = "view-restore"; + name = "windows"; + placeholder = "Windows"; + show_icon_when_single = true; + }; + + clipboard = { + always_put_new_on_top = true; + exec = "wl-copy"; + weight = 5; + name = "clipboard"; + avoid_line_breaks = true; + placeholder = "Clipboard"; + image_height = 300; + max_entries = 10; + switcher_only = true; + }; + + commands = { + weight = 5; + icon = "utilities-terminal"; + switcher_only = true; + name = "commands"; + placeholder = "Commands"; + }; + + custom_commands = { + weight = 5; + icon = "utilities-terminal"; + name = "custom_commands"; + placeholder = "Custom Commands"; + }; + + emojis = { + exec = "wl-copy"; + weight = 5; + name = "emojis"; + placeholder = "Emojis"; + switcher_only = true; + history = true; + typeahead = true; + show_unqualified = false; + }; + + symbols = { + after_copy = ""; + weight = 5; + name = "symbols"; + placeholder = "Symbols"; + switcher_only = true; + history = true; + typeahead = true; + }; + + finder = { + use_fd = false; + fd_flags = "--ignore-vcs --type file"; + weight = 5; + icon = "file"; + name = "finder"; + placeholder = "Finder"; + switcher_only = true; + ignore_gitignore = true; + refresh = true; + concurrency = 8; + show_icon_when_single = true; + preview_images = false; + }; + + runner = { + eager_loading = true; + weight = 5; + icon = "utilities-terminal"; + name = "runner"; + placeholder = "Runner"; + typeahead = true; + history = true; + generic_entry = false; + refresh = true; + use_fd = false; + }; + + ssh = { + weight = 5; + icon = "preferences-system-network"; + name = "ssh"; + placeholder = "SSH"; + switcher_only = true; + history = true; + refresh = true; + }; + + switcher = { + weight = 5; + name = "switcher"; + placeholder = "Switcher"; + prefix = "/"; + }; + + websearch = { + keep_selection = true; + weight = 5; + icon = "applications-internet"; + name = "websearch"; + placeholder = "Websearch"; + + entries = [ + { + name = "searx"; + url = "https://search.zoeys.cloud/searx/search?q=%TERM%"; + } + ]; + }; + + dmenu = { + hidden = true; + weight = 5; + name = "dmenu"; + placeholder = "Dmenu"; + switcher_only = true; + show_icon_when_single = true; + }; + + translation = { + delay = 1000; + weight = 5; + name = "translation"; + icon = "accessories-dictionary"; + placeholder = "Translation"; + switcher_only = true; + provider = "googlefree"; + }; + }; + }; + }; + }; +} diff --git a/modules/home/apps/helpers/waybar/default.nix b/modules/home/apps/helpers/waybar/default.nix index 7033023..4855d97 100644 --- a/modules/home/apps/helpers/waybar/default.nix +++ b/modules/home/apps/helpers/waybar/default.nix @@ -99,6 +99,15 @@ in { "custom/power" ]; + "custom/spotify" = { + format = "{}"; + "return-type" = "json"; + "on-click" = "playerctl -p spotify play-pause"; + "on-click-right" = "spotifatius toggle-liked"; + "on-click-middle" = "playerctl -p spotify next"; + exec = "spotifatius monitor"; + }; + "custom/mullvad" = { format = "{}"; return-type = "json"; @@ -136,7 +145,7 @@ in { }; mpris = { - player = "chromium"; + player = "spotify"; "dynamic-order" = ["artist" "title"]; format = "{player_icon} {dynamic}"; "format-paused" = "{status_icon} {dynamic}"; diff --git a/modules/home/apps/helpers/waybar/style.css b/modules/home/apps/helpers/waybar/style.css index 342423c..8c755d7 100644 --- a/modules/home/apps/helpers/waybar/style.css +++ b/modules/home/apps/helpers/waybar/style.css @@ -105,11 +105,6 @@ menu, border-radius: 6px; } -#custom-spotify.paused { - font-style: italic; - opacity: 0.75; -} - #custom-mullvad, #custom-notification { padding-left: 12px; diff --git a/modules/home/apps/term/alacritty/default.nix b/modules/home/apps/term/alacritty/default.nix index b3addd7..51b4255 100644 --- a/modules/home/apps/term/alacritty/default.nix +++ b/modules/home/apps/term/alacritty/default.nix @@ -66,10 +66,9 @@ in { }; config = mkIf cfg.enable { - catppuccin.alacritty.enable = true; - programs.alacritty = { enable = true; + catppuccin.enable = true; settings = { colors = { diff --git a/modules/home/apps/term/ghostty/default.nix b/modules/home/apps/term/ghostty/default.nix index 3ce39f1..dd22fc2 100644 --- a/modules/home/apps/term/ghostty/default.nix +++ b/modules/home/apps/term/ghostty/default.nix @@ -17,18 +17,12 @@ in { enable = true; settings = { - font-family = "Berkeley Mono"; - - font-size = 24; - - font-style = "SemiBold ExtraCondensed"; - font-style-bold = "Bold ExtraCondensed"; - font-style-italic = "SemiBold ExtraCondensed Oblique"; - font-style-bold-italic = "Bold ExtraCondensed Oblique"; - + font-family = fonts.mono; gtk-single-instance = true; gtk-titlebar = false; + background = colors.crust.hex; + alpha-blending = "linear-corrected"; window-padding-x = 20; diff --git a/modules/home/apps/term/kitty/default.nix b/modules/home/apps/term/kitty/default.nix index 8bfacf3..3111843 100644 --- a/modules/home/apps/term/kitty/default.nix +++ b/modules/home/apps/term/kitty/default.nix @@ -14,26 +14,50 @@ in { }; config = mkIf cfg.enable { - catppuccin.kitty.enable = true; - programs.kitty = { enable = true; + font = { + name = "${fonts.mono} SemiLight"; + size = 16; + }; + extraConfig = '' - font_family family='Berkeley Mono' style='Retina ExtraCondensed' - bold_font family='Berkeley Mono' style='SemiBold ExtraCondensed' - italic_font family='Berkeley Mono' style='Retina ExtraCondensed' - bold_italic_font family='Berkeley Mono' style='SemiBold ExtraCondensed' + bold_font ${fonts.mono} SemiBold + italic_font ${fonts.mono} SemiLight + bold_italic_font ${fonts.mono} SemiBold ''; + catppuccin.enable = true; + settings = { window_padding_width = 20; # background_opacity = "0.9"; + background = colors.crust.hex; + foreground = colors.text.hex; font_hinting = "slight"; - cursor_trail = 3; - text_composition_strategy = "1.2 10"; + + # Normal colors + color0 = colors.surface1.hex; # black + color1 = colors.red.hex; # red + color2 = colors.green.hex; # green + color3 = colors.yellow.hex; # yellow + color4 = colors.blue.hex; # blue + color5 = colors.mauve.hex; # magenta + color6 = colors.teal.hex; # cyan + color7 = colors.text.hex; # white + + # Bright colors + color8 = colors.surface2.hex; # bright black + color9 = colors.red.hex; # bright red + color10 = colors.green.hex; # bright green + color11 = colors.yellow.hex; # bright yellow + color12 = colors.blue.hex; # bright blue + color13 = colors.mauve.hex; # bright magenta + color14 = colors.teal.hex; # bright cyan + color15 = colors.text.hex; # bright white }; }; }; diff --git a/modules/home/apps/tools/bat/default.nix b/modules/home/apps/tools/bat/default.nix index f5b85b0..af2aafd 100644 --- a/modules/home/apps/tools/bat/default.nix +++ b/modules/home/apps/tools/bat/default.nix @@ -14,11 +14,11 @@ in { }; config = mkIf cfg.enable { - catppuccin.bat.enable = true; - programs.bat = { enable = true; + catppuccin.enable = true; + config = { pager = "less -FR"; }; diff --git a/modules/home/apps/tools/git/default.nix b/modules/home/apps/tools/git/default.nix index b8d0bbd..840b077 100644 --- a/modules/home/apps/tools/git/default.nix +++ b/modules/home/apps/tools/git/default.nix @@ -17,18 +17,11 @@ in { }; config = mkIf cfg.enable { - home.packages = with pkgs; [ - zsh-forgit - gitflow - ]; - - programs.delta = { - enable = true; - enableGitIntegration = true; - }; - + home.packages = with pkgs; [zsh-forgit gitflow]; programs.git = { enable = true; + userName = "zack"; + userEmail = "hi@zoeys.computer"; ignores = [ ".cache/" ".DS_Store" @@ -45,15 +38,8 @@ in { key = cfg.signingKey; signByDefault = cfg.signByDefault; }; - lfs.enable = true; - settings = { - user = { - name = "zack"; - email = "hi@zoeys.computer"; - }; - init = { - defaultBranch = "main"; - }; + extraConfig = { + init = {defaultBranch = "main";}; delta = { options.map-styles = "bold purple => syntax #ca9ee6, bold cyan => syntax #8caaee"; line-numbers = true; @@ -78,30 +64,34 @@ in { smtpencryption = "ssl"; smtpserverport = 465; }; - alias = { - essa = "push --force"; - co = "checkout"; - fuck = "commit --amend -m"; - c = "commit -m"; - ca = "commit -am"; - forgor = "commit --amend --no-edit"; - graph = "log --all --decorate --graph --oneline"; - oops = "checkout --"; - l = "log"; - r = "rebase"; - s = "status --short"; - ss = "status"; - d = "diff"; - ps = "!git push origin $(git rev-parse --abbrev-ref HEAD)"; - pl = "!git pull origin $(git rev-parse --abbrev-ref HEAD)"; - af = "!git add $(git ls-files -m -o --exclude-standard | sk -m)"; - st = "status"; - br = "branch"; - df = "!git hist | peco | awk '{print $2}' | xargs -I {} git diff {}^ {}"; - hist = ''log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all''; - llog = ''log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative''; - edit-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; hx `f`"; - }; + }; + lfs.enable = true; + delta.enable = true; + aliases = { + essa = "push --force"; + co = "checkout"; + fuck = "commit --amend -m"; + c = "commit -m"; + ca = "commit -am"; + forgor = "commit --amend --no-edit"; + graph = "log --all --decorate --graph --oneline"; + oops = "checkout --"; + l = "log"; + r = "rebase"; + s = "status --short"; + ss = "status"; + d = "diff"; + ps = "!git push origin $(git rev-parse --abbrev-ref HEAD)"; + pl = "!git pull origin $(git rev-parse --abbrev-ref HEAD)"; + af = "!git add $(git ls-files -m -o --exclude-standard | sk -m)"; + st = "status"; + br = "branch"; + df = "!git hist | peco | awk '{print $2}' | xargs -I {} git diff {}^ {}"; + hist = '' + log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all''; + llog = '' + log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative''; + edit-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; hx `f`"; }; }; }; diff --git a/modules/home/apps/tools/neovim/config/lazyvim.json b/modules/home/apps/tools/neovim/config/lazyvim.json index fc41eb3..f2fecfc 100644 --- a/modules/home/apps/tools/neovim/config/lazyvim.json +++ b/modules/home/apps/tools/neovim/config/lazyvim.json @@ -1,9 +1,16 @@ { "extras": [ + "lazyvim.plugins.extras.coding.mini-comment", + "lazyvim.plugins.extras.coding.yanky", "lazyvim.plugins.extras.dap.core", "lazyvim.plugins.extras.editor.dial", "lazyvim.plugins.extras.editor.inc-rename", + "lazyvim.plugins.extras.lang.angular", + "lazyvim.plugins.extras.lang.astro", + "lazyvim.plugins.extras.lang.cmake", "lazyvim.plugins.extras.lang.docker", + "lazyvim.plugins.extras.lang.haskell", + "lazyvim.plugins.extras.lang.java", "lazyvim.plugins.extras.lang.toml", "lazyvim.plugins.extras.lang.json", "lazyvim.plugins.extras.lang.clangd", @@ -13,15 +20,18 @@ "lazyvim.plugins.extras.lang.sql", "lazyvim.plugins.extras.lang.svelte", "lazyvim.plugins.extras.lang.tailwind", + "lazyvim.plugins.extras.lang.elixir", + "lazyvim.plugins.extras.lang.tex", "lazyvim.plugins.extras.lang.go", - "lazyvim.plugins.extras.lang.php", + "lazyvim.plugins.extras.lang.python", + "lazyvim.plugins.extras.lang.zig", "lazyvim.plugins.extras.lang.typescript", "lazyvim.plugins.extras.test.core", "lazyvim.plugins.extras.util.rest", "lazyvim.plugins.extras.util.dot", "lazyvim.plugins.extras.util.mini-hipatterns", - "lazyvim.plugins.extras.formatting.biome", - "lazyvim.plugins.extras.coding.luasnip" + "lazyvim.plugins.extras.coding.luasnip", + "lazyvim.plugins.extras.coding.blink" ], "install_version": 8, "news": { diff --git a/modules/home/apps/tools/neovim/config/lua/config/options.lua b/modules/home/apps/tools/neovim/config/lua/config/options.lua index 65f576b..a93bd4c 100644 --- a/modules/home/apps/tools/neovim/config/lua/config/options.lua +++ b/modules/home/apps/tools/neovim/config/lua/config/options.lua @@ -3,21 +3,13 @@ -- Add any additional options here if vim.g.neovide then + -- Put anything you want to happen only in Neovide here vim.o.guifont = "Iosevka,Noto_Color_Emoji:h14:b" end +-- in this case. +vim.g.lazyvim_blink_main = true vim.g.snacks_animate = false vim.o.termguicolors = true --- Minimal UI borders for floats -vim.diagnostic.config({ - virtual_text = false, - float = { border = "none" }, -}) - -local border = "none" -local handlers = vim.lsp.handlers -handlers["textDocument/hover"] = vim.lsp.with(handlers.hover, { border = border }) -handlers["textDocument/signatureHelp"] = vim.lsp.with(handlers.signature_help, { border = border }) - -vim.g.lazyvim_prettier_needs_config = true +vim.g.lazyvim_python_lsp = "pyright" diff --git a/modules/home/apps/tools/neovim/config/lua/plugins/core.lua b/modules/home/apps/tools/neovim/config/lua/plugins/core.lua index cc616aa..052f9b5 100644 --- a/modules/home/apps/tools/neovim/config/lua/plugins/core.lua +++ b/modules/home/apps/tools/neovim/config/lua/plugins/core.lua @@ -2,92 +2,15 @@ return { { "LazyVim/LazyVim", opts = { - colorscheme = "catppuccin", + colorscheme = "catppuccin-mocha", news = { lazyvim = false }, }, }, { "catppuccin", - opts = function(_, opts) - opts.transparent_background = true - opts.flavour = "mocha" - opts.no_bold = true - opts.no_italic = true - opts.dim_inactive = { - enabled = true, - percentage = 0.75, - } - opts.integrations = vim.tbl_deep_extend("force", opts.integrations or {}, { - noice = true, - blink_cmp = true, - notify = true, - treesitter = true, - lsp_trouble = true, - telescope = true, - which_key = true, - native_lsp = { - enabled = true, - inlay_hints = { - background = false, - }, - }, - indent_blankline = { - enabled = true, - scope_color = "overlay0", - colored_indent_levels = false, - }, - }) - opts.custom_highlights = function(colors) - return { - Normal = { bg = "NONE" }, - NormalNC = { bg = "NONE" }, - NormalFloat = { bg = "NONE" }, - FloatBorder = { fg = "NONE", bg = "NONE" }, - FloatTitle = { fg = colors.subtext0, bg = "NONE" }, - -- WinSeparator = { fg = colors.surface1 }, - -- CursorLine = { bg = colors.mantle }, - -- Visual = { bg = colors.surface0 }, - -- Pmenu = { bg = colors.bg, fg = colors.text }, - -- PmenuSel = { bg = colors.surface0, fg = colors.text }, - -- PmenuSbar = { bg = colors.bg }, - -- PmenuThumb = { bg = colors.surface1 }, - -- StatusLine = { bg = colors.bg, fg = colors.subtext0 }, - -- StatusLineNC = { bg = colors.bg, fg = colors.overlay0 }, - -- TabLine = { bg = colors.bg, fg = colors.overlay1 }, - -- TabLineSel = { bg = colors.bg, fg = colors.text }, - -- TabLineFill = { bg = colors.bg }, - -- SignColumn = { bg = colors.bg }, - -- LineNr = { fg = colors.overlay1 }, - DiagnosticUnderlineError = { sp = colors.red, undercurl = true }, - DiagnosticUnderlineWarn = { sp = colors.yellow, undercurl = true }, - DiagnosticUnderlineInfo = { sp = colors.teal, undercurl = true }, - DiagnosticUnderlineHint = { sp = colors.sky, undercurl = true }, - -- Noice popup and cmdline transparent, borderless - NoiceCmdlinePopup = { bg = "NONE", fg = colors.text }, - NoiceCmdlinePopupBorder = { fg = "NONE", bg = "NONE" }, - NoiceCmdlinePopupTitle = { bg = "NONE", fg = colors.subtext0 }, - NoicePopup = { bg = "NONE", fg = colors.text }, - NoicePopupBorder = { fg = "NONE", bg = "NONE" }, - -- Blink.cmp: flat boxes with padding and pop colors - BlinkCmpMenu = { bg = "NONE", fg = colors.text }, - BlinkCmpMenuBorder = { fg = "NONE", bg = "NONE" }, - BlinkCmpMenuSelection = { bg = colors.surface0, fg = colors.text }, - BlinkCmpMenuMatch = { fg = colors.mauve }, - BlinkCmpDoc = { bg = "NONE" }, - BlinkCmpDocBorder = { fg = "NONE", bg = "NONE" }, - BlinkCmpDocSelection = { bg = colors.surface0 }, - BlinkCmpKind = { fg = colors.sky }, - BlinkCmpSource = { fg = colors.subtext0 }, - -- Reduce scope highlighting prominence - IlluminatedWordText = { bg = colors.mantle }, - IlluminatedWordRead = { bg = colors.mantle }, - IlluminatedWordWrite = { bg = colors.mantle }, - TreesitterContext = { bg = colors.mantle }, - TreesitterContextLineNumber = { fg = colors.subtext0, bg = colors.mantle }, - } - end - return opts - end, + opts = { + transparent_background = true, + }, -- config = function() -- require("catppuccin").setup({ -- transparent_background = true, @@ -122,7 +45,7 @@ return { -- end, -- color_overrides = { -- mocha = { - -- bg = "#11111b", + -- base = "#11111b", -- mantle = "#11111b", -- crust = "#11111b", -- }, @@ -136,11 +59,11 @@ return { opts = { formatters_by_ft = { nix = { "alejandra" }, - typescript = { "biome" }, - typescriptreact = { "biome" }, - javascriptreact = { "biome" }, - javascript = { "biome" }, - htmlangular = { "biome" }, + typescript = { "prettierd" }, + typescriptreact = { "prettierd" }, + javascriptreact = { "prettierd" }, + javascript = { "prettierd" }, + htmlangular = { "prettierd" }, python = { "black" }, }, }, @@ -210,90 +133,8 @@ return { }, }, }, - --- minimal crisp single-line borders for LSP windows - inlay_hints = { enabled = true }, - diagnostics = { virtual_text = false }, }, }, - -- Minimal Noice styling - { - "folke/noice.nvim", - opts = function(_, opts) - opts = opts or {} - opts.presets = vim.tbl_deep_extend("force", opts.presets or {}, { - bottom_search = false, - command_palette = false, - long_message_to_split = true, - inc_rename = false, - lsp_doc_border = false, - }) - opts.cmdline = vim.tbl_deep_extend("force", opts.cmdline or {}, { - view = "cmdline_popup", - }) - opts.views = vim.tbl_deep_extend("force", opts.views or {}, { - cmdline_popup = { - border = { style = "none", padding = { 1, 2 } }, - win_options = { - -- winhighlight = { "Normal:NoiceCmdlinePopup,FloatBorder:NoiceCmdlinePopupBorder,FloatTitle:NoiceCmdlinePopupTitle" }, - winhighlight = { - Normal = "NoiceCmdlinePopup", - FloatBorder = "NoiceCmdlinePopupBorder", - FloatTitle = "NoiceCmdlinePopupTitle", - }, - winblend = 0, - }, - position = { row = "40%", col = "50%" }, - size = { width = 60 }, - }, - popupmenu = { - border = { style = "none", padding = { 1, 2 } }, - win_options = { winblend = 0, winhighlight = "Normal:NoicePopup,FloatBorder:NoicePopupBorder" }, - }, - mini = { - border = { style = "none", padding = { 1, 2 } }, - win_options = { winblend = 0, winhighlight = "Normal:NoicePopup,FloatBorder:NoicePopupBorder" }, - }, - }) - return opts - end, - }, - -- Minimal bufferline (if present in LazyVim) - { - "akinsho/bufferline.nvim", - opts = function(_, opts) - opts = opts or {} - opts.options = vim.tbl_deep_extend("force", opts.options or {}, { - separator_style = "none", - show_buffer_close_icons = false, - show_close_icon = false, - always_show_bufferline = false, - indicator = { style = "underline" }, - }) - return opts - end, - }, - -- Minimal indent guides - { - "lukas-reineke/indent-blankline.nvim", - main = "ibl", - opts = function(_, opts) - opts = opts or {} - opts.indent = { char = "│" } - opts.scope = { enabled = false } - opts.whitespace = { remove_blankline_trail = true } - return opts - end, - }, - "pimalaya/himalaya-vim", - { - "rachartier/tiny-inline-diagnostic.nvim", - event = "VeryLazy", -- Or `LspAttach` - priority = 1000, -- needs to be loaded in first - config = function() - require("tiny-inline-diagnostic").setup() - vim.diagnostic.config({ virtual_text = false }) -- Only if needed in your configuration, if you already have native LSP diagnostics - end, - }, -- lua with lazy.nvim { "max397574/better-escape.nvim", diff --git a/modules/home/apps/tools/neovim/config/lua/plugins/extras/typescript.lua b/modules/home/apps/tools/neovim/config/lua/plugins/extras/typescript.lua deleted file mode 100644 index 6e5cd3b..0000000 --- a/modules/home/apps/tools/neovim/config/lua/plugins/extras/typescript.lua +++ /dev/null @@ -1,284 +0,0 @@ -return { - recommended = function() - return LazyVim.extras.wants({ - ft = { - "javascript", - "javascriptreact", - "javascript.jsx", - "typescript", - "typescriptreact", - "typescript.tsx", - }, - root = { "tsconfig.json", "package.json", "jsconfig.json" }, - }) - end, - - -- correctly setup lspconfig - { - "neovim/nvim-lspconfig", - opts = { - -- make sure mason installs the server - servers = { - --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now - --- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically - tsserver = { - enabled = false, - }, - ts_ls = { - enabled = false, - }, - vtsls = { - -- explicitly add default filetypes, so that we can extend - -- them in related extras - filetypes = { - "javascript", - "javascriptreact", - "javascript.jsx", - "typescript", - "typescriptreact", - "typescript.tsx", - }, - settings = { - complete_function_calls = true, - vtsls = { - enableMoveToFileCodeAction = true, - autoUseWorkspaceTsdk = true, - experimental = { - maxInlayHintLength = 30, - completion = { - enableServerSideFuzzyMatch = true, - }, - }, - }, - typescript = { - format = { - enable = false, - }, - updateImportsOnFileMove = { enabled = "always" }, - suggest = { - completeFunctionCalls = true, - }, - inlayHints = { - enumMemberValues = { enabled = true }, - functionLikeReturnTypes = { enabled = true }, - parameterNames = { enabled = "literals" }, - parameterTypes = { enabled = true }, - propertyDeclarationTypes = { enabled = true }, - variableTypes = { enabled = false }, - }, - }, - }, - keys = { - { - "gD", - function() - local params = vim.lsp.util.make_position_params() - LazyVim.lsp.execute({ - command = "typescript.goToSourceDefinition", - arguments = { params.textDocument.uri, params.position }, - open = true, - }) - end, - desc = "Goto Source Definition", - }, - { - "gR", - function() - LazyVim.lsp.execute({ - command = "typescript.findAllFileReferences", - arguments = { vim.uri_from_bufnr(0) }, - open = true, - }) - end, - desc = "File References", - }, - { - "co", - LazyVim.lsp.action["source.organizeImports"], - desc = "Organize Imports", - }, - { - "cM", - LazyVim.lsp.action["source.addMissingImports.ts"], - desc = "Add missing imports", - }, - { - "cu", - LazyVim.lsp.action["source.removeUnused.ts"], - desc = "Remove unused imports", - }, - { - "cD", - LazyVim.lsp.action["source.fixAll.ts"], - desc = "Fix all diagnostics", - }, - { - "cV", - function() - LazyVim.lsp.execute({ command = "typescript.selectTypeScriptVersion" }) - end, - desc = "Select TS workspace version", - }, - }, - }, - }, - setup = { - --- @deprecated -- tsserver renamed to ts_ls but not yet released, so keep this for now - --- the proper approach is to check the nvim-lspconfig release version when it's released to determine the server name dynamically - tsserver = function() - -- disable tsserver - return true - end, - ts_ls = function() - -- disable tsserver - return true - end, - vtsls = function(_, opts) - LazyVim.lsp.on_attach(function(client, buffer) - client.commands["_typescript.moveToFileRefactoring"] = function(command, ctx) - ---@type string, string, lsp.Range - local action, uri, range = unpack(command.arguments) - - local function move(newf) - client.request("workspace/executeCommand", { - command = command.command, - arguments = { action, uri, range, newf }, - }) - end - - local fname = vim.uri_to_fname(uri) - client.request("workspace/executeCommand", { - command = "typescript.tsserverRequest", - arguments = { - "getMoveToRefactoringFileSuggestions", - { - file = fname, - startLine = range.start.line + 1, - startOffset = range.start.character + 1, - endLine = range["end"].line + 1, - endOffset = range["end"].character + 1, - }, - }, - }, function(_, result) - ---@type string[] - local files = result.body.files - table.insert(files, 1, "Enter new path...") - vim.ui.select(files, { - prompt = "Select move destination:", - format_item = function(f) - return vim.fn.fnamemodify(f, ":~:.") - end, - }, function(f) - if f and f:find("^Enter new path") then - vim.ui.input({ - prompt = "Enter move destination:", - default = vim.fn.fnamemodify(fname, ":h") .. "/", - completion = "file", - }, function(newf) - return newf and move(newf) - end) - elseif f then - move(f) - end - end) - end) - end - end, "vtsls") - -- copy typescript settings to javascript - opts.settings.javascript = - vim.tbl_deep_extend("force", {}, opts.settings.typescript, opts.settings.javascript or {}) - end, - }, - }, - }, - - { - "mfussenegger/nvim-dap", - optional = true, - dependencies = { - { - "mason-org/mason.nvim", - opts = function(_, opts) - opts.ensure_installed = opts.ensure_installed or {} - table.insert(opts.ensure_installed, "js-debug-adapter") - end, - }, - }, - opts = function() - local dap = require("dap") - if not dap.adapters["pwa-node"] then - require("dap").adapters["pwa-node"] = { - type = "server", - host = "localhost", - port = "${port}", - executable = { - command = "node", - -- 💀 Make sure to update this path to point to your installation - args = { - LazyVim.get_pkg_path("js-debug-adapter", "/js-debug/src/dapDebugServer.js"), - "${port}", - }, - }, - } - end - if not dap.adapters["node"] then - dap.adapters["node"] = function(cb, config) - if config.type == "node" then - config.type = "pwa-node" - end - local nativeAdapter = dap.adapters["pwa-node"] - if type(nativeAdapter) == "function" then - nativeAdapter(cb, config) - else - cb(nativeAdapter) - end - end - end - - local js_filetypes = { "typescript", "javascript", "typescriptreact", "javascriptreact" } - - local vscode = require("dap.ext.vscode") - vscode.type_to_filetypes["node"] = js_filetypes - vscode.type_to_filetypes["pwa-node"] = js_filetypes - - for _, language in ipairs(js_filetypes) do - if not dap.configurations[language] then - dap.configurations[language] = { - { - type = "pwa-node", - request = "launch", - name = "Launch file", - program = "${file}", - cwd = "${workspaceFolder}", - }, - { - type = "pwa-node", - request = "attach", - name = "Attach", - processId = require("dap.utils").pick_process, - cwd = "${workspaceFolder}", - }, - } - end - end - end, - }, - - -- Filetype icons - { - "echasnovski/mini.icons", - opts = { - file = { - [".eslintrc.js"] = { glyph = "󰱺", hl = "MiniIconsYellow" }, - [".node-version"] = { glyph = "", hl = "MiniIconsGreen" }, - [".prettierrc"] = { glyph = "", hl = "MiniIconsPurple" }, - [".yarnrc.yml"] = { glyph = "", hl = "MiniIconsBlue" }, - ["eslint.config.js"] = { glyph = "󰱺", hl = "MiniIconsYellow" }, - ["package.json"] = { glyph = "", hl = "MiniIconsGreen" }, - ["tsconfig.json"] = { glyph = "", hl = "MiniIconsAzure" }, - ["tsconfig.build.json"] = { glyph = "", hl = "MiniIconsAzure" }, - ["yarn.lock"] = { glyph = "", hl = "MiniIconsBlue" }, - }, - }, - }, -} diff --git a/modules/home/apps/tools/neovim/config/lua/plugins/lualine.lua b/modules/home/apps/tools/neovim/config/lua/plugins/lualine.lua index d248658..e3cd4ba 100644 --- a/modules/home/apps/tools/neovim/config/lua/plugins/lualine.lua +++ b/modules/home/apps/tools/neovim/config/lua/plugins/lualine.lua @@ -5,24 +5,7 @@ return { -- Author: shadmansaleh -- Credit: glepnir local lualine = require("lualine") - local ctp = require("catppuccin.palettes").get_palette("macchiato") - - -- Utility to blend two hex colors: result = (1 - alpha) * a + alpha * b - local function blend_hex(hex_a, hex_b, alpha) - local function hex_to_rgb(h) - h = h:gsub("#", "") - return tonumber(h:sub(1, 2), 16), tonumber(h:sub(3, 4), 16), tonumber(h:sub(5, 6), 16) - end - local function rgb_to_hex(r, g, b) - return string.format("#%02x%02x%02x", math.floor(r + 0.5), math.floor(g + 0.5), math.floor(b + 0.5)) - end - local ar, ag, ab = hex_to_rgb(hex_a) - local br, bg, bb = hex_to_rgb(hex_b) - local r = ar * (1 - alpha) + br * alpha - local g = ag * (1 - alpha) + bg * alpha - local b = ab * (1 - alpha) + bb * alpha - return rgb_to_hex(r, g, b) - end + local ctp = require("catppuccin.palettes").get_palette("mocha") local conditions = { buffer_not_empty = function() @@ -41,11 +24,15 @@ return { -- Config local config = { options = { + -- Disable sections and component separators component_separators = "", section_separators = "", theme = { - normal = { c = { fg = ctp.text, bg = "NONE" } }, - inactive = { c = { fg = ctp.overlay0, bg = "NONE" } }, + -- We are going to use lualine_c an lualine_x as left and + -- right section. Both are highlighted by c theme . So we + -- are just setting default looks o statusline + normal = { c = { fg = ctp.text, bg = ctp.base } }, + inactive = { c = { fg = ctp.overlay0, bg = ctp.base } }, }, }, sections = { @@ -177,41 +164,6 @@ return { return mode_colors[current_mode] or ctp.subtext0 -- Default to a neutral color if mode not found end - -- Human-readable mode labels - local function get_mode_label() - local m = vim.api.nvim_get_mode().mode - local normal = { - n = true, - no = true, - nov = true, - ["noV"] = true, - ["no\22"] = true, - niI = true, - niR = true, - niV = true, - nt = true, - } - if normal[m] then - return "NORM" - end - if m == "i" or m == "ic" or m == "ix" then - return "INS" - end - if m == "v" or m == "V" or m == "\22" or m == "vs" or m == "Vs" or m == "\22s" then - return "VIS" - end - if m == "R" or m == "Rc" or m == "Rx" or m == "Rv" or m == "Rvc" or m == "Rvx" then - return "REPL" - end - if m == "c" or m == "cv" or m == "ce" then - return "CMD" - end - if m == "t" or m == "!" then - return "TERM" - end - return "?" - end - -- Inserts a component in lualine_c at left section local function ins_left(component) table.insert(config.sections.lualine_c, component) @@ -224,14 +176,13 @@ return { ins_left({ function() - return get_mode_label() + return get_mode_abbr() end, color = function() - local mode_color = get_mode_color() - local mode_bg = blend_hex(ctp.base, mode_color, 0.254) - return { fg = mode_color, bg = mode_bg, gui = "bold" } - end, - padding = { left = 1, right = 1 }, + local color = get_mode_color() + return { fg = ctp.base, bg = color, gui = "bold" } + end, -- Sets highlighting of component + padding = { left = 1, right = 1 }, -- We don't need space before this }) ins_left({ @@ -240,13 +191,19 @@ return { color = { fg = ctp.subtext0 }, }) - -- visual separation using color only, no ASCII separators - ins_left({ "location", color = { fg = ctp.overlay1 } }) + ins_left({ + -- filesize component + "filesize", + cond = conditions.buffer_not_empty, + color = { fg = ctp.subtext1 }, + }) + + ins_left({ "location", color = { fg = ctp.subtext1 } }) ins_left({ "diagnostics", sources = { "nvim_diagnostic" }, - symbols = { error = "", warn = "", info = "" }, + symbols = { error = " ", warn = " ", info = " " }, diagnostics_color = { error = { fg = ctp.red }, warn = { fg = ctp.yellow }, @@ -262,13 +219,14 @@ return { end, }) - -- LSP client indicator (badge) ins_right({ + -- Lsp server name . function() + local msg = "none" local buf_ft = vim.api.nvim_get_option_value("filetype", { buf = 0 }) local clients = vim.lsp.get_clients() if next(clients) == nil then - return "" + return msg end for _, client in ipairs(clients) do local filetypes = client.config.filetypes @@ -276,41 +234,42 @@ return { return client.name end end - return "" + return msg end, - color = function() - return { fg = ctp.sapphire, bg = blend_hex(ctp.base, ctp.sapphire, 0.254), gui = "bold" } - end, - padding = { left = 1, right = 1 }, + icon = "", + color = { fg = ctp.overlay1, gui = "bold" }, + }) + + -- Add components to right sections + ins_right({ + "branch", + icon = "", + color = { fg = ctp.mauve, gui = "bold" }, + }) + + ins_right({ + "diff", + -- Is it me or the symbol for modified us really weird + symbols = { added = " ", modified = "󰝤 ", removed = " " }, + diff_color = { + added = { fg = ctp.green }, + modified = { fg = ctp.peach }, + removed = { fg = ctp.red }, + }, + cond = conditions.hide_in_width, }) - -- CMP badge (visible in insert mode) ins_right({ function() - return "CMP" + return "▊" end, - cond = function() - local mode = vim.api.nvim_get_mode().mode - return mode == "i" or mode == "ic" or mode == "ix" - end, - color = { fg = ctp.base, bg = ctp.teal }, - padding = { left = 1, right = 1 }, - }) - - -- Language/filetype badge - ins_right({ - "filetype", - colored = false, - icon_only = false, color = function() - return { fg = ctp.text, ctp.surface0, gui = "bold" } - end, - padding = { left = 1, right = 1 }, + local color = get_mode_color() + return { fg = color } + end, -- Sets highlighting of component + padding = { left = 1 }, }) - -- Minimal right side - ins_right({ "progress", color = { fg = ctp.overlay1 } }) - -- Now don't forget to initialize lualine lualine.setup(config) end, diff --git a/modules/home/apps/tools/neovim/config/lua/plugins/mini.ai.lua b/modules/home/apps/tools/neovim/config/lua/plugins/mini.ai.lua index 0013854..f2f079f 100644 --- a/modules/home/apps/tools/neovim/config/lua/plugins/mini.ai.lua +++ b/modules/home/apps/tools/neovim/config/lua/plugins/mini.ai.lua @@ -1,4 +1,4 @@ return { - "nvim-mini/mini.ai", + "echasnovski/mini.ai", version = false, } diff --git a/modules/home/apps/tools/neovim/config/lua/plugins/typst.lua b/modules/home/apps/tools/neovim/config/lua/plugins/typst.lua deleted file mode 100644 index 1cd4697..0000000 --- a/modules/home/apps/tools/neovim/config/lua/plugins/typst.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - "chomosuke/typst-preview.nvim", - lazy = false, -- or ft = 'typst' - version = "1.*", - opts = {}, -- lazy.nvim will implicitly calls `setup {}` -} diff --git a/modules/home/apps/tools/neovim/default.nix b/modules/home/apps/tools/neovim/default.nix index e19040d..941b8f9 100644 --- a/modules/home/apps/tools/neovim/default.nix +++ b/modules/home/apps/tools/neovim/default.nix @@ -27,23 +27,18 @@ with lib.custom; let in result; - pluginList = plugins: - strings.concatMapStrings ( - plugin: " [\"${sanitizePluginName plugin.name}\"] = \"${plugin.outPath}\",\n" - ) - plugins; + pluginList = plugins: strings.concatMapStrings (plugin: " [\"${sanitizePluginName plugin.name}\"] = \"${plugin.outPath}\",\n") plugins; in { options.apps.tools.neovim = with types; { enable = mkBoolOpt false "Enable Neovim"; }; config = mkIf cfg.enable { - catppuccin.nvim.enable = false; - programs.neovim = { + catppuccin.enable = false; enable = true; defaultEditor = true; - package = inputs.neovim-nightly-overlay.packages.${pkgs.system}.default; + # package = inputs.neovim-nightly-overlay.packages.${pkgs.system}.default; extraLuaPackages = ps: [ps.magick]; extraPackages = with pkgs; [ # Formatters @@ -60,21 +55,22 @@ in { # LSP lua-language-server nixd + (pkgs.rust-bin.selectLatestNightlyWith + (toolchain: toolchain.default)) rust-analyzer nodePackages.typescript-language-server #nodePackages.astro-language-server nodePackages.bash-language-server nodePackages.svelte-language-server tailwindcss-language-server - vtsls taplo docker-compose-language-service - dockerfile-language-server + dockerfile-language-server-nodejs haskellPackages.hadolint shellcheck markdownlint-cli2 shfmt - # sqlfluff + sqlfluff go tailwindcss-language-server @@ -92,6 +88,7 @@ in { fswatch # File watcher utility, replacing libuv.fs_event for neovim 10.0 sqlite postgresql + mongosh # vscode-extensions.vadimcn.vscode-lldb.adapter ]; plugins = with pkgs.vimPlugins; [ diff --git a/modules/home/apps/tools/starship/default.nix b/modules/home/apps/tools/starship/default.nix index 144b400..bf801db 100644 --- a/modules/home/apps/tools/starship/default.nix +++ b/modules/home/apps/tools/starship/default.nix @@ -20,7 +20,7 @@ in { enableNushellIntegration = config.programs.nushell.enable; settings = { add_newline = false; - format = "$directory$git_branch$git_status$python$rust$nodejs$nix_shell$cmd_duration$line_break$character"; + format = "$username$directory$git_branch$git_status$python$rust$nodejs$nix_shell$cmd_duration$line_break$character"; # Username display username = { diff --git a/modules/home/apps/tools/tmux/default.nix b/modules/home/apps/tools/tmux/default.nix index 4ba5bcb..1325924 100644 --- a/modules/home/apps/tools/tmux/default.nix +++ b/modules/home/apps/tools/tmux/default.nix @@ -18,6 +18,7 @@ in { enable = true; extraConfig = '' set -g @catppuccin_window_status_style "basic" + set -g @catppuccin_status_background "#11111b" ''; }; diff --git a/modules/home/apps/web/floorp/default.nix b/modules/home/apps/web/floorp/default.nix deleted file mode 100644 index d91aa48..0000000 --- a/modules/home/apps/web/floorp/default.nix +++ /dev/null @@ -1,261 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: -with lib; -with lib.custom; let - cfg = config.apps.web.floorp; - - natsumi = pkgs.fetchFromGitHub { - owner = "greeeen-dev"; - repo = "natsumi-browser"; - rev = "v5.7.1"; - hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; - }; -in { - options.apps.web.floorp = with types; { - enable = mkBoolOpt false "Enable Floorp Browser"; - - setDefault = mkBoolOpt false "Enable Floorp as Default browser"; - }; - config = mkIf cfg.enable { - xdg.mimeApps.defaultApplications = mkIf cfg.setDefault { - "text/html" = "floorp.desktop"; - "x-scheme-handler/http" = "floorp.desktop"; - "x-scheme-handler/https" = "floorp.desktop"; - }; - - home.file.".floorp/default/chrome" = { - source = "${natsumi}"; - recursive = true; - }; - - catppuccin.firefox.profiles.default.enable = false; - - programs.floorp = { - enable = true; - - profiles.default = { - extensions.force = true; - search = { - default = "SearXNG"; - - engines = { - "NixOS Options" = { - urls = [ - { - template = "https://search.nixos.org/options?query={searchTerms}"; - } - ]; - - icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = ["@nixos"]; - }; - - "Nix Packages" = { - urls = [ - { - template = "https://search.nixos.org/packages?query={searchTerms}"; - } - ]; - - icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = ["@nixpkgs"]; - }; - - "OpenStreetMap" = { - urls = [ - { - template = "https://www.openstreetmap.org/search?query={searchTerms}"; - } - ]; - - icon = "https://www.openstreetmap.org/favicon.ico"; - definedAliases = ["@openstreetmap" "@osm"]; - }; - - "SearXNG" = { - urls = [ - { - template = "https://search.zoeys.computer/searx/search?q={searchTerms}"; - } - ]; - - icon = "https://search.zoeys.computer/searx/static/themes/simple/img/favicon.svg"; - definedAliases = ["@searx"]; - }; - - "docs.rs" = { - urls = [ - { - template = "https://docs.rs/releases/search?query={searchTerms}"; - } - ]; - - icon = "https://docs.rs/-/static/favicon.ico"; - definedAliases = ["@docs"]; - }; - - "crates.io" = { - urls = [ - { - template = "https://crates.io/search?q={searchTerms}"; - } - ]; - - icon = "https://crates.io/assets/cargo.png"; - definedAliases = ["@crates"]; - }; - }; - - force = true; # Required to prevent search engine symlink being overwritten. See https://github.com/nix-community/home-manager/issues/3698 - }; - }; - - policies = { - DisableTelemetry = true; - - Preferences = { - "app.normandy.api_url" = ""; - "app.normandy.enabled" = false; - "app.shield.optoutstudies.enabled" = false; - "app.update.auto" = false; - "beacon.enabled" = false; - "breakpad.reportURL" = ""; - "browser.aboutConfig.showWarning" = false; - "browser.cache.offline.enable" = false; - "browser.crashReports.unsubmittedCheck.autoSubmit" = false; - "browser.crashReports.unsubmittedCheck.autoSubmit2" = false; - "browser.crashReports.unsubmittedCheck.enabled" = false; - "browser.disableResetPrompt" = true; - "browser.newtab.preload" = false; - "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; - "browser.newtabpage.enhanced" = false; - "browser.newtabpage.introShown" = true; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; - "browser.newtabpage.activity-stream.showSponsored" = false; - "browser.newtabpage.activity-stream.system.showSponsored" = false; - "browser.safebrowsing.appRepURL" = ""; - "browser.safebrowsing.blockedURIs.enabled" = false; - "browser.safebrowsing.downloads.enabled" = false; - "browser.safebrowsing.downloads.remote.enabled" = false; - "browser.safebrowsing.downloads.remote.url" = ""; - "browser.safebrowsing.enabled" = false; - "browser.safebrowsing.malware.enabled" = false; - "browser.safebrowsing.phishing.enabled" = false; - "browser.selfsupport.url" = ""; - "browser.send_pings" = false; - "browser.sessionstore.privacy_level" = 0; - "browser.shell.checkDefaultBrowser" = false; - "browser.startup.homepage_override.mstone" = ""; - "browser.tabs.crashReporting.sendReport" = false; - "browser.urlbar.groupLabels.enabled" = false; - "browser.urlbar.quicksuggest.enabled" = false; - "browser.urlbar.speculativeConnect.enabled" = false; - "browser.urlbar.trimURLs" = false; - "browser.urlbar.suggest.quicksuggest.sponsored" = false; - "datareporting.healthreport.service.enabled" = false; - "datareporting.healthreport.uploadEnabled" = false; - "datareporting.policy.dataSubmissionEnabled" = false; - "device.sensors.ambientLight.enabled" = false; - "device.sensors.enabled" = false; - "device.sensors.motion.enabled" = false; - "device.sensors.orientation.enabled" = false; - "device.sensors.proximity.enabled" = false; - "dom.battery.enabled" = false; - "dom.event.clipboardevents.enabled" = false; - "dom.webaudio.enabled" = false; - "experiments.activeExperiment" = false; - "experiments.enabled" = false; - "experiments.manifest.uri" = ""; - "experiments.supported" = false; - "extensions.ClearURLs@kevinr.whiteList" = ""; - "extensions.Decentraleyes@ThomasRientjes.whiteList" = ""; - "extensions.FirefoxMulti-AccountContainers@mozilla.whiteList" = ""; - "extensions.TemporaryContainers@stoically.whiteList" = ""; - "extensions.autoDisableScopes" = 14; - "extensions.getAddons.cache.enabled" = false; - "extensions.getAddons.showPane" = false; - "extensions.greasemonkey.stats.optedin" = false; - "extensions.greasemonkey.stats.url" = ""; - "extensions.pocket.enabled" = false; - "extensions.shield-recipe-client.api_url" = ""; - "extensions.shield-recipe-client.enabled" = false; - "extensions.webservice.discoverURL" = ""; - "media.autoplay.default" = 0; - "media.autoplay.enabled" = true; - "media.eme.enabled" = false; - "media.gmp-widevinecdm.enabled" = false; - "media.navigator.enabled" = false; - "media.peerconnection.enabled" = false; - "media.video_stats.enabled" = false; - "network.IDN_show_punycode" = true; - "network.allow-experiments" = false; - "network.captive-portal-service.enabled" = false; - "network.cookie.cookieBehavior" = 1; - "network.dns.disablePrefetch" = true; - "network.dns.disablePrefetchFromHTTPS" = true; - "network.http.referer.spoofSource" = true; - "network.http.speculative-parallel-limit" = ""; - "network.predictor.enable-prefetch" = false; - "network.predictor.enabled" = false; - "network.prefetch-next" = false; - "network.trr.mode" = ""; - "privacy.donottrackheader.enabled" = true; - "privacy.donottrackheader.value" = ""; - "privacy.firstparty.isolate" = true; - "privacy.query_stripping" = true; - "privacy.trackingprotection.cryptomining.enabled" = true; - "privacy.trackingprotection.enabled" = true; - "privacy.trackingprotection.fingerprinting.enabled" = true; - "privacy.trackingprotection.pbmode.enabled" = true; - "privacy.usercontext.about_newtab_segregation.enabled" = true; - "security.ssl.disable_session_identifiers" = true; - "services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSite" = false; - "signon.autofillForms" = false; - "toolkit.telemetry.archive.enabled" = false; - "toolkit.telemetry.bhrPing.enabled" = false; - "toolkit.telemetry.cachedClientID" = ""; - "toolkit.telemetry.enabled" = false; - "toolkit.telemetry.firstShutdownPing.enabled" = false; - "toolkit.telemetry.hybridContent.enabled" = false; - "toolkit.telemetry.newProfilePing.enabled" = false; - "toolkit.telemetry.prompted" = ""; - "toolkit.telemetry.rejected" = true; - "toolkit.telemetry.reportingpolicy.firstRun" = false; - "toolkit.telemetry.server" = ""; - "toolkit.telemetry.shutdownPingSender.enabled" = false; - "toolkit.telemetry.unified" = false; - "toolkit.telemetry.unifiedIsOptIn" = false; - "toolkit.telemetry.updatePing.enabled" = false; - "webgl.renderer-string-override" = " "; - "webgl.vendor-string-override" = " "; - }; - - ExtensionSettings = with builtins; let - extension = shortId: uuid: { - name = uuid; - value = { - install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi"; - installation_mode = "normal_installed"; - }; - }; - in - listToAttrs [ - (extension "ublock-origin" "uBlock0@raymondhill.net") - (extension "privacy-badger17" "jid1-MnnxcxisBPnSXQ@jetpack") - (extension "1password-x-password-manager" "{d634138d-c276-4fc8-924b-40a0ea21d284}") - (extension "multi-account-containers" "@testpilot-containers") - (extension "temporary-containers" "{c607c8df-14a7-4f28-894f-29e8722976af}") - (extension "styl-us" "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}") - (extension "betterttv" "firefox@betterttv.net") - (extension "decentraleyes" "jid1-BoFifL9Vbdl2zQ@jetpack") - (extension "canvasblocker" "CanvasBlocker@kkapsner.de") - (extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}") - ]; - }; - }; - }; -} diff --git a/modules/home/apps/web/librewolf/default.nix b/modules/home/apps/web/librewolf/default.nix index ae234aa..b6864c5 100644 --- a/modules/home/apps/web/librewolf/default.nix +++ b/modules/home/apps/web/librewolf/default.nix @@ -2,19 +2,11 @@ lib, config, pkgs, - inputs, ... }: with lib; with lib.custom; let cfg = config.apps.web.librewolf; - - natsumi = pkgs.fetchFromGitHub { - owner = "greeeen-dev"; - repo = "natsumi-browser"; - rev = "v5.7.1"; - hash = "sha256-t5xVpFRV2qq5uJRGk7V50EiPnsxbd2cyeKPJYqg/LF0="; - }; in { options.apps.web.librewolf = with types; { enable = mkBoolOpt false "Enable or disable librewolf"; @@ -29,43 +21,13 @@ in { "x-scheme-handler/https" = "librewolf.desktop"; }; - home.file.".librewolf/${config.home.username}/chrome" = { - source = "${natsumi}"; - recursive = true; - }; - programs.librewolf = { enable = true; - profiles.default = lib.mkForce { - id = 1; - isDefault = false; - extensions = { - force = true; - }; - }; - profiles.${config.home.username} = { id = 0; isDefault = true; - extensions = { - force = true; - }; - - settings = { - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - "sidebar.verticalTabs" = true; - - "webgl.disabled" = false; - "privacy.resistFingerprinting" = false; - "privacy.clearOnShutdown.history" = false; - "privacy.clearOnShutdown.cookies" = false; - "network.cookie.lifetimePolicy" = 0; - - "natsumi.theme.type" = "default"; - }; - search = { default = "SearXNG"; @@ -100,10 +62,7 @@ in { ]; icon = "https://www.openstreetmap.org/favicon.ico"; - definedAliases = [ - "@openstreetmap" - "@osm" - ]; + definedAliases = ["@openstreetmap" "@osm"]; }; "SearXNG" = { @@ -145,6 +104,125 @@ in { }; policies = { + DisableTelemetry = true; + + Preferences = { + "app.normandy.api_url" = ""; + "app.normandy.enabled" = false; + "app.shield.optoutstudies.enabled" = false; + "app.update.auto" = false; + "beacon.enabled" = false; + "breakpad.reportURL" = ""; + "browser.aboutConfig.showWarning" = false; + "browser.cache.offline.enable" = false; + "browser.crashReports.unsubmittedCheck.autoSubmit" = false; + "browser.crashReports.unsubmittedCheck.autoSubmit2" = false; + "browser.crashReports.unsubmittedCheck.enabled" = false; + "browser.disableResetPrompt" = true; + "browser.newtab.preload" = false; + "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; + "browser.newtabpage.enhanced" = false; + "browser.newtabpage.introShown" = true; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + "browser.newtabpage.activity-stream.showSponsored" = false; + "browser.newtabpage.activity-stream.system.showSponsored" = false; + "browser.safebrowsing.appRepURL" = ""; + "browser.safebrowsing.blockedURIs.enabled" = false; + "browser.safebrowsing.downloads.enabled" = false; + "browser.safebrowsing.downloads.remote.enabled" = false; + "browser.safebrowsing.downloads.remote.url" = ""; + "browser.safebrowsing.enabled" = false; + "browser.safebrowsing.malware.enabled" = false; + "browser.safebrowsing.phishing.enabled" = false; + "browser.selfsupport.url" = ""; + "browser.send_pings" = false; + "browser.sessionstore.privacy_level" = 0; + "browser.shell.checkDefaultBrowser" = false; + "browser.startup.homepage_override.mstone" = ""; + "browser.tabs.crashReporting.sendReport" = false; + "browser.urlbar.groupLabels.enabled" = false; + "browser.urlbar.quicksuggest.enabled" = false; + "browser.urlbar.speculativeConnect.enabled" = false; + "browser.urlbar.trimURLs" = false; + "browser.urlbar.suggest.quicksuggest.sponsored" = false; + "datareporting.healthreport.service.enabled" = false; + "datareporting.healthreport.uploadEnabled" = false; + "datareporting.policy.dataSubmissionEnabled" = false; + "device.sensors.ambientLight.enabled" = false; + "device.sensors.enabled" = false; + "device.sensors.motion.enabled" = false; + "device.sensors.orientation.enabled" = false; + "device.sensors.proximity.enabled" = false; + "dom.battery.enabled" = false; + "dom.event.clipboardevents.enabled" = false; + "dom.webaudio.enabled" = false; + "experiments.activeExperiment" = false; + "experiments.enabled" = false; + "experiments.manifest.uri" = ""; + "experiments.supported" = false; + "extensions.ClearURLs@kevinr.whiteList" = ""; + "extensions.Decentraleyes@ThomasRientjes.whiteList" = ""; + "extensions.FirefoxMulti-AccountContainers@mozilla.whiteList" = ""; + "extensions.TemporaryContainers@stoically.whiteList" = ""; + "extensions.autoDisableScopes" = 14; + "extensions.getAddons.cache.enabled" = false; + "extensions.getAddons.showPane" = false; + "extensions.greasemonkey.stats.optedin" = false; + "extensions.greasemonkey.stats.url" = ""; + "extensions.pocket.enabled" = false; + "extensions.shield-recipe-client.api_url" = ""; + "extensions.shield-recipe-client.enabled" = false; + "extensions.webservice.discoverURL" = ""; + "media.autoplay.default" = 0; + "media.autoplay.enabled" = true; + "media.eme.enabled" = false; + "media.gmp-widevinecdm.enabled" = false; + "media.navigator.enabled" = false; + "media.peerconnection.enabled" = false; + "media.video_stats.enabled" = false; + "network.IDN_show_punycode" = true; + "network.allow-experiments" = false; + "network.captive-portal-service.enabled" = false; + "network.cookie.cookieBehavior" = 1; + "network.dns.disablePrefetch" = true; + "network.dns.disablePrefetchFromHTTPS" = true; + "network.http.referer.spoofSource" = true; + "network.http.speculative-parallel-limit" = ""; + "network.predictor.enable-prefetch" = false; + "network.predictor.enabled" = false; + "network.prefetch-next" = false; + "network.trr.mode" = ""; + "privacy.donottrackheader.enabled" = true; + "privacy.donottrackheader.value" = ""; + "privacy.firstparty.isolate" = true; + "privacy.query_stripping" = true; + "privacy.trackingprotection.cryptomining.enabled" = true; + "privacy.trackingprotection.enabled" = true; + "privacy.trackingprotection.fingerprinting.enabled" = true; + "privacy.trackingprotection.pbmode.enabled" = true; + "privacy.usercontext.about_newtab_segregation.enabled" = true; + "security.ssl.disable_session_identifiers" = true; + "services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSite" = false; + "signon.autofillForms" = false; + "toolkit.telemetry.archive.enabled" = false; + "toolkit.telemetry.bhrPing.enabled" = false; + "toolkit.telemetry.cachedClientID" = ""; + "toolkit.telemetry.enabled" = false; + "toolkit.telemetry.firstShutdownPing.enabled" = false; + "toolkit.telemetry.hybridContent.enabled" = false; + "toolkit.telemetry.newProfilePing.enabled" = false; + "toolkit.telemetry.prompted" = ""; + "toolkit.telemetry.rejected" = true; + "toolkit.telemetry.reportingpolicy.firstRun" = false; + "toolkit.telemetry.server" = ""; + "toolkit.telemetry.shutdownPingSender.enabled" = false; + "toolkit.telemetry.unified" = false; + "toolkit.telemetry.unifiedIsOptIn" = false; + "toolkit.telemetry.updatePing.enabled" = false; + "webgl.renderer-string-override" = " "; + "webgl.vendor-string-override" = " "; + }; + ExtensionSettings = with builtins; let extension = shortId: uuid: { name = uuid; @@ -158,11 +236,15 @@ in { (extension "ublock-origin" "uBlock0@raymondhill.net") (extension "privacy-badger17" "jid1-MnnxcxisBPnSXQ@jetpack") (extension "1password-x-password-manager" "{d634138d-c276-4fc8-924b-40a0ea21d284}") + (extension "firefox-color" "FirefoxColor@mozilla.com") + (extension "multi-account-containers" "@testpilot-containers") + (extension "temporary-containers" "{c607c8df-14a7-4f28-894f-29e8722976af}") (extension "styl-us" "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}") (extension "betterttv" "firefox@betterttv.net") (extension "decentraleyes" "jid1-BoFifL9Vbdl2zQ@jetpack") (extension "canvasblocker" "CanvasBlocker@kkapsner.de") (extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}") + (extension "mtab" "contact@maxhu.dev") ]; }; }; diff --git a/modules/home/apps/web/zen/default.nix b/modules/home/apps/web/zen/default.nix index 85d16e9..2f919d8 100644 --- a/modules/home/apps/web/zen/default.nix +++ b/modules/home/apps/web/zen/default.nix @@ -16,9 +16,9 @@ in { config = mkIf (cfg.enable && !pkgs.stdenv.isDarwin) { xdg.mimeApps.defaultApplications = mkIf cfg.setDefault { - "text/html" = "zen-twilight.desktop"; - "x-scheme-handler/http" = "zen-twilight.desktop"; - "x-scheme-handler/https" = "zen-twilight.desktop"; + "text/html" = "zen-beta.desktop"; + "x-scheme-handler/http" = "zen-beta.desktop"; + "x-scheme-handler/https" = "zen-beta.desktop"; }; }; } diff --git a/modules/home/rice/gtk/default.nix b/modules/home/rice/gtk/default.nix index 00fc341..872ba98 100644 --- a/modules/home/rice/gtk/default.nix +++ b/modules/home/rice/gtk/default.nix @@ -15,7 +15,7 @@ in { }; config = mkIf cfg.enable { - catppuccin.cursors.enable = true; + catppuccin.pointerCursor.enable = true; home.pointerCursor = { gtk.enable = true; @@ -37,6 +37,10 @@ in { iconTheme = { name = "Papirus-Dark"; + package = pkgs.catppuccin-papirus-folders.override { + accent = ctp.accent; + flavor = ctp.flavor; + }; }; gtk3.extraConfig = { diff --git a/modules/home/services/hypridle/default.nix b/modules/home/services/hypridle/default.nix index 68cef77..27082f0 100644 --- a/modules/home/services/hypridle/default.nix +++ b/modules/home/services/hypridle/default.nix @@ -15,10 +15,9 @@ in { }; config = mkIf (cfg.enable && !pkgs.stdenv.isDarwin) { - catppuccin.swaylock.enable = false; - programs.swaylock = { enable = true; + catppuccin.enable = false; package = pkgs.swaylock-effects; settings = with colors; { clock = true; diff --git a/modules/home/services/quickshell/default.nix b/modules/home/services/quickshell/default.nix new file mode 100644 index 0000000..8dec8eb --- /dev/null +++ b/modules/home/services/quickshell/default.nix @@ -0,0 +1,55 @@ +{ + lib, + config, + pkgs, + system, + inputs, + ... +}: +with lib; +with lib.custom; let + cfg = config.services.quickshell; + + mkService = recursiveUpdate { + Unit.PartOf = ["graphical-session.target"]; + Unit.After = ["graphical-session.target"]; + Install.WantedBy = ["graphical-session.target"]; + }; +in { + options.services.quickshell = with types; { + enable = mkBoolOpt false "Enable or Disable QuickShell"; + }; + config = mkIf cfg.enable { + systemd.user.services = { + quickshell = mkService { + Unit.Description = "QuickShell Service"; + Service = { + Environment = [ + "QSG_RENDER_LOOP=threaded" + # "QT_QUICK_BACKEND=software" + "QT_QPA_PLATFORM=wayland" + "QSG_RENDERER_TIMING=true" + "QML_DISABLE_DISTANCEFIELD=1" + "QT_WAYLAND_DISABLE_WINDOWDECORATION=1" + "QT_QPA_PLATFORMTHEME=qt5ct" + "QT_QPA_REFRESH_RATE=240" + "__GL_SYNC_TO_VBLANK=0" + "LIBGL_ALWAYS_SOFTWARE=0" + "__GL_SYNC_DISPLAY_DEVICE=DP-1" # Adjust this to match your display connection + "QML_ANIMATION_DRIVER=cadence" + "QML_CADENCE_DURATION=4" + "QML_CADENCE_MAX_RENDER_TIME=3.5" + "QSG_RENDERER_USE_THREADED_GL=1" + "QSG_RHI_PREFER_SOFTWARE_RENDERER=0" + "QSG_RHI_FORCE_SYNC=0" + "QSG_INFO=1" + ]; + ExecStart = '' + ${inputs.quickshell.packages.${system}.default}/bin/qs --log-rules 'quickshell.dbus.properties.warning = false;quickshell.dbus.dbusmenu.warning = false;quickshell.service.notifications.warning = false;quickshell.service.sni.host.warning = false' + ''; + Restart = "always"; + }; + }; + }; + }; +} diff --git a/modules/home/shells/aliases.nix b/modules/home/shells/aliases.nix index c18d4b5..4a8ca73 100644 --- a/modules/home/shells/aliases.nix +++ b/modules/home/shells/aliases.nix @@ -16,7 +16,7 @@ with pkgs; { untar = "tar -xvf"; untargz = "tar -xzf"; MANPAGER = "sh -c 'col -bx | bat -l man -p'"; - du = getExe dust; + du = getExe du-dust; ps = getExe procs; lb = "pw-loopback -C \"alsa_input.pci-0000_0d_00.4.analog-stereo\" -P \"Scarlett Solo (3rd Gen.) Headphones / Line 1-2\""; deploy = "nixos-rebuild switch --flake ~/nixos#pluto --target-host zoeys.computer --use-remote-sudo"; @@ -28,8 +28,6 @@ with pkgs; { la = "${getExe eza} -lah --tree"; ls = "${getExe eza} -h --git --icons --color=auto --group-directories-first -s extension"; tree = "${getExe eza} --tree --icons --tree"; - ns = "nh os switch -- --cores 8 --max-jobs 1"; - nsu = "nh os switch --update -- --cores 8 --max-jobs 1"; kys = "shutdown now"; # w = ''| nvim -c "setlocal buftype=nofile bufhidden=wipe" -c "nnoremap q :q!" -''; lv = "nvim -c \"normal '\''0\""; diff --git a/modules/home/shells/fish/default.nix b/modules/home/shells/fish/default.nix index c3e81b6..4c49268 100644 --- a/modules/home/shells/fish/default.nix +++ b/modules/home/shells/fish/default.nix @@ -24,6 +24,8 @@ in { set -g FZF_PREVIEW_FILE_CMD "head -n 10" set -g FZF_PREVIEW_DIR_CMD "ls" + set -gx AWS_DEFAULT_PROFILE (cat ~/.aws_profile | string collect) + set -Ux MANROFFOPT '-c' set -Ux MANPAGER "sh -c 'col -bx | bat -l man -p'" @@ -91,7 +93,7 @@ in { fzf # dns client - doggo + dogdns # neofetch but for git repos onefetch @@ -114,6 +116,9 @@ in { imagemagick ffmpeg-full + # preview images in terminal + catimg + # networking stuff nmap wget diff --git a/modules/home/shells/nu/aliases.nix b/modules/home/shells/nu/aliases.nix index cf67129..f96d667 100644 --- a/modules/home/shells/nu/aliases.nix +++ b/modules/home/shells/nu/aliases.nix @@ -16,7 +16,7 @@ with pkgs; { untar = "tar -xvf"; untargz = "tar -xzf"; MANPAGER = "sh -c 'col -bx | bat -l man -p'"; - du = getExe dust; + du = getExe du-dust; lb = "pw-loopback -C \"alsa_input.pci-0000_0d_00.4.analog-stereo\" -P \"Scarlett Solo (3rd Gen.) Headphones / Line 1-2\""; deploy = "nixos-rebuild switch --flake ~/nixos#pluto --target-host zoeys.computer --use-remote-sudo"; m = "mkdir"; diff --git a/modules/home/shells/nu/default.nix b/modules/home/shells/nu/default.nix index 01bc890..6eca880 100644 --- a/modules/home/shells/nu/default.nix +++ b/modules/home/shells/nu/default.nix @@ -53,7 +53,7 @@ in { ripgrep gping fzf - doggo + dogdns onefetch cpufetch yt-dlp @@ -62,6 +62,7 @@ in { hyperfine imagemagick ffmpeg-full + catimg nmap wget fd diff --git a/modules/home/shells/zsh/default.nix b/modules/home/shells/zsh/default.nix index dcde6b7..387635e 100644 --- a/modules/home/shells/zsh/default.nix +++ b/modules/home/shells/zsh/default.nix @@ -92,7 +92,7 @@ in { gping # dns client - doggo + dogdns # neofetch but for git repos onefetch @@ -115,6 +115,9 @@ in { imagemagick ffmpeg-full + # preview images in terminal + catimg + # networking stuff nmap wget diff --git a/modules/home/wms/hyprland/default.nix b/modules/home/wms/hyprland/default.nix index 87a008f..a5efb04 100644 --- a/modules/home/wms/hyprland/default.nix +++ b/modules/home/wms/hyprland/default.nix @@ -76,6 +76,17 @@ in { "${mod},Q,killactive" "${mod},M,exit" "${mod},P,pseudo" + "${mod},Z,exec,${pkgs.writeShellScriptBin "zen-launcher" '' + ZEN_RESULT=$(${inputs.hyprland.packages.${pkgs.system}.default}/bin/hyprctl clients -j | ${lib.getExe pkgs.jq} '.[] | select(.class | contains("zen"))') + + if [ -z "$ZEN_RESULT" ]; then + ${lib.getExe inputs.zen-browser.packages.${pkgs.system}.beta} & + disown + else + ZEN_WORKSPACE=$(echo "$ZEN_RESULT" | ${lib.getExe pkgs.jq} '.workspace.id') + ${pkgs.hyprland}/bin/hyprctl dispatch workspace "$ZEN_WORKSPACE" + fi + ''}/bin/zen-launcher" "${mod},J,togglesplit," @@ -246,6 +257,7 @@ in { # }; # }; + services.quickshell.enable = true; services.wallpaper.enable = true; }; } diff --git a/modules/home/wms/niri/default.nix b/modules/home/wms/niri/default.nix index f55bf32..3d818a5 100644 --- a/modules/home/wms/niri/default.nix +++ b/modules/home/wms/niri/default.nix @@ -24,15 +24,7 @@ with lib.custom; { relative-to ? "window", in' ? null, }: { - gradient = { - inherit - from - to - angle - relative-to - in' - ; - }; + gradient = {inherit from to angle relative-to in';}; }; spawnSlackOnWeekday = pkgs.writeShellScriptBin "spawn-slack-on-weekday" '' @@ -49,7 +41,7 @@ with lib.custom; { exit 0 ''; in { - package = inputs.niri-src.packages.${pkgs.system}.niri; + package = pkgs.niri; settings = { # Input device configuration @@ -63,8 +55,6 @@ with lib.custom; { variant = ""; options = null; # Or "" if you prefer explicit empty }; - - repeat-rate = 40; }; touchpad = { @@ -97,7 +87,7 @@ with lib.custom; { middle-emulation = false; # Commented out }; - warp-mouse-to-focus.enable = true; + warp-mouse-to-focus = true; focus-follows-mouse = { enable = false; # Commented out in KDL @@ -120,27 +110,6 @@ with lib.custom; { rotation = 0; flipped = false; }; - position = { - x = 2560; - y = 0; - }; - }; - - outputs."DP-3" = { - enable = true; # Not explicitly 'off' - mode = { - width = 3840; - height = 2160; - refresh = 240.0; - }; - variable-refresh-rate = "on-demand"; - focus-at-startup = true; - scale = 1.5; - transform = { - # "normal" - rotation = 0; - flipped = false; - }; position = { x = 0; y = 0; @@ -170,18 +139,9 @@ with lib.custom; { # preset-window-heights = []; # Empty in KDL - default-column-width = { - proportion = 0.5; - }; + default-column-width = {proportion = 0.5;}; # default-column-width = {}; # Alternative from KDL comments - # blur = { - # enable = true; - # passes = 4; - # radius = 4.0; - # noise = 0.1; - # }; - focus-ring = { enable = true; # Not explicitly 'off' width = 4; @@ -204,24 +164,20 @@ with lib.custom; { }; struts = { - # left = 64; # Commented out - # right = 64; # Commented out - # top = 64; # Commented out - # bottom = 64; # Commented out + # left = 64; # Commented out + # right = 64; # Commented out + # top = 64; # Commented out + # bottom = 64; # Commented out }; }; # Spawn processes at startup spawn-at-startup = [ {command = ["xwayland-satellite"];} - { - command = [ - "${pkgs.writeShellScriptBin "thunderbird-delayed" ''sleep 5; thunderbird''}/bin/thunderbird-delayed" - ]; - } + {command = ["${pkgs.writeShellScriptBin "thunderbird-delayed" ''sleep 5; thunderbird''}/bin/thunderbird-delayed"];} {command = ["${pkgs.writeShellScriptBin "zen-delayed" ''sleep 5; zen''}/bin/zen-delayed"];} {command = ["vesktop"];} - {command = ["tidal-hifi"];} + {command = ["spotify"];} {command = ["${spawnSlackOnWeekday}/bin/spawn-slack-on-weekday"];} ]; @@ -240,6 +196,10 @@ with lib.custom; { # Individual animation settings can be added here if needed }; + debug = { + wait-for-frame-completion-in-pipewire = []; + }; + layer-rules = [ { matches = [ @@ -381,16 +341,11 @@ with lib.custom; { # Keybindings binds = { - "Mod+Shift+Slash" = { - action = actions.show-hotkey-overlay; - }; + "Mod+Shift+Slash" = {action = actions.show-hotkey-overlay;}; - "Mod+Return" = { - action = actions.spawn "kitty"; - }; - "Mod+D" = { - action = actions.spawn "fuzzel"; - }; + "Mod+Return" = {action = actions.spawn "kitty";}; + "Mod+D" = {action = actions.spawn "fuzzel";}; + "Super+Alt+L" = {action = actions.spawn "swaylock";}; # "Mod+T" = { action = actions.spawn "bash" "-c" "notify-send hello && exec alacritty"; }; # "Mod+S" = {action = actions.set-dynamic-cast-window;}; @@ -399,59 +354,43 @@ with lib.custom; { # # "Mod+Z" = {action = actions.clear-dynamic-cast-target;}; - "Mod+Q" = { - action = actions.close-window; + "XF86AudioRaiseVolume" = { + allow-when-locked = true; + action = actions.spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; + }; + "XF86AudioLowerVolume" = { + allow-when-locked = true; + action = actions.spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; + }; + "XF86AudioMute" = { + allow-when-locked = true; + action = actions.spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; + }; + "XF86AudioMicMute" = { + allow-when-locked = true; + action = + actions.spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }; - "Mod+Left" = { - action = actions.focus-column-left; - }; - "Mod+Down" = { - action = actions.focus-window-down; - }; - "Mod+Up" = { - action = actions.focus-window-up; - }; - "Mod+Right" = { - action = actions.focus-column-right; - }; - "Mod+H" = { - action = actions.focus-column-left; - }; - "Mod+J" = { - action = actions.focus-window-down; - }; - "Mod+K" = { - action = actions.focus-window-up; - }; - "Mod+L" = { - action = actions.focus-column-right; - }; + "Mod+Q" = {action = actions.close-window;}; - "Mod+Ctrl+Left" = { - action = actions.move-column-left; - }; - "Mod+Ctrl+Down" = { - action = actions.move-window-down; - }; - "Mod+Ctrl+Up" = { - action = actions.move-window-up; - }; - "Mod+Ctrl+Right" = { - action = actions.move-column-right; - }; - "Mod+Ctrl+H" = { - action = actions.move-column-left; - }; - "Mod+Ctrl+J" = { - action = actions.move-window-down; - }; - "Mod+Ctrl+K" = { - action = actions.move-window-up; - }; - "Mod+Ctrl+L" = { - action = actions.move-column-right; - }; + "Mod+Left" = {action = actions.focus-column-left;}; + "Mod+Down" = {action = actions.focus-window-down;}; + "Mod+Up" = {action = actions.focus-window-up;}; + "Mod+Right" = {action = actions.focus-column-right;}; + "Mod+H" = {action = actions.focus-column-left;}; + "Mod+J" = {action = actions.focus-window-down;}; + "Mod+K" = {action = actions.focus-window-up;}; + "Mod+L" = {action = actions.focus-column-right;}; + + "Mod+Ctrl+Left" = {action = actions.move-column-left;}; + "Mod+Ctrl+Down" = {action = actions.move-window-down;}; + "Mod+Ctrl+Up" = {action = actions.move-window-up;}; + "Mod+Ctrl+Right" = {action = actions.move-column-right;}; + "Mod+Ctrl+H" = {action = actions.move-column-left;}; + "Mod+Ctrl+J" = {action = actions.move-window-down;}; + "Mod+Ctrl+K" = {action = actions.move-window-up;}; + "Mod+Ctrl+L" = {action = actions.move-column-right;}; # Alternative commands (commented out in KDL) # "Mod+J" = { action = actions.focus-window-or-workspace-down; }; @@ -459,110 +398,44 @@ with lib.custom; { # "Mod+Ctrl+J" = { action = actions.move-window-down-or-to-workspace-down; }; # "Mod+Ctrl+K" = { action = actions.move-window-up-or-to-workspace-up; }; - "Mod+Home" = { - action = actions.focus-column-first; - }; - "Mod+End" = { - action = actions.focus-column-last; - }; - "Mod+Ctrl+Home" = { - action = actions.move-column-to-first; - }; - "Mod+Ctrl+End" = { - action = actions.move-column-to-last; - }; + "Mod+Home" = {action = actions.focus-column-first;}; + "Mod+End" = {action = actions.focus-column-last;}; + "Mod+Ctrl+Home" = {action = actions.move-column-to-first;}; + "Mod+Ctrl+End" = {action = actions.move-column-to-last;}; - "Mod+Shift+Left" = { - action = actions.focus-monitor-left; - }; - "Mod+Shift+Down" = { - action = actions.focus-monitor-down; - }; - "Mod+Shift+Up" = { - action = actions.focus-monitor-up; - }; - "Mod+Shift+Right" = { - action = actions.focus-monitor-right; - }; - "Mod+Shift+H" = { - action = actions.focus-monitor-left; - }; - "Mod+Shift+J" = { - action = actions.focus-workspace-down; - }; - "Mod+Shift+K" = { - action = actions.focus-workspace-up; - }; - "Mod+Shift+L" = { - action = actions.focus-monitor-right; - }; + "Mod+Shift+Left" = {action = actions.focus-monitor-left;}; + "Mod+Shift+Down" = {action = actions.focus-monitor-down;}; + "Mod+Shift+Up" = {action = actions.focus-monitor-up;}; + "Mod+Shift+Right" = {action = actions.focus-monitor-right;}; + "Mod+Shift+H" = {action = actions.focus-monitor-left;}; + "Mod+Shift+J" = {action = actions.focus-workspace-down;}; + "Mod+Shift+K" = {action = actions.focus-workspace-up;}; + "Mod+Shift+L" = {action = actions.focus-monitor-right;}; - "Mod+Ctrl+Shift+F" = { - action = actions.toggle-windowed-fullscreen; - }; + "Mod+Ctrl+Shift+F" = {action = actions.toggle-windowed-fullscreen;}; - "Mod+Shift+Ctrl+Left" = { - action = actions.move-column-to-monitor-left; - }; - "Mod+Shift+Ctrl+Down" = { - action = actions.move-column-to-monitor-down; - }; - "Mod+Shift+Ctrl+Up" = { - action = actions.move-column-to-monitor-up; - }; - "Mod+Shift+Ctrl+Right" = { - action = actions.move-column-to-monitor-right; - }; - "Mod+Shift+Ctrl+H" = { - action = actions.move-column-to-monitor-left; - }; - "Mod+Shift+Ctrl+J" = { - action = actions.move-column-to-monitor-down; - }; - "Mod+Shift+Ctrl+K" = { - action = actions.move-column-to-monitor-up; - }; - "Mod+Shift+Ctrl+L" = { - action = actions.move-column-to-monitor-right; - }; + "Mod+Shift+Ctrl+Left" = {action = actions.move-column-to-monitor-left;}; + "Mod+Shift+Ctrl+Down" = {action = actions.move-column-to-monitor-down;}; + "Mod+Shift+Ctrl+Up" = {action = actions.move-column-to-monitor-up;}; + "Mod+Shift+Ctrl+Right" = {action = actions.move-column-to-monitor-right;}; + "Mod+Shift+Ctrl+H" = {action = actions.move-column-to-monitor-left;}; + "Mod+Shift+Ctrl+J" = {action = actions.move-column-to-monitor-down;}; + "Mod+Shift+Ctrl+K" = {action = actions.move-column-to-monitor-up;}; + "Mod+Shift+Ctrl+L" = {action = actions.move-column-to-monitor-right;}; - "Mod+Page_Down" = { - action = actions.focus-workspace-down; - }; - "Mod+Page_Up" = { - action = actions.focus-workspace-up; - }; - "Mod+U" = { - action = actions.focus-workspace-down; - }; - "Mod+I" = { - action = actions.focus-workspace-up; - }; - "Mod+Ctrl+Page_Down" = { - action = actions.move-column-to-workspace-down; - }; - "Mod+Ctrl+Page_Up" = { - action = actions.move-column-to-workspace-up; - }; - "Mod+Ctrl+U" = { - action = actions.move-column-to-workspace-down; - }; - "Mod+Ctrl+I" = { - action = actions.move-column-to-workspace-up; - }; + "Mod+Page_Down" = {action = actions.focus-workspace-down;}; + "Mod+Page_Up" = {action = actions.focus-workspace-up;}; + "Mod+U" = {action = actions.focus-workspace-down;}; + "Mod+I" = {action = actions.focus-workspace-up;}; + "Mod+Ctrl+Page_Down" = {action = actions.move-column-to-workspace-down;}; + "Mod+Ctrl+Page_Up" = {action = actions.move-column-to-workspace-up;}; + "Mod+Ctrl+U" = {action = actions.move-column-to-workspace-down;}; + "Mod+Ctrl+I" = {action = actions.move-column-to-workspace-up;}; - "Mod+Shift+Page_Down" = { - action = actions.move-workspace-down; - }; - "Mod+Shift+Page_Up" = { - action = actions.move-workspace-up; - }; - "Mod+Shift+U" = { - action = actions.move-workspace-down; - }; - "Mod+Shift+I" = { - action = actions.move-workspace-up; - }; + "Mod+Shift+Page_Down" = {action = actions.move-workspace-down;}; + "Mod+Shift+Page_Up" = {action = actions.move-workspace-up;}; + "Mod+Shift+U" = {action = actions.move-workspace-down;}; + "Mod+Shift+I" = {action = actions.move-workspace-up;}; "Mod+WheelScrollDown" = { cooldown-ms = 150; @@ -581,116 +454,60 @@ with lib.custom; { action = actions.move-column-to-workspace-up; }; - "Mod+WheelScrollRight" = { - action = actions.focus-column-right; - }; - "Mod+WheelScrollLeft" = { - action = actions.focus-column-left; - }; - "Mod+Ctrl+WheelScrollRight" = { - action = actions.move-column-right; - }; - "Mod+Ctrl+WheelScrollLeft" = { - action = actions.move-column-left; - }; + "Mod+WheelScrollRight" = {action = actions.focus-column-right;}; + "Mod+WheelScrollLeft" = {action = actions.focus-column-left;}; + "Mod+Ctrl+WheelScrollRight" = {action = actions.move-column-right;}; + "Mod+Ctrl+WheelScrollLeft" = {action = actions.move-column-left;}; - "Mod+Shift+WheelScrollDown" = { - action = actions.focus-column-right; - }; - "Mod+Shift+WheelScrollUp" = { - action = actions.focus-column-left; - }; - "Mod+Ctrl+Shift+WheelScrollDown" = { - action = actions.move-column-right; - }; - "Mod+Ctrl+Shift+WheelScrollUp" = { - action = actions.move-column-left; - }; + "Mod+Shift+WheelScrollDown" = {action = actions.focus-column-right;}; + "Mod+Shift+WheelScrollUp" = {action = actions.focus-column-left;}; + "Mod+Ctrl+Shift+WheelScrollDown" = {action = actions.move-column-right;}; + "Mod+Ctrl+Shift+WheelScrollUp" = {action = actions.move-column-left;}; - "Mod+Shift+Comma" = { - action = actions.consume-window-into-column; - }; - "Mod+Period" = { - action = actions.expel-window-from-column; - }; + "Mod+Comma" = {action = actions.consume-window-into-column;}; + "Mod+Period" = {action = actions.expel-window-from-column;}; - "Mod+BracketLeft" = { - action = actions.consume-or-expel-window-left; - }; - "Mod+BracketRight" = { - action = actions.consume-or-expel-window-right; - }; + "Mod+BracketLeft" = {action = actions.consume-or-expel-window-left;}; + "Mod+BracketRight" = {action = actions.consume-or-expel-window-right;}; - "Mod+R" = { - action = actions.switch-preset-column-width; - }; - "Mod+Shift+R" = { - action = actions.switch-preset-window-height; - }; - "Mod+Ctrl+R" = { - action = actions.reset-window-height; - }; - "Mod+F" = { - action = actions.maximize-column; - }; - "Mod+Shift+F" = { - action = actions.fullscreen-window; - }; - "Mod+C" = { - action = actions.center-column; - }; - "Mod+Ctrl+F" = { - action = actions.expand-column-to-available-width; - }; + "Mod+R" = {action = actions.switch-preset-column-width;}; + "Mod+Shift+R" = {action = actions.switch-preset-window-height;}; + "Mod+Ctrl+R" = {action = actions.reset-window-height;}; + "Mod+F" = {action = actions.maximize-column;}; + "Mod+Shift+F" = {action = actions.fullscreen-window;}; + "Mod+C" = {action = actions.center-column;}; + "Mod+Ctrl+F" = {action = actions.expand-column-to-available-width;}; - "Mod+Shift+V" = { - action = actions.toggle-window-floating; - }; + "Mod+V" = {action = actions.toggle-window-floating;}; - "Mod+Minus" = { - action = actions.set-column-width "-10%"; - }; - "Mod+Equal" = { - action = actions.set-column-width "+10%"; - }; + "Mod+Minus" = {action = actions.set-column-width "-10%";}; + "Mod+Equal" = {action = actions.set-column-width "+10%";}; - "Mod+Shift+Minus" = { - action = actions.set-window-height "-10%"; - }; - "Mod+Shift+Equal" = { - action = actions.set-window-height "+10%"; - }; + "Mod+Shift+Minus" = {action = actions.set-window-height "-10%";}; + "Mod+Shift+Equal" = {action = actions.set-window-height "+10%";}; - "Print" = { - action.screenshot = []; - }; # Empty attrset for default args - "Mod+Shift+E" = { - action = actions.quit {}; - }; # Default: no skip-confirmation - "Ctrl+Alt+Delete" = { - action = actions.quit {}; - }; + "Print" = {action = actions.screenshot {};}; # Empty attrset for default args + "Mod+Shift+E" = {action = actions.quit {};}; # Default: no skip-confirmation + "Ctrl+Alt+Delete" = {action = actions.quit {};}; - "Mod+Shift+P" = { - action = actions.power-off-monitors; - }; + "Mod+Shift+P" = {action = actions.power-off-monitors;}; } - // lib.attrsets.listToAttrs ( - builtins.concatMap (i: [ + // lib.attrsets.listToAttrs (builtins.concatMap (i: + with actions; [ { name = "Mod+${toString i}"; - value.action = actions.focus-workspace i; + value.action = focus-workspace i; } # FIXME: use this action directly untril sodiboo/niri-flake#1018 is fixed. { name = "Mod+Shift+${toString i}"; - value.action.move-window-to-workspace = i; + value.action = spawn [niri "msg" "action" "move-column-to-workspace" (toString i)]; } - ]) (lib.range 1 9) - ); + ]) (lib.range 1 9)); }; }; - # services.wallpaper.enable = true; + services.quickshell.enable = false; + services.wallpaper.enable = true; }; } diff --git a/modules/nixos/hardware/audio/default.nix b/modules/nixos/hardware/audio/default.nix index 7d21446..dae04eb 100644 --- a/modules/nixos/hardware/audio/default.nix +++ b/modules/nixos/hardware/audio/default.nix @@ -24,9 +24,39 @@ in { jack.enable = true; }; - services.pipewire.extraConfig.pipewire."92-low-latency" = { - "context.properties" = { - "default.clock.rate" = 192000; + systemd.user.services.cava-combine-inputs = { + description = "Combine MOTU M4 Line Inputs L/R for Cava"; + + # Ensure this runs after pipewire-pulse is started + after = ["pipewire-pulse.service"]; + wants = ["pipewire-pulse.service"]; # Start pipewire-pulse if not already running + + # Make it part of the default user session target + wantedBy = ["default.target"]; + + # Service configuration details + serviceConfig = { + Type = "oneshot"; # Run the command once and exit + # Use RemainAfterExit if you want the service to show as 'active' after running + # RemainAfterExit = true; + + # Command to execute. Use full paths for robustness. + # We use sh -c to run multiple commands sequentially. + # pactl is provided by the pulseaudio package. + ExecStart = "${pkgs.writeShellScriptBin "cava-start" '' + echo "Attempting to load Cava combine modules..." + # Load null sink (returns non-zero if it fails AND module doesn't exist) + ${pkgs.pulseaudio}/bin/pactl load-module module-null-sink sink_name=cava-line-in sink_properties=device.description="Cava_Combined_LineIn" + # Load loopbacks (returns non-zero on failure) + ${pkgs.pulseaudio}/bin/pactl load-module module-loopback source="alsa_input.usb-MOTU_M4_M4MA03F7DV-00.HiFi__Line3__source" sink=cava-line-in latency_msec=10 + ${pkgs.pulseaudio}/bin/pactl load-module module-loopback source="alsa_input.usb-MOTU_M4_M4MA03F7DV-00.HiFi__Line4__source" sink=cava-line-in latency_msec=10 + echo "Finished loading Cava combine modules (ignore errors if already loaded)." + # Exit successfully even if modules were already loaded (pactl might return 0) + exit 0 + ''}/bin/cava-start"; + + # Prevent service from restarting automatically + Restart = "no"; }; }; }; diff --git a/modules/nixos/hardware/gpu-passthru/default.nix b/modules/nixos/hardware/gpu-passthru/default.nix index b28ad46..9ba0531 100644 --- a/modules/nixos/hardware/gpu-passthru/default.nix +++ b/modules/nixos/hardware/gpu-passthru/default.nix @@ -24,9 +24,9 @@ with lib.custom; let echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor # Isolate host to core 0 - systemctl set-property --runtime -- user.slice AllowedCPUs=0-15 - systemctl set-property --runtime -- system.slice AllowedCPUs=0-15 - systemctl set-property --runtime -- init.scope AllowedCPUs=0-15 + systemctl set-property --runtime -- user.slice AllowedCPUs=0-8 + systemctl set-property --runtime -- system.slice AllowedCPUs=0-8 + systemctl set-property --runtime -- init.scope AllowedCPUs=0-8 # disable vpn mullvad disconnect -w @@ -110,6 +110,14 @@ with lib.custom; let libvirtd-cfg = config.virtualisation.libvirtd; qemuConfigFile = pkgs.writeText "qemu.conf" '' + ${optionalString libvirtd-cfg.qemu.ovmf.enable '' + nvram = [ + "/run/libvirt/nix-ovmf/AAVMF_CODE.fd:/run/libvirt/nix-ovmf/AAVMF_VARS.fd", + "/run/libvirt/nix-ovmf/AAVMF_CODE.ms.fd:/run/libvirt/nix-ovmf/AAVMF_VARS.ms.fd", + "/run/libvirt/nix-ovmf/OVMF_CODE.fd:/run/libvirt/nix-ovmf/OVMF_VARS.fd", + "/run/libvirt/nix-ovmf/OVMF_CODE.ms.fd:/run/libvirt/nix-ovmf/OVMF_VARS.ms.fd" + ] + ''} ${optionalString (!libvirtd-cfg.qemu.runAsRoot) '' user = "qemu-libvirtd" group = "qemu-libvirtd" @@ -154,6 +162,16 @@ in { package = pkgs.qemu_kvm; runAsRoot = true; swtpm.enable = true; + ovmf = { + enable = true; + packages = [ + (pkgs.OVMF.override { + secureBoot = true; + tpmSupport = true; + }) + .fd + ]; + }; }; }; @@ -199,17 +217,29 @@ in { done ln -s --force ${libvirtd-cfg.qemu.package}/bin/qemu-pr-helper /run/${dirName}/nix-helpers/ + + ${optionalString libvirtd-cfg.qemu.ovmf.enable ( + let + ovmfpackage = pkgs.buildEnv { + name = "qemu-ovmf"; + paths = libvirtd-cfg.qemu.ovmf.packages; + }; + in '' + ln -s --force ${ovmfpackage}/FV/AAVMF_CODE{,.ms}.fd /run/${dirName}/nix-ovmf/ + ln -s --force ${ovmfpackage}/FV/OVMF_CODE{,.ms}.fd /run/${dirName}/nix-ovmf/ + ln -s --force ${ovmfpackage}/FV/AAVMF_VARS{,.ms}.fd /run/${dirName}/nix-ovmf/ + ln -s --force ${ovmfpackage}/FV/OVMF_VARS{,.ms}.fd /run/${dirName}/nix-ovmf/ + '' + )} ''; system.activationScripts.libvirt-hooks.text = '' ln -Tfs /etc/libvirt/hooks /var/lib/libvirt/hooks ''; - # environment.systemPackages = with pkgs; [ - # libguestfs - # ]; - - networking.firewall.trustedInterfaces = ["virbr0"]; + environment.systemPackages = with pkgs; [ + libguestfs-with-appliance + ]; environment.etc = { "/libvirt/hooks/qemu" = { diff --git a/modules/nixos/hardware/nvidia/default.nix b/modules/nixos/hardware/nvidia/default.nix index 36abc90..90a75ce 100644 --- a/modules/nixos/hardware/nvidia/default.nix +++ b/modules/nixos/hardware/nvidia/default.nix @@ -36,6 +36,7 @@ in { # supported GPUs is at: # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus # Only available from driver 515.43.04+ + # Currently alpha-quality/buggy, so false is currently the recommended setting. open = true; # Enable the Nvidia settings menu, @@ -43,19 +44,45 @@ in { nvidiaSettings = false; # Optionally, you may need to select the appropriate driver version for your specific GPU. - package = config.boot.kernelPackages.nvidiaPackages.mkDriver { - version = "580.82.09"; - sha256_64bit = "sha256-Puz4MtouFeDgmsNMKdLHoDgDGC+QRXh6NVysvltWlbc="; - sha256_aarch64 = "sha256-6tHiAci9iDTKqKrDIjObeFdtrlEwjxOHJpHfX4GMEGQ="; - openSha256 = "sha256-YB+mQD+oEDIIDa+e8KX1/qOlQvZMNKFrI5z3CoVKUjs="; - settingsSha256 = "sha256-um53cr2Xo90VhZM1bM2CH4q9b/1W2YOqUcvXPV6uw2s="; - persistencedSha256 = "sha256-lbYSa97aZ+k0CISoSxOMLyyMX//Zg2Raym6BC4COipU="; - }; + package = config.boot.kernelPackages.nvidiaPackages.stable; + # package = config.boot.kernelPackages.nvidiaPackages.beta.overrideAttrs { + # patchesOpen = with pkgs; [ + # (fetchpatch { + # url = "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/6.14/misc/nvidia/0001-Enable-atomic-kernel-modesetting-by-default.patch"; + # hash = "sha256-tvdm8nxxXslPUun33zj1kkYZOiWKK3F4nwcCkdzPW9s="; + # }) + # (fetchpatch { + # url = "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/6.14/misc/nvidia/0002-Add-IBT-support.patch"; + # hash = "sha256-JUT8FwBhyRhOWxwET7Zw/xkIl8g6UCLMXSTofr0OuSg="; + # }) + # (fetchpatch { + # url = "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/6.14/misc/nvidia/0003-Kbuild-Convert-EXTRA_CFLAGS-to-ccflags-y.patch"; + # hash = "sha256-W+yyiK6TpEs9IACMr/0V7EIP++u7MPOfa9ko3w8Gqtc="; + # }) + # (fetchpatch { + # url = "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/6.14/misc/nvidia/0004-kernel-open-nvidia-Use-new-timer-functions-for-6.15.patch"; + # hash = "sha256-T3SY2O6Pmc8BA0oana5xGGDhBxCizwmRqMyPvgF3j8A="; + # }) + # (fetchpatch { + # url = "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/6.14/misc/nvidia/0005-nvidia-uvm-Use-__iowrite64_hi_lo.patch"; + # hash = "sha256-T8BNr1H1vgEQoKB0S5cqcbq6fSQxiDK9bb/MCvMtzTI"; + # }) + # (fetchpatch { + # url = "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/6.14/misc/nvidia/0006-nvidia-uvm-Use-page_pgmap.patch"; + # hash = "sha256-YucFZ2Z7YSgUiah82uLOmd4Z/c5YLOXxzEZNO6ZvQQg="; + # }) + # (fetchpatch { + # url = "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/6.14/misc/nvidia/0007-nvidia-uvm-Convert-make_device_exclusive_range-to-ma.patch"; + # hash = "sha256-AehV7D+yYBmE8FWsUiagnjB8V7S8RJSTNcVMwZIgw/I="; + # }) + # (fetchpatch { + # url = "https://raw.githubusercontent.com/CachyOS/kernel-patches/master/6.14/misc/nvidia/0008-kbuild-Add-workaround-for-GCC-15-Compilation.patch"; + # hash = "sha256-HrYBiAFy62Jll+ceVnGuJKGKDoaRObjAGIYa+yrAogA="; + # }) + # ]; + # }; }; - boot.initrd.kernelModules = ["nvidia"]; - boot.extraModulePackages = [config.boot.kernelPackages.nvidia_x11]; - environment.variables = { GBM_BACKEND = "nvidia-drm"; WLR_NO_HARDWARE_CURSORS = "1"; diff --git a/modules/nixos/protocols/wayland/default.nix b/modules/nixos/protocols/wayland/default.nix index d1e51ac..f98739c 100644 --- a/modules/nixos/protocols/wayland/default.nix +++ b/modules/nixos/protocols/wayland/default.nix @@ -27,8 +27,8 @@ in { }; }; - services.displayManager.gdm.enable = false; - services.displayManager.gdm.wayland = true; + services.xserver.displayManager.gdm.enable = false; + services.xserver.displayManager.gdm.wayland = true; # services.displayManager.sddm.enable = true; # services.displayManager.sddm.package = lib.mkForce pkgs.kdePackages.sddm; diff --git a/modules/nixos/services/crypto/default.nix b/modules/nixos/services/crypto/default.nix deleted file mode 100644 index 8f0ca3b..0000000 --- a/modules/nixos/services/crypto/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: -with lib; -with lib.custom; let - cfg = config.services.crypto; -in { - options.services.crypto = with types; { - enable = mkBoolOpt false "Enable Monero"; - }; - config = mkIf cfg.enable { - services.wg-container.enable = true; - - # systemd.services.monero.vpnConfinement = { - # enable = true; - # vpnNamespace = "wg"; - # }; - # - # services.monero = { - # enable = true; - # mining.enable = false; - # rpc = {address = "192.168.15.1";}; - # extraConfig = '' - # confirm-external-bind=1 - # ''; - # }; - }; -} diff --git a/modules/nixos/services/mail/default.nix b/modules/nixos/services/mail/default.nix index 56881a2..658d954 100644 --- a/modules/nixos/services/mail/default.nix +++ b/modules/nixos/services/mail/default.nix @@ -33,7 +33,7 @@ in { gitlab-email-pw-hashed.file = ./sec/gitlab-email-pw-hashed.age; }; - mailserver = rec { + mailserver = { enable = true; fqdn = "mail.zoeys.email"; domains = ["zoeys.email" "zoeys.cloud" "zoeys.computer" "zackmyers.io" "zacharymyers.com" "pictureofcat.com"]; @@ -64,23 +64,27 @@ in { }; }; - enableManageSieve = true; - - dmarcReporting.enable = true; - - x509.useACMEHost = fqdn; + certificateScheme = "acme-nginx"; virusScanning = true; - stateVersion = 3; + stateVersion = 1; }; - services.nginx = { - virtualHosts = { - "${config.mailserver.fqdn}" = { - forceSSL = true; - enableACME = true; - }; - }; - }; + # services.nginx = { + # virtualHosts = { + # "cal.zoeys.cloud" = { + # forceSSL = true; + # enableACME = true; + # locations."/" = { + # proxyPass = "http://localhost:5232/"; + # extraConfig = '' + # proxy_set_header X-Script-Name /; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # proxy_pass_header Authorization; + # ''; + # }; + # }; + # }; + # }; services.roundcube = { enable = true; diff --git a/modules/nixos/services/matrix/default.nix b/modules/nixos/services/matrix/default.nix deleted file mode 100644 index 688a731..0000000 --- a/modules/nixos/services/matrix/default.nix +++ /dev/null @@ -1,146 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: -with lib; -with lib.custom; let - cfg = config.services.matrix; -in { - options.services.matrix = with types; { - enable = mkBoolOpt false "Matrix Web Server"; - }; - config = mkIf cfg.enable { - sops = { - defaultSopsFile = ../../../.sops.yaml; - gnupg.home = "/var/lib/sops"; - gnupg.sshKeyPaths = []; - - secrets = { - "password" = { - sopsFile = ../../../../secrets/matrix-db.yaml; - owner = "root"; - group = "root"; - mode = "0444"; - neededForUsers = true; - }; - }; - }; - - services.matrix-synapse-next = { - enable = true; - - workers.federationSenders = 2; - workers.federationReceivers = 2; - workers.initialSyncers = 2; - workers.normalSyncers = 2; - workers.eventPersisters = 2; - workers.useUserDirectoryWorker = true; - - enableNginx = true; - - settings = { - server_name = "zoeys.cloud"; - - recaptcha_public_key = "6LdcENQrAAAAAKFi-gTzPnf6Q2xq7yTmIYv6Xw5o"; - recaptcha_private_key = "6LdcENQrAAAAABfnE6TVkMWtRrw0OZqZEfYaGm7m"; - - enable_registration = true; - enable_registration_captcha = true; - - database = { - name = "psycopg2"; - args = { - host = "localhost"; - user = "synapse"; - password = "synapse"; - dbname = "synapse"; - }; - }; - }; - }; - - services.redis.servers."".enable = true; - - services.coturn = rec { - enable = true; - no-cli = true; - no-tcp-relay = true; - min-port = 49000; - max-port = 50000; - use-auth-secret = true; - static-auth-secret = "will be world readable for local users :("; - realm = "turn.zoeys.cloud"; - cert = "${config.security.acme.certs.${realm}.directory}/full.pem"; - pkey = "${config.security.acme.certs.${realm}.directory}/key.pem"; - extraConfig = '' - verbose - - no-multicast-peers - denied-peer-ip=0.0.0.0-0.255.255.255 - denied-peer-ip=10.0.0.0-10.255.255.255 - denied-peer-ip=100.64.0.0-100.127.255.255 - denied-peer-ip=127.0.0.0-127.255.255.255 - denied-peer-ip=169.254.0.0-169.254.255.255 - denied-peer-ip=172.16.0.0-172.31.255.255 - denied-peer-ip=192.0.0.0-192.0.0.255 - denied-peer-ip=192.0.2.0-192.0.2.255 - denied-peer-ip=192.88.99.0-192.88.99.255 - denied-peer-ip=192.168.0.0-192.168.255.255 - denied-peer-ip=198.18.0.0-198.19.255.255 - denied-peer-ip=198.51.100.0-198.51.100.255 - denied-peer-ip=203.0.113.0-203.0.113.255 - denied-peer-ip=240.0.0.0-255.255.255.255 - denied-peer-ip=::1 - denied-peer-ip=64:ff9b::-64:ff9b::ffff:ffff - denied-peer-ip=::ffff:0.0.0.0-::ffff:255.255.255.255 - denied-peer-ip=100::-100::ffff:ffff:ffff:ffff - denied-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff - denied-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff - denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff - denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff - ''; - }; - - networking.firewall = { - interfaces.ens3 = let - range = with config.services.coturn; [ - { - from = min-port; - to = max-port; - } - ]; - in { - allowedUDPPortRanges = range; - allowedUDPPorts = [3478 5349]; - allowedTCPPortRanges = []; - allowedTCPPorts = [3478 5349]; - }; - }; - - services.nginx.virtualHosts.${config.services.coturn.realm} = { - forceSSL = true; - enableACME = true; - locations."/" = { - return = "200 'Hai :3'"; - }; - }; - - users.groups.turnserver.members = ["nginx"]; - - security.acme.certs.${config.services.coturn.realm} = { - /* - insert here the right configuration to obtain a certificate - */ - postRun = "systemctl restart coturn.service"; - group = "turnserver"; - }; - # configure synapse to point users to coturn - services.matrix-synapse.settings = with config.services.coturn; { - turn_uris = ["turn:${realm}:3478?transport=udp" "turn:${realm}:3478?transport=tcp"]; - turn_shared_secret = static-auth-secret; - turn_user_lifetime = "1h"; - }; - }; -} diff --git a/modules/nixos/services/transmission/default.nix b/modules/nixos/services/transmission/default.nix deleted file mode 100644 index 5426640..0000000 --- a/modules/nixos/services/transmission/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: -with lib; -with lib.custom; let - cfg = config.services.torrent; -in { - options.services.torrent = with types; { - enable = mkBoolOpt false "Enable Transmission Service (for Linux ISOs)"; - }; - config = mkIf cfg.enable { - services.wg-container.enable = true; - - systemd.services.transmission.vpnConfinement = { - enable = true; - vpnNamespace = "wg"; - }; - - services.transmission = { - enable = true; - package = pkgs.transmission_4; - settings = { - incomplete-dir-enabled = true; - rpc-bind-address = "192.168.15.1"; # Bind RPC/WebUI to VPN network namespace address - rpc-whitelist-enabled = false; - rpc-whitelist = [ - "192.168.15.1" - "192.168.15.5" # Access from default network namespace - "192.168.1.*" # Access from other machines on specific subnet - "127.0.0.1" # Access through loopback within VPN network namespace - ]; - }; - }; - }; -} diff --git a/modules/nixos/services/vpn/default.nix b/modules/nixos/services/vpn/default.nix index a264fc9..f2c4be0 100644 --- a/modules/nixos/services/vpn/default.nix +++ b/modules/nixos/services/vpn/default.nix @@ -10,12 +10,25 @@ with lib.custom; let in { options.services.vpn = with types; { enable = mkBoolOpt false "Enable VPN service(s)"; + + mullvad = mkBoolOpt false "Enable Mullvad VPN Daemon"; }; config = mkIf cfg.enable { services.mullvad-vpn = { - enable = true; + enable = cfg.mullvad; package = nixos-stable.mullvad; }; + + services.openvpn = { + servers = { + work = { + config = ''config /home/zoey/Downloads/zachary_myers.ovpn''; + updateResolvConf = true; + }; + }; + }; + + systemd.services.openvpn-work.wantedBy = lib.mkForce []; }; } diff --git a/modules/nixos/services/web/nginx/default.nix b/modules/nixos/services/web/nginx/default.nix index 4677f58..e141150 100644 --- a/modules/nixos/services/web/nginx/default.nix +++ b/modules/nixos/services/web/nginx/default.nix @@ -20,7 +20,7 @@ in { services.nginx = { enable = true; - # package = pkgs.nginxStable.override {openssl = pkgs.libressl;}; + package = pkgs.nginxStable.override {openssl = pkgs.libressl;}; recommendedProxySettings = true; recommendedGzipSettings = true; recommendedOptimisation = true; diff --git a/modules/nixos/services/wg-container/default.nix b/modules/nixos/services/wg-container/default.nix deleted file mode 100644 index a82ab3b..0000000 --- a/modules/nixos/services/wg-container/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: -with lib; -with lib.custom; let - cfg = config.services.wg-container; -in { - options.services.wg-container = with types; { - enable = mkBoolOpt false "Enable Wireguard Container"; - }; - config = mkIf cfg.enable { - sops = { - defaultSopsFile = ../../../.sops.yaml; - gnupg.home = "/var/lib/sops"; - gnupg.sshKeyPaths = []; - - secrets = { - "vpn_config_file" = { - sopsFile = ../../../../secrets/vpn-config.yaml; - owner = "root"; - group = "root"; - mode = "0400"; - neededForUsers = true; - }; - }; - }; - - vpnNamespaces.wg = { - enable = true; - wireguardConfigFile = config.sops.secrets.vpn_config_file.path; - accessibleFrom = [ - "192.168.0.0/24" - ]; - portMappings = [ - { - from = 18081; - to = 18081; - protocol = "both"; - } - { - from = 9091; - to = 9091; - } - ]; - }; - }; -} diff --git a/modules/nixos/sites/code/default.nix b/modules/nixos/sites/code/default.nix index ccb3085..4af0c2f 100644 --- a/modules/nixos/sites/code/default.nix +++ b/modules/nixos/sites/code/default.nix @@ -36,7 +36,7 @@ in { catppuccin.forgejo.enable = false; services.gitea-actions-runner = { - package = pkgs.forgejo-runner; + package = pkgs.forgejo-actions-runner; instances.default = { enable = true; name = "monolith"; diff --git a/modules/nixos/sites/jellyfin/default.nix b/modules/nixos/sites/jellyfin/default.nix index aede3fa..5d01113 100644 --- a/modules/nixos/sites/jellyfin/default.nix +++ b/modules/nixos/sites/jellyfin/default.nix @@ -19,5 +19,19 @@ in { user = "zoey"; group = "users"; }; + + # virtualisation.oci-containers = { + # containers.jellyfin-vue = { + # image = "ghcr.io/jellyfin/jellyfin-vue:unstable"; + # environment = { + # "PUBLIC_JELLYFIN_API" = "http://localhost:8096"; + # }; + # ports = [ + # "8065:80" + # ]; + # }; + # }; + + networking.firewall.allowedTCPPorts = [8065]; }; } diff --git a/modules/nixos/sites/mirror/default.nix b/modules/nixos/sites/mirror/default.nix index 56a575c..bfc3e8b 100644 --- a/modules/nixos/sites/mirror/default.nix +++ b/modules/nixos/sites/mirror/default.nix @@ -24,7 +24,7 @@ in { systemd.services."mirror-update" = { script = '' - ${pkgs.rsync}/bin/rsync -vPa --delete-after rsync://mirrors.lug.mtu.edu/archlinux/ /var/www/mirror.zackmyers.io/archlinux/ + ${pkgs.rsync}/bin/rsync -vPa rsync://mirrors.lug.mtu.edu/archlinux/ /var/www/mirror.zackmyers.io/archlinux/ ''; serviceConfig = { Type = "oneshot"; diff --git a/modules/nixos/sites/pterodactyl/default.nix b/modules/nixos/sites/pterodactyl/default.nix index 82e3581..6de1a77 100644 --- a/modules/nixos/sites/pterodactyl/default.nix +++ b/modules/nixos/sites/pterodactyl/default.nix @@ -148,8 +148,6 @@ in { ''; }; - security.acme.certs."node.nyc.zackmyers.io".keyType = "rsa4096"; - services.phpfpm = { phpOptions = '' extension=${pkgs.php83Extensions.openssl}/lib/php/extensions/openssl.so diff --git a/modules/nixos/ui/fonts/default.nix b/modules/nixos/ui/fonts/default.nix index 59cf721..014a552 100644 --- a/modules/nixos/ui/fonts/default.nix +++ b/modules/nixos/ui/fonts/default.nix @@ -57,7 +57,7 @@ in { # }) noto-fonts noto-fonts-cjk-sans - noto-fonts-color-emoji + noto-fonts-emoji jetbrains-mono nerd-fonts.iosevka nerd-fonts.zed-mono diff --git a/overlays/monado/default.nix b/overlays/monado/default.nix deleted file mode 100644 index e559a40..0000000 --- a/overlays/monado/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{...}: final: prev: { - monado = prev.monado.overrideAttrs (old: { - buildInputs = builtins.filter (x: x != prev.opencv) old.buildInputs; - cmakeFlags = - (old.cmakeFlags or []) - ++ [ - "-DBUILD_WITH_OPENCV=OFF" - ]; - }); -} diff --git a/packages/atproto-pds/default.nix b/packages/atproto-pds/default.nix index 5bc4e99..f6d59be 100644 --- a/packages/atproto-pds/default.nix +++ b/packages/atproto-pds/default.nix @@ -7,7 +7,7 @@ owner = "bluesky-social"; repo = "pds"; rev = "main"; - hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; + hash = "sha256-dEB5u++Zx+F4TH5q44AF/tuwAhLEyYT+U5/18viT4sw="; }; in inputs.pnpm2nix.packages.${pkgs.system}.mkPnpmPackage { diff --git a/packages/discord-music-presence/default.nix b/packages/discord-music-presence/default.nix deleted file mode 100644 index 3091a86..0000000 --- a/packages/discord-music-presence/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ - fetchurl, - stdenv, - autoPatchelfHook, - xorg, - libGL, - libgcc, - systemdLibs, - libz, - glibc, - fontconfig, - e2fsprogs, -}: -stdenv.mkDerivation { - src = fetchurl { - url = "https://cdn.discordapp.com/attachments/1306271439493533776/1414196667304902707/music-presence-2.3.3-preview.6-linux-x86_64.tar.gz?ex=68beb0c7&is=68bd5f47&hm=09a61b4eeadb1f0b61ed70a6d1a14fe267f320027e0aae8dca1923d0813b063a&"; - hash = "sha256-KqGnG4xdZcOQJQXrNU3leLXDNjNFAVjvuDUKAR38IBs="; - }; - - nativeBuildInputs = [autoPatchelfHook]; - - preBuild = '' - addAutoPatchelfSearchPath ./usr/plugins/ - addAutoPatchelfSearchPath ./usr/bin/ - addAutoPatchelfSearchPath ./usr/lib/ - ''; - - buildInputs = [ - xorg.libX11 - xorg.libxcb - libGL - libgcc - systemdLibs - libz - glibc - fontconfig - e2fsprogs - ]; - - installPhase = '' - runHook preInstall - cp -r . $out - runHook postInstall - ''; - - name = "discord-music-presence"; -} diff --git a/secrets/matrix-db.yaml b/secrets/matrix-db.yaml deleted file mode 100644 index 579c3c8..0000000 --- a/secrets/matrix-db.yaml +++ /dev/null @@ -1,26 +0,0 @@ -password: ENC[AES256_GCM,data:0fl9Py+dOU7yBG5+S9oikr/uVXM=,iv:ivZPbvIqCNH974p24ZXgobDQjZh4EaRqr9Mav0Ofv7Q=,tag:rPY6loyq5wCe/SXKsz39LA==,type:str] -sops: - shamir_threshold: 1 - age: - - recipient: age1l6v7c5cp6sh6typgskwfufzkn3qw4av7r42z7lqyns6mtupytqhs2fg49u - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOZElOWnpHWC9mdGhOaVRQ - U2d1Z3U0Uk9sZGhZWFp5ejRLV1FEbUpFcVNNCm1WN0xrV1FkLzB5TXBWa3dnMDFD - eEI5L0hPbk1CM0dESWsxRXRKemp0RG8KLS0tIFNWR0M4a0tHSjR3ODV6aGpHQzZy - Y3hyR2p4Qk52S2FRVnFQK2pTb21sK2cKfTp78UNAFB4umRGvwDq782dhBYPeO6ms - wx9+gVmeRbHWC2SoVvjEpsK7FpSQDV5T6qDZP+L3DwWRKM2OfAdjRA== - -----END AGE ENCRYPTED FILE----- - - recipient: age16p54d6tx3mg0htkzj43q2mzpvlqj4gz63mz5qzx8mpsp5zx4xexsszdhuk - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXTXUwaHhQdHBBVWVSMmNH - dUNJUys2VnhPbjdYd3NCUDM1dXV5am9FNkhzCnVmMnBOcmtrNVE5d012NzlsRm54 - SDlQekQxR3JkbENJbXkxbGdSa3BGMVkKLS0tIEV1b3pJbHdFbXMzSGRrOXpPUW1U - OFpZeVVYYzJyMVMxOVBoNzFDVFdDc0UKu0T/bsKe7qaBbqWyalMEZ+MzuhZN2Jxk - mAQsc9ZAZeRda/0IjpnWjwfxCbt99wMKms1cPyDwGxRdDu5xSNKmUg== - -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-09-20T18:43:33Z" - mac: ENC[AES256_GCM,data:n0J6Go+8GfyG9CO/o2DAcaUCzEWjANRy9ZFHkoogqKX1N6oCFWnojqx3qeUw1QlzNHKYsCVRawsYp/oezox9wyjH/EvKS1Ocxm4b6segIFL38y2zllR+AKDu7FsfEz+nkgp8VrzruaoobTBp4HLxNvlVKg9sWLboIDw38jt58EA=,iv:Lz3ph/lelLNyIVlWRowW3QZQoZw2VhCGUhA0kJHM3wc=,tag:ucu/ee0YhDO53xCBtkOHfg==,type:str] - unencrypted_suffix: _unencrypted - version: 3.10.2 diff --git a/secrets/vpn-config.yaml b/secrets/vpn-config.yaml deleted file mode 100644 index 0d2907f..0000000 --- a/secrets/vpn-config.yaml +++ /dev/null @@ -1,33 +0,0 @@ -vpn_config_file: ENC[AES256_GCM,data:ZkHMWmbWTp3h1miVkMuO+9psw7FPyfM7wg9B2Ef9HMlcO2ZL5D7FFW8wWGOCksvhabYIvuN0v9Vfi3gFRQOrmlHS8VXNw5+tMNJ24Yhgx5W3/SD/BUdZfvfFRFNMkYwy/M3ztiOIlZlQhE+0rxhzFgaq6bbbwDRLK5GmG5BM6saoP4qXn17kdyY7BnEzFghHQBmfXSp24vuEZt9KyP/hSo+UzAr2VO6ougtIAvR2BLvgiN9YH5qUF3vQYARNadbw+m5EgEoBvNzST5d/FOH2Ify4d/yYzUmF2XS4oBkrGbYlwi9Khd6Kn/MkwWS2d8In6gT3LaJIhBwGCtEQCwAlRErC1nwghEkTIBYDmvp4mQNWBIwcP60zgswyjFWt1oy7u1E5,iv:JJDupaXEVxfpcWaoE/G5RvjMkpETYgiS4kSiQEgvZCc=,tag:E+4FgnsFwhNiEPr+b6b6Og==,type:str] -sops: - lastmodified: "2025-06-24T21:56:48Z" - mac: ENC[AES256_GCM,data:gzKh3iFiNhHnI0b/ayOqVEZiMGR6aL6JGfr0q9f42dFlOW37bycIuSMNKdjeOslp7lvHdLSvrWW/aIGchBVHOMDSYFhiuxxmlhNbgAWAjDpDy2vbgIlKTEqt4ytQ+IKxN3mrCpEWiYVPi/FqzOKqZknWNEMQxxhIpbPx4FdaWPM=,iv:YE1eWK90EOL+zW/v0lL6DnStOYlF5mmdsRUaSHbbgJ4=,tag:v3S5GPstjZbbFcTj+dWWAg==,type:str] - pgp: - - created_at: "2025-06-24T21:10:42Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hF4DSgOXOlpD5vQSAQdA6VlJq7Q66Ggk4hq4Z7n1Rt0CfMA+QX+H7nyx7WG4vRUw - G0ir2eYcyUETT35WWMu9weyNgRuwsuCT7GxpfWf82crp1RENKh/s0p4iFanhjIHo - 0l4BFFP+xxvPEbXOepRVf+ewEdVMQXUEe1O3Qmm2v5Y08FKwQY6N9ExBRxgbkCQm - KTrTwHIfPGuZPLfgH2IAqmI7qbKiSTorLaBJOqDhtkFGcl6ALsNk40c42o6Yol4Q - =Wnnp - -----END PGP MESSAGE----- - fp: "0x141576B17B4AE789" - - created_at: "2025-06-24T21:10:42Z" - enc: |- - -----BEGIN PGP MESSAGE----- - - hQEMA3n+O3FJNc2rAQgAjpT5Nds28cgp1OyyFXUJ6ei8He6VX5q9SsFqN81h1QM8 - b0/EXG9+cVwIkN6nydjdygWChiVT3JutP3ucVOSGllA5B+NCGBZtt0i5bYfiMr5+ - wblTFY2sYBnfeYjtm0s/IjnwzsKdHxzP6pZjuXcA28icKkSgPPKVRamUt+ytStAg - TDdP76Y1rN6Pp/jRYpPYGHML725LcEicSX++FCBdjMRvm+zxFXHigF4posoOwHST - idizJwfIwkuzVvc23eHLlWADqh28SqSMZd2qojS5pXuXmEKua1JqmY4poNMkP+BU - 1j5EvcsmlNOGVY5+FFBkuGQ9rjOX61EjKUnGTO7d8tJeAYIsBS8EbFUv13YF/1UG - kE4AVTuRDqPizxcKh0j/nhZOIUpbzDYR73ZgofB5jzYfUVN6ucphBLw6WafCk+8/ - F4DyFhGlHOX0QIMbYJRhOG2rFDk3oPpbiULRyKSpsA== - =887e - -----END PGP MESSAGE----- - fp: 0DCB1C584AECEB2674BB76C179FE3B714935CDAB - unencrypted_suffix: _unencrypted - version: 3.10.2 diff --git a/systems/x86_64-linux/earth/default.nix b/systems/x86_64-linux/earth/default.nix index 44c60a7..0875f4f 100644 --- a/systems/x86_64-linux/earth/default.nix +++ b/systems/x86_64-linux/earth/default.nix @@ -6,10 +6,7 @@ config, ... }: { - imports = [ - ./disk-config.nix - ./hardware-configuration.nix - ]; + imports = [./disk-config.nix ./hardware-configuration.nix]; nix.settings = { trusted-users = ["zoey"]; @@ -20,7 +17,7 @@ dates = ["03:45"]; }; - # nix.package = inputs.lix-module.packages.${pkgs.system}.default; + nix.package = inputs.lix-module.packages.${pkgs.system}.default; nix.gc = { automatic = true; @@ -28,13 +25,36 @@ options = "--delete-older-than 1d"; }; + boot.initrd.postResumeCommands = lib.mkAfter '' + mkdir /btrfs_tmp + mount /dev/root_vg/root /btrfs_tmp + if [[ -e /btrfs_tmp/root ]]; then + mkdir -p /btrfs_tmp/old_roots + timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S") + mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp" + fi + + delete_subvolume_recursively() { + IFS=$'\n' + for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do + delete_subvolume_recursively "/btrfs_tmp/$i" + done + btrfs subvolume delete "$1" + } + + for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do + delete_subvolume_recursively "$i" + done + + btrfs subvolume create /btrfs_tmp/root + umount /btrfs_tmp + ''; + hardware.audio.enable = true; hardware.nvidia.enable = true; hardware.keyboard.qmk.enable = true; programs.nix-ld.enable = true; - services.flatpak.enable = true; - hardware.march = { arch = "znver3"; enableNativeOptimizations = true; @@ -62,24 +82,13 @@ configuration = { services.desktopManager.plasma6.enable = true; services.displayManager.sddm.enable = true; - services.displayManager.gdm.enable = lib.mkForce false; + services.xserver.displayManager.gdm.enable = lib.mkForce false; programs.seahorse.enable = lib.mkForce false; }; }; }; - # services.monado = { - # enable = true; - # defaultRuntime = true; - # }; - # - # systemd.user.services.monado.environment = { - # STEAMVR_LH_ENABLE = "1"; - # XRT_COMPOSITOR_COMPUTE = "1"; - # XRT_COMPOSITOR_FORCE_WAYLAND_DIRECT = "1"; - # }; - programs.steam = { enable = true; extraPackages = with pkgs; [ @@ -120,16 +129,28 @@ protocols.wayland.enable = true; + programs.openvpn3.enable = true; + services.udev.extraRules = '' KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev" ''; services.fstrim.enable = true; services.vpn.enable = true; services.xserver.enable = true; + services.vpn.mullvad = true; services.lorri.enable = true; services.udisks2.enable = true; - services.crypto.enable = false; - services.torrent.enable = false; + services.transmission = { + enable = false; + package = pkgs.transmission_4; + settings = { + download-dir = "/home/zoey/Downloads"; + incomplete-dir = "/home/zoey/Downloads/.incomplete"; + incomplete-dir-enabled = true; + }; + user = "zoey"; + group = "users"; + }; services.gnome.gnome-keyring.enable = true; # services.solaar = { # enable = true; @@ -139,13 +160,11 @@ polkitPolicyOwnerUsername = "zoey"; }; - security.polkit.enable = true; - # Bootloader. - boot.loader.systemd-boot.enable = lib.mkForce false; + boot.loader.systemd-boot.enable = true; boot.lanzaboote = { - enable = true; - pkiBundle = "/var/lib/sbctl"; + enable = false; + pkiBundle = "/etc/secureboot"; }; boot.loader.efi.canTouchEfiVariables = true; boot.blacklistedKernelModules = ["joydev"]; @@ -153,23 +172,18 @@ networking.hostName = "earth"; # Define your hostname. networking.hostId = "a2a8bfcc"; - networking.extraHosts = '' - 127.0.0.1 blahaj.local - 127.0.0.1 test.blahaj.local - 127.0.0.2 earth - ''; - networking.networkmanager = { enable = true; unmanaged = ["enp6s0"]; # insertNameservers = ["1.1.1.1" "1.0.0.1"]; }; - # services.scx.enable = true; - # services.scx.scheduler = "scx_rusty"; - # services.scx.package = pkgs.scx_git.full; + services.scx.enable = true; + services.scx.scheduler = "scx_rusty"; + services.scx.package = pkgs.scx_git.full; - boot.kernelPackages = pkgs.linuxPackages_zen; + boot.kernelPackages = pkgs.linuxPackages_cachyos-lto; + # CachyOS-inspired kernel parameters for better desktop responsiveness and gaming boot.kernelParams = [ "nowatchdog" "preempt=full" @@ -177,6 +191,11 @@ "tsc=reliable" "clocksource=tsc" "preempt=voluntary" + "futex.futex2_interface=1" # Better Wine/Proton compatibility + "NVreg_UsePageAttributeTable=1" # Improved GPU memory management + "io_uring.sqpoll=2" # Modern I/O scheduler polling + "transparent_hugepage=madvise" # Better memory management + "elevator=bfq" # Better I/O scheduling for gaming ]; boot.supportedFilesystems = ["ntfs"]; @@ -199,30 +218,43 @@ pkgs.sbctl pkgs.kdiskmark pkgs.mangohud - pkgs.sops + inputs.quickshell.packages.${system}.default + (pkgs.shadps4.overrideAttrs { + version = "0.9.0"; + src = pkgs.fetchFromGitHub { + owner = "AzaharPlus"; + repo = "shadPS4Plus"; + tag = "SHADPS4PLUS_0_9_0_A"; + hash = "sha256-ZwP+bOE4roWt51Ii53blDZzdq/SxK4Q69I4rLCNARLA="; + fetchSubmodules = true; + }; + }) (pkgs.lutris.override { extraPkgs = pkgs: [ pkgs.winetricks ]; }) + pkgs.vulkan-hdr-layer-kwin6 pkgs.bottles pkgs.file-roller + pkgs.podman-tui pkgs.dive pkgs.docker-compose + pkgs.podman-compose pkgs.transmission_4 pkgs.protonup-qt pkgs.restic pkgs.qt5.qtwayland - pkgs.vkbasalt # Vulkan post-processing layer for better visuals + pkgs.vkBasalt # Vulkan post-processing layer for better visuals pkgs.goverlay # MangoHud and vkBasalt GUI configurator pkgs.cpupower-gui # CPU frequency control GUI pkgs.ananicy-cpp # Process priority daemon - pkgs.umu-launcher - # (inputs.umu.packages.${system}.umu-launcher.override { - # withTruststore = true; - # withDeltaUpdates = true; - # }) + (inputs.umu.packages.${system}.umu-launcher.override { + withTruststore = true; + withDeltaUpdates = true; + }) inputs.agenix.packages.${system}.agenix + inputs.awsvpnclient.packages.${system}.awsvpnclient ]; programs.fish.enable = true; @@ -231,18 +263,12 @@ users.users.zoey = { isNormalUser = true; description = "zoey"; - extraGroups = [ - "networkmanager" - "wheel" - "docker" - "libvirtd" - "plugdev" - ]; + extraGroups = ["networkmanager" "wheel" "docker" "libvirtd" "plugdev"]; shell = pkgs.fish; initialHashedPassword = "$6$rounds=2000000$rFBJH7LwdEHvv.0i$HdHorWqp8REPdWPk5fEgZXX1TujRJkMxumGK0f0elFN0KRPlBjJMW2.35A.ID/o3eC/hGTwbSJAcJcwVN2zyV/"; }; - services.gnome.core-apps.enable = true; # Enable core GNOME utilities + services.gnome.core-utilities.enable = true; # Enable core GNOME utilities users.groups.plugdev = {}; @@ -262,7 +288,12 @@ ports = [22]; }; - networking.firewall.allowedTCPPorts = [22 1069]; + networking.firewall.allowedTCPPorts = [22]; + + services.monero = { + enable = false; + mining.enable = false; + }; services.samba = { enable = true; @@ -301,13 +332,10 @@ sites.mealie.enable = false; virtualisation.containers.enable = true; - # virtualisation.podman = { - # enable = true; - # dockerCompat = true; - # defaultNetwork.settings.dns_enabled = true; - # }; - virtualisation.docker = { + virtualisation.podman = { enable = true; + dockerCompat = true; + defaultNetwork.settings.dns_enabled = true; }; hardware.gpu-passthru.enable = true; diff --git a/systems/x86_64-linux/pluto/default.nix b/systems/x86_64-linux/pluto/default.nix index 3372d60..5f65ffe 100644 --- a/systems/x86_64-linux/pluto/default.nix +++ b/systems/x86_64-linux/pluto/default.nix @@ -97,7 +97,7 @@ pterodactyl.enable = true; search.enable = true; map.enable = true; - hydra.enable = false; + hydra.enable = true; cache.enable = true; minio.enable = true; immich.enable = true; @@ -105,7 +105,7 @@ sourcehut.enable = false; forgejo.enable = true; zoeycomputer = { - enable = false; + enable = true; domain = "zoeys.computer"; phx = { database = { @@ -181,7 +181,6 @@ hashedPassword = "$6$rounds=2000000$673Iz4rM8Dr9yz7C$Xq5JXxE7ioUrpZmMf3uTrPN2ODrEu3Sph6EhWyPoM5Ty./FhgB9hU0mz1yYo8sUj7wdUMWfR98haVJ24Wv3BK/"; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFuw7D+qDzzxBKsfKEmMd7odc98m3ZEnqWYFtuKwvC9k zoey@earth" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOTCj3aEDA8Bbg7ka1nnA6d92IyXYTSWKz/e1bl5Fdf+ root@earth" ]; }; diff --git a/systems/x86_64-linux/venus/default.nix b/systems/x86_64-linux/venus/default.nix index 825fecc..790b834 100644 --- a/systems/x86_64-linux/venus/default.nix +++ b/systems/x86_64-linux/venus/default.nix @@ -45,7 +45,6 @@ services.web.nginx.enable = true; services.mail.enable = true; - services.matrix.enable = false; environment.systemPackages = map lib.lowPrio [ pkgs.curl