diff --git a/home/features/cli/default.nix b/home/features/cli/default.nix index 0cee4d2..c477beb 100644 --- a/home/features/cli/default.nix +++ b/home/features/cli/default.nix @@ -1,7 +1,7 @@ {pkgs, ...}: { imports = [ ./fish.nix - ./skim.nix + ./fzf.nix ./nitch.nix ./nushell.nix ./secrets.nix diff --git a/home/features/cli/fzf.nix b/home/features/cli/fzf.nix new file mode 100644 index 0000000..6219f4d --- /dev/null +++ b/home/features/cli/fzf.nix @@ -0,0 +1,40 @@ +{ + config, + lib, + ... +}: +with lib; let + cfg = config.features.cli.fzf; +in { + options.features.cli.fzf.enable = mkEnableOption "enable fuzzy finder"; + + config = mkIf cfg.enable { + programs.fzf = { + enable = true; + enableFishIntegration = true; + colors = { + "fg" = "#f8f8f2"; + "bg" = "#282a36"; + "hl" = "#bd93f9"; + "fg+" = "#f8f8f2"; + "bg+" = "#44475a"; + "hl+" = "#bd93f9"; + "info" = "#ffb86c"; + "prompt" = "#50fa7b"; + "pointer" = "#ff79c6"; + "marker" = "#ff79c6"; + "spinner" = "#ffb86c"; + "header" = "#6272a4"; + }; + defaultOptions = [ + "--preview='bat --color=always -n {}'" + "--bind 'ctrl-/:toggle-preview'" + "--header 'Press CTRL-Y to copy command into clipboard'" + "--bind 'ctrl-/:toggle-preview'" + "--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"; + }; + }; +} diff --git a/home/features/cli/nushell.nix b/home/features/cli/nushell.nix index 702dfbe..d20d778 100644 --- a/home/features/cli/nushell.nix +++ b/home/features/cli/nushell.nix @@ -22,13 +22,6 @@ in { $env.VISUAL = "zed" $env.XDG_DATA_HOME = $"($env.HOME)/.local/share" $env.FZF_DEFAULT_COMMAND = "fd --type f --exclude .git --follow --hidden" - $env.FZF_DEFAULT_OPTS = " - --preview='bat --color=always -n {}' - --preview-window up:3:hidden:wrap - --bind 'ctrl-/:toggle-preview' - --bind 'ctrl-y:execute-silent(echo -n {2..} | wl-copy)+abort' - --color header:bold - --header 'Press CTRL-Y to copy command into clipboard'" $env.FLAKE = $"($env.HOME)/p/nixos/nixos-config" source /run/agenix/${config.home.username}-secrets ''; @@ -73,12 +66,14 @@ in { def history_fuzzy [] { let selected = ( history - | uniq + | reverse | get command - | sk --height 40% --layout=reverse --color=fg:#f8f8f2,bg:#282a36,current_bg:#ff79c6,current_fg:#bd93f9,info:#ffb86c,marker:#6272a4,pointer:#50fa7b,spinner:#50fa7b + | uniq + | to text + | ^fzf ) if ($selected | is-not-empty) { - ^nu -c ($selected) + commandline edit ($selected) } else { null } @@ -86,7 +81,7 @@ in { def --env dir_fuzzy [] { let selected = ( fd --type directory - | ^sk --preview 'eza --tree --no-permissions --no-filesize --no-user --no-time --only-dirs {}' --height 40% --layout=reverse --color=fg:#f8f8f2,bg:#282a36,current_bg:#ff79c6,current_fg:#bd93f9,info:#ffb86c,marker:#6272a4,pointer:#50fa7b,spinner:#50fa7b + | ^fzf ) cd $selected } @@ -95,11 +90,8 @@ in { let selected = ( ^fd --type file --no-hidden -X rg -l --files-with-matches . | lines - | sk --format { $in } - --height 40% - --layout=reverse - --preview { open $in | bat --color=always --line-range :50 } - --color=fg:#f8f8f2,bg:#282a36,current_bg:#ff79c6,current_fg:#bd93f9,info:#ffb86c,marker:#6272a4,pointer:#50fa7b,spinner:##50fa7b + | to text + | ^fzf ) if ($selected | is-not-empty) { ^$env.EDITOR $selected diff --git a/home/features/cli/skim.nix b/home/features/cli/skim.nix deleted file mode 100644 index ba3592b..0000000 --- a/home/features/cli/skim.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - config, - lib, - ... -}: -with lib; let - cfg = config.features.cli.skim; -in { - options.features.cli.skim.enable = mkEnableOption "enable skim fuzzy finder"; - - config = mkIf cfg.enable { - programs.skim = { - enable = true; - enableFishIntegration = true; - defaultOptions = [ - "--preview='bat --color=always -n {}'" - "--bind 'ctrl-/:toggle-preview'" - ]; - defaultCommand = "fd --type f --exclude .git --follow --hidden"; - changeDirWidgetCommand = "fd --type d --exclude .git --follow --hidden"; - }; - }; -} diff --git a/home/m3tam3re/m3-ares.nix b/home/m3tam3re/m3-ares.nix index efb7aee..0137490 100644 --- a/home/m3tam3re/m3-ares.nix +++ b/home/m3tam3re/m3-ares.nix @@ -50,7 +50,7 @@ in { cli = { fish.enable = true; nushell.enable = true; - skim.enable = true; + fzf.enable = true; nitch.enable = true; secrets.enable = true; starship.enable = true; diff --git a/home/m3tam3re/m3-kratos.nix b/home/m3tam3re/m3-kratos.nix index e6ff182..71d33b6 100644 --- a/home/m3tam3re/m3-kratos.nix +++ b/home/m3tam3re/m3-kratos.nix @@ -48,7 +48,7 @@ in { features = { cli = { nushell.enable = true; - skim.enable = true; + fzf.enable = true; nitch.enable = true; secrets.enable = true; starship.enable = true; diff --git a/hosts/m3-ares/services/udev.nix b/hosts/m3-ares/services/udev.nix index 19ceb22..9b7af9b 100644 --- a/hosts/m3-ares/services/udev.nix +++ b/hosts/m3-ares/services/udev.nix @@ -1,6 +1,6 @@ {pkgs, ...}: { services.udev.extraRules = '' - SUBSYSTEM=="usb", MODE="0666 + SUBSYSTEM=="usb", MODE="0666" ''; environment.systemPackages = with pkgs; [ zsa-udev-rules diff --git a/hosts/m3-kratos/services/udev.nix b/hosts/m3-kratos/services/udev.nix index 39fbfde..9b7af9b 100644 --- a/hosts/m3-kratos/services/udev.nix +++ b/hosts/m3-kratos/services/udev.nix @@ -1,4 +1,7 @@ {pkgs, ...}: { + services.udev.extraRules = '' + SUBSYSTEM=="usb", MODE="0666" + ''; environment.systemPackages = with pkgs; [ zsa-udev-rules ];