feat: create new home/ directory structure for profile-based config
New structure:
- home/base/ - Always loaded (shell, cli-tools, secrets)
- home/coding/ - Profile-independent dev tooling (editor, lsp, git, agents)
- home/profiles/ - Freely combinable profiles (gaming, media)
- home/desktop/ - Desktop-only (wm, apps, theme)
- home/server/ - Minimal server stub
Migration sources:
- home/features/cli/ → home/base/{shell,cli-tools,secrets}
- home/features/desktop/hyprland,wayland,rofi → home/desktop/wm/
- home/features/desktop/obsidian,office,webapps,crypto → home/desktop/apps/
- home/features/desktop/fonts,theme,wallpapers → home/desktop/theme/
- gaming.nix split → home/profiles/gaming/{steam,gamescope}
- media.nix split → home/profiles/media/{obs,ffmpeg,yt-dlp,kdenlive,handbrake}
Option namespaces updated:
- features.cli.* → base.shell.* / base.cliTools.* / base.secrets
- features.desktop.* → desktop.wm.* / desktop.apps.* / desktop.theme.*
- features.desktop.gaming → profiles.gaming.*
- features.desktop.media → profiles.media.*
Verified: nix flake check passes (warnings only)
2026-04-26 10:37:03 +02:00
|
|
|
# Fuzzy finder with nix-colors palette and Wayland clipboard integration.
|
|
|
|
|
{
|
|
|
|
|
config,
|
|
|
|
|
lib,
|
|
|
|
|
...
|
|
|
|
|
}:
|
|
|
|
|
with lib; let
|
|
|
|
|
cfg = config.base.cliTools.fzf;
|
|
|
|
|
in {
|
2026-04-26 12:16:44 +02:00
|
|
|
# Enabled by default — base modules are always-on.
|
|
|
|
|
options.base.cliTools.fzf.enable = (mkEnableOption "enable fuzzy finder") // {default = true;};
|
feat: create new home/ directory structure for profile-based config
New structure:
- home/base/ - Always loaded (shell, cli-tools, secrets)
- home/coding/ - Profile-independent dev tooling (editor, lsp, git, agents)
- home/profiles/ - Freely combinable profiles (gaming, media)
- home/desktop/ - Desktop-only (wm, apps, theme)
- home/server/ - Minimal server stub
Migration sources:
- home/features/cli/ → home/base/{shell,cli-tools,secrets}
- home/features/desktop/hyprland,wayland,rofi → home/desktop/wm/
- home/features/desktop/obsidian,office,webapps,crypto → home/desktop/apps/
- home/features/desktop/fonts,theme,wallpapers → home/desktop/theme/
- gaming.nix split → home/profiles/gaming/{steam,gamescope}
- media.nix split → home/profiles/media/{obs,ffmpeg,yt-dlp,kdenlive,handbrake}
Option namespaces updated:
- features.cli.* → base.shell.* / base.cliTools.* / base.secrets
- features.desktop.* → desktop.wm.* / desktop.apps.* / desktop.theme.*
- features.desktop.gaming → profiles.gaming.*
- features.desktop.media → profiles.media.*
Verified: nix flake check passes (warnings only)
2026-04-26 10:37:03 +02:00
|
|
|
|
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
|
programs.fzf = {
|
|
|
|
|
enable = true;
|
|
|
|
|
enableFishIntegration = true;
|
|
|
|
|
colors = {
|
|
|
|
|
"fg" = "#${config.colorScheme.palette.base05}";
|
|
|
|
|
"bg" = "#${config.colorScheme.palette.base00}";
|
|
|
|
|
"hl" = "#${config.colorScheme.palette.base0E}";
|
|
|
|
|
"fg+" = "#${config.colorScheme.palette.base05}";
|
|
|
|
|
"bg+" = "#${config.colorScheme.palette.base02}";
|
|
|
|
|
"hl+" = "#${config.colorScheme.palette.base0E}";
|
|
|
|
|
"info" = "#${config.colorScheme.palette.base09}";
|
|
|
|
|
"prompt" = "#${config.colorScheme.palette.base0B}";
|
|
|
|
|
"pointer" = "#${config.colorScheme.palette.base08}";
|
|
|
|
|
"marker" = "#${config.colorScheme.palette.base08}";
|
|
|
|
|
"spinner" = "#${config.colorScheme.palette.base09}";
|
|
|
|
|
"header" = "#${config.colorScheme.palette.base03}";
|
|
|
|
|
};
|
|
|
|
|
defaultOptions = [
|
|
|
|
|
"--preview='bat --color=always -n {}'"
|
|
|
|
|
"--bind 'ctrl-/:toggle-preview'"
|
|
|
|
|
"--header 'Press CTRL-Y to copy command into clipboard'"
|
|
|
|
|
"--bind 'ctrl-y:execute-silent(echo -n {2..} | wl-copy)+abort'"
|
|
|
|
|
];
|
|
|
|
|
defaultCommand = "fd --type f --exclude .git --follow --hidden";
|
|
|
|
|
changeDirWidgetCommand = "fd --type d --exclude .git --follow --hidden";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|