From d111734802764261eb77dec75a0637ca67b0a4f8 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 31 Jan 2026 23:08:44 +0000 Subject: [PATCH 01/33] home: firefox: disable AI features As found on some HN thread, there may be more I have missed... --- modules/home/firefox/default.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/modules/home/firefox/default.nix b/modules/home/firefox/default.nix index 19a008c..1ffb8d9 100644 --- a/modules/home/firefox/default.nix +++ b/modules/home/firefox/default.nix @@ -48,15 +48,29 @@ in "browser.bookmarks.showMobileBookmarks" = true; # Mobile bookmarks "browser.download.useDownloadDir" = false; # Ask for download location "browser.in-content.dark-mode" = true; # Dark mode + "browser.ml.chat.enabled" = false; # No AI + "browser.ml.chat.menu" = false; # No AI + "browser.ml.chat.page" = false; # No AI + "browser.ml.chat.page.footerBadge" = false; # No AI + "browser.ml.chat.page.menuBadge" = false; # No AI + "browser.ml.chat.shortcuts" = false; # No AI + "browser.ml.chat.sidebar" = false; # No AI + "browser.ml.enable" = false; # No AI + "browser.ml.linkPreview.enabled" = false; # No AI + "browser.ml.pageAssist.enabled" = false; # No AI "browser.newtabpage.activity-stream.feeds.section.topstories" = false; # Disable top stories "browser.newtabpage.activity-stream.feeds.sections" = false; "browser.newtabpage.activity-stream.feeds.system.topstories" = false; # Disable top stories "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; # Disable pocket + "browser.tabs.groups.smart.enabled" = false; # No AI + "browser.tabs.groups.smart.userEnabled" = false; # No AI "browser.urlbar.trimURLs" = false; # Always show the `http://` prefix + "extensions.ml.enabled" = false; # No AI "extensions.pocket.enabled" = false; # Disable pocket "media.eme.enabled" = true; # Enable DRM "media.gmp-widevinecdm.enabled" = true; # Enable DRM "media.gmp-widevinecdm.visible" = true; # Enable DRM + "sidebar.notification.badge.aichat" = false; # No AI "signon.autofillForms" = false; # Disable built-in form-filling "signon.rememberSignons" = false; # Disable built-in password manager "ui.systemUsesDarkTheme" = true; # Dark mode From c3603a619171ca9306c4e6f8b73644915b95dee5 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 2 Jan 2026 15:10:59 +0000 Subject: [PATCH 02/33] home: pager: use explicit config section name --- modules/home/pager/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/home/pager/default.nix b/modules/home/pager/default.nix index e84dcb7..c14ff7e 100644 --- a/modules/home/pager/default.nix +++ b/modules/home/pager/default.nix @@ -19,6 +19,7 @@ in }; xdg.configFile."lesskey".text = '' + #command # Quit without clearing the screen on `Q` Q toggle-option -!^Predraw-on-quit\nq ''; From 7a7da21a27cb438e4b68f2d51e7ba86babfb25d0 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 2 Jan 2026 15:13:04 +0000 Subject: [PATCH 03/33] home: pager: use upstream module Only for the configuration, not `LESS`, as settings it through the configuration file does not result in the behaviour I want in Git (and probably other programs). --- modules/home/pager/default.nix | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/modules/home/pager/default.nix b/modules/home/pager/default.nix index c14ff7e..073cf16 100644 --- a/modules/home/pager/default.nix +++ b/modules/home/pager/default.nix @@ -9,6 +9,16 @@ in config = lib.mkIf cfg.enable { + programs.less = { + enable = true; + + config = '' + #command + # Quit without clearing the screen on `Q` + Q toggle-option -!^Predraw-on-quit\nq + ''; + }; + home.sessionVariables = { # My default pager PAGER = "less"; @@ -17,11 +27,5 @@ in # Better XDG compliance LESSHISTFILE = "${config.xdg.stateHome}/less/history"; }; - - xdg.configFile."lesskey".text = '' - #command - # Quit without clearing the screen on `Q` - Q toggle-option -!^Predraw-on-quit\nq - ''; }; } From fe7b0a57a8312f1074d13098edf5e8832193a4ce Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 2 Jan 2026 15:13:04 +0000 Subject: [PATCH 04/33] home: pager: use long option names Makes it more readable. --- modules/home/pager/default.nix | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/home/pager/default.nix b/modules/home/pager/default.nix index 073cf16..a74e7a6 100644 --- a/modules/home/pager/default.nix +++ b/modules/home/pager/default.nix @@ -22,8 +22,19 @@ in home.sessionVariables = { # My default pager PAGER = "less"; - # Clear the screen on start and exit - LESS = "-R -+X -c"; + # Set `LESS` in the environment so it overrides git's pager (and others) + LESS = + let + options = { + # Always use the alternate screen (so that it is cleared on exit) + "+no-init" = true; + # Write text top-down, rather than from the bottom + clear-screen = true; + # Interpret (some) escape sequences + RAW-CONTROL-CHARS = true; + }; + in + lib.concatStringsSep " " (lib.cli.toCommandLineGNU { } options); # Better XDG compliance LESSHISTFILE = "${config.xdg.stateHome}/less/history"; }; From b1169858cd474d99ee5674d1f22ccec544bfcb1e Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 2 Jan 2026 15:55:34 +0000 Subject: [PATCH 05/33] home: pager: remove 'LESSHISTFILE' It's now using an XDG-compliant value by default, I don't need to define it myself. --- modules/home/pager/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/home/pager/default.nix b/modules/home/pager/default.nix index a74e7a6..99ed3ac 100644 --- a/modules/home/pager/default.nix +++ b/modules/home/pager/default.nix @@ -35,8 +35,6 @@ in }; in lib.concatStringsSep " " (lib.cli.toCommandLineGNU { } options); - # Better XDG compliance - LESSHISTFILE = "${config.xdg.stateHome}/less/history"; }; }; } From 3b7a1191514a59c9a26e638afe66e2d4f5af589b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 3 Jan 2026 11:17:57 +0000 Subject: [PATCH 06/33] home: pager: add readline mappings Found a nice tip to emulate deletion to start/end of line. --- modules/home/pager/default.nix | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/modules/home/pager/default.nix b/modules/home/pager/default.nix index 99ed3ac..0f58d12 100644 --- a/modules/home/pager/default.nix +++ b/modules/home/pager/default.nix @@ -16,6 +16,22 @@ in #command # Quit without clearing the screen on `Q` Q toggle-option -!^Predraw-on-quit\nq + + #line-edit + # readline-style command editing + ^p up + ^n down + ^b left + ^f right + ^a home + ^e end + \eb word-left + \ef word-right + ^w word-backspace + \ed word-delete + # Simulate delete to start/end of line by repeating word-wise actions + ^u word-backspace ${lib.strings.replicate 100 "^w"} + ^k word-delete ${lib.strings.replicate 100 "\\ed"} ''; }; From 8624f4c6ac7d3f3bd1fccd5921e3ddeb4ee4716f Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 3 Jan 2026 11:24:35 +0000 Subject: [PATCH 07/33] home: pager: use colored UI --- modules/home/pager/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/home/pager/default.nix b/modules/home/pager/default.nix index 0f58d12..353ef46 100644 --- a/modules/home/pager/default.nix +++ b/modules/home/pager/default.nix @@ -48,6 +48,8 @@ in clear-screen = true; # Interpret (some) escape sequences RAW-CONTROL-CHARS = true; + # Use colored text in search and UI + use-color = true; }; in lib.concatStringsSep " " (lib.cli.toCommandLineGNU { } options); From 00da5074460d71a8b1cadcef6e5ce81f6996fd7a Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 2 Jan 2026 16:01:20 +0000 Subject: [PATCH 08/33] nixos: services: wireguard: fix path to keys --- modules/nixos/services/wireguard/keys/secrets.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nixos/services/wireguard/keys/secrets.nix b/modules/nixos/services/wireguard/keys/secrets.nix index 3985477..3572217 100644 --- a/modules/nixos/services/wireguard/keys/secrets.nix +++ b/modules/nixos/services/wireguard/keys/secrets.nix @@ -1,6 +1,6 @@ # Extra wireguard keys that are not hosts NixOS hosts let - keys = import ../../../../keys; + keys = import ../../../../../keys; all = [ keys.users.ambroisie From c7c593ff93fa8e9d023932cfe7d4db92cd652f64 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 22 Aug 2025 15:45:23 +0100 Subject: [PATCH 09/33] home: terminal: use 'colors' directly --- modules/home/terminal/alacritty/default.nix | 41 +++++++++++---------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/modules/home/terminal/alacritty/default.nix b/modules/home/terminal/alacritty/default.nix index daf3e80..5677240 100644 --- a/modules/home/terminal/alacritty/default.nix +++ b/modules/home/terminal/alacritty/default.nix @@ -1,6 +1,7 @@ { config, lib, ... }: let cfg = config.my.home.terminal; + inherit (config.my.home.terminal) colors; in { config = lib.mkIf (cfg.program == "alacritty") { @@ -14,36 +15,36 @@ in colors = { primary = { - background = cfg.colors.background; - foreground = cfg.colors.foreground; + background = colors.background; + foreground = colors.foreground; - bright_foreground = cfg.colors.foregroundBold; + bright_foreground = colors.foregroundBold; }; cursor = { - cursor = cfg.colors.cursor; + cursor = colors.cursor; }; normal = { - black = cfg.colors.black; - red = cfg.colors.red; - green = cfg.colors.green; - yellow = cfg.colors.yellow; - blue = cfg.colors.blue; - magenta = cfg.colors.magenta; - cyan = cfg.colors.cyan; - white = cfg.colors.white; + black = colors.black; + red = colors.red; + green = colors.green; + yellow = colors.yellow; + blue = colors.blue; + magenta = colors.magenta; + cyan = colors.cyan; + white = colors.white; }; bright = { - black = cfg.colors.blackBold; - red = cfg.colors.redBold; - green = cfg.colors.greenBold; - yellow = cfg.colors.yellowBold; - blue = cfg.colors.blueBold; - magenta = cfg.colors.magentaBold; - cyan = cfg.colors.cyanBold; - white = cfg.colors.whiteBold; + black = colors.blackBold; + red = colors.redBold; + green = colors.greenBold; + yellow = colors.yellowBold; + blue = colors.blueBold; + magenta = colors.magentaBold; + cyan = colors.cyanBold; + white = colors.whiteBold; }; }; }; From b0fab6d5767b0555416b99fbe907081a081b8221 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 22 Aug 2025 15:45:40 +0100 Subject: [PATCH 10/33] home: terminal: use 'colors' directly --- modules/home/terminal/termite/default.nix | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/home/terminal/termite/default.nix b/modules/home/terminal/termite/default.nix index e8f67a7..0ac1b90 100644 --- a/modules/home/terminal/termite/default.nix +++ b/modules/home/terminal/termite/default.nix @@ -1,6 +1,7 @@ { config, lib, pkgs, ... }: let cfg = config.my.home.terminal; + inherit (config.my.home.terminal) colors; in { config = lib.mkIf (cfg.program == "termite") { @@ -24,11 +25,11 @@ in # Colors - backgroundColor = cfg.colors.background; - cursorColor = cfg.colors.cursor; - foregroundColor = cfg.colors.foreground; - foregroundBoldColor = cfg.colors.foregroundBold; - colorsExtra = with cfg.colors; '' + backgroundColor = colors.background; + cursorColor = colors.cursor; + foregroundColor = colors.foreground; + foregroundBoldColor = colors.foregroundBold; + colorsExtra = with colors; '' # Normal colors color0 = ${black} color1 = ${red} From 14299fc6e8b872463b7adc0ac0fdffe057a6a38b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 22 Aug 2025 15:00:54 +0100 Subject: [PATCH 11/33] home: terminal: rename 'default' It doesn't make the *most* sense as an option name to use `program`. --- hosts/nixos/aramis/home.nix | 2 +- modules/home/firefox/tridactyl/default.nix | 2 +- modules/home/terminal/alacritty/default.nix | 2 +- modules/home/terminal/default.nix | 8 ++++---- modules/home/terminal/termite/default.nix | 2 +- modules/home/tmux/default.nix | 4 ++-- modules/home/wm/i3/default.nix | 4 ++-- modules/home/wm/rofi/default.nix | 2 +- 8 files changed, 13 insertions(+), 13 deletions(-) diff --git a/hosts/nixos/aramis/home.nix b/hosts/nixos/aramis/home.nix index e8c99e4..7bf6fe2 100644 --- a/hosts/nixos/aramis/home.nix +++ b/hosts/nixos/aramis/home.nix @@ -25,7 +25,7 @@ # Network-Manager applet nm-applet.enable = true; # Terminal - terminal.program = "alacritty"; + terminal.default = "alacritty"; # Transmission remote trgui.enable = true; # Zathura document viewer diff --git a/modules/home/firefox/tridactyl/default.nix b/modules/home/firefox/tridactyl/default.nix index 26ddfad..cd377e5 100644 --- a/modules/home/firefox/tridactyl/default.nix +++ b/modules/home/firefox/tridactyl/default.nix @@ -2,7 +2,7 @@ let cfg = config.my.home.firefox.tridactyl; - term = config.my.home.terminal.program; + term = config.my.home.terminal.default; vimCommandLine = { alacritty = ''-e "vim" "%f" "+normal!%lGzv%c|"''; diff --git a/modules/home/terminal/alacritty/default.nix b/modules/home/terminal/alacritty/default.nix index 5677240..35ca218 100644 --- a/modules/home/terminal/alacritty/default.nix +++ b/modules/home/terminal/alacritty/default.nix @@ -4,7 +4,7 @@ let inherit (config.my.home.terminal) colors; in { - config = lib.mkIf (cfg.program == "alacritty") { + config = lib.mkIf (cfg.default == "alacritty") { programs.alacritty = { enable = true; diff --git a/modules/home/terminal/default.nix b/modules/home/terminal/default.nix index 20f36b5..72694d2 100644 --- a/modules/home/terminal/default.nix +++ b/modules/home/terminal/default.nix @@ -16,11 +16,11 @@ in options.my.home = with lib; { terminal = { - program = mkOption { + default = mkOption { type = with types; nullOr (enum [ "alacritty" "termite" ]); default = null; example = "termite"; - description = "Which terminal to use for home session"; + description = "Which default terminal to use for home session"; }; colors = { @@ -56,7 +56,7 @@ in }; }; - config.home.sessionVariables = lib.mkIf (cfg.program != null) { - TERMINAL = cfg.program; + config.home.sessionVariables = lib.mkIf (cfg.default != null) { + TERMINAL = cfg.default; }; } diff --git a/modules/home/terminal/termite/default.nix b/modules/home/terminal/termite/default.nix index 0ac1b90..13e0cbb 100644 --- a/modules/home/terminal/termite/default.nix +++ b/modules/home/terminal/termite/default.nix @@ -4,7 +4,7 @@ let inherit (config.my.home.terminal) colors; in { - config = lib.mkIf (cfg.program == "termite") { + config = lib.mkIf (cfg.default == "termite") { programs.termite = { enable = true; diff --git a/modules/home/tmux/default.nix b/modules/home/tmux/default.nix index e3e3daf..f9a94f1 100644 --- a/modules/home/tmux/default.nix +++ b/modules/home/tmux/default.nix @@ -31,9 +31,9 @@ in }; }); - default = { ${config.my.home.terminal.program} = { }; }; + default = { ${config.my.home.terminal.default} = { }; }; defaultText = literalExpression '' - { ''${config.my.home.terminal.program} = { }; }; + { ''${config.my.home.terminal.default} = { }; }; ''; example = { xterm-256color = { }; }; description = '' diff --git a/modules/home/wm/i3/default.nix b/modules/home/wm/i3/default.nix index 5f22bbe..564aead 100644 --- a/modules/home/wm/i3/default.nix +++ b/modules/home/wm/i3/default.nix @@ -3,8 +3,8 @@ let isEnabled = config.my.home.wm.windowManager == "i3"; terminal = - if config.my.home.terminal.program != null - then config.my.home.terminal.program + if config.my.home.terminal.default != null + then config.my.home.terminal.default else "i3-sensible-terminal"; alt = "Mod1"; # `Alt` key diff --git a/modules/home/wm/rofi/default.nix b/modules/home/wm/rofi/default.nix index 9707ed7..d0e0215 100644 --- a/modules/home/wm/rofi/default.nix +++ b/modules/home/wm/rofi/default.nix @@ -7,7 +7,7 @@ in programs.rofi = { enable = true; - terminal = config.my.home.terminal.program; # null by default + terminal = config.my.home.terminal.default; # null by default package = pkgs.rofi.override { plugins = with pkgs; [ From ea818e8584710ea9f5390428363b49b48385378a Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 28 Feb 2026 21:50:31 +0000 Subject: [PATCH 12/33] home: terminal: make 'default' extensible --- modules/home/terminal/alacritty/default.nix | 6 ++++++ modules/home/terminal/default.nix | 2 +- modules/home/terminal/termite/default.nix | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/home/terminal/alacritty/default.nix b/modules/home/terminal/alacritty/default.nix index 35ca218..6b090a7 100644 --- a/modules/home/terminal/alacritty/default.nix +++ b/modules/home/terminal/alacritty/default.nix @@ -4,6 +4,12 @@ let inherit (config.my.home.terminal) colors; in { + options.my.home.terminal = with lib; { + default = mkOption { + type = with types; nullOr (enum [ "alacritty" ]); + }; + }; + config = lib.mkIf (cfg.default == "alacritty") { programs.alacritty = { enable = true; diff --git a/modules/home/terminal/default.nix b/modules/home/terminal/default.nix index 72694d2..188156c 100644 --- a/modules/home/terminal/default.nix +++ b/modules/home/terminal/default.nix @@ -17,7 +17,7 @@ in options.my.home = with lib; { terminal = { default = mkOption { - type = with types; nullOr (enum [ "alacritty" "termite" ]); + type = with types; nullOr (enum [ ]); default = null; example = "termite"; description = "Which default terminal to use for home session"; diff --git a/modules/home/terminal/termite/default.nix b/modules/home/terminal/termite/default.nix index 13e0cbb..da3ee86 100644 --- a/modules/home/terminal/termite/default.nix +++ b/modules/home/terminal/termite/default.nix @@ -4,6 +4,12 @@ let inherit (config.my.home.terminal) colors; in { + options.my.home.terminal = with lib; { + default = mkOption { + type = with types; nullOr (enum [ "termite" ]); + }; + }; + config = lib.mkIf (cfg.default == "termite") { programs.termite = { enable = true; From 4d9bab8daf0a5fa6d882a65b45c5ff55b00bd216 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 22 Aug 2025 15:03:35 +0100 Subject: [PATCH 13/33] home: terminal: alacritty: add 'enable' --- modules/home/terminal/alacritty/default.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/home/terminal/alacritty/default.nix b/modules/home/terminal/alacritty/default.nix index 6b090a7..29e00eb 100644 --- a/modules/home/terminal/alacritty/default.nix +++ b/modules/home/terminal/alacritty/default.nix @@ -1,6 +1,6 @@ { config, lib, ... }: let - cfg = config.my.home.terminal; + cfg = config.my.home.terminal.alacritty; inherit (config.my.home.terminal) colors; in { @@ -8,9 +8,15 @@ in default = mkOption { type = with types; nullOr (enum [ "alacritty" ]); }; + + alacritty = { + enable = mkEnableOption "alacritty" // { + default = config.my.home.terminal.default == "alacritty"; + }; + }; }; - config = lib.mkIf (cfg.default == "alacritty") { + config = lib.mkIf cfg.enable { programs.alacritty = { enable = true; From 6a7037f2a68d305801c882803485771ce55cf50a Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 22 Aug 2025 15:03:49 +0100 Subject: [PATCH 14/33] home: terminal: termite: add 'enable' --- modules/home/terminal/termite/default.nix | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/home/terminal/termite/default.nix b/modules/home/terminal/termite/default.nix index da3ee86..1784ff2 100644 --- a/modules/home/terminal/termite/default.nix +++ b/modules/home/terminal/termite/default.nix @@ -1,6 +1,6 @@ { config, lib, pkgs, ... }: let - cfg = config.my.home.terminal; + cfg = config.my.home.terminal.termite; inherit (config.my.home.terminal) colors; in { @@ -8,9 +8,15 @@ in default = mkOption { type = with types; nullOr (enum [ "termite" ]); }; + + termite = { + enable = mkEnableOption "termite" // { + default = config.my.home.terminal.default == "termite"; + }; + }; }; - config = lib.mkIf (cfg.default == "termite") { + config = lib.mkIf cfg.enable { programs.termite = { enable = true; From 70f651c5fabd9cf02320bd01dfc5c04ddd7cd1ac Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 19 Mar 2026 19:59:23 +0000 Subject: [PATCH 15/33] home: firefox: tridactyl: refactor vim command Thus far, I've only encountered `termite` having a broken implementation of `--exec`... --- modules/home/firefox/tridactyl/default.nix | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/home/firefox/tridactyl/default.nix b/modules/home/firefox/tridactyl/default.nix index cd377e5..11e5c80 100644 --- a/modules/home/firefox/tridactyl/default.nix +++ b/modules/home/firefox/tridactyl/default.nix @@ -4,11 +4,19 @@ let term = config.my.home.terminal.default; - vimCommandLine = { - alacritty = ''-e "vim" "%f" "+normal!%lGzv%c|"''; - # Termite wants the whole command in a single argument... - termite = ''-e "vim %f '+normal!%lGzv%c|'"''; - }; + vimCommandLine = + let + # Termite wants the whole command in a single argument... + brokenExecCommand = { + termite = true; + }; + # Assume most other terminals are sane and not broken... + isBroken = brokenExecCommand.${term} or false; + in + if isBroken then + ''-e "vim %f '+normal!%lGzv%c|'"'' + else + ''-e "vim" "%f" "+normal!%lGzv%c|"''; in { config = lib.mkIf cfg.enable { @@ -19,7 +27,7 @@ in # Make it easy to pick out with a window class name "--class tridactyl_editor" # Open vim with the cursor in the correct position - vimCommandLine.${term} + vimCommandLine ]; }; }; From 8e0ea3593c71bcf0c239b4e5742761b7cfa016bc Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 19 Mar 2026 20:01:20 +0000 Subject: [PATCH 16/33] home: firefox: tridactyl: refactor editor float Ghostty *needs* a specific format for its `--class`, but not for its `--title`. --- modules/home/firefox/tridactyl/default.nix | 2 +- modules/home/wm/i3/default.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/home/firefox/tridactyl/default.nix b/modules/home/firefox/tridactyl/default.nix index 11e5c80..6fcf8ce 100644 --- a/modules/home/firefox/tridactyl/default.nix +++ b/modules/home/firefox/tridactyl/default.nix @@ -25,7 +25,7 @@ in # Use my configured terminal term # Make it easy to pick out with a window class name - "--class tridactyl_editor" + "--title=tridactyl_editor" # Open vim with the cursor in the correct position vimCommandLine ]; diff --git a/modules/home/wm/i3/default.nix b/modules/home/wm/i3/default.nix index 564aead..f2dd051 100644 --- a/modules/home/wm/i3/default.nix +++ b/modules/home/wm/i3/default.nix @@ -123,7 +123,7 @@ in inherit modifier; criteria = [ - { class = "^tridactyl_editor$"; } + { title = "^tridactyl_editor$"; } { class = "^Blueman-.*$"; } { title = "^htop$"; } { class = "^Thunderbird$"; instance = "Mailnews"; window_role = "filterlist"; } From c2f07a65292c34ea38ed99d43ce1a3afe5665d20 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 2 Jan 2026 16:02:19 +0000 Subject: [PATCH 17/33] nixos: profiles: x: remove wallpaper I don't actually care much for the wallpaper, I never look at it. --- modules/nixos/profiles/x/default.nix | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/modules/nixos/profiles/x/default.nix b/modules/nixos/profiles/x/default.nix index 874f36f..2f6b8d5 100644 --- a/modules/nixos/profiles/x/default.nix +++ b/modules/nixos/profiles/x/default.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ config, lib, ... }: let cfg = config.my.profiles.x; in @@ -10,12 +10,6 @@ in config = lib.mkIf cfg.enable { # Enable the X11 windowing system. services.xserver.enable = true; - # Nice wallpaper - services.xserver.displayManager.lightdm.background = - let - wallpapers = "${pkgs.kdePackages.plasma-workspace-wallpapers}/share/wallpapers"; - in - "${wallpapers}/summer_1am/contents/images/2560x1600.jpg"; # X configuration my.home.x.enable = true; From 457d4841ea9c0990ac4bd943c9b3f0b470b3f614 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 19 Feb 2026 21:36:34 +0000 Subject: [PATCH 18/33] home: wm: i3: use grey background Because I sometimes do get a glimpse of the background, and would rather not have anything on it. --- modules/home/wm/i3/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/home/wm/i3/default.nix b/modules/home/wm/i3/default.nix index f2dd051..05b202c 100644 --- a/modules/home/wm/i3/default.nix +++ b/modules/home/wm/i3/default.nix @@ -387,5 +387,10 @@ in }; }; }; + + # Use a grey background + xsession.profileExtra = '' + ${lib.getExe pkgs.xsetroot} -solid '#333333' + ''; }; } From 4086e94d3cd1337f0b1609a0609b74a614fc9743 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 4 Apr 2026 02:50:13 +0100 Subject: [PATCH 19/33] home: wm: fix typo --- modules/home/wm/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/wm/default.nix b/modules/home/wm/default.nix index ae1e136..91c032b 100644 --- a/modules/home/wm/default.nix +++ b/modules/home/wm/default.nix @@ -27,7 +27,7 @@ in }; cursor = { - enable = mkRelatedOption "dunst configuration" [ "i3" ]; + enable = mkRelatedOption "cursor configuration" [ "i3" ]; }; dunst = { From 5381aa79deec555ca40728b753ae294e98d44aea Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 4 Apr 2026 02:50:56 +0100 Subject: [PATCH 20/33] home: wm: make 'windowManager' extensible --- modules/home/wm/default.nix | 2 +- modules/home/wm/i3/default.nix | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/home/wm/default.nix b/modules/home/wm/default.nix index 91c032b..58855f4 100644 --- a/modules/home/wm/default.nix +++ b/modules/home/wm/default.nix @@ -20,7 +20,7 @@ in options.my.home.wm = with lib; { windowManager = mkOption { - type = with types; nullOr (enum [ "i3" ]); + type = with types; nullOr (enum [ ]); default = null; example = "i3"; description = "Which window manager to use for home session"; diff --git a/modules/home/wm/i3/default.nix b/modules/home/wm/i3/default.nix index 05b202c..1943071 100644 --- a/modules/home/wm/i3/default.nix +++ b/modules/home/wm/i3/default.nix @@ -56,6 +56,12 @@ let ''; in { + options.my.home.wm = with lib; { + windowManager = mkOption { + type = with types; nullOr (enum [ "i3" ]); + }; + }; + config = lib.mkIf isEnabled { home.packages = with pkgs; [ ambroisie.dragger # drag-and-drop from the CLI From 8233f8e3d95d2f2cd1a138f3338890989dabf65b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 4 Apr 2026 16:02:10 +0100 Subject: [PATCH 21/33] home: wm: screen-lock: remove 'cornerLock' I never use it... --- modules/home/wm/default.nix | 18 +---------------- modules/home/wm/screen-lock/default.nix | 26 +------------------------ 2 files changed, 2 insertions(+), 42 deletions(-) diff --git a/modules/home/wm/default.nix b/modules/home/wm/default.nix index 58855f4..fa0646d 100644 --- a/modules/home/wm/default.nix +++ b/modules/home/wm/default.nix @@ -77,20 +77,6 @@ in description = "Locker command to run"; }; - cornerLock = { - enable = my.mkDisableOption '' - Move mouse to upper-left corner to lock instantly, lower-right corner to - disable auto-lock. - ''; - - delay = mkOption { - type = types.int; - default = 5; - example = 15; - description = "How many seconds before locking this way"; - }; - }; - notify = { enable = my.mkDisableOption "Notify when about to lock the screen"; @@ -100,14 +86,12 @@ in example = 15; description = '' How many seconds in advance should there be a notification. - This value must be at lesser than or equal to `cornerLock.delay` - when both options are enabled. ''; }; }; timeout = mkOption { - type = types.ints.between 1 60; + type = types.int; default = 15; example = 1; description = "Inactive time interval to lock the screen automatically"; diff --git a/modules/home/wm/screen-lock/default.nix b/modules/home/wm/screen-lock/default.nix index 5e6874e..ac6851c 100644 --- a/modules/home/wm/screen-lock/default.nix +++ b/modules/home/wm/screen-lock/default.nix @@ -12,22 +12,6 @@ let in { config = lib.mkIf cfg.enable { - assertions = [ - { - assertion = - let - inherit (cfg) cornerLock notify; - bothEnabled = cornerLock.enable && notify.enable; - cornerLockHigherThanNotify = cornerLock.delay >= notify.delay; - in - bothEnabled -> cornerLockHigherThanNotify; - message = '' - `config.my.home.wm.notify.delay` cannot have a value higher than - `config.my.home.wm.cornerLock.delay`. - ''; - } - ]; - services.screen-locker = { enable = true; @@ -36,15 +20,7 @@ in lockCmd = cfg.command; xautolock = { - extraOptions = lib.optionals cfg.cornerLock.enable [ - # Mouse corners: instant lock on upper-left, never lock on lower-right - "-cornerdelay" - "${toString cfg.cornerLock.delay}" - "-cornerredelay" - "${toString cfg.cornerLock.delay}" - "-corners" - "+00-" - ] ++ lib.optionals cfg.notify.enable [ + extraOptions = lib.optionals cfg.notify.enable [ "-notify" "${toString cfg.notify.delay}" "-notifier" From ba6d0ee9183469bb0b9c9d90bd46e1c5b7ee8614 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 4 Apr 2026 16:09:33 +0100 Subject: [PATCH 22/33] home: wm: screen-lock: use 'writeShellApplication' More robust implementation of the notifier. --- modules/home/wm/screen-lock/default.nix | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/modules/home/wm/screen-lock/default.nix b/modules/home/wm/screen-lock/default.nix index ac6851c..208e529 100644 --- a/modules/home/wm/screen-lock/default.nix +++ b/modules/home/wm/screen-lock/default.nix @@ -2,13 +2,19 @@ let cfg = config.my.home.wm.screen-lock; - notificationCmd = - let - duration = toString (cfg.notify.delay * 1000); - notifyCmd = "${lib.getExe pkgs.libnotify} -u critical -t ${duration}"; - in - # Needs to be surrounded by quotes for systemd to launch it correctly - ''"${notifyCmd} -- 'Locking in ${toString cfg.notify.delay} seconds'"''; + lockNotifier = pkgs.writeShellApplication { + name = "lock-notifier"; + runtimeInputs = [ + pkgs.libnotify + ]; + text = '' + duration=${toString cfg.notify.delay} + notify-send \ + -u critical \ + -t "$((duration * 1000))" -- \ + "Locking in $duration seconds" + ''; + }; in { config = lib.mkIf cfg.enable { @@ -24,7 +30,7 @@ in "-notify" "${toString cfg.notify.delay}" "-notifier" - notificationCmd + (lib.getExe lockNotifier) ]; }; }; From f02465091c7bafd4341f646516699609f1f6fc63 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 4 Apr 2026 16:18:54 +0100 Subject: [PATCH 23/33] home: wm: fix documentation --- modules/home/wm/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/wm/default.nix b/modules/home/wm/default.nix index fa0646d..00ac5f7 100644 --- a/modules/home/wm/default.nix +++ b/modules/home/wm/default.nix @@ -68,7 +68,7 @@ in }; screen-lock = { - enable = mkRelatedOption "automatic X screen locker" [ "i3" ]; + enable = mkRelatedOption "automatic screen locker" [ "i3" ]; command = mkOption { type = types.str; From 537e16501b72507ba61adb1f94c2577f5fea3e34 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 4 Apr 2026 16:18:54 +0100 Subject: [PATCH 24/33] home: wm: use 'i3lock' with 'i3' Rather than use it as the default, set it in the `i3` module. --- modules/home/wm/default.nix | 3 +-- modules/home/wm/i3/default.nix | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/home/wm/default.nix b/modules/home/wm/default.nix index 00ac5f7..b5a2a80 100644 --- a/modules/home/wm/default.nix +++ b/modules/home/wm/default.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ config, lib, ... }: let mkRelatedOption = description: relatedWMs: let @@ -72,7 +72,6 @@ in command = mkOption { type = types.str; - default = "${lib.getExe pkgs.i3lock} -n -c 000000"; example = "\${lib.getExe pkgs.i3lock} -n -i lock.png"; description = "Locker command to run"; }; diff --git a/modules/home/wm/i3/default.nix b/modules/home/wm/i3/default.nix index 1943071..4e5b03f 100644 --- a/modules/home/wm/i3/default.nix +++ b/modules/home/wm/i3/default.nix @@ -71,6 +71,9 @@ in xdotool # Used by 'rofi-rbw', in a mapping ]; + # Set `i3lock` as the (default) lock command + my.home.wm.screen-lock.command = lib.mkDefault "${lib.getExe pkgs.i3lock} -n -c 000000"; + xsession.windowManager.i3 = { enable = true; From 452a1e96454cb5115fd47d6c61b4eea719c81062 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 4 Apr 2026 16:25:34 +0100 Subject: [PATCH 25/33] home: wm: clarify documentation --- modules/home/wm/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/wm/default.nix b/modules/home/wm/default.nix index b5a2a80..86ae969 100644 --- a/modules/home/wm/default.nix +++ b/modules/home/wm/default.nix @@ -93,7 +93,7 @@ in type = types.int; default = 15; example = 1; - description = "Inactive time interval to lock the screen automatically"; + description = "Inactive time interval (in minutes) to lock the screen automatically"; }; }; }; From a371ab94069f827c811eb9e486a5feab923789d7 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 4 Apr 2026 18:19:46 +0100 Subject: [PATCH 26/33] home: wm: i3: fix 'toggle-xautolock' Because of DPMS, I would still get a screen-lock after a 10-minute timeout. I think the `xset s {on,off}` part is not _strictly_ necessary, but a little bit of cargo-culting never hurt anybody. According to the `xss-lock` man page `xset s on` use hard-coded values, not my preferred timeouts. Given that I rely on `xautolock` anyway, I don't care about the timeouts and set them to `0`. --- modules/home/wm/i3/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/home/wm/i3/default.nix b/modules/home/wm/i3/default.nix index 4e5b03f..9826e68 100644 --- a/modules/home/wm/i3/default.nix +++ b/modules/home/wm/i3/default.nix @@ -47,10 +47,14 @@ let if ${systemctlUser} is-active xautolock-session.service; then ${systemctlUser} stop --user xautolock-session.service xset s off + xset s 0 0 + xset -dpms ${notify} "Disabled Xautolock" else ${systemctlUser} start xautolock-session.service xset s on + xset s 0 0 + xset +dpms ${notify} "Enabled Xautolock" fi ''; From 2c88edc5110c57a957f1082cc85d3c924496aab2 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 4 Apr 2026 22:00:06 +0100 Subject: [PATCH 27/33] home: vim: tree-sitter: use explicit buffer option --- modules/home/vim/plugin/settings/tree-sitter.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/vim/plugin/settings/tree-sitter.lua b/modules/home/vim/plugin/settings/tree-sitter.lua index 2958c2a..0009d48 100644 --- a/modules/home/vim/plugin/settings/tree-sitter.lua +++ b/modules/home/vim/plugin/settings/tree-sitter.lua @@ -76,7 +76,7 @@ local function treesitter_try_attach(buf, language) -- Syntax highlighting vim.treesitter.start(buf, language) -- Indentation - vim.bo.indentexpr = "v:lua.require('nvim-treesitter').indentexpr()" + vim.bo[buf].indentexpr = "v:lua.require('nvim-treesitter').indentexpr()" return true end From 277ed53bb0c8a91d1685a72868063146800217d4 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Wed, 8 Apr 2026 14:23:25 +0000 Subject: [PATCH 28/33] flake: bump inputs --- flake.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index 72a0f23..73f8820 100644 --- a/flake.lock +++ b/flake.lock @@ -73,11 +73,11 @@ ] }, "locked": { - "lastModified": 1772408722, - "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", + "lastModified": 1775087534, + "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", + "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", "type": "github" }, "original": { @@ -117,11 +117,11 @@ ] }, "locked": { - "lastModified": 1775036584, - "narHash": "sha256-zW0lyy7ZNNT/x8JhzFHBsP2IPx7ATZIPai4FJj12BgU=", + "lastModified": 1775585728, + "narHash": "sha256-8Psjt+TWvE4thRKktJsXfR6PA/fWWsZ04DVaY6PUhr4=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "4e0eb042b67d863b1b34b3f64d52ceb9cd926735", + "rev": "580633fa3fe5fc0379905986543fd7495481913d", "type": "github" }, "original": { @@ -159,11 +159,11 @@ ] }, "locked": { - "lastModified": 1774991950, - "narHash": "sha256-kScKj3qJDIWuN9/6PMmgy5esrTUkYinrO5VvILik/zw=", + "lastModified": 1775622785, + "narHash": "sha256-/yFxO+7oS1SymDfJ2iVO7K5vJKcYfe9XGIJ+quLqz0Q=", "owner": "nix-community", "repo": "home-manager", - "rev": "f2d3e04e278422c7379e067e323734f3e8c585a7", + "rev": "527e47b78fe67213072f706bf933a9705a8c4974", "type": "github" }, "original": { @@ -175,11 +175,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1775020384, - "narHash": "sha256-3XiHDhiNxb2vWI0en8ug7WBMEPj9mcaWcMhaFFfhfJY=", + "lastModified": 1775423009, + "narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c9971bfbabf2fa3f3b7e6e4cbeaa2abd6295b478", + "rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9", "type": "github" }, "original": { @@ -199,11 +199,11 @@ ] }, "locked": { - "lastModified": 1775037587, - "narHash": "sha256-3weRbM7ODQocl6wTgyuKPubhpjS4zP2VA5YxeDx6YG8=", + "lastModified": 1775654726, + "narHash": "sha256-4R6Bc5EIQ+HxVte1Mo1B3OkyYFVmehywOPiH3Z9CAIU=", "owner": "nix-community", "repo": "NUR", - "rev": "0a0ed0957d4fee887d5101d3975d40e98658d75c", + "rev": "c73a8885bd1bb5d329e16a4512e2c2708c5981a7", "type": "github" }, "original": { From 762779c461bc4f5926e789c905dbfa181118e903 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 19 Feb 2026 12:06:05 +0000 Subject: [PATCH 29/33] home: vim: prefix augroup with 'ambroisie.*' --- modules/home/vim/plugin/numbertoggle.lua | 2 +- modules/home/vim/plugin/settings/tree-sitter.lua | 2 +- modules/home/vim/plugin/signtoggle.lua | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/home/vim/plugin/numbertoggle.lua b/modules/home/vim/plugin/numbertoggle.lua index b1e3df2..2299a62 100644 --- a/modules/home/vim/plugin/numbertoggle.lua +++ b/modules/home/vim/plugin/numbertoggle.lua @@ -1,7 +1,7 @@ -- Show lines numbers vim.opt.number = true -local numbertoggle = vim.api.nvim_create_augroup("numbertoggle", { clear = true }) +local numbertoggle = vim.api.nvim_create_augroup("ambroisie.numbertoggle", { clear = true }) -- Toggle numbers between relative and absolute when changing buffers vim.api.nvim_create_autocmd({ "BufEnter", "FocusGained", "InsertLeave", "WinEnter" }, { diff --git a/modules/home/vim/plugin/settings/tree-sitter.lua b/modules/home/vim/plugin/settings/tree-sitter.lua index 2958c2a..b533452 100644 --- a/modules/home/vim/plugin/settings/tree-sitter.lua +++ b/modules/home/vim/plugin/settings/tree-sitter.lua @@ -83,7 +83,7 @@ end vim.api.nvim_create_autocmd("FileType", { pattern = "*", - group = vim.api.nvim_create_augroup("treesitter_attach", { clear = true }), + group = vim.api.nvim_create_augroup("ambroisie.treesitter_attach", { clear = true }), callback = function(args) local buf, filetype = args.buf, args.match local language = vim.treesitter.language.get_lang(filetype) diff --git a/modules/home/vim/plugin/signtoggle.lua b/modules/home/vim/plugin/signtoggle.lua index 3deca34..66e0ab4 100644 --- a/modules/home/vim/plugin/signtoggle.lua +++ b/modules/home/vim/plugin/signtoggle.lua @@ -1,4 +1,4 @@ -local signtoggle = vim.api.nvim_create_augroup("signtoggle", { clear = true }) +local signtoggle = vim.api.nvim_create_augroup("ambroisie.signtoggle", { clear = true }) -- Only show sign column for the currently focused buffer, if it has a number column vim.api.nvim_create_autocmd({ "BufEnter", "FocusGained", "WinEnter" }, { From cea0410c3d9f5eaee0c8cbef5854b4277a0771ad Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 19 Feb 2026 12:32:14 +0000 Subject: [PATCH 30/33] home: vim: fix unimpaired mapping descriptions --- modules/home/vim/after/plugin/mappings/unimpaired.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/home/vim/after/plugin/mappings/unimpaired.lua b/modules/home/vim/after/plugin/mappings/unimpaired.lua index 765b6b1..f83a3a3 100644 --- a/modules/home/vim/after/plugin/mappings/unimpaired.lua +++ b/modules/home/vim/after/plugin/mappings/unimpaired.lua @@ -82,7 +82,7 @@ local keys = { -- Disable option { "]o", group = "Disable option" }, - { "]ob", desc = "Light background" }, + { "]ob", desc = "Dark background" }, { "]oc", desc = "Cursor line" }, { "]od", desc = "Diff" }, { "]of", "FormatDisable", desc = "LSP Formatting" }, @@ -101,7 +101,7 @@ local keys = { -- Toggle option { "yo", group = "Toggle option" }, - { "yob", desc = "Light background" }, + { "yob", desc = "Toggle background" }, { "yoc", desc = "Cursor line" }, { "yod", desc = "Diff" }, { "yof", "FormatToggle", desc = "LSP Formatting" }, From dbb6f235fdbda259189645d9591961927ca60c32 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Tue, 10 Feb 2026 15:39:16 +0000 Subject: [PATCH 31/33] home: vim: clarify how to disable 'ignorecase' Because I tend to forget the exact way to do it, let's document it so I have an easy place to check next time. --- modules/home/vim/init.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/vim/init.vim b/modules/home/vim/init.vim index 1142925..f3b5022 100644 --- a/modules/home/vim/init.vim +++ b/modules/home/vim/init.vim @@ -112,7 +112,7 @@ colorscheme gruvbox """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Enable search high-lighting while the search is on-going set hlsearch -" Ignore case on search +" Ignore case on search unless \C is in search terms set ignorecase " Ignore case unless there is an uppercase letter in the pattern set smartcase From 95363f49e6eb32ca92ba56b24da8851a51f67822 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Mon, 19 Jan 2026 12:10:17 +0000 Subject: [PATCH 32/33] home: calibre: use upstream module --- modules/home/calibre/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/home/calibre/default.nix b/modules/home/calibre/default.nix index fcd62f8..e3733b1 100644 --- a/modules/home/calibre/default.nix +++ b/modules/home/calibre/default.nix @@ -10,8 +10,10 @@ in }; config = lib.mkIf cfg.enable { - home.packages = [ - cfg.package - ]; + programs.calibre = { + enable = true; + + inherit (cfg) package; + }; }; } From eaf542722a8e55a8695cbf23fcb680cf59db8d41 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 20 Feb 2026 14:12:19 +0000 Subject: [PATCH 33/33] home: git: fix Python env ignore --- modules/home/git/default.ignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/home/git/default.ignore b/modules/home/git/default.ignore index d80996e..a2da8f2 100644 --- a/modules/home/git/default.ignore +++ b/modules/home/git/default.ignore @@ -5,7 +5,7 @@ *.out # Python files -env/ +.venv/ __pycache__/ *.py[cod] .mypy_cache/