From b5eae95898a2223da5842d08734d18a48755a02c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Sun, 16 Mar 2025 22:25:58 +0100 Subject: [PATCH 01/27] wip: niri take 2 [skip-ci] Take two, since one wasn't enough. --- flake-modules/nixos-modules.nix | 1 + flake.lock | 62 +++++++++++++++++++++++++++++++++ flake.nix | 11 ++++++ 3 files changed, 74 insertions(+) diff --git a/flake-modules/nixos-modules.nix b/flake-modules/nixos-modules.nix index ef8355e..44ec630 100644 --- a/flake-modules/nixos-modules.nix +++ b/flake-modules/nixos-modules.nix @@ -9,6 +9,7 @@ let nixosModule = { imports = [ + inputs.niri.nixosModules.niri inputs.stylix.nixosModules.stylix inputs.home-manager.nixosModules.home-manager ../modules/nixos diff --git a/flake.lock b/flake.lock index 84b6b4f..ba3e58a 100644 --- a/flake.lock +++ b/flake.lock @@ -275,6 +275,50 @@ "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0.tar.gz" } }, + "niri": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": [], + "nixpkgs": [ + "unstable" + ], + "nixpkgs-stable": [ + "nixpkgs" + ], + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": [] + }, + "locked": { + "lastModified": 1742108116, + "narHash": "sha256-NrV9ysEfSbeRUPo0jdCBeesuNLTVrpHGXg40snH1YGE=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "824f10012de455a1d0ef795a605f28948ee10467", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1740117926, + "narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "b94a5db8790339cf9134873d8b490be69e02ac71", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v25.02", + "repo": "niri", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1742388435, @@ -334,6 +378,7 @@ "flake-parts": "flake-parts", "home-manager": "home-manager", "lix-module": "lix-module", + "niri": "niri", "nixpkgs": "nixpkgs", "nixvim": "nixvim", "stylix": "stylix", @@ -471,6 +516,23 @@ "repo": "treefmt-nix", "type": "github" } + }, + "xwayland-satellite-stable": { + "flake": false, + "locked": { + "lastModified": 1739246919, + "narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "ref": "v0.5.1", + "repo": "xwayland-satellite", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 8c9a20b..6f6c265 100644 --- a/flake.nix +++ b/flake.nix @@ -43,6 +43,17 @@ nuschtosSearch.follows = ""; }; }; + niri = { + url = "github:sodiboo/niri-flake"; + inputs = { + # Deduplicate + nixpkgs.follows = "unstable"; + nixpkgs-stable.follows = "nixpkgs"; + # Unused + niri-unstable.follows = ""; + xwayland-satellite-unstable.follows = ""; + }; + }; flake-parts = { url = "github:hercules-ci/flake-parts"; inputs.nixpkgs-lib.follows = "nixpkgs"; From 673f989e992a0cdeeb100e15f60bd0128cfb5110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Fri, 21 Mar 2025 17:21:05 +0100 Subject: [PATCH 02/27] ci: remove magic-nix-cache-action It is deprecated due to the GitHub cache v1 API sunsetting --- .github/workflows/check.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index dd7df12..1f8ead4 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -16,7 +16,6 @@ jobs: with: source-url: "https://install.lix.systems/lix/lix-installer-x86_64-linux" diagnostic-endpoint: "" - - uses: DeterminateSystems/magic-nix-cache-action@6221693898146dc97e38ad0e013488a16477a4c4 # v9 - name: Run `nix flake check` run: | nix flake check --verbose --keep-going @@ -25,7 +24,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - uses: DeterminateSystems/magic-nix-cache-action@6221693898146dc97e38ad0e013488a16477a4c4 # v9 - uses: DeterminateSystems/nix-installer-action@v13 with: source-url: "https://install.lix.systems/lix/lix-installer-x86_64-linux" From 917d131cde06e1d656d5e7718f0bfaa568680586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Fri, 21 Mar 2025 17:50:23 +0100 Subject: [PATCH 03/27] refactor(modules/nixos): move stuff around This makes the module a bit clearer and easier to extend. --- flake-modules/docs.nix | 8 +- modules/lib.nix | 27 +++++ modules/nixos/default.nix | 185 ++++++++++++++------------------ modules/nixos/dev.nix | 18 ++++ modules/nixos/gui.nix | 117 ++++++++++++++++++++ modules/nixos/gui/default.nix | 118 -------------------- modules/nixos/options.nix | 181 +++++++++++++++---------------- modules/nixos/styling.nix | 43 ++++++++ modules/nixos/stylix-config.nix | 36 ------- 9 files changed, 374 insertions(+), 359 deletions(-) create mode 100644 modules/lib.nix create mode 100644 modules/nixos/dev.nix create mode 100644 modules/nixos/gui.nix delete mode 100644 modules/nixos/gui/default.nix create mode 100644 modules/nixos/styling.nix delete mode 100644 modules/nixos/stylix-config.nix diff --git a/flake-modules/docs.nix b/flake-modules/docs.nix index 76ffb19..8e6402a 100644 --- a/flake-modules/docs.nix +++ b/flake-modules/docs.nix @@ -10,13 +10,13 @@ toplevelOption: option: option // { visible = option.visible && builtins.elemAt option.loc 0 == toplevelOption; }; home-eval = lib.evalModules { - modules = [ (modules + "/hm/options.nix") ]; + modules = [ "${modules}/hm/options.nix" ]; specialArgs = { inherit pkgs; }; }; - nvim-eval = lib.evalModules { modules = [ (modules + "/nixvim/options.nix") ]; }; - nixos-eval = lib.evalModules { modules = [ (modules + "/nixos/options.nix") ]; }; + nvim-eval = lib.evalModules { modules = [ "${modules}/nixvim/options.nix" ]; }; + nixos-eval = lib.evalModules { modules = [ "${modules}/nixos/options.nix" ]; }; home-markdown = (pkgs.nixosOptionsDoc { inherit (home-eval) options; @@ -56,7 +56,7 @@ ''; nativeBuildInputs = [ pkgs.mdbook-toc ]; - buildPhase = "${pkgs.mdbook}/bin/mdbook build --dest-dir $out"; + buildPhase = "${pkgs.mdbook}/bin/mdbook build --dest-dir \"$out\""; }; }; }; diff --git a/modules/lib.nix b/modules/lib.nix new file mode 100644 index 0000000..3e3a288 --- /dev/null +++ b/modules/lib.nix @@ -0,0 +1,27 @@ +{ lib }: +let + inherit (lib) types; +in +{ + # Like mkEnableOption but defaults to true + mkDisableOption = + option: + (lib.mkEnableOption option) + // { + default = true; + example = false; + }; + # A option that accepts an image (and shows it in the docs) + mkImageOption = + { + description, + url, + sha256 ? "", + }: + lib.mkOption { + inherit description; + type = types.path; + default = builtins.fetchurl { inherit url sha256; }; + defaultText = lib.literalMD "![${description}](${url})"; + }; +} diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 58eb1e4..18c44c4 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -1,11 +1,6 @@ -{ - config, - pkgs, - lib, - ... -}: +{ pkgs, lib, ... }@args: let - cfg = config.jconfig; + cfg = args.config.jconfig; keysFromGithub = lib.attrsets.mapAttrs' (username: sha256: { name = "pubkeys/${username}"; value = { @@ -20,108 +15,88 @@ in { imports = [ ./options.nix - ./gui - { stylix = import ./stylix-config.nix { inherit config pkgs; }; } + ./dev.nix + ./gui.nix + ./styling.nix ]; - config = lib.mkIf cfg.enable ( - lib.mkMerge [ - { - boot.plymouth = { - inherit (cfg.styling) enable; - }; + config = lib.mkIf cfg.enable { + # Enable unlocking the gpg-agent at boot (configured through home.nix) + security.pam.services.login.gnupg.enable = true; - # Enable unlocking the gpg-agent at boot (configured through home.nix) - security.pam.services.login.gnupg.enable = true; + environment.systemPackages = [ + # CLI tools + pkgs.fd + pkgs.ripgrep + pkgs.du-dust + pkgs.curl + pkgs.zip + pkgs.unzip + ]; - environment.systemPackages = [ - # CLI tools - pkgs.fd - pkgs.ripgrep - pkgs.du-dust - pkgs.curl - pkgs.zip - pkgs.unzip + programs = { + # Shell prompt + starship = { + enable = true; + settings = lib.mkMerge [ + { + format = "$time$all"; + add_newline = false; + cmd_duration.min_time = 500; + cmd_duration.show_milliseconds = true; + time.disabled = false; + status = { + format = "[$signal_name$common_meaning$maybe_int](red)"; + symbol = "[✗](bold red)"; + disabled = false; + }; + sudo.disabled = false; + } + # Add nerdfont symbols + (lib.mkIf cfg.styling.enable (import ./starship-nerdfont-symbols.nix)) + # Remove the `in`s and `on`s from the prompt + (import ./starship-shorter-text.nix) ]; + }; + # Default shell + zsh.enable = true; + }; - # Enable dev documentation - documentation.dev = { - inherit (cfg.dev) enable; - }; - programs = { - # Shell prompt - starship = { - enable = true; - settings = lib.mkMerge [ - { - format = "$time$all"; - add_newline = false; - cmd_duration.min_time = 500; - cmd_duration.show_milliseconds = true; - time.disabled = false; - status = { - format = "[$signal_name$common_meaning$maybe_int](red)"; - symbol = "[✗](bold red)"; - disabled = false; - }; - sudo.disabled = false; - } - # Add nerdfont symbols - (lib.mkIf cfg.styling.enable (import ./starship-nerdfont-symbols.nix)) - # Remove the `in`s and `on`s from the prompt - (lib.mkIf cfg.styling.enable (import ./starship-shorter-text.nix)) - ]; - }; - # Default shell - zsh.enable = true; - }; - - environment.etc = keysFromGithub; - services = { - # Enable printer autodiscovery if printing is enabled - avahi = { - inherit (config.services.printing) enable; - nssmdns4 = true; - openFirewall = true; - }; - openssh.authorizedKeysFiles = builtins.map (path: "/etc/${path}") ( - builtins.attrNames keysFromGithub - ); - }; - users.defaultUserShell = pkgs.zsh; - # Open ports for spotifyd - networking.firewall = { - allowedUDPPorts = [ 5353 ]; - allowedTCPPorts = [ 2020 ]; - }; - # Nix Settings - nix = { - gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 30d"; - # run between 0 and 45min after boot if run was missed - randomizedDelaySec = "45min"; - }; - settings = { - use-xdg-base-directories = true; - auto-optimise-store = true; - experimental-features = [ - "nix-command" - "flakes" - ]; - }; - }; - } - # dev configuration - (lib.mkIf cfg.dev.enable { - users.extraUsers = lib.mkIf cfg.dev.jupyter.enable { jupyter.group = "jupyter"; }; - services.jupyter = { - inherit (cfg.dev.jupyter) enable; - group = "jupyter"; - user = "jupyter"; - }; - }) - ] - ); + environment.etc = keysFromGithub; + services = { + # Enable printer autodiscovery if printing is enabled + avahi = { + inherit (args.config.services.printing) enable; + nssmdns4 = true; + openFirewall = true; + }; + openssh.authorizedKeysFiles = builtins.map (keys: "/etc/${keys}") ( + builtins.attrNames keysFromGithub + ); + }; + users.defaultUserShell = pkgs.zsh; + # Open ports for spotifyd + networking.firewall = { + allowedUDPPorts = [ 5353 ]; + allowedTCPPorts = [ 2020 ]; + }; + # Nix Settings + nix = { + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 30d"; + # run between 0 and 45min after boot if run was missed + randomizedDelaySec = "45min"; + }; + settings = { + use-xdg-base-directories = true; + auto-optimise-store = true; + experimental-features = [ + "nix-command" + "flakes" + ]; + }; + }; + }; } diff --git a/modules/nixos/dev.nix b/modules/nixos/dev.nix new file mode 100644 index 0000000..b4aee84 --- /dev/null +++ b/modules/nixos/dev.nix @@ -0,0 +1,18 @@ +{ lib, config, ... }: +let + cfg = config.jconfig.dev; +in +{ + config = lib.mkIf (config.jconfig.enable && cfg.enable) { + # Enable dev documentation + documentation.dev = { inherit (cfg) enable; }; + + users.extraUsers = lib.mkIf cfg.jupyter.enable { jupyter.group = "jupyter"; }; + + services.jupyter = { + inherit (cfg.jupyter) enable; + group = "jupyter"; + user = "jupyter"; + }; + }; +} diff --git a/modules/nixos/gui.nix b/modules/nixos/gui.nix new file mode 100644 index 0000000..d07f706 --- /dev/null +++ b/modules/nixos/gui.nix @@ -0,0 +1,117 @@ +{ lib, pkgs, ... }@args: +let + cfg = args.config.jconfig.gui; + enable = args.config.jconfig.enable && cfg.enable; + linuxOlderThan6_3 = lib.versionOlder args.config.boot.kernelPackages.kernel.version "6.3"; +in +{ + config = + lib.flip lib.pipe + [ lib.mkMerge (lib.mkIf enable) ] + [ + { + environment.systemPackages = [ + pkgs.adwaita-icon-theme + pkgs.adwaita-qt + pkgs.nordzy-cursor-theme + pkgs.pinentry-qt + ]; + # Fix xdg-portals issue issue: https://github.com/NixOS/nixpkgs/issues/189851 + systemd.user.extraConfig = '' + DefaultEnvironment="PATH=/run/wrappers/bin:/etc/profiles/per-user/%u/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin" + ''; + + fonts.fontDir.enable = true; + programs = { + dconf.enable = true; + sway = { + enable = cfg.sway; + # No extra packages (by default it adds foot, dmenu, and other stuff) + extraPackages = [ ]; + wrapperFeatures = { + base = true; + gtk = true; + }; + }; + }; + security = { + polkit.enable = true; + rtkit.enable = true; # Recommended for pipewire + }; + services = { + flatpak.enable = true; + # Audio + pipewire = { + enable = true; + alsa = { + enable = true; + support32Bit = true; + }; + pulse.enable = true; + wireplumber.enable = true; + }; + # Dbus + dbus.enable = true; + # Virtual Filesystem (for PCManFM) + gvfs.enable = true; + }; + xdg.portal = { + # XDG portals + enable = true; + wlr.enable = true; + extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + config.preferred = { + # Default to the gtk portal + default = "gtk"; + # Use wlr for screenshots and screen recording + "org.freedesktop.impl.portal.Screenshot" = "wlr"; + }; + # Consider using darkman like upstream + }; + hardware = { + graphics.enable = true; + uinput.enable = true; + steam-hardware.enable = cfg.steamHardwareSupport; + }; + } + (lib.mkIf cfg.ydotool.enable { + environment.systemPackages = [ pkgs.ydotool ]; + systemd.user.services.ydotool = { + enable = cfg.ydotool.autoStart; + wantedBy = [ "default.target" ]; + description = "Generic command-line automation tool"; + documentation = [ + "man:ydotool(1)" + "man:ydotoold(8)" + ]; + serviceConfig = { + Type = "simple"; + Restart = "always"; + ExecStart = "${pkgs.ydotool}/bin/ydotoold"; + ExecReload = "${pkgs.util-linux}/bin/kill -HUP $MAINPID"; + KillMode = "process"; + TimeoutSec = 180; + }; + }; + }) + (lib.mkIf (linuxOlderThan6_3 && cfg."8bitdoFix") { + # Udev rules to start or stop systemd service when controller is connected or disconnected + services.udev.extraRules = # udev + '' + # May vary depending on your controller model, find product id using 'lsusb' + SUBSYSTEM=="usb", ATTR{idVendor}=="2dc8", ATTR{idProduct}=="3106", ATTR{manufacturer}=="8BitDo", RUN+="${pkgs.systemd}/bin/systemctl start 8bitdo-ultimate-xinput@2dc8:3106" + # This device (2dc8:3016) is "connected" when the above device disconnects + SUBSYSTEM=="usb", ATTR{idVendor}=="2dc8", ATTR{idProduct}=="3016", ATTR{manufacturer}=="8BitDo", RUN+="${pkgs.systemd}/bin/systemctl stop 8bitdo-ultimate-xinput@2dc8:3106" + ''; + + # Systemd service which starts xboxdrv in xbox360 mode + systemd.services."8bitdo-ultimate-xinput@" = { + unitConfig.Description = "8BitDo Ultimate Controller XInput mode xboxdrv daemon"; + serviceConfig = { + Type = "simple"; + ExecStart = "${pkgs.xboxdrv}/bin/xboxdrv --mimic-xpad --silent --type xbox360 --device-by-id %I --force-feedback"; + }; + }; + }) + ]; +} diff --git a/modules/nixos/gui/default.nix b/modules/nixos/gui/default.nix deleted file mode 100644 index 52d17b8..0000000 --- a/modules/nixos/gui/default.nix +++ /dev/null @@ -1,118 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -let - cfg = config.jconfig.gui; - enable = config.jconfig.enable && cfg.enable; - linuxOlderThan6_3 = lib.versionOlder config.boot.kernelPackages.kernel.version "6.3"; -in -{ - config = lib.mkMerge [ - (lib.mkIf enable { - environment.systemPackages = [ - pkgs.adwaita-icon-theme - pkgs.adwaita-qt - pkgs.nordzy-cursor-theme - pkgs.pinentry-qt - ] ++ lib.optional cfg.ydotool.enable pkgs.ydotool; - systemd = { - user.services.ydotool = lib.mkIf cfg.ydotool.enable { - enable = cfg.ydotool.autoStart; - wantedBy = [ "default.target" ]; - description = "Generic command-line automation tool"; - documentation = [ - "man:ydotool(1)" - "man:ydotoold(8)" - ]; - serviceConfig = { - Type = "simple"; - Restart = "always"; - ExecStart = "${pkgs.ydotool}/bin/ydotoold"; - ExecReload = "${pkgs.util-linux}/bin/kill -HUP $MAINPID"; - KillMode = "process"; - TimeoutSec = 180; - }; - }; - # Fix xdg-portals issue issue: https://github.com/NixOS/nixpkgs/issues/189851 - user.extraConfig = '' - DefaultEnvironment="PATH=/run/wrappers/bin:/etc/profiles/per-user/%u/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin" - ''; - }; - - fonts.fontDir.enable = true; - programs = { - dconf.enable = true; - sway = { - enable = cfg.sway; - # No extra packages (by default it adds foot, dmenu, and other stuff) - extraPackages = [ ]; - wrapperFeatures = { - base = true; - gtk = true; - }; - }; - }; - security = { - polkit.enable = true; - rtkit.enable = true; # Recommended for pipewire - }; - services = { - flatpak.enable = true; - # Audio - pipewire = { - enable = true; - alsa = { - enable = true; - support32Bit = true; - }; - pulse.enable = true; - wireplumber.enable = true; - }; - # Dbus - dbus.enable = true; - # Virtual Filesystem (for PCManFM) - gvfs.enable = true; - }; - xdg.portal = { - # XDG portals - enable = true; - wlr.enable = true; - extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; - config.preferred = { - # Default to the gtk portal - default = "gtk"; - # Use wlr for screenshots and screen recording - "org.freedesktop.impl.portal.Screenshot" = "wlr"; - }; - # Consider using darkman like upstream - }; - hardware = { - graphics.enable = true; - uinput.enable = true; - steam-hardware.enable = cfg.steamHardwareSupport; - }; - }) - (lib.mkIf (enable && linuxOlderThan6_3 && cfg."8bitdoFix") { - # Udev rules to start or stop systemd service when controller is connected or disconnected - services.udev.extraRules = # udev - '' - # May vary depending on your controller model, find product id using 'lsusb' - SUBSYSTEM=="usb", ATTR{idVendor}=="2dc8", ATTR{idProduct}=="3106", ATTR{manufacturer}=="8BitDo", RUN+="${pkgs.systemd}/bin/systemctl start 8bitdo-ultimate-xinput@2dc8:3106" - # This device (2dc8:3016) is "connected" when the above device disconnects - SUBSYSTEM=="usb", ATTR{idVendor}=="2dc8", ATTR{idProduct}=="3016", ATTR{manufacturer}=="8BitDo", RUN+="${pkgs.systemd}/bin/systemctl stop 8bitdo-ultimate-xinput@2dc8:3106" - ''; - - # Systemd service which starts xboxdrv in xbox360 mode - systemd.services."8bitdo-ultimate-xinput@" = { - unitConfig.Description = "8BitDo Ultimate Controller XInput mode xboxdrv daemon"; - serviceConfig = { - Type = "simple"; - ExecStart = "${pkgs.xboxdrv}/bin/xboxdrv --mimic-xpad --silent --type xbox360 --device-by-id %I --force-feedback"; - }; - }; - }) - ]; -} diff --git a/modules/nixos/options.nix b/modules/nixos/options.nix index 9e76f1c..d8b4e64 100644 --- a/modules/nixos/options.nix +++ b/modules/nixos/options.nix @@ -1,106 +1,95 @@ { lib, ... }: let inherit (lib) types; - # Like mkEnableOption but defaults to true - mkDisableOption = - option: - (lib.mkEnableOption option) - // { - default = true; - example = false; - }; - mkImageOption = - { - description, - url, - sha256 ? "", - }: - lib.mkOption { - inherit description; - type = types.path; - default = builtins.fetchurl { inherit url sha256; }; - defaultText = lib.literalMD "![${description}](${url})"; - }; - - gui.options = { - enable = lib.mkEnableOption "jalil's default gui configuration."; - # Fix for using Xinput mode on 8bitdo Ultimate C controller - # Inspired by https://aur.archlinux.org/packages/8bitdo-ultimate-controller-udev - # Adapted from: https://gist.github.com/interdependence/28452fbfbe692986934fbe1e54c920d4 - "8bitdoFix" = mkDisableOption "a fix for 8bitdo controllers"; - steamHardwareSupport = mkDisableOption "steam hardware support"; - ydotool = lib.mkOption { - description = "Jalil's default ydotool configuration."; - default = { }; - type = types.submodule { - options.enable = mkDisableOption "ydotool"; - options.autoStart = mkDisableOption "autostarting ydotool at login"; - }; - }; - sway = mkDisableOption "sway"; - }; - - styling.options = { - enable = mkDisableOption "jalil's default styling (disables stylix)"; - wallpaper = mkImageOption { - description = "The wallpaper to use."; - url = "https://raw.githubusercontent.com/lunik1/nixos-logo-gruvbox-wallpaper/d4937c424fad79c1136a904599ba689fcf8d0fad/png/gruvbox-dark-rainbow.png"; - sha256 = "036gqhbf6s5ddgvfbgn6iqbzgizssyf7820m5815b2gd748jw8zc"; - }; - bootLogo = mkImageOption { - description = "The logo used by plymouth at boot."; - # http://xenia-linux-site.glitch.me/images/cathodegaytube-splash.png - url = "https://efimero.github.io/xenia-images/cathodegaytube-splash.png"; - sha256 = "qKugUfdRNvMwSNah+YmMepY3Nj6mWlKFh7jlGlAQDo8="; - }; - }; - - config.options = { - enable = lib.mkEnableOption "jalil's default configuration."; - dev = lib.mkOption { - description = "Options for setting up a dev environment"; - default = { }; - type = types.submodule { - options.enable = lib.mkEnableOption "dev configuration"; - options.jupyter.enable = lib.mkEnableOption "jupyter configuration"; - }; - }; - gui = lib.mkOption { - description = "Jalil's default configuration for a NixOS gui."; - default = { }; - type = types.submodule gui; - }; - styling = lib.mkOption { - description = "Jalil's styling options"; - default = { }; - type = types.submodule styling; - }; - importSSHKeysFromGithub = lib.mkOption { - description = '' - Import public ssh keys from a github username. - - This will fetch the keys from https://github.com/$${username}.keys. - - The format is `"$${github-username}" = $${sha256-hash}`. The example - will try to fetch the keys from . - - **Warning**: this will interfere with services like gitea that override - the default ssh behaviour. In that case you want to use - `users.users..openssh.authorizedKeys.keyFiles` on the users you - want to allow ssh logins. - ''; - default = { }; - example = { - "jalil-salame" = "sha256:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; - }; - type = types.attrsOf types.str; - }; - }; + inherit (import ../lib.nix { inherit lib; }) + mkDisableOption + mkImageOption + ; in { options.jconfig = lib.mkOption { description = "Jalil's default NixOS configuration."; default = { }; - type = types.submodule config; + type = types.submodule { + options = { + enable = lib.mkEnableOption "jalil's default configuration."; + importSSHKeysFromGithub = lib.mkOption { + description = '' + Import public ssh keys from a github username. + + This will fetch the keys from https://github.com/$${username}.keys. + + The format is `"$${github-username}" = $${sha256-hash}`. The example + will try to fetch the keys from . + + **Warning**: this will interfere with services like gitea that override + the default ssh behaviour. In that case you want to use + `users.users..openssh.authorizedKeys.keyFiles` on the users you + want to allow ssh logins. + ''; + default = { }; + example = { + "jalil-salame" = "sha256:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; + }; + type = types.attrsOf types.str; + }; + + dev = lib.mkOption { + description = "Options for setting up a dev environment"; + default = { }; + type = types.submodule { + options = { + enable = lib.mkEnableOption "dev configuration"; + jupyter.enable = lib.mkEnableOption "jupyter configuration"; + }; + }; + }; + + gui = lib.mkOption { + description = "Jalil's default configuration for a NixOS gui."; + default = { }; + type = types.submodule { + options = { + enable = lib.mkEnableOption "jalil's default gui configuration."; + # Fix for using Xinput mode on 8bitdo Ultimate C controller + # Inspired by https://aur.archlinux.org/packages/8bitdo-ultimate-controller-udev + # Adapted from: https://gist.github.com/interdependence/28452fbfbe692986934fbe1e54c920d4 + "8bitdoFix" = mkDisableOption "a fix for 8bitdo controllers"; + steamHardwareSupport = mkDisableOption "steam hardware support"; + ydotool = lib.mkOption { + description = "Jalil's default ydotool configuration."; + default = { }; + type = types.submodule { + options.enable = mkDisableOption "ydotool"; + options.autoStart = mkDisableOption "autostarting ydotool at login"; + }; + }; + sway = mkDisableOption "sway"; + }; + }; + }; + + styling = lib.mkOption { + description = "Jalil's styling options"; + default = { }; + type = types.submodule { + options = { + enable = mkDisableOption "jalil's default styling (disables stylix)"; + wallpaper = mkImageOption { + description = "The wallpaper to use."; + url = "https://raw.githubusercontent.com/lunik1/nixos-logo-gruvbox-wallpaper/d4937c424fad79c1136a904599ba689fcf8d0fad/png/gruvbox-dark-rainbow.png"; + sha256 = "036gqhbf6s5ddgvfbgn6iqbzgizssyf7820m5815b2gd748jw8zc"; + }; + bootLogo = mkImageOption { + description = "The logo used by plymouth at boot."; + # http://xenia-linux-site.glitch.me/images/cathodegaytube-splash.png + url = "https://efimero.github.io/xenia-images/cathodegaytube-splash.png"; + sha256 = "qKugUfdRNvMwSNah+YmMepY3Nj6mWlKFh7jlGlAQDo8="; + }; + }; + }; + }; + }; + }; }; } diff --git a/modules/nixos/styling.nix b/modules/nixos/styling.nix new file mode 100644 index 0000000..b20a2d7 --- /dev/null +++ b/modules/nixos/styling.nix @@ -0,0 +1,43 @@ +{ lib, pkgs, ... }@args: +let + cfg = args.config.jconfig.styling; + enable = args.config.jconfig.enable && cfg.enable; +in +{ + config = lib.mkIf enable { + boot.plymouth = { inherit (cfg) enable; }; + + stylix = { + inherit (cfg) enable; + image = cfg.wallpaper; + base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml"; + polarity = "dark"; + fonts = { + monospace = { + name = "JetBrains Mono"; + package = pkgs.jetbrains-mono; + }; + sansSerif = { + name = "Noto Sans"; + package = pkgs.noto-fonts; + }; + serif = { + name = "Noto Serif"; + package = pkgs.noto-fonts; + }; + emoji = { + package = pkgs.noto-fonts-emoji; + name = "Noto Color Emoji"; + }; + sizes.popups = 12; + }; + targets = { + plymouth = { + logoAnimated = false; + logo = cfg.bootLogo; + }; + nixvim.enable = false; + }; + }; + }; +} diff --git a/modules/nixos/stylix-config.nix b/modules/nixos/stylix-config.nix deleted file mode 100644 index a4e75d8..0000000 --- a/modules/nixos/stylix-config.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ config, pkgs }: -let - cfg = config.jconfig.styling; -in -{ - inherit (cfg) enable; - image = cfg.wallpaper; - base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml"; - polarity = "dark"; - fonts = { - monospace = { - name = "JetBrains Mono"; - package = pkgs.jetbrains-mono; - }; - sansSerif = { - name = "Noto Sans"; - package = pkgs.noto-fonts; - }; - serif = { - name = "Noto Serif"; - package = pkgs.noto-fonts; - }; - emoji = { - package = pkgs.noto-fonts-emoji; - name = "Noto Color Emoji"; - }; - sizes.popups = 12; - }; - targets = { - plymouth = { - logoAnimated = false; - logo = cfg.bootLogo; - }; - nixvim.enable = false; - }; -} From 0df4e76404c393b381ecaf866064ff0655b9ce15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Fri, 21 Mar 2025 19:05:31 +0100 Subject: [PATCH 04/27] refactor(modules/hm): tidy up the modules Should make further additions and refactors easier. --- modules/hm/default.nix | 88 +++-------------------------------- modules/hm/dev.nix | 101 +++++++++++++++++++++++++++++++++++++++++ modules/hm/users.nix | 29 ++++++------ 3 files changed, 120 insertions(+), 98 deletions(-) create mode 100644 modules/hm/dev.nix diff --git a/modules/hm/default.nix b/modules/hm/default.nix index 0f1e59a..e98a2a6 100644 --- a/modules/hm/default.nix +++ b/modules/hm/default.nix @@ -16,6 +16,7 @@ in imports = [ ./options.nix ./gui + ./dev.nix ./users.nix ]; @@ -23,7 +24,7 @@ in (lib.mkIf (cfg.enable && cfg.styling.enable) { stylix = { enable = true; - targets.nixvim.enable = false; # I prefer doing it myself + targets.nixvim.enable = false; # I prefer styling it myself }; }) (lib.mkIf cfg.enable { @@ -35,6 +36,7 @@ in "settings" "use-xdg-base-directories" ] true; + programs = { # Better cat (bat) bat = { @@ -84,6 +86,7 @@ in syntaxHighlighting.enable = true; }; }; + services = { # GPG Agent gpg-agent = { @@ -103,6 +106,7 @@ in }; }; }; + home = { stateVersion = "22.11"; # Extra packages @@ -127,6 +131,7 @@ in tree = "eza --tree"; }; }; + # XDG directories xdg = { enable = true; @@ -136,86 +141,5 @@ in }; }; }) - (lib.mkIf (cfg.enable && devcfg.enable) { - home = { - sessionVariables.MANPAGER = lib.optionalString devcfg.neovimAsManPager "nvim -c 'Man!' -o -"; - packages = devcfg.extraPackages; - }; - # Github CLI - programs = { - gh.enable = true; - gh-dash.enable = true; - # Git - git = { - enable = true; - difftastic = { - enable = true; - background = "dark"; - }; - lfs.enable = true; - extraConfig = { - # Add diff to the commit message editor - commit.verbose = true; - # Improve submodule diff - diff.submodule = "log"; - # Set the default branch name for new branches - init.defaultBranch = "main"; - # Better conflicts (also shows parent commit state) - merge.conflictStyle = "zdiff3"; - # Do not create merge commits when pulling (rebase but abort on conflict) - pull.ff = "only"; - # Use `--set-upstream` if the remote does not have the branch - push.autoSetupRemote = true; - rebase = { - # If there are uncommitted changes, stash them before rebasing - autoStash = true; - # If there are fixup! commits, squash them while rebasing - autoSquash = true; - }; - # Enable ReReRe (Reuse Recovered Resolution) auto resolve previously resolved conflicts - rerere.enabled = true; - # Improve submodule status - status.submoduleSummary = true; - }; - }; - lazygit.enable = true; - # Jujutsu (alternative DVCS (git-compatible)) - jujutsu = { - enable = true; - package = pkgs.unstable.jujutsu; - settings = { - ui.pager = "bat"; - # mimic git commit --verbose by adding a diff - templates.draft_commit_description = '' - concat( - description, - surround( - "\nJJ: This commit contains the following changes:\n", "", - indent("JJ: ", diff.stat(72)), - ), - surround( - "\nJJ: Diff:\n", "", - indent("JJ: ", diff.git()), - ), - ) - ''; - }; - }; - }; - }) - (lib.mkIf (cfg.enable && devcfg.enable && devcfg.rust.enable) { - home.packages = [ pkgs.rustup ] ++ devcfg.rust.extraPackages; - # Background code checker (for Rust) - programs.bacon = { - enable = true; - settings = { - export = { - enabled = true; - path = ".bacon-locations"; - line_format = "{kind} {path}:{line}:{column} {message}"; - }; - }; - }; - }) ]; } diff --git a/modules/hm/dev.nix b/modules/hm/dev.nix new file mode 100644 index 0000000..5e58c72 --- /dev/null +++ b/modules/hm/dev.nix @@ -0,0 +1,101 @@ +{ + pkgs, + lib, + config, + ... +}: +let + cfg = config.jhome.dev; +in +{ + config = + lib.flip lib.pipe + [ + lib.mkMerge + (lib.mkIf (config.jhome.enable && cfg.enable)) + ] + [ + (lib.mkIf cfg.rust.enable { + home.packages = [ pkgs.rustup ] ++ cfg.rust.extraPackages; + # Background code checker (for Rust) + programs.bacon = { + enable = true; + settings = { + export = { + enabled = true; + path = ".bacon-locations"; + line_format = "{kind} {path}:{line}:{column} {message}"; + }; + }; + }; + }) + { + home = { + sessionVariables.MANPAGER = lib.optionalString cfg.neovimAsManPager "nvim -c 'Man!' -o -"; + packages = cfg.extraPackages; + }; + + # Github CLI + programs = { + gh.enable = true; + gh-dash.enable = true; + # Git + git = { + enable = true; + difftastic = { + enable = true; + background = "dark"; + }; + lfs.enable = true; + extraConfig = { + # Add diff to the commit message editor + commit.verbose = true; + # Improve submodule diff + diff.submodule = "log"; + # Set the default branch name for new branches + init.defaultBranch = "main"; + # Better conflicts (also shows parent commit state) + merge.conflictStyle = "zdiff3"; + # Do not create merge commits when pulling (rebase but abort on conflict) + pull.ff = "only"; + # Use `--set-upstream` if the remote does not have the branch + push.autoSetupRemote = true; + rebase = { + # If there are uncommitted changes, stash them before rebasing + autoStash = true; + # If there are fixup! commits, squash them while rebasing + autoSquash = true; + }; + # Enable ReReRe (Reuse Recovered Resolution) auto resolve previously resolved conflicts + rerere.enabled = true; + # Improve submodule status + status.submoduleSummary = true; + }; + }; + lazygit.enable = true; + # Jujutsu (alternative DVCS (git-compatible)) + jujutsu = { + enable = true; + package = pkgs.unstable.jujutsu; + settings = { + ui.pager = "bat"; + # mimic git commit --verbose by adding a diff + templates.draft_commit_description = '' + concat( + description, + surround( + "\nJJ: This commit contains the following changes:\n", "", + indent("JJ: ", diff.stat(72)), + ), + surround( + "\nJJ: Diff:\n", "", + indent("JJ: ", diff.git()), + ), + ) + ''; + }; + }; + }; + } + ]; +} diff --git a/modules/hm/users.nix b/modules/hm/users.nix index acbf9a8..4b6ce60 100644 --- a/modules/hm/users.nix +++ b/modules/hm/users.nix @@ -4,15 +4,12 @@ let inherit (cfg.defaultIdentity) signingKey; cfg = jhome.user; - hasConfig = jhome.enable && cfg != null; hasKey = signingKey != null; - gpgHome = config.programs.gpg.homedir; - unlockKey = hasConfig && cfg.gpg.unlockKeys != [ ]; in { - config = lib.mkMerge [ - (lib.mkIf hasConfig { - programs.git = { + config = lib.mkIf (jhome.enable && cfg != null) { + programs = { + git = { userName = cfg.defaultIdentity.name; userEmail = cfg.defaultIdentity.email; signing = lib.mkIf hasKey { @@ -20,7 +17,8 @@ in key = signingKey; }; }; - programs.jujutsu.settings = { + + jujutsu.settings = { user = lib.mkIf (cfg.defaultIdentity != null) { inherit (cfg.defaultIdentity) name email; }; git.sign-on-push = lib.mkDefault hasKey; signing = lib.mkIf hasKey { @@ -29,14 +27,13 @@ in key = signingKey; }; }; - }) - (lib.mkIf unlockKey { - xdg.configFile.pam-gnupg.text = - '' - ${gpgHome} + }; - '' - + (lib.strings.concatLines cfg.gpg.unlockKeys); - }) - ]; + xdg.configFile.pam-gnupg.text = + lib.mkIf (cfg.unlockKeys != [ ]) '' + ${config.programs.gpg.homedir} + + '' + + (lib.strings.concatLines cfg.gpg.unlockKeys); + }; } From 17ef89c1a029f9811bf13ea3a31adfd5a3cc7007 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Fri, 21 Mar 2025 19:14:43 +0100 Subject: [PATCH 05/27] fix(modules/hm): don't set stateVersion Prefer setting it on the configuration. Also bump the example-vm to stateVersion 24.11. --- example-vm/default.nix | 1 + modules/hm/default.nix | 2 -- modules/hm/gui/keybindings.nix | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/example-vm/default.nix b/example-vm/default.nix index 89ed84e..ab7a40b 100644 --- a/example-vm/default.nix +++ b/example-vm/default.nix @@ -16,6 +16,7 @@ home = { username = "jdoe"; homeDirectory = "/home/jdoe"; + stateVersion = "24.11"; }; jhome = { enable = true; diff --git a/modules/hm/default.nix b/modules/hm/default.nix index e98a2a6..4332866 100644 --- a/modules/hm/default.nix +++ b/modules/hm/default.nix @@ -108,8 +108,6 @@ in }; home = { - stateVersion = "22.11"; - # Extra packages # Extra variables sessionVariables = { CARGO_HOME = "${config.xdg.dataHome}/cargo"; diff --git a/modules/hm/gui/keybindings.nix b/modules/hm/gui/keybindings.nix index 867be55..cfc8788 100644 --- a/modules/hm/gui/keybindings.nix +++ b/modules/hm/gui/keybindings.nix @@ -93,7 +93,7 @@ builtins.foldl' (l: r: l // r) "XF86AudioRaiseVolume" = "exec ${pkgs.avizo}/bin/volumectl up"; "XF86AudioLowerVolume" = "exec ${pkgs.avizo}/bin/volumectl down"; "XF86AudioMute" = "exec ${pkgs.avizo}/bin/volumectl toggle-mute"; - "XF86ScreenSaver" = "exec swaylock --image ${cfg.background}"; + "XF86ScreenSaver" = "exec ${pkgs.swaylock}/bin/swaylock --image ${cfg.background}"; "XF86MonBrightnessUp" = "exec ${pkgs.avizo}/bin/lightctl up"; "XF86MonBrightnessDown" = "exec ${pkgs.avizo}/bin/lightctl down"; # Floating From 6116711cbd3ee6ce687bcda670eadbb7536b5c40 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 22 Mar 2025 00:00:39 +0100 Subject: [PATCH 06/27] chore(deps): lock file maintenance --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index 84b6b4f..a6c9d81 100644 --- a/flake.lock +++ b/flake.lock @@ -277,11 +277,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1742388435, - "narHash": "sha256-GheQGRNYAhHsvPxWVOhAmg9lZKkis22UPbEHlmZMthg=", + "lastModified": 1742512142, + "narHash": "sha256-8XfURTDxOm6+33swQJu/hx6xw1Tznl8vJJN5HwVqckg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b75693fb46bfaf09e662d09ec076c5a162efa9f6", + "rev": "7105ae3957700a9646cc4b766f5815b23ed0c682", "type": "github" }, "original": { @@ -293,11 +293,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1742272065, - "narHash": "sha256-ud8vcSzJsZ/CK+r8/v0lyf4yUntVmDq6Z0A41ODfWbE=", + "lastModified": 1742456341, + "narHash": "sha256-yvdnTnROddjHxoQqrakUQWDZSzVchczfsuuMOxg476c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3549532663732bfd89993204d40543e9edaec4f2", + "rev": "7344a3b78128f7b1765dba89060b015fb75431a7", "type": "github" }, "original": { @@ -316,11 +316,11 @@ "nuschtosSearch": [] }, "locked": { - "lastModified": 1742488644, - "narHash": "sha256-vXpu7G4aupNCPlv8kAo7Y/jocfSUwglkvNx5cR0XjBo=", + "lastModified": 1742559284, + "narHash": "sha256-PSSjCCqpJPkCagkkdLODBVVonGxgwU5dN2CYlFPNVNw=", "owner": "nix-community", "repo": "nixvim", - "rev": "d44b33a1ea1a3e584a8c93164dbe0ba2ad4f3a13", + "rev": "c980271267ef146a6c30394c611a97e077471cf2", "type": "github" }, "original": { From 843cfda2ad9d146c9b96636958eae6fca5400448 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Sat, 22 Mar 2025 01:28:33 +0100 Subject: [PATCH 07/27] docs: add nuschtosSearch to book This provides a nice option search. --- docs/book.toml | 2 +- docs/src/SUMMARY.md | 11 +++++--- flake-modules/docs.nix | 58 +++++++++++++++++++++++------------------- flake.lock | 52 +++++++++++++++++++++++++++++++++++++ flake.nix | 9 +++++++ 5 files changed, 101 insertions(+), 31 deletions(-) diff --git a/docs/book.toml b/docs/book.toml index d31b799..77ec9d4 100644 --- a/docs/book.toml +++ b/docs/book.toml @@ -3,7 +3,7 @@ authors = ["Jalil David Salamé Messina"] language = "en" multilingual = false src = "src" -title = "Jalil's NixOS configuration module" +title = "Jalil's NixOS configuration modules" [preprocessor.toc] command = "mdbook-toc" diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md index 16ff37a..48707f4 100644 --- a/docs/src/SUMMARY.md +++ b/docs/src/SUMMARY.md @@ -1,6 +1,9 @@ # Summary -- [Nix Based Configuration](./configuration-overview.md) - - [NixOS Module Options](./nixos-options.md) - - [Neovim Module Options](./nvim-options.md) - - [Home Manager Module Options](./home-options.md) +[Nix Based Configuration](./configuration-overview.md) + +- [NixOS Module Options](./nixos-options.md) +- [Neovim Module Options](./nvim-options.md) +- [Home Manager Module Options](./home-options.md) + +[Search](./search/index.html) diff --git a/flake-modules/docs.nix b/flake-modules/docs.nix index 8e6402a..8f45d14 100644 --- a/flake-modules/docs.nix +++ b/flake-modules/docs.nix @@ -1,46 +1,50 @@ -{ lib, inputs, ... }: +{ lib, ... }: { perSystem = - { pkgs, ... }: + { inputs', pkgs, ... }: { packages = let - modules = ../modules; filterVisible = toplevelOption: option: option // { visible = option.visible && builtins.elemAt option.loc 0 == toplevelOption; }; - home-eval = lib.evalModules { - modules = [ "${modules}/hm/options.nix" ]; - specialArgs = { - inherit pkgs; + genOptionsDoc = + toplevelOption: module: + pkgs.nixosOptionsDoc { + inherit (lib.evalModules { modules = [ module ]; }) options; + transformOptions = filterVisible toplevelOption; }; + mkScope = name: options: { + inherit name; + optionsJSON = "${options.optionsJSON}/share/doc/nixos/options.json"; + urlPrefix = "https://github.com/jalil-salame/configuration.nix/blob/main/"; }; - nvim-eval = lib.evalModules { modules = [ "${modules}/nixvim/options.nix" ]; }; - nixos-eval = lib.evalModules { modules = [ "${modules}/nixos/options.nix" ]; }; - home-markdown = - (pkgs.nixosOptionsDoc { - inherit (home-eval) options; - transformOptions = filterVisible "jhome"; - }).optionsCommonMark; - nvim-markdown = - (pkgs.nixosOptionsDoc { - inherit (nvim-eval) options; - transformOptions = filterVisible "jhome"; - }).optionsCommonMark; - nixos-markdown = - (pkgs.nixosOptionsDoc { - inherit (nixos-eval) options; - transformOptions = filterVisible "jconfig"; - }).optionsCommonMark; + search = inputs'.nuschtosSearch.packages.mkMultiSearch { + title = "Search Jalil'\"'\"'s configuration.nix"; + baseHref = "/"; + + scopes = [ + (mkScope "NixOS" nixos) + (mkScope "Home-Manager" home) + (mkScope "NixVIM" nvim) + ]; + }; + home = genOptionsDoc "jhome" ../modules/hm/options.nix; + nvim = genOptionsDoc "jhome" ../modules/nixvim/options.nix; + nixos = genOptionsDoc "jconfig" ../modules/nixos/options.nix; + nixos-markdown = nixos.optionsCommonMark; + home-markdown = home.optionsCommonMark; + nvim-markdown = nvim.optionsCommonMark; in { + inherit search; docs-home-markdown = home-markdown; docs-nixos-markdown = nixos-markdown; docs-nvim-markdown = nvim-markdown; # Documentation docs = pkgs.stdenvNoCC.mkDerivation { name = "nixos-configuration-book"; - src = inputs.self + "/docs"; + src = ../docs; patchPhase = '' cleanup_md() { @@ -53,7 +57,9 @@ cleanup_md ${home-markdown} >> ./src/home-options.md cleanup_md ${nvim-markdown} >> ./src/nvim-options.md cleanup_md ${nixos-markdown} >> ./src/nixos-options.md - ''; + # link search site + ln -s "${search.override { baseHref = "/configuration.nix/search/"; }}" ./src/search + ''; # FIXME: only add the `/configuration.nix/` part for GH CI nativeBuildInputs = [ pkgs.mdbook-toc ]; buildPhase = "${pkgs.mdbook}/bin/mdbook build --dest-dir \"$out\""; diff --git a/flake.lock b/flake.lock index a6c9d81..4724875 100644 --- a/flake.lock +++ b/flake.lock @@ -240,6 +240,32 @@ "type": "github" } }, + "ixx": { + "inputs": { + "flake-utils": [ + "nuschtosSearch", + "flake-utils" + ], + "nixpkgs": [ + "nuschtosSearch", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729958008, + "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", + "owner": "NuschtOS", + "repo": "ixx", + "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "ref": "v0.0.6", + "repo": "ixx", + "type": "github" + } + }, "lix": { "flake": false, "locked": { @@ -329,6 +355,31 @@ "type": "github" } }, + "nuschtosSearch": { + "inputs": { + "flake-utils": [ + "lix-module", + "flake-utils" + ], + "ixx": "ixx", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1741886583, + "narHash": "sha256-sScfYKtxp3CYv5fJcHQDvQjqBL+tPNQqS9yf9Putd+s=", + "owner": "NuschtOS", + "repo": "search", + "rev": "2974bc5fa3441a319fba943f3ca41f7dcd1a1467", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "repo": "search", + "type": "github" + } + }, "root": { "inputs": { "flake-parts": "flake-parts", @@ -336,6 +387,7 @@ "lix-module": "lix-module", "nixpkgs": "nixpkgs", "nixvim": "nixvim", + "nuschtosSearch": "nuschtosSearch", "stylix": "stylix", "systems": "systems", "treefmt-nix": "treefmt-nix", diff --git a/flake.nix b/flake.nix index 8c9a20b..70fa1ee 100644 --- a/flake.nix +++ b/flake.nix @@ -47,10 +47,19 @@ url = "github:hercules-ci/flake-parts"; inputs.nixpkgs-lib.follows = "nixpkgs"; }; + # For the formatter (can be set to null) treefmt-nix = { url = "github:numtide/treefmt-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + # For generating the docs (can be set to null) + nuschtosSearch = { + url = "github:NuschtOS/search"; + inputs = { + nixpkgs.follows = "nixpkgs"; + flake-utils.follows = "lix-module/flake-utils"; + }; + }; # For deduplication systems.url = "github:nix-systems/default"; }; From aa77690b7a54036308f84d461a4b7fb90f9ffd75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Sat, 22 Mar 2025 03:06:02 +0100 Subject: [PATCH 08/27] fix: small error that slipped by Leftover from the refactor T-T --- modules/hm/users.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/hm/users.nix b/modules/hm/users.nix index 4b6ce60..58b3dc1 100644 --- a/modules/hm/users.nix +++ b/modules/hm/users.nix @@ -29,11 +29,12 @@ in }; }; - xdg.configFile.pam-gnupg.text = - lib.mkIf (cfg.unlockKeys != [ ]) '' + xdg.configFile.pam-gnupg = lib.mkIf (cfg.unlockKeys != [ ]) { + text = '' ${config.programs.gpg.homedir} - '' - + (lib.strings.concatLines cfg.gpg.unlockKeys); + ${lib.strings.concatLines cfg.gpg.unlockKeys} + ''; + }; }; } From 4ce7e3532793deece37aa70a24835061bf943813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Sat, 22 Mar 2025 03:10:45 +0100 Subject: [PATCH 09/27] fix: typo Hopefully last issue?? --- modules/hm/users.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hm/users.nix b/modules/hm/users.nix index 58b3dc1..702e60c 100644 --- a/modules/hm/users.nix +++ b/modules/hm/users.nix @@ -29,7 +29,7 @@ in }; }; - xdg.configFile.pam-gnupg = lib.mkIf (cfg.unlockKeys != [ ]) { + xdg.configFile.pam-gnupg = lib.mkIf (cfg.gpg.unlockKeys != [ ]) { text = '' ${config.programs.gpg.homedir} From a7195317a1dabfe8e1ae15225a993183b66be2cd Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 23 Mar 2025 00:00:12 +0100 Subject: [PATCH 10/27] chore(deps): lock file maintenance --- flake-modules/docs.nix | 2 +- flake.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/flake-modules/docs.nix b/flake-modules/docs.nix index 8f45d14..d296e38 100644 --- a/flake-modules/docs.nix +++ b/flake-modules/docs.nix @@ -20,7 +20,7 @@ urlPrefix = "https://github.com/jalil-salame/configuration.nix/blob/main/"; }; search = inputs'.nuschtosSearch.packages.mkMultiSearch { - title = "Search Jalil'\"'\"'s configuration.nix"; + title = "Search Jalil's configuration.nix"; baseHref = "/"; scopes = [ diff --git a/flake.lock b/flake.lock index 4724875..153017d 100644 --- a/flake.lock +++ b/flake.lock @@ -226,11 +226,11 @@ ] }, "locked": { - "lastModified": 1742234739, - "narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=", + "lastModified": 1742655702, + "narHash": "sha256-jbqlw4sPArFtNtA1s3kLg7/A4fzP4GLk9bGbtUJg0JQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59", + "rev": "0948aeedc296f964140d9429223c7e4a0702a1ff", "type": "github" }, "original": { @@ -367,11 +367,11 @@ ] }, "locked": { - "lastModified": 1741886583, - "narHash": "sha256-sScfYKtxp3CYv5fJcHQDvQjqBL+tPNQqS9yf9Putd+s=", + "lastModified": 1742659553, + "narHash": "sha256-i/JCrr/jApVorI9GkSV5to+USrRCa0rWuQDH8JSlK2A=", "owner": "NuschtOS", "repo": "search", - "rev": "2974bc5fa3441a319fba943f3ca41f7dcd1a1467", + "rev": "508752835128a3977985a4d5225ff241f7756181", "type": "github" }, "original": { From d089abd113e6cfcdd160bcfabab6703acab813d1 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 24 Mar 2025 00:00:10 +0100 Subject: [PATCH 11/27] chore(deps): lock file maintenance --- flake.lock | 12 ++++++------ scripts/jpassmenu/Cargo.lock | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/flake.lock b/flake.lock index 153017d..720481f 100644 --- a/flake.lock +++ b/flake.lock @@ -319,11 +319,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1742456341, - "narHash": "sha256-yvdnTnROddjHxoQqrakUQWDZSzVchczfsuuMOxg476c=", + "lastModified": 1742606399, + "narHash": "sha256-NAxwF5cjgh8o5aylhePXWNQETCWYaTpNvdO2bMfINpQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7344a3b78128f7b1765dba89060b015fb75431a7", + "rev": "0740f6f238767d4caf9afe774d3e88105766dfc6", "type": "github" }, "original": { @@ -342,11 +342,11 @@ "nuschtosSearch": [] }, "locked": { - "lastModified": 1742559284, - "narHash": "sha256-PSSjCCqpJPkCagkkdLODBVVonGxgwU5dN2CYlFPNVNw=", + "lastModified": 1742732006, + "narHash": "sha256-ZIBMfPNb/hfoFf79MRnhDXGKl0yGhjlYEpy3+/jbxFI=", "owner": "nix-community", "repo": "nixvim", - "rev": "c980271267ef146a6c30394c611a97e077471cf2", + "rev": "7776e37b67e7875c3cd56d9d20fd050798071706", "type": "github" }, "original": { diff --git a/scripts/jpassmenu/Cargo.lock b/scripts/jpassmenu/Cargo.lock index a83122b..6f351ae 100644 --- a/scripts/jpassmenu/Cargo.lock +++ b/scripts/jpassmenu/Cargo.lock @@ -293,9 +293,9 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "jiff" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d699bc6dfc879fb1bf9bdff0d4c56f0884fc6f0d0eb0fba397a6d00cd9a6b85e" +checksum = "c102670231191d07d37a35af3eb77f1f0dbf7a71be51a962dcd57ea607be7260" dependencies = [ "jiff-static", "log", @@ -306,9 +306,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d16e75759ee0aa64c57a56acbf43916987b20c77373cb7e808979e02b93c9f9" +checksum = "4cdde31a9d349f1b1f51a0b3714a5940ac022976f4b49485fc04be052b183b4c" dependencies = [ "proc-macro2", "quote", From 6bf3851d5a9c46b4f16af2f20e36b1ed45ca16c7 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 24 Mar 2025 10:50:11 +0100 Subject: [PATCH 12/27] fix(deps): update rust crate log to v0.4.27 | datasource | package | from | to | | ---------- | ------- | ------ | ------ | | crate | log | 0.4.26 | 0.4.27 | --- scripts/jpassmenu/Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/jpassmenu/Cargo.lock b/scripts/jpassmenu/Cargo.lock index 6f351ae..e91f9c0 100644 --- a/scripts/jpassmenu/Cargo.lock +++ b/scripts/jpassmenu/Cargo.lock @@ -341,9 +341,9 @@ checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" [[package]] name = "log" -version = "0.4.26" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "memchr" From cd4fb19335dc4add8cf215cbef45b421aae98f33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Sun, 23 Mar 2025 21:44:28 +0100 Subject: [PATCH 13/27] feat: switch to fish as an interactive shell Now that it is written in Rust I am interested! --- flake-modules/example-vm.nix | 2 +- modules/hm/default.nix | 15 +-- modules/hm/gui/default.nix | 8 +- modules/nixos/default.nix | 14 ++- modules/nixvim/dev-plugins.nix | 4 +- modules/nixvim/plugins.nix | 213 ++++++++++++++------------------- 6 files changed, 117 insertions(+), 139 deletions(-) diff --git a/flake-modules/example-vm.nix b/flake-modules/example-vm.nix index d6b88de..b21085d 100644 --- a/flake-modules/example-vm.nix +++ b/flake-modules/example-vm.nix @@ -12,7 +12,7 @@ in modules = [ inputs.self.nixosModules.default ../example-vm # import vm configuration - { nix.registry.nixpkgs.flake = inputs.nixpkgs; } + { nix.registry.nixpkgs.flake = inputs.nixpkgs; } # pin nixpkgs to the one used by the system ]; }; diff --git a/modules/hm/default.nix b/modules/hm/default.nix index 4332866..3f31f26 100644 --- a/modules/hm/default.nix +++ b/modules/hm/default.nix @@ -58,6 +58,11 @@ in git = true; icons = "auto"; }; + # Shell + fish = { + enable = true; + preferAbbrs = true; # when defining an alias, prefer instead to define an abbreviation + }; # GnuPG gpg = { enable = true; @@ -75,16 +80,6 @@ in ssh.enable = true; # cd replacement zoxide.enable = true; - # Shell - zsh = { - enable = true; - autosuggestion.enable = true; - enableCompletion = true; - autocd = true; - dotDir = ".config/zsh"; - history.path = "${config.xdg.dataHome}/zsh/zsh_history"; - syntaxHighlighting.enable = true; - }; }; services = { diff --git a/modules/hm/gui/default.nix b/modules/hm/gui/default.nix index 00d70ea..d885697 100644 --- a/modules/hm/gui/default.nix +++ b/modules/hm/gui/default.nix @@ -129,13 +129,13 @@ in # PDF reader zathura.enable = true; # Auto start sway - zsh.loginExtra = - lib.optionalString cfg.sway.autostart # sh + fish.loginShellInit = + lib.optionalString cfg.sway.autostart # fish '' # Start Sway on login to TTY 1 - if [ "$TTY" = /dev/tty1 ]; then + if test "$(tty)" = /dev/tty1 exec sway - fi + end ''; }; services = { diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 18c44c4..d6eeff7 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -35,6 +35,17 @@ in ]; programs = { + # Launch fish if shell is interactive (from https://wiki.nixos.org/wiki/Fish) + bash.interactiveShellInit = # bash + '' + if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]] + then + shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION="" + exec ${pkgs.fish}/bin/fish $LOGIN_OPTION + fi + ''; + # Default shell + fish.enable = true; # Shell prompt starship = { enable = true; @@ -58,8 +69,6 @@ in (import ./starship-shorter-text.nix) ]; }; - # Default shell - zsh.enable = true; }; environment.etc = keysFromGithub; @@ -74,7 +83,6 @@ in builtins.attrNames keysFromGithub ); }; - users.defaultUserShell = pkgs.zsh; # Open ports for spotifyd networking.firewall = { allowedUDPPorts = [ 5353 ]; diff --git a/modules/nixvim/dev-plugins.nix b/modules/nixvim/dev-plugins.nix index 7659912..f44c09b 100644 --- a/modules/nixvim/dev-plugins.nix +++ b/modules/nixvim/dev-plugins.nix @@ -21,6 +21,7 @@ let "typos_lsp" # "typst_lsp" # Not using it "zls" + "fish_lsp" ]; in { @@ -95,6 +96,7 @@ in pkgs.stylua pkgs.taplo pkgs.yamlfmt + pkgs.fish ]; plugins.conform-nvim = { enable = true; @@ -111,6 +113,7 @@ in toml = [ "taplo" ]; yaml = [ "yamlfmt" ]; zig = [ "zigfmt" ]; + fish = [ "fish_indent" ]; }; }; }; @@ -127,7 +130,6 @@ in # latex = [ "chktex" ]; # Not in use nix = [ "statix" ]; sh = [ "dash" ]; - zsh = [ "zsh" ]; }; }; } diff --git a/modules/nixvim/plugins.nix b/modules/nixvim/plugins.nix index f843db6..8943c56 100644 --- a/modules/nixvim/plugins.nix +++ b/modules/nixvim/plugins.nix @@ -4,129 +4,102 @@ let in { config.plugins = { - cmp = { - enable = true; - cmdline = { - "/" = { - mapping = - mkRaw - # lua - '' - cmp.mapping.preset.cmdline() - ''; - sources = [ - { name = "rg"; } - { name = "buffer"; } - ]; + cmp = + let + srcWithIndex = groupIndex: name: { inherit name groupIndex; }; + in + { + enable = true; + cmdline = { + "/" = { + mapping = + mkRaw + # lua + '' + cmp.mapping.preset.cmdline() + ''; + sources = [ + { name = "rg"; } + { name = "buffer"; } + ]; + }; + ":" = { + mapping = + mkRaw + # lua + "cmp.mapping.preset.cmdline()"; + sources = [ + { name = "path"; } + { name = "cmdline"; } + ]; + }; }; - ":" = { - mapping = - mkRaw - # lua - '' - cmp.mapping.preset.cmdline() - ''; - sources = [ - { name = "path"; } - { name = "cmdline"; } - ]; - }; - }; - settings = { - # Snippets - snippet.expand = - # lua - '' - function(args) require('luasnip').lsp_expand(args.body) end - ''; - # Completion Sources - sources = [ - { - name = "buffer"; - groupIndex = 3; - } - { - name = "calc"; - groupIndex = 2; - } - { - name = "conventionalcommits"; - groupIndex = 1; - } - { - name = "crates"; - groupIndex = 1; - } - { - name = "luasnip"; - groupIndex = 1; - } - { - name = "nvim_lsp"; - groupIndex = 1; - } - { - name = "nvim_lsp_document_symbol"; - groupIndex = 1; - } - { - name = "nvim_lsp_signature_help"; - groupIndex = 1; - } - { - name = "path"; - groupIndex = 2; - } - { - name = "spell"; - groupIndex = 2; - } - { - name = "treesitter"; - groupIndex = 2; - } - ]; - mapping = - mkRaw + settings = { + # Snippets + snippet.expand = # lua - '' - cmp.mapping.preset.insert({ - [""] = function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif require("luasnip").expand_or_jumpable() then - require("luasnip").expand_or_jump() - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end, - [""] = function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif require("luasnip").jumpable(-1) then - require("luasnip").jump(-1) - else - fallback() - end - end, - [""] = cmp.mapping(function(fallback) - if require("luasnip").choice_active() then - require("luasnip").next_choice() - else - fallback() - end - end), - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), - [""] = cmp.mapping.complete { }, - [""] = cmp.mapping.close(), - [""] = cmp.mapping.confirm { select = true }, - }) - ''; + "function(args) require('luasnip').lsp_expand(args.body) end"; + # Completion Sources + sources = [ + # very specific (not noisy) + (srcWithIndex 1 "calc") + (srcWithIndex 1 "crates") + (srcWithIndex 1 "fish") + (srcWithIndex 1 "luasnip") + (srcWithIndex 1 "nvim_lsp") + # Generally ok + (srcWithIndex 2 "conventionalcommits") + (srcWithIndex 2 "nvim_lsp_document_symbol") + (srcWithIndex 2 "nvim_lsp_signature_help") + # Noisy + (srcWithIndex 2 "path") + (srcWithIndex 3 "spell") + (srcWithIndex 3 "treesitter") + # Very noisy + (srcWithIndex 4 "buffer") + ]; + mapping = + mkRaw + # lua + '' + cmp.mapping.preset.insert({ + [""] = function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif require("luasnip").expand_or_jumpable() then + require("luasnip").expand_or_jump() + elseif has_words_before() then + cmp.complete() + else + fallback() + end + end, + [""] = function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif require("luasnip").jumpable(-1) then + require("luasnip").jump(-1) + else + fallback() + end + end, + [""] = cmp.mapping(function(fallback) + if require("luasnip").choice_active() then + require("luasnip").next_choice() + else + fallback() + end + end), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete { }, + [""] = cmp.mapping.close(), + [""] = cmp.mapping.confirm { select = true }, + }) + ''; + }; }; - }; + cmp-fish.enable = true; gitsigns.enable = true; lualine = { enable = true; From 3753304eab0f26a2f318388aec51e0d24db8127f Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 25 Mar 2025 00:00:24 +0100 Subject: [PATCH 14/27] chore(deps): lock file maintenance --- flake.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/flake.lock b/flake.lock index 720481f..21c0be3 100644 --- a/flake.lock +++ b/flake.lock @@ -303,11 +303,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1742512142, - "narHash": "sha256-8XfURTDxOm6+33swQJu/hx6xw1Tznl8vJJN5HwVqckg=", + "lastModified": 1742751704, + "narHash": "sha256-rBfc+H1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7105ae3957700a9646cc4b766f5815b23ed0c682", + "rev": "f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092", "type": "github" }, "original": { @@ -319,11 +319,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1742606399, - "narHash": "sha256-NAxwF5cjgh8o5aylhePXWNQETCWYaTpNvdO2bMfINpQ=", + "lastModified": 1742707865, + "narHash": "sha256-RVQQZy38O3Zb8yoRJhuFgWo/iDIDj0hEdRTVfhOtzRk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0740f6f238767d4caf9afe774d3e88105766dfc6", + "rev": "dd613136ee91f67e5dba3f3f41ac99ae89c5406b", "type": "github" }, "original": { @@ -342,11 +342,11 @@ "nuschtosSearch": [] }, "locked": { - "lastModified": 1742732006, - "narHash": "sha256-ZIBMfPNb/hfoFf79MRnhDXGKl0yGhjlYEpy3+/jbxFI=", + "lastModified": 1742850925, + "narHash": "sha256-uJ/sGgEE26H78YCXge4kPTkWjG4roiir9pEOWzujxLQ=", "owner": "nix-community", "repo": "nixvim", - "rev": "7776e37b67e7875c3cd56d9d20fd050798071706", + "rev": "3d90bc786c2fee8374a24264df4823977b78b25d", "type": "github" }, "original": { From 8f3fe0c6f1cad21e1f58d482bf02e804cf386e6a Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 26 Mar 2025 00:00:14 +0100 Subject: [PATCH 15/27] chore(deps): lock file maintenance --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 21c0be3..92e4bba 100644 --- a/flake.lock +++ b/flake.lock @@ -319,11 +319,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1742707865, - "narHash": "sha256-RVQQZy38O3Zb8yoRJhuFgWo/iDIDj0hEdRTVfhOtzRk=", + "lastModified": 1742800061, + "narHash": "sha256-oDJGK1UMArK52vcW9S5S2apeec4rbfNELgc50LqiPNs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dd613136ee91f67e5dba3f3f41ac99ae89c5406b", + "rev": "1750f3c1c89488e2ffdd47cab9d05454dddfb734", "type": "github" }, "original": { @@ -342,11 +342,11 @@ "nuschtosSearch": [] }, "locked": { - "lastModified": 1742850925, - "narHash": "sha256-uJ/sGgEE26H78YCXge4kPTkWjG4roiir9pEOWzujxLQ=", + "lastModified": 1742916868, + "narHash": "sha256-2eN75OsaNpL3FzAs3hz9Xm3+htIP3iLdfRP6PGfOoS8=", "owner": "nix-community", "repo": "nixvim", - "rev": "3d90bc786c2fee8374a24264df4823977b78b25d", + "rev": "6b95b825529aa2d8536f7684fe64382ef4d15d84", "type": "github" }, "original": { From 0c4fb0948fc324eb160523fa064227b8947df654 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 26 Mar 2025 20:30:11 +0100 Subject: [PATCH 16/27] fix(deps): update rust crate clap to v4.5.33 | datasource | package | from | to | | ---------- | ------- | ------ | ------ | | crate | clap | 4.5.32 | 4.5.33 | --- scripts/audiomenu/Cargo.lock | 8 ++++---- scripts/jpassmenu/Cargo.lock | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/audiomenu/Cargo.lock b/scripts/audiomenu/Cargo.lock index 44304bb..47a6e89 100644 --- a/scripts/audiomenu/Cargo.lock +++ b/scripts/audiomenu/Cargo.lock @@ -116,9 +116,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.32" +version = "4.5.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" +checksum = "e2c80cae4c3350dd8f1272c73e83baff9a6ba550b8bfbe651b3c45b78cd1751e" dependencies = [ "clap_builder", "clap_derive", @@ -126,9 +126,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.32" +version = "4.5.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" +checksum = "0123e386f691c90aa228219b5b1ee72d465e8e231c79e9c82324f016a62a741c" dependencies = [ "anstream", "anstyle", diff --git a/scripts/jpassmenu/Cargo.lock b/scripts/jpassmenu/Cargo.lock index e91f9c0..1691754 100644 --- a/scripts/jpassmenu/Cargo.lock +++ b/scripts/jpassmenu/Cargo.lock @@ -124,9 +124,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.32" +version = "4.5.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" +checksum = "e2c80cae4c3350dd8f1272c73e83baff9a6ba550b8bfbe651b3c45b78cd1751e" dependencies = [ "clap_builder", "clap_derive", @@ -134,9 +134,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.32" +version = "4.5.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" +checksum = "0123e386f691c90aa228219b5b1ee72d465e8e231c79e9c82324f016a62a741c" dependencies = [ "anstream", "anstyle", From 5b06bb7d6517f2fdc98617e6adaaa1f4bb1bff2c Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 27 Mar 2025 00:00:15 +0100 Subject: [PATCH 17/27] chore(deps): lock file maintenance --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index 92e4bba..0ebe228 100644 --- a/flake.lock +++ b/flake.lock @@ -342,11 +342,11 @@ "nuschtosSearch": [] }, "locked": { - "lastModified": 1742916868, - "narHash": "sha256-2eN75OsaNpL3FzAs3hz9Xm3+htIP3iLdfRP6PGfOoS8=", + "lastModified": 1742991302, + "narHash": "sha256-5S+qnc5ijgFWlAWS9+L7uAgpDnL0RtVEDhVpHWGoavA=", "owner": "nix-community", "repo": "nixvim", - "rev": "6b95b825529aa2d8536f7684fe64382ef4d15d84", + "rev": "1c0dd320d9c4f250ac33382e11d370b7abe97622", "type": "github" }, "original": { @@ -511,11 +511,11 @@ ] }, "locked": { - "lastModified": 1742370146, - "narHash": "sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU=", + "lastModified": 1742982148, + "narHash": "sha256-aRA6LSxjlbMI6MmMzi/M5WH/ynd8pK+vACD9za3MKLQ=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "adc195eef5da3606891cedf80c0d9ce2d3190808", + "rev": "61c88349bf6dff49fa52d7dfc39b21026c2a8881", "type": "github" }, "original": { From 8801e1ce0e0d744cbe614fc64eec206d94cd4b9c Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 27 Mar 2025 03:10:10 +0100 Subject: [PATCH 18/27] fix(deps): update rust crate clap to v4.5.34 | datasource | package | from | to | | ---------- | ------- | ------ | ------ | | crate | clap | 4.5.33 | 4.5.34 | --- scripts/audiomenu/Cargo.lock | 8 ++++---- scripts/jpassmenu/Cargo.lock | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/audiomenu/Cargo.lock b/scripts/audiomenu/Cargo.lock index 47a6e89..3a7eda5 100644 --- a/scripts/audiomenu/Cargo.lock +++ b/scripts/audiomenu/Cargo.lock @@ -116,9 +116,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.33" +version = "4.5.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2c80cae4c3350dd8f1272c73e83baff9a6ba550b8bfbe651b3c45b78cd1751e" +checksum = "e958897981290da2a852763fe9cdb89cd36977a5d729023127095fa94d95e2ff" dependencies = [ "clap_builder", "clap_derive", @@ -126,9 +126,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.33" +version = "4.5.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0123e386f691c90aa228219b5b1ee72d465e8e231c79e9c82324f016a62a741c" +checksum = "83b0f35019843db2160b5bb19ae09b4e6411ac33fc6a712003c33e03090e2489" dependencies = [ "anstream", "anstyle", diff --git a/scripts/jpassmenu/Cargo.lock b/scripts/jpassmenu/Cargo.lock index 1691754..7354614 100644 --- a/scripts/jpassmenu/Cargo.lock +++ b/scripts/jpassmenu/Cargo.lock @@ -124,9 +124,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.33" +version = "4.5.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2c80cae4c3350dd8f1272c73e83baff9a6ba550b8bfbe651b3c45b78cd1751e" +checksum = "e958897981290da2a852763fe9cdb89cd36977a5d729023127095fa94d95e2ff" dependencies = [ "clap_builder", "clap_derive", @@ -134,9 +134,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.33" +version = "4.5.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0123e386f691c90aa228219b5b1ee72d465e8e231c79e9c82324f016a62a741c" +checksum = "83b0f35019843db2160b5bb19ae09b4e6411ac33fc6a712003c33e03090e2489" dependencies = [ "anstream", "anstyle", From 7b93918ac0b71c1a2eb654ffe286a4f9c9efa7ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Thu, 27 Mar 2025 21:59:35 +0100 Subject: [PATCH 19/27] fix: update lix-module to pull overlay fixes The overlay was broken and it was causing the configuration to fail to build. Hopefully now I fixed the CI issues that caused the automerge to work even though CI was failing, and this won't happen again. --- flake.lock | 20 ++++++++++---------- flake.nix | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/flake.lock b/flake.lock index 0ebe228..307eade 100644 --- a/flake.lock +++ b/flake.lock @@ -269,15 +269,15 @@ "lix": { "flake": false, "locked": { - "lastModified": 1737234286, - "narHash": "sha256-CCKIAE84dzkrnlxJCKFyffAxP3yfsOAbdvydUGqq24g=", - "rev": "2837da71ec1588c1187d2e554719b15904a46c8b", + "lastModified": 1742250400, + "narHash": "sha256-be2mY7VFiWcPw7GcaJBbUvpnpoLd39wxqTXagBNTR5w=", + "rev": "d8db15010d2059a23a17f70ef542b4d1e7d2c640", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/2837da71ec1588c1187d2e554719b15904a46c8b.tar.gz?rev=2837da71ec1588c1187d2e554719b15904a46c8b" + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/d8db15010d2059a23a17f70ef542b4d1e7d2c640.tar.gz?rev=d8db15010d2059a23a17f70ef542b4d1e7d2c640" }, "original": { "type": "tarball", - "url": "https://git.lix.systems/lix-project/lix/archive/2.92.0.tar.gz" + "url": "https://git.lix.systems/lix-project/lix/archive/release-2.92.tar.gz" } }, "lix-module": { @@ -290,15 +290,15 @@ ] }, "locked": { - "lastModified": 1737237494, - "narHash": "sha256-YMLrcBpf0TR5r/eaqm8lxzFPap2TxCor0ZGcK3a7+b8=", - "rev": "b90bf629bbd835e61f1317b99e12f8c831017006", + "lastModified": 1742943028, + "narHash": "sha256-fprwZKE1uMzO9tiWWOrmLWBW3GPkMayQfb0xOvVFIno=", + "rev": "3fae818597ca2f1474de62022f850c23be50528d", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/b90bf629bbd835e61f1317b99e12f8c831017006.tar.gz?rev=b90bf629bbd835e61f1317b99e12f8c831017006" + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/3fae818597ca2f1474de62022f850c23be50528d.tar.gz?rev=3fae818597ca2f1474de62022f850c23be50528d" }, "original": { "type": "tarball", - "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0.tar.gz" + "url": "https://git.lix.systems/lix-project/nixos-module/archive/release-2.92.tar.gz" } }, "nixpkgs": { diff --git a/flake.nix b/flake.nix index 70fa1ee..04aaea2 100644 --- a/flake.nix +++ b/flake.nix @@ -12,7 +12,7 @@ unstable.follows = "nixvim/nixpkgs"; # Lix lix-module = { - url = "https://git.lix.systems/lix-project/nixos-module/archive/2.92.0.tar.gz"; + url = "https://git.lix.systems/lix-project/nixos-module/archive/release-2.92.tar.gz"; inputs = { nixpkgs.follows = "nixpkgs"; flake-utils.inputs.systems.follows = "systems"; From b51df570e18471c588d0acca2d09a751cc896470 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 28 Mar 2025 00:00:32 +0100 Subject: [PATCH 20/27] chore(deps): lock file maintenance --- flake.lock | 20 ++++++++++---------- scripts/audiomenu/Cargo.lock | 4 ++-- scripts/jpassmenu/Cargo.lock | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/flake.lock b/flake.lock index 307eade..8b58d97 100644 --- a/flake.lock +++ b/flake.lock @@ -269,11 +269,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1742250400, - "narHash": "sha256-be2mY7VFiWcPw7GcaJBbUvpnpoLd39wxqTXagBNTR5w=", - "rev": "d8db15010d2059a23a17f70ef542b4d1e7d2c640", + "lastModified": 1737234286, + "narHash": "sha256-pgDJZjj4jpzkFxsqBTI/9Yb0n3gW+DvDtuv9SwQZZcs=", + "rev": "079528098f5998ba13c88821a2eca1005c1695de", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/d8db15010d2059a23a17f70ef542b4d1e7d2c640.tar.gz?rev=d8db15010d2059a23a17f70ef542b4d1e7d2c640" + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/079528098f5998ba13c88821a2eca1005c1695de.tar.gz?rev=079528098f5998ba13c88821a2eca1005c1695de" }, "original": { "type": "tarball", @@ -303,11 +303,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1742751704, - "narHash": "sha256-rBfc+H1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE=", + "lastModified": 1742937945, + "narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092", + "rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7", "type": "github" }, "original": { @@ -511,11 +511,11 @@ ] }, "locked": { - "lastModified": 1742982148, - "narHash": "sha256-aRA6LSxjlbMI6MmMzi/M5WH/ynd8pK+vACD9za3MKLQ=", + "lastModified": 1743081648, + "narHash": "sha256-WRAylyYptt6OX5eCEBWyTwOEqEtD6zt33rlUkr6u3cE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "61c88349bf6dff49fa52d7dfc39b21026c2a8881", + "rev": "29a3d7b768c70addce17af0869f6e2bd8f5be4b7", "type": "github" }, "original": { diff --git a/scripts/audiomenu/Cargo.lock b/scripts/audiomenu/Cargo.lock index 3a7eda5..cbb93e8 100644 --- a/scripts/audiomenu/Cargo.lock +++ b/scripts/audiomenu/Cargo.lock @@ -281,9 +281,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.1" +version = "1.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" +checksum = "c2806eaa3524762875e21c3dcd057bc4b7bfa01ce4da8d46be1cd43649e1cc6b" [[package]] name = "os_pipe" diff --git a/scripts/jpassmenu/Cargo.lock b/scripts/jpassmenu/Cargo.lock index 7354614..9ab4da8 100644 --- a/scripts/jpassmenu/Cargo.lock +++ b/scripts/jpassmenu/Cargo.lock @@ -402,9 +402,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.1" +version = "1.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" +checksum = "c2806eaa3524762875e21c3dcd057bc4b7bfa01ce4da8d46be1cd43649e1cc6b" [[package]] name = "os_pipe" From e8299f98b059066b65689dd5d0291b10994c901a Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 29 Mar 2025 00:00:14 +0100 Subject: [PATCH 21/27] chore(deps): lock file maintenance --- flake.lock | 12 ++++++------ scripts/audiomenu/Cargo.lock | 4 ++-- scripts/jpassmenu/Cargo.lock | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/flake.lock b/flake.lock index 8b58d97..516c482 100644 --- a/flake.lock +++ b/flake.lock @@ -342,11 +342,11 @@ "nuschtosSearch": [] }, "locked": { - "lastModified": 1742991302, - "narHash": "sha256-5S+qnc5ijgFWlAWS9+L7uAgpDnL0RtVEDhVpHWGoavA=", + "lastModified": 1743157969, + "narHash": "sha256-ldlSyVKNaXL7ys7Jr7mLhlpGDE4VPVcWmV7Odupn5TY=", "owner": "nix-community", "repo": "nixvim", - "rev": "1c0dd320d9c4f250ac33382e11d370b7abe97622", + "rev": "95573411bc9be155a93b0f15d2bad62c6b43b3cc", "type": "github" }, "original": { @@ -367,11 +367,11 @@ ] }, "locked": { - "lastModified": 1742659553, - "narHash": "sha256-i/JCrr/jApVorI9GkSV5to+USrRCa0rWuQDH8JSlK2A=", + "lastModified": 1743201766, + "narHash": "sha256-bb/dqoIjtIWtJRzASOe8g4m8W2jUIWtuoGPXdNjM/Tk=", "owner": "NuschtOS", "repo": "search", - "rev": "508752835128a3977985a4d5225ff241f7756181", + "rev": "2651dbfad93d6ef66c440cbbf23238938b187bde", "type": "github" }, "original": { diff --git a/scripts/audiomenu/Cargo.lock b/scripts/audiomenu/Cargo.lock index cbb93e8..851b718 100644 --- a/scripts/audiomenu/Cargo.lock +++ b/scripts/audiomenu/Cargo.lock @@ -281,9 +281,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.2" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2806eaa3524762875e21c3dcd057bc4b7bfa01ce4da8d46be1cd43649e1cc6b" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "os_pipe" diff --git a/scripts/jpassmenu/Cargo.lock b/scripts/jpassmenu/Cargo.lock index 9ab4da8..dc567ea 100644 --- a/scripts/jpassmenu/Cargo.lock +++ b/scripts/jpassmenu/Cargo.lock @@ -402,9 +402,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.2" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2806eaa3524762875e21c3dcd057bc4b7bfa01ce4da8d46be1cd43649e1cc6b" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "os_pipe" From 57b7e9f1519579a94e52dfba870de9bce30f7af1 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 30 Mar 2025 00:00:16 +0100 Subject: [PATCH 22/27] chore(deps): lock file maintenance --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 516c482..e43ba02 100644 --- a/flake.lock +++ b/flake.lock @@ -342,11 +342,11 @@ "nuschtosSearch": [] }, "locked": { - "lastModified": 1743157969, - "narHash": "sha256-ldlSyVKNaXL7ys7Jr7mLhlpGDE4VPVcWmV7Odupn5TY=", + "lastModified": 1743288994, + "narHash": "sha256-hUlfAcIUnS8/eSFq+uzOHPZO1p8QgBTAoqhDWzEkUto=", "owner": "nix-community", "repo": "nixvim", - "rev": "95573411bc9be155a93b0f15d2bad62c6b43b3cc", + "rev": "81fdde9fc529e0a5f9ff0d570f31acfe85fd20ac", "type": "github" }, "original": { From b489a09085799451021b2492dab2fccfde12f274 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 30 Mar 2025 00:19:55 +0100 Subject: [PATCH 23/27] chore(deps): lock file maintenance --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index e43ba02..92bc63b 100644 --- a/flake.lock +++ b/flake.lock @@ -303,11 +303,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1742937945, - "narHash": "sha256-lWc+79eZRyvHp/SqMhHTMzZVhpxkRvthsP1Qx6UCq0E=", + "lastModified": 1743231893, + "narHash": "sha256-tpJsHMUPEhEnzySoQxx7+kA+KUtgWqvlcUBqROYNNt0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d02d88f8de5b882ccdde0465d8fa2db3aa1169f7", + "rev": "c570c1f5304493cafe133b8d843c7c1c4a10d3a6", "type": "github" }, "original": { From 7ff376d0f3350da2813f1d915765bf0949680398 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 31 Mar 2025 00:00:15 +0200 Subject: [PATCH 24/27] chore(deps): lock file maintenance --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 92bc63b..d7bcf0b 100644 --- a/flake.lock +++ b/flake.lock @@ -342,11 +342,11 @@ "nuschtosSearch": [] }, "locked": { - "lastModified": 1743288994, - "narHash": "sha256-hUlfAcIUnS8/eSFq+uzOHPZO1p8QgBTAoqhDWzEkUto=", + "lastModified": 1743362786, + "narHash": "sha256-XbXIRDbb8/vLBX1M096l7lM5wfzBTp1ZXfUl9bUhVGU=", "owner": "nix-community", "repo": "nixvim", - "rev": "81fdde9fc529e0a5f9ff0d570f31acfe85fd20ac", + "rev": "d81f37256d0a8691b837b74979d27bf89be8ecdd", "type": "github" }, "original": { From 12675acc21f23d6b9658a64a4ee762b06be5eae0 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 1 Apr 2025 00:00:31 +0200 Subject: [PATCH 25/27] chore(deps): lock file maintenance --- flake.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index d7bcf0b..4c24de6 100644 --- a/flake.lock +++ b/flake.lock @@ -226,11 +226,11 @@ ] }, "locked": { - "lastModified": 1742655702, - "narHash": "sha256-jbqlw4sPArFtNtA1s3kLg7/A4fzP4GLk9bGbtUJg0JQ=", + "lastModified": 1743387206, + "narHash": "sha256-24N3NAuZZbYqZ39NgToZgHUw6M7xHrtrAm18kv0+2Wo=", "owner": "nix-community", "repo": "home-manager", - "rev": "0948aeedc296f964140d9429223c7e4a0702a1ff", + "rev": "15c5f9d04fabd176f30286c8f52bbdb2c853a146", "type": "github" }, "original": { @@ -303,11 +303,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1743231893, - "narHash": "sha256-tpJsHMUPEhEnzySoQxx7+kA+KUtgWqvlcUBqROYNNt0=", + "lastModified": 1743367904, + "narHash": "sha256-sOos1jZGKmT6xxPvxGQyPTApOunXvScV4lNjBCXd/CI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c570c1f5304493cafe133b8d843c7c1c4a10d3a6", + "rev": "7ffe0edc685f14b8c635e3d6591b0bbb97365e6c", "type": "github" }, "original": { From 3c8d299f22d245c138953e4cc3db923907f58bdb Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 1 Apr 2025 19:20:09 +0200 Subject: [PATCH 26/27] fix(deps): update rust crate clap to v4.5.35 | datasource | package | from | to | | ---------- | ------- | ------ | ------ | | crate | clap | 4.5.34 | 4.5.35 | --- scripts/audiomenu/Cargo.lock | 8 ++++---- scripts/jpassmenu/Cargo.lock | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/audiomenu/Cargo.lock b/scripts/audiomenu/Cargo.lock index 851b718..e783945 100644 --- a/scripts/audiomenu/Cargo.lock +++ b/scripts/audiomenu/Cargo.lock @@ -116,9 +116,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.34" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e958897981290da2a852763fe9cdb89cd36977a5d729023127095fa94d95e2ff" +checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" dependencies = [ "clap_builder", "clap_derive", @@ -126,9 +126,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.34" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b0f35019843db2160b5bb19ae09b4e6411ac33fc6a712003c33e03090e2489" +checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" dependencies = [ "anstream", "anstyle", diff --git a/scripts/jpassmenu/Cargo.lock b/scripts/jpassmenu/Cargo.lock index dc567ea..cfd1d1d 100644 --- a/scripts/jpassmenu/Cargo.lock +++ b/scripts/jpassmenu/Cargo.lock @@ -124,9 +124,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.34" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e958897981290da2a852763fe9cdb89cd36977a5d729023127095fa94d95e2ff" +checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" dependencies = [ "clap_builder", "clap_derive", @@ -134,9 +134,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.34" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b0f35019843db2160b5bb19ae09b4e6411ac33fc6a712003c33e03090e2489" +checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" dependencies = [ "anstream", "anstyle", From dbea825ed3915615be518668dc305e9f54ea6070 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Sun, 16 Mar 2025 22:25:58 +0100 Subject: [PATCH 27/27] wip: niri take 2 Take two, since one wasn't enough. --- flake-modules/nixos-modules.nix | 1 + flake.lock | 62 +++++++++++++++++++++++++++++++++ flake.nix | 11 ++++++ 3 files changed, 74 insertions(+) diff --git a/flake-modules/nixos-modules.nix b/flake-modules/nixos-modules.nix index ef8355e..44ec630 100644 --- a/flake-modules/nixos-modules.nix +++ b/flake-modules/nixos-modules.nix @@ -9,6 +9,7 @@ let nixosModule = { imports = [ + inputs.niri.nixosModules.niri inputs.stylix.nixosModules.stylix inputs.home-manager.nixosModules.home-manager ../modules/nixos diff --git a/flake.lock b/flake.lock index 4c24de6..a494396 100644 --- a/flake.lock +++ b/flake.lock @@ -301,6 +301,50 @@ "url": "https://git.lix.systems/lix-project/nixos-module/archive/release-2.92.tar.gz" } }, + "niri": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": [], + "nixpkgs": [ + "unstable" + ], + "nixpkgs-stable": [ + "nixpkgs" + ], + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": [] + }, + "locked": { + "lastModified": 1742108116, + "narHash": "sha256-NrV9ysEfSbeRUPo0jdCBeesuNLTVrpHGXg40snH1YGE=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "824f10012de455a1d0ef795a605f28948ee10467", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1740117926, + "narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "b94a5db8790339cf9134873d8b490be69e02ac71", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v25.02", + "repo": "niri", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1743367904, @@ -385,6 +429,7 @@ "flake-parts": "flake-parts", "home-manager": "home-manager", "lix-module": "lix-module", + "niri": "niri", "nixpkgs": "nixpkgs", "nixvim": "nixvim", "nuschtosSearch": "nuschtosSearch", @@ -523,6 +568,23 @@ "repo": "treefmt-nix", "type": "github" } + }, + "xwayland-satellite-stable": { + "flake": false, + "locked": { + "lastModified": 1739246919, + "narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "ref": "v0.5.1", + "repo": "xwayland-satellite", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 04aaea2..5f68856 100644 --- a/flake.nix +++ b/flake.nix @@ -43,6 +43,17 @@ nuschtosSearch.follows = ""; }; }; + niri = { + url = "github:sodiboo/niri-flake"; + inputs = { + # Deduplicate + nixpkgs.follows = "unstable"; + nixpkgs-stable.follows = "nixpkgs"; + # Unused + niri-unstable.follows = ""; + xwayland-satellite-unstable.follows = ""; + }; + }; flake-parts = { url = "github:hercules-ci/flake-parts"; inputs.nixpkgs-lib.follows = "nixpkgs";