From 6d463dc0c5ea4bf2167f014e3ab267f59f8abd0b Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Thu, 18 Apr 2024 00:53:41 -0700 Subject: [PATCH] Add zoxide and add zoxide support in lf --- hmModules/apps/default.nix | 1 + hmModules/apps/file-browsers/lf/default.nix | 19 +++++++++++++++---- hmModules/apps/zoxide/default.nix | 16 ++++++++++++++++ systems/pan/default.nix | 1 + 4 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 hmModules/apps/zoxide/default.nix diff --git a/hmModules/apps/default.nix b/hmModules/apps/default.nix index 4d496dc..735a533 100644 --- a/hmModules/apps/default.nix +++ b/hmModules/apps/default.nix @@ -14,5 +14,6 @@ ./rofi ./shells ./terminal-emulators + ./zoxide ]; } diff --git a/hmModules/apps/file-browsers/lf/default.nix b/hmModules/apps/file-browsers/lf/default.nix index 9e1372c..0ad6060 100644 --- a/hmModules/apps/file-browsers/lf/default.nix +++ b/hmModules/apps/file-browsers/lf/default.nix @@ -10,8 +10,6 @@ config = lib.mkIf config.lf.enable { xdg.configFile."lf/icons".source = ./icons; - - programs.lf = { enable = true; settings = { @@ -29,8 +27,15 @@ }; commands = { dragon-out = ''%${pkgs.xdragon}/bin/xdragon -a -x "$fx"''; - trash = lib.mkIf config.trash.enable - ''%${pkgs.trash-cli}/bin/trash "$fx"''; + trash = lib.mkIf config.trash.enable '' + %${pkgs.trash-cli}/bin/trash "$fx" + ''; + zoxide-cd = lib.mkIf config.zoxide.enable '' + ''${{ + result="$(${pkgs.zoxide}/bin/zoxide query -i | sed 's/\\/\\\\/g;s/"/\\"/g')" + ${pkgs.lf}/bin/lf -remote "send $id cd \"$result\"" + }} + ''; mkdir = '' ''${{ printf "Directory Name: " @@ -45,6 +50,11 @@ touch $FILE }} ''; + on-cd = lib.mkIf config.zoxide.enable '' + &{{ + ${pkgs.zoxide}/bin/zoxide add "$PWD" + }} + ''; }; keybindings = let leader = config.lf.leader; @@ -56,6 +66,7 @@ "${leader}d" = "mkdir"; "${leader}f" = "mkfile"; "${leader}m" = "dragon-out"; + "${leader}z" = lib.mkIf config.zoxide.enable "zoxide-cd"; }; extraConfig = let diff --git a/hmModules/apps/zoxide/default.nix b/hmModules/apps/zoxide/default.nix new file mode 100644 index 0000000..859c69b --- /dev/null +++ b/hmModules/apps/zoxide/default.nix @@ -0,0 +1,16 @@ +{ config, pkgs, lib, ... }: + +{ + options.zoxide = { + enable = lib.mkEnableOption "Enables Zoxide"; + }; + + config = lib.mkIf config.zoxide.enable { + programs.zoxide = { + enable = true; + options = [ + "--cmd cd" + ]; + }; + }; +} diff --git a/systems/pan/default.nix b/systems/pan/default.nix index 3d8fcc4..7025f6d 100644 --- a/systems/pan/default.nix +++ b/systems/pan/default.nix @@ -55,6 +55,7 @@ "${config.home.homeDirectory}/.steam*" "${config.home.homeDirectory}/.zshenv" ]; + zoxide.enable = true; gimp.enable = true;