From f6f979843f44779be0ae9f7d7ab237bf6773649e Mon Sep 17 00:00:00 2001 From: Thierry Delafontaine Date: Sat, 21 Feb 2026 21:19:02 +0100 Subject: [PATCH 1/7] feat(home/dev): restructure dev directory - move cli-tools to parent directory and make separate files for tools with own config module - rename shells directory to shell --- home/shared/dev/bat.nix | 19 ++++++++ home/shared/dev/btop.nix | 3 ++ home/shared/dev/cli-tools/archives.nix | 10 ----- home/shared/dev/cli-tools/default.nix | 21 --------- home/shared/dev/cli-tools/files.nix | 27 ----------- .../dev/cli-tools/find-and-navigate.nix | 45 ------------------- home/shared/dev/cli-tools/networking.nix | 7 --- home/shared/dev/cli-tools/system.nix | 10 ----- home/shared/dev/default.nix | 43 ++++++++++++++++-- .../{cli-tools/projects.nix => direnv.nix} | 6 --- home/shared/dev/eza.nix | 21 +++++++++ home/shared/dev/fd.nix | 3 ++ home/shared/dev/fzf.nix | 20 +++++++++ home/shared/dev/jq.nix | 3 ++ home/shared/dev/pandoc.nix | 3 ++ home/shared/dev/ripgrep.nix | 3 ++ home/shared/dev/{shells => shell}/atuin.nix | 0 home/shared/dev/{shells => shell}/bash.nix | 0 home/shared/dev/{shells => shell}/default.nix | 0 .../{shells => shell}/environment/aliases.nix | 0 .../{shells => shell}/environment/default.nix | 0 .../environment/session-path.nix | 0 home/shared/dev/{shells => shell}/fish.nix | 0 .../dev/{shells => shell}/ui/default.nix | 0 .../dev/{shells => shell}/ui/dircolors.nix | 0 .../dev/{shells => shell}/ui/starship.nix | 0 home/shared/dev/zoxide.nix | 3 ++ 27 files changed, 118 insertions(+), 129 deletions(-) create mode 100644 home/shared/dev/bat.nix create mode 100644 home/shared/dev/btop.nix delete mode 100644 home/shared/dev/cli-tools/archives.nix delete mode 100644 home/shared/dev/cli-tools/default.nix delete mode 100644 home/shared/dev/cli-tools/files.nix delete mode 100644 home/shared/dev/cli-tools/find-and-navigate.nix delete mode 100644 home/shared/dev/cli-tools/networking.nix delete mode 100644 home/shared/dev/cli-tools/system.nix rename home/shared/dev/{cli-tools/projects.nix => direnv.nix} (50%) create mode 100644 home/shared/dev/eza.nix create mode 100644 home/shared/dev/fd.nix create mode 100644 home/shared/dev/fzf.nix create mode 100644 home/shared/dev/jq.nix create mode 100644 home/shared/dev/pandoc.nix create mode 100644 home/shared/dev/ripgrep.nix rename home/shared/dev/{shells => shell}/atuin.nix (100%) rename home/shared/dev/{shells => shell}/bash.nix (100%) rename home/shared/dev/{shells => shell}/default.nix (100%) rename home/shared/dev/{shells => shell}/environment/aliases.nix (100%) rename home/shared/dev/{shells => shell}/environment/default.nix (100%) rename home/shared/dev/{shells => shell}/environment/session-path.nix (100%) rename home/shared/dev/{shells => shell}/fish.nix (100%) rename home/shared/dev/{shells => shell}/ui/default.nix (100%) rename home/shared/dev/{shells => shell}/ui/dircolors.nix (100%) rename home/shared/dev/{shells => shell}/ui/starship.nix (100%) create mode 100644 home/shared/dev/zoxide.nix diff --git a/home/shared/dev/bat.nix b/home/shared/dev/bat.nix new file mode 100644 index 0000000..7361efb --- /dev/null +++ b/home/shared/dev/bat.nix @@ -0,0 +1,19 @@ +{ lib, ... }: +{ + home.sessionVariables = { + MANPAGER = "sh -c 'sed -u -e \\\"s/\\x1B\[[0-9;]*m//g; s/.\\x08//g\\\" | bat -p -lman'"; + PAGER = "bat -p"; + }; + programs.bat = { + enable = true; + config = { + italic-text = "always"; + style = lib.concatStringsSep "," [ + "changes" + "numbers" + "rule" + "snip" + ]; + }; + }; +} diff --git a/home/shared/dev/btop.nix b/home/shared/dev/btop.nix new file mode 100644 index 0000000..ee12f92 --- /dev/null +++ b/home/shared/dev/btop.nix @@ -0,0 +1,3 @@ +{ + programs.btop.enable = true; +} diff --git a/home/shared/dev/cli-tools/archives.nix b/home/shared/dev/cli-tools/archives.nix deleted file mode 100644 index 68375dc..0000000 --- a/home/shared/dev/cli-tools/archives.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs, ... }: -{ - home.packages = with pkgs; [ - gnutar - p7zip - unrar - unzip - zip - ]; -} diff --git a/home/shared/dev/cli-tools/default.nix b/home/shared/dev/cli-tools/default.nix deleted file mode 100644 index b804f8b..0000000 --- a/home/shared/dev/cli-tools/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ pkgs, ... }: -{ - imports = [ - ./archives.nix - ./files.nix - ./find-and-navigate.nix - ./networking.nix - ./projects.nix - ./system.nix - ]; - home.packages = with pkgs; [ - asciinema - charm-freeze - clipboard-jh - glow - gum - hyperfine - outfieldr - vhs - ]; -} diff --git a/home/shared/dev/cli-tools/files.nix b/home/shared/dev/cli-tools/files.nix deleted file mode 100644 index 1e7bbae..0000000 --- a/home/shared/dev/cli-tools/files.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, pkgs, ... }: -{ - home = { - packages = with pkgs; [ - hexyl - ouch - pandoc - tesseract - ]; - sessionVariables = { - MANPAGER = "sh -c 'sed -u -e \\\"s/\\x1B\[[0-9;]*m//g; s/.\\x08//g\\\" | bat -p -lman'"; - PAGER = "bat -p"; - }; - }; - programs.bat = { - enable = true; - config = { - italic-text = "always"; - style = lib.concatStringsSep "," [ - "changes" - "rule" - "numbers" - "snip" - ]; - }; - }; -} diff --git a/home/shared/dev/cli-tools/find-and-navigate.nix b/home/shared/dev/cli-tools/find-and-navigate.nix deleted file mode 100644 index e40a220..0000000 --- a/home/shared/dev/cli-tools/find-and-navigate.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -{ - home = { - packages = with pkgs; [ - fd - ripgrep - sd - ]; - sessionVariables = { - # Required on macOS - EZA_CONFIG_DIR = "$XDG_CONFIG_HOME/eza"; - LS_COLORS = "$(${lib.getExe pkgs.vivid} generate catppuccin-${config.catppuccin.flavor})"; - }; - shellAliases.cd = "z"; - }; - programs = { - eza = { - enable = true; - extraOptions = [ - "--group-directories-first" - ]; - git = true; - icons = "auto"; - }; - fzf = { - enable = true; - changeDirWidgetCommand = "fd --type d --hidden --strip-cwd-prefix --exclude .git"; - changeDirWidgetOptions = [ - "--preview= '${lib.getExe pkgs.eza} --tree --color=always {} | head -200'" - ]; - defaultCommand = "fd --hidden --strip-cwd-prefix --exclude .git"; - defaultOptions = [ "--layout reverse" ]; - fileWidgetCommand = "fd --type f --hidden --strip-cwd-prefix --exclude .git"; - fileWidgetOptions = [ - "--preview 'bat -n --color=always --line-range :500 {}'" - ]; - }; - zoxide.enable = true; - }; -} diff --git a/home/shared/dev/cli-tools/networking.nix b/home/shared/dev/cli-tools/networking.nix deleted file mode 100644 index ad4e42b..0000000 --- a/home/shared/dev/cli-tools/networking.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, ... }: -{ - home.packages = with pkgs; [ - curl - jq - ]; -} diff --git a/home/shared/dev/cli-tools/system.nix b/home/shared/dev/cli-tools/system.nix deleted file mode 100644 index 035f0ec..0000000 --- a/home/shared/dev/cli-tools/system.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs, ... }: -{ - home.packages = with pkgs; [ - dust - procs - usbutils - watch - ]; - programs.btop.enable = true; -} diff --git a/home/shared/dev/default.nix b/home/shared/dev/default.nix index ffd2a82..d08727d 100644 --- a/home/shared/dev/default.nix +++ b/home/shared/dev/default.nix @@ -1,16 +1,53 @@ +{ pkgs, ... }: { imports = [ - ./cli-tools + ./ai ./lang - ./shells + ./shell ./vcs - ./ai + ./bat.nix + ./btop.nix + ./direnv.nix ./editorconfig.nix + ./eza.nix + ./fd.nix + ./fzf.nix ./ghostty.nix ./helix.nix + ./jq.nix + ./pandoc.nix ./podman.nix + ./ripgrep.nix ./ssh.nix ./tmux.nix ./yazi.nix + ./zoxide.nix + ]; + home.packages = with pkgs; [ + asciinema + charm-freeze + clipboard-jh + curl + dust + glow + gnutar + gum + hexyl + hyperfine + just + ouch + outfieldr + p7zip + procs + sd + svu + tesseract + tokei + unrar + unzip + usbutils + vhs + watch + zip ]; } diff --git a/home/shared/dev/cli-tools/projects.nix b/home/shared/dev/direnv.nix similarity index 50% rename from home/shared/dev/cli-tools/projects.nix rename to home/shared/dev/direnv.nix index 8b3ff16..2b51c9d 100644 --- a/home/shared/dev/cli-tools/projects.nix +++ b/home/shared/dev/direnv.nix @@ -1,10 +1,4 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - just - svu - tokei - ]; programs.direnv = { enable = true; nix-direnv.enable = true; diff --git a/home/shared/dev/eza.nix b/home/shared/dev/eza.nix new file mode 100644 index 0000000..16d522e --- /dev/null +++ b/home/shared/dev/eza.nix @@ -0,0 +1,21 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + home.sessionVariables = { + # Required on macOS + EZA_CONFIG_DIR = "$XDG_CONFIG_HOME/eza"; + LS_COLORS = "$(${lib.getExe pkgs.vivid} generate catppuccin-${config.catppuccin.flavor})"; + }; + programs.eza = { + enable = true; + extraOptions = [ + "--group-directories-first" + ]; + git = true; + icons = "auto"; + }; +} diff --git a/home/shared/dev/fd.nix b/home/shared/dev/fd.nix new file mode 100644 index 0000000..13d040d --- /dev/null +++ b/home/shared/dev/fd.nix @@ -0,0 +1,3 @@ +{ + programs.fd.enable = true; +} diff --git a/home/shared/dev/fzf.nix b/home/shared/dev/fzf.nix new file mode 100644 index 0000000..5e620ed --- /dev/null +++ b/home/shared/dev/fzf.nix @@ -0,0 +1,20 @@ +{ + lib, + pkgs, + ... +}: +{ + programs.fzf = { + enable = true; + changeDirWidgetCommand = "fd --type d --hidden --strip-cwd-prefix --exclude .git"; + changeDirWidgetOptions = [ + "--preview= '${lib.getExe pkgs.eza} --tree --color=always {} | head -200'" + ]; + defaultCommand = "fd --hidden --strip-cwd-prefix --exclude .git"; + defaultOptions = [ "--layout reverse" ]; + fileWidgetCommand = "fd --type f --hidden --strip-cwd-prefix --exclude .git"; + fileWidgetOptions = [ + "--preview 'bat -n --color=always --line-range :500 {}'" + ]; + }; +} diff --git a/home/shared/dev/jq.nix b/home/shared/dev/jq.nix new file mode 100644 index 0000000..825fbf2 --- /dev/null +++ b/home/shared/dev/jq.nix @@ -0,0 +1,3 @@ +{ + programs.jq.enable = true; +} diff --git a/home/shared/dev/pandoc.nix b/home/shared/dev/pandoc.nix new file mode 100644 index 0000000..3f962e4 --- /dev/null +++ b/home/shared/dev/pandoc.nix @@ -0,0 +1,3 @@ +{ + programs.pandoc.enable = true; +} diff --git a/home/shared/dev/ripgrep.nix b/home/shared/dev/ripgrep.nix new file mode 100644 index 0000000..34cc7c5 --- /dev/null +++ b/home/shared/dev/ripgrep.nix @@ -0,0 +1,3 @@ +{ + programs.ripgrep.enable = true; +} diff --git a/home/shared/dev/shells/atuin.nix b/home/shared/dev/shell/atuin.nix similarity index 100% rename from home/shared/dev/shells/atuin.nix rename to home/shared/dev/shell/atuin.nix diff --git a/home/shared/dev/shells/bash.nix b/home/shared/dev/shell/bash.nix similarity index 100% rename from home/shared/dev/shells/bash.nix rename to home/shared/dev/shell/bash.nix diff --git a/home/shared/dev/shells/default.nix b/home/shared/dev/shell/default.nix similarity index 100% rename from home/shared/dev/shells/default.nix rename to home/shared/dev/shell/default.nix diff --git a/home/shared/dev/shells/environment/aliases.nix b/home/shared/dev/shell/environment/aliases.nix similarity index 100% rename from home/shared/dev/shells/environment/aliases.nix rename to home/shared/dev/shell/environment/aliases.nix diff --git a/home/shared/dev/shells/environment/default.nix b/home/shared/dev/shell/environment/default.nix similarity index 100% rename from home/shared/dev/shells/environment/default.nix rename to home/shared/dev/shell/environment/default.nix diff --git a/home/shared/dev/shells/environment/session-path.nix b/home/shared/dev/shell/environment/session-path.nix similarity index 100% rename from home/shared/dev/shells/environment/session-path.nix rename to home/shared/dev/shell/environment/session-path.nix diff --git a/home/shared/dev/shells/fish.nix b/home/shared/dev/shell/fish.nix similarity index 100% rename from home/shared/dev/shells/fish.nix rename to home/shared/dev/shell/fish.nix diff --git a/home/shared/dev/shells/ui/default.nix b/home/shared/dev/shell/ui/default.nix similarity index 100% rename from home/shared/dev/shells/ui/default.nix rename to home/shared/dev/shell/ui/default.nix diff --git a/home/shared/dev/shells/ui/dircolors.nix b/home/shared/dev/shell/ui/dircolors.nix similarity index 100% rename from home/shared/dev/shells/ui/dircolors.nix rename to home/shared/dev/shell/ui/dircolors.nix diff --git a/home/shared/dev/shells/ui/starship.nix b/home/shared/dev/shell/ui/starship.nix similarity index 100% rename from home/shared/dev/shells/ui/starship.nix rename to home/shared/dev/shell/ui/starship.nix diff --git a/home/shared/dev/zoxide.nix b/home/shared/dev/zoxide.nix new file mode 100644 index 0000000..c4b4530 --- /dev/null +++ b/home/shared/dev/zoxide.nix @@ -0,0 +1,3 @@ +{ + programs.zoxide.enable = true; +} From e701bd90df90d34139d2c1ba350d1b593d8ab308 Mon Sep 17 00:00:00 2001 From: Thierry Delafontaine Date: Sat, 21 Feb 2026 22:07:27 +0100 Subject: [PATCH 2/7] feat(home/dev/bat): remove line numbers --- home/shared/dev/bat.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/home/shared/dev/bat.nix b/home/shared/dev/bat.nix index 7361efb..2756811 100644 --- a/home/shared/dev/bat.nix +++ b/home/shared/dev/bat.nix @@ -10,7 +10,6 @@ italic-text = "always"; style = lib.concatStringsSep "," [ "changes" - "numbers" "rule" "snip" ]; From 2fd87327dbfdad7a125752d7223384a47bf3b4b9 Mon Sep 17 00:00:00 2001 From: Thierry Delafontaine Date: Sat, 21 Feb 2026 22:10:23 +0100 Subject: [PATCH 3/7] feat(home/dev/eza): disable git status Git status on files decreases performance --- home/shared/dev/eza.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/home/shared/dev/eza.nix b/home/shared/dev/eza.nix index 16d522e..3074000 100644 --- a/home/shared/dev/eza.nix +++ b/home/shared/dev/eza.nix @@ -15,7 +15,6 @@ extraOptions = [ "--group-directories-first" ]; - git = true; icons = "auto"; }; } From 3df5c42d3b76700e122a68c080a25f894b10b892 Mon Sep 17 00:00:00 2001 From: Thierry Delafontaine Date: Sat, 21 Feb 2026 22:12:48 +0100 Subject: [PATCH 4/7] feat(home/dev/fd): enable hidden files per default --- home/shared/dev/fd.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/home/shared/dev/fd.nix b/home/shared/dev/fd.nix index 13d040d..b46e74c 100644 --- a/home/shared/dev/fd.nix +++ b/home/shared/dev/fd.nix @@ -1,3 +1,6 @@ { - programs.fd.enable = true; + programs.fd = { + enable = true; + hidden = true; + }; } From 9d773599fc4fe8b0dc3a67d04b4aa8ed6ad5a170 Mon Sep 17 00:00:00 2001 From: Thierry Delafontaine Date: Sat, 21 Feb 2026 22:21:24 +0100 Subject: [PATCH 5/7] feat(home/dev/pandoc): add defaults in configuration --- home/shared/dev/pandoc.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/home/shared/dev/pandoc.nix b/home/shared/dev/pandoc.nix index 3f962e4..91a7b2d 100644 --- a/home/shared/dev/pandoc.nix +++ b/home/shared/dev/pandoc.nix @@ -1,3 +1,10 @@ { - programs.pandoc.enable = true; + programs.pandoc = { + enable = true; + defaults = { + citeproc = true; + metadata.author = "Thierry Delafontaine"; + standalone = true; + }; + }; } From 38915b7adcf4825560305ca4ee745e0e07e51469 Mon Sep 17 00:00:00 2001 From: Thierry Delafontaine Date: Sat, 21 Feb 2026 22:23:04 +0100 Subject: [PATCH 6/7] feat(home/dev/ripgrep): enable hidden files per default --- home/shared/dev/ripgrep.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/home/shared/dev/ripgrep.nix b/home/shared/dev/ripgrep.nix index 34cc7c5..f0e3497 100644 --- a/home/shared/dev/ripgrep.nix +++ b/home/shared/dev/ripgrep.nix @@ -1,3 +1,8 @@ { - programs.ripgrep.enable = true; + programs.ripgrep = { + enable = true; + arguments = [ + "--hidden" + ]; + }; } From a4ab168b09024fefa696054ddfdbdf6b8bb13f69 Mon Sep 17 00:00:00 2001 From: Thierry Delafontaine Date: Sat, 21 Feb 2026 22:25:28 +0100 Subject: [PATCH 7/7] feat(home/dev/zoxide): use c/ci as zoxide commands The previous command remove cd as a zoxide alias. Instead we'll use c/ci to use zoxide. --- home/shared/dev/zoxide.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/home/shared/dev/zoxide.nix b/home/shared/dev/zoxide.nix index c4b4530..01f8cfd 100644 --- a/home/shared/dev/zoxide.nix +++ b/home/shared/dev/zoxide.nix @@ -1,3 +1,8 @@ { - programs.zoxide.enable = true; + programs.zoxide = { + enable = true; + options = [ + "--cmd c" + ]; + }; }