From e986986e79da4ea85176145a234eb5dab5749ee7 Mon Sep 17 00:00:00 2001 From: Lucy Hochkamp Date: Tue, 16 Sep 2025 09:54:20 +0200 Subject: [PATCH] meow lucy should commit more often xd --- flake.lock | 226 ++++---------------- flake.nix | 13 +- lib/default.nix | 39 +++- modules/desktop/audio.nix | 2 + modules/desktop/waybar-wireplumber-db.patch | 22 ++ modules/desktop/waybar.nix | 27 ++- modules/presets/cli.nix | 1 + modules/presets/development.nix | 2 +- overlays/default.nix | 4 +- 9 files changed, 124 insertions(+), 212 deletions(-) create mode 100644 modules/desktop/waybar-wireplumber-db.patch diff --git a/flake.lock b/flake.lock index c9859923..5d585477 100644 --- a/flake.lock +++ b/flake.lock @@ -16,11 +16,11 @@ "uv2nix": "uv2nix" }, "locked": { - "lastModified": 1757062396, - "narHash": "sha256-403iuoMVVjk64sF1GgZfrRwOnVU1H14sflE+LNp927c=", + "lastModified": 1757676906, + "narHash": "sha256-2Zbde5orbGsYdzroe51P1AW8pFMCNyqHgLjmHYJvOmE=", "owner": "nix-community", "repo": "authentik-nix", - "rev": "22827e9a0cc002a076ee8bd14c3433ebc6c87f95", + "rev": "04db807ac00ba6d62808ffab18b3b6d500b6f7cb", "type": "github" }, "original": { @@ -61,27 +61,6 @@ "type": "github" } }, - "csharp-language-server": { - "inputs": { - "flake-utils": "flake-utils_2", - "nixpkgs": [ - "nixpkgs-master" - ] - }, - "locked": { - "lastModified": 1757077534, - "narHash": "sha256-qX9A9/ymQtWlEtMCeUXaZp+OVGzn+ebZKGTb83i3G4U=", - "owner": "sofusa", - "repo": "csharp-language-server", - "rev": "89c5ad77cdb3b8b6ba7371b151ee6e4819955540", - "type": "github" - }, - "original": { - "owner": "sofusa", - "repo": "csharp-language-server", - "type": "github" - } - }, "flake-compat": { "flake": false, "locked": { @@ -196,24 +175,6 @@ } }, "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_3": { "inputs": { "systems": "systems_3" }, @@ -231,39 +192,6 @@ "type": "github" } }, - "flake-utils_4": { - "inputs": { - "systems": "systems_5" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flakey-profile": { - "locked": { - "lastModified": 1712898590, - "narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=", - "owner": "lf-", - "repo": "flakey-profile", - "rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d", - "type": "github" - }, - "original": { - "owner": "lf-", - "repo": "flakey-profile", - "type": "github" - } - }, "gitignore": { "inputs": { "nixpkgs": [ @@ -294,16 +222,16 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1753689336, - "narHash": "sha256-ET3rx0Bmtwvww1KCvRCdaQqIUgYtRVNNJPNdnrHJb9E=", - "owner": "sofusa", - "repo": "helix-pull-diagnostics", - "rev": "cabced632fe6f2aba31202f0d6611e74aadfe537", + "lastModified": 1757982959, + "narHash": "sha256-b2a0ikawsIBcqwM05mv4tjsn0YfptAEcdEcTNhOD8Pk=", + "owner": "helix-editor", + "repo": "helix", + "rev": "c0921202a0a9f9e3003a845824d3365e2f08467f", "type": "github" }, "original": { - "owner": "sofusa", - "repo": "helix-pull-diagnostics", + "owner": "helix-editor", + "repo": "helix", "type": "github" } }, @@ -314,11 +242,11 @@ ] }, "locked": { - "lastModified": 1757075491, - "narHash": "sha256-a+NMGl5tcvm+hyfSG2DlVPa8nZLpsumuRj1FfcKb2mQ=", + "lastModified": 1757997814, + "narHash": "sha256-F+1aoG+3NH4jDDEmhnDUReISyq6kQBBuktTUqCUWSiw=", "owner": "nix-community", "repo": "home-manager", - "rev": "f56bf065f9abedc7bc15e1f2454aa5c8edabaacf", + "rev": "5820376beb804de9acf07debaaff1ac84728b708", "type": "github" }, "original": { @@ -412,44 +340,6 @@ "type": "github" } }, - "lix": { - "flake": false, - "locked": { - "lastModified": 1753306924, - "narHash": "sha256-jLCEW0FvjFhC+c4RHzH+xbkSOxrnpFHnhjOw6sudhx0=", - "rev": "1a4393d0aac31aba21f5737ede1b171e11336d77", - "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/1a4393d0aac31aba21f5737ede1b171e11336d77.tar.gz?rev=1a4393d0aac31aba21f5737ede1b171e11336d77" - }, - "original": { - "type": "tarball", - "url": "https://git.lix.systems/lix-project/lix/archive/release-2.93.tar.gz" - } - }, - "lix-module": { - "inputs": { - "flake-utils": "flake-utils_3", - "flakey-profile": "flakey-profile", - "lix": "lix", - "nixpkgs": [ - "nixpkgs-master" - ] - }, - "locked": { - "lastModified": 1756125859, - "narHash": "sha256-6a+PWILmqHCs9B5eIBLg6HSZ8jYweZpgOWO8FlyVwYI=", - "ref": "release-2.93", - "rev": "d3292125035b04df00d01549a26e948631fabe1e", - "revCount": 156, - "type": "git", - "url": "https://git.lix.systems/lix-project/nixos-module.git" - }, - "original": { - "ref": "release-2.93", - "type": "git", - "url": "https://git.lix.systems/lix-project/nixos-module.git" - } - }, "mobile-nixos": { "flake": false, "locked": { @@ -511,11 +401,11 @@ "nheko": { "flake": false, "locked": { - "lastModified": 1757024319, - "narHash": "sha256-UgFN4xSuzDp/XtTurhhpVRiEbbmcCNutehnV+bxvOVo=", + "lastModified": 1757886200, + "narHash": "sha256-FU73Pb47e6Q0qEAJcxDVhVLmL+hJ4gXvssRD9NcUNkM=", "owner": "Nheko-Reborn", "repo": "nheko", - "rev": "5b025fa2b0143d87d6ffceeb47edd84cc60de64a", + "rev": "2769642d3c7bd3c0d830b2f18ef6b3bf6a710bf4", "type": "github" }, "original": { @@ -532,11 +422,11 @@ "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1756926064, - "narHash": "sha256-5/1vyFRLvJWxhBgpPaV2orC0pjSgIny6JM6+joLyZok=", + "lastModified": 1758000903, + "narHash": "sha256-FyfB40rl2mbRGIvF2/6Iwv9xHDxOmhaE1MhlV6Efsg4=", "owner": "YaLTeR", "repo": "niri", - "rev": "c69464c1288789020d9a086f86c970a7dc49b8c7", + "rev": "c30e5c91851d77d48ff2120f0e710501b19d61b4", "type": "github" }, "original": { @@ -547,11 +437,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1757103352, - "narHash": "sha256-PtT7ix43ss8PONJ1VJw3f6t2yAoGH+q462Sn8lrmWmk=", + "lastModified": 1757943327, + "narHash": "sha256-w6cDExPBqbq7fTLo4dZ1ozDGeq3yV6dSN4n/sAaS6OM=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "11b2a10c7be726321bb854403fdeec391e798bf0", + "rev": "67a709cfe5d0643dafd798b0b613ed579de8be05", "type": "github" }, "original": { @@ -563,11 +453,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1756787288, - "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", + "lastModified": 1757745802, + "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", + "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1", "type": "github" }, "original": { @@ -594,11 +484,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1757182960, - "narHash": "sha256-xnA8bgigocJME3sMfXKH5STQ9yG5tv9Jp+c5mrGfdIM=", + "lastModified": 1758007619, + "narHash": "sha256-ADv63t4pEj5zhTAggwzyCbSpQosDtxKy0qg9cB9a1Eo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "70719dcf0748dcfc922b71a7bf788e824b7a8ea0", + "rev": "64334fda8d632bec7c80c9bef668ad9633a8dd64", "type": "github" }, "original": { @@ -627,11 +517,11 @@ "polkit": { "flake": false, "locked": { - "lastModified": 1756282082, - "narHash": "sha256-VGY6MbzUDekt3Dd/GbW+fQDeW/k7oZXXLUyvgU23cBI=", + "lastModified": 1757590391, + "narHash": "sha256-BVv3NA1ew7Xbslco+28eZdN1s5gJGyerdORQHsaFmiE=", "owner": "polkit-org", "repo": "polkit", - "rev": "93ed9a0bb689916fe28cc5da317dbcb91ca989d2", + "rev": "c3a189919ab53b5f3efe6022840e65f2ac367c41", "type": "github" }, "original": { @@ -720,13 +610,11 @@ "root": { "inputs": { "authentik": "authentik", - "csharp-language-server": "csharp-language-server", "helix": "helix", "home-manager": "home-manager", "impermanence": "impermanence", "kmonad": "kmonad", "lanzaboote": "lanzaboote", - "lix-module": "lix-module", "mobile-nixos": "mobile-nixos", "mtxclient": "mtxclient", "nheko": "nheko", @@ -832,11 +720,11 @@ ] }, "locked": { - "lastModified": 1754988908, - "narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=", + "lastModified": 1758007585, + "narHash": "sha256-HYnwlbY6RE5xVd5rh0bYw77pnD8lOgbT4mlrfjgNZ0c=", "owner": "Mic92", "repo": "sops-nix", - "rev": "3223c7a92724b5d804e9988c6b447a0d09017d48", + "rev": "f77d4cfa075c3de66fc9976b80e0c4fc69e2c139", "type": "github" }, "original": { @@ -890,50 +778,20 @@ "type": "github" } }, - "systems_4": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_5": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "terranix": { "inputs": { "flake-parts": "flake-parts_3", "nixpkgs": [ "nixpkgs" ], - "systems": "systems_4" + "systems": "systems_2" }, "locked": { - "lastModified": 1755942832, - "narHash": "sha256-odAkOwfQPClNpEVdHAz0wEZ8WdFKoGau2HcnMRsNpyE=", + "lastModified": 1757278723, + "narHash": "sha256-hTMi6oGU+6VRnW9SZZ+muFcbfMEf2ajjOp7Z2KM5MMY=", "owner": "terranix", "repo": "terranix", - "rev": "d1d1f186c9de5c58475e11bab219bc0467fb0b4d", + "rev": "924573fa6587ac57b0d15037fbd2d3f0fcdf17fb", "type": "github" }, "original": { @@ -969,7 +827,7 @@ }, "xwayland-satellite": { "inputs": { - "flake-utils": "flake-utils_4", + "flake-utils": "flake-utils_2", "nixpkgs": [ "nixpkgs-master" ], @@ -997,11 +855,11 @@ ] }, "locked": { - "lastModified": 1757174751, - "narHash": "sha256-HB01usaR5wg5LK3lV6S7Za2x4AfKrNceOnun/mlpChk=", + "lastModified": 1757999874, + "narHash": "sha256-kgV3ms4hR86tIxaNAYJI8NNgkmEygN+JwkXCPAx2P2U=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "6a0d727b623f46108c9bcaa87901e7f6e69e78c2", + "rev": "7dcbd22ca3943e4cfb3122f96cf515f028b3236a", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e02ffc93..d3601cca 100644 --- a/flake.nix +++ b/flake.nix @@ -20,10 +20,6 @@ # Optional but recommended to limit the size of your system closure. inputs.nixpkgs.follows = "nixpkgs"; }; - lix-module = { - url = "git+https://git.lix.systems/lix-project/nixos-module.git?ref=release-2.93"; - inputs.nixpkgs.follows = "nixpkgs-master"; - }; polkit.url = "github:polkit-org/polkit"; polkit.flake = false; @@ -44,10 +40,11 @@ mtxclient.flake = false; # helix - helix.url = "github:sofusa/helix-pull-diagnostics"; + helix.url = "github:helix-editor/helix"; + # helix.url = "github:sofusa/helix-pull-diagnostics"; helix.inputs.nixpkgs.follows = "nixpkgs-master"; - csharp-language-server.url = "github:sofusa/csharp-language-server"; - csharp-language-server.inputs.nixpkgs.follows = "nixpkgs-master"; + # csharp-language-server.url = "github:sofusa/csharp-language-server"; + # csharp-language-server.inputs.nixpkgs.follows = "nixpkgs-master"; # authentik @@ -76,7 +73,6 @@ ); overlays = [ self.overlays.default - # inputs.lix-module.overlays.default ]; genPkgs = system: @@ -90,7 +86,6 @@ inputs.lanzaboote.nixosModules.lanzaboote inputs.sops-nix.nixosModules.sops inputs.impermanence.nixosModules.impermanence - inputs.lix-module.nixosModules.lixFromNixpkgs inputs.authentik.nixosModules.default ] ++ (import ./modules/module-list.nix); diff --git a/lib/default.nix b/lib/default.nix index eb53e869..d4c18073 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -16,16 +16,43 @@ rec { loadInstance = extraModules: instance: instanceConfigs: nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs instanceConfigs; instanceConfig = instance; }; + specialArgs = { + inherit inputs instanceConfigs; + instanceConfig = instance; + }; modules = instance.modules ++ extraModules ++ [ - { - nixpkgs.overlays = [ self.overlays.default ]; - nixpkgs.config.allowUnfree = true; - networking.hostName = instance.hostName; - } + ( + { pkgs, ... }: + { + + nixpkgs.overlays = [ + (final: prev: { + inherit (final.unstable.lixPackageSets.latest) + nixpkgs-review + nix-direnv + nix-eval-jobs + nix-fast-build + colmena + ; + }) + ]; + + nix.package = pkgs.unstable.lixPackageSets.latest.lix; + } + ) + ( + { pkgs, ... }: + { + nixpkgs.overlays = [ + self.overlays.default + ]; + nixpkgs.config.allowUnfree = true; + networking.hostName = instance.hostName; + } + ) ]; }; } diff --git a/modules/desktop/audio.nix b/modules/desktop/audio.nix index 71531680..76cc1351 100644 --- a/modules/desktop/audio.nix +++ b/modules/desktop/audio.nix @@ -173,9 +173,11 @@ in default = { }; }; config = mkIf cfg.enable { + # https://github.com/jaakkopasanen/AutoEq/blob/master/results/oratory1990/in-ear/Shure%20SE215/Shure%20SE215%20ParametricEQ.txt xyno.desktop.audio.eq.se215 = { displayName = "Shure SE215"; hwAddr = "alsa_output.usb-Synaptics_CX31993_384Khz_HIFI_AUDIO-00.analog-stereo"; + # hideParent = false; extraConfig."capture.props"."device.icon-name" = "audio-headphones"; filterText = '' Preamp: -5.7 dB diff --git a/modules/desktop/waybar-wireplumber-db.patch b/modules/desktop/waybar-wireplumber-db.patch new file mode 100644 index 00000000..a0f718e4 --- /dev/null +++ b/modules/desktop/waybar-wireplumber-db.patch @@ -0,0 +1,22 @@ +diff --git a/src/modules/wireplumber.cpp b/src/modules/wireplumber.cpp +index a43ad29b..d04edd18 100644 +--- a/src/modules/wireplumber.cpp ++++ b/src/modules/wireplumber.cpp +@@ -436,7 +437,7 @@ auto waybar::modules::Wireplumber::update() -> void { + label_.get_style_context()->remove_class("source-muted"); + } + +- int vol = round(volume_ * 100.0); ++ double vol = 20 * std::log10(volume_); // % to dB + int source_vol = round(source_volume_ * 100.0); + + // Get the state and apply state-specific format if available +@@ -450,7 +451,7 @@ auto waybar::modules::Wireplumber::update() -> void { + } + + // Prepare source format string (similar to PulseAudio) +- std::string format_source = "{volume}%"; ++ std::string format_source = "{volume}dB"; + if (source_muted_) { + if (config_["format-source-muted"].isString()) { + format_source = config_["format-source-muted"].asString(); diff --git a/modules/desktop/waybar.nix b/modules/desktop/waybar.nix index 6236707c..ff59deb3 100644 --- a/modules/desktop/waybar.nix +++ b/modules/desktop/waybar.nix @@ -28,8 +28,8 @@ let "battery" "power-profiles-daemon" "backlight" - "cpu" "temperature" + "cpu" "memory" "disk" "network" @@ -53,11 +53,13 @@ let max-length = 80; }; wireplumber = { - "format" = "{icon} {volume}%"; - "format-muted" = " MUTE"; + "format" = "{icon} {volume:.2f} dB"; + "format-muted" = " -inf dB"; # "on-click" = "${pkgs.pwvucontrol}/bin/pwvucontrol"; "on-click" = "${pkgs.pavucontrol}/bin/pavucontrol"; "on-click-right" = "${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; + "on-scroll-up" = "${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ -l 1 1%+"; + "on-scroll-down" = "${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ -l 1 1%-"; "format-icons" = [ "" "" @@ -76,8 +78,8 @@ let "󰃟" "󰃠" ]; - "on-scroll-up" = "${pkgs.brightnessctl}/bin/brightnessctl s +10"; - "on-scroll-down" = "${pkgs.brightnessctl}/bin/brightnessctl s 10-"; + "on-scroll-up" = "${pkgs.light}/bin/light -A 5"; + "on-scroll-down" = "${pkgs.light}/bin/light -U 5"; }; "idle_inhibitor" = { format = "{icon} "; @@ -104,7 +106,7 @@ let }; "cpu" = { "interval" = 10; - "format" = " {:0.0f}%"; + "format" = " {:0.0f}%"; "max-length" = 10; }; "temperature" = { @@ -138,9 +140,9 @@ let }; }; disk = { - format = "󰋊 {specific_used:0.0f}/{specific_total:0.0f}GB"; - unit = "GB"; - path = "/persistent"; + format = "󰋊 {specific_used:0.1f}/{specific_total:0.1f}TB"; + unit = "TB"; + path = "/"; }; "network" = { "on-click" = @@ -429,7 +431,12 @@ in }; config = lib.mkIf cfg.enable { programs.waybar.enable = true; - programs.waybar.package = cfg.package; + programs.waybar.package = cfg.package.overrideAttrs (super: { + # version = super.version + "-patched"; + patches = [ + ./waybar-wireplumber-db.patch + ]; + }); programs.light.enable = true; systemd.user.services.waybar.wantedBy = lib.mkForce [ cfg.wantedBy ]; diff --git a/modules/presets/cli.nix b/modules/presets/cli.nix index 6fe4158f..f5453f24 100644 --- a/modules/presets/cli.nix +++ b/modules/presets/cli.nix @@ -114,6 +114,7 @@ in w3m yt-dlp p7zip + ncdu ]; programs.mosh.enable = true; environment.variables.EDITOR = "hx"; diff --git a/modules/presets/development.nix b/modules/presets/development.nix index 7a676174..c06f739d 100644 --- a/modules/presets/development.nix +++ b/modules/presets/development.nix @@ -26,7 +26,7 @@ in environment.systemPackages = with pkgs; [ unstable.jetbrains.rider - android-studio + # android-studio nixpkgs-manual nixpkgs-manual.lib-docs podman-compose diff --git a/overlays/default.nix b/overlays/default.nix index f2f37184..136bedbf 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -2,11 +2,11 @@ inputs: self: super: { xwayland-satellite = inputs.xwayland-satellite.packages.${super.system}.default; mtxclient = super.mtxclient.overrideAttrs (old: { - version = old.version + "-git"; + version = "git-${builtins.substring 0 8 inputs.nheko.rev}"; src = inputs.mtxclient; }); nheko = super.nheko.overrideAttrs (old: { - version = old.version + "-patched"; + version = "git-${builtins.substring 0 8 inputs.nheko.rev}-patched"; src = inputs.nheko; patches = (old.patches or [ ]) ++ [ (self.fetchpatch2 {