diff options
Diffstat (limited to 'home-manager/sh/fuzzel.nix')
-rw-r--r-- | home-manager/sh/fuzzel.nix | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/home-manager/sh/fuzzel.nix b/home-manager/sh/fuzzel.nix new file mode 100644 index 0000000..01f1125 --- /dev/null +++ b/home-manager/sh/fuzzel.nix @@ -0,0 +1,31 @@ + +{ pkgs }: let + #emojis = pkgs.writeText "emojis" ./emojis; + + fuzzel-emoji = pkgs.writeShellScriptBin "fuzzel-emoji" '' + emoji=$(${pkgs.fuzzel}/bin/fuzzel -d -l 20 "$@" < "${./emojis}") + + printf "%s" "''${emoji%% *}" | ${pkgs.wl-clipboard}/bin/wl-copy + ''; + + fuzzel-pass = pkgs.writeShellScriptBin "fuzzel-pass" '' + shopt -s nullglob globstar + + prefix=''${PASSWORD_STORE_DIR-~/.password-store} + password_files=( "$prefix"/**/*.gpg ) + password_files=( "''${password_files[@]#"$prefix"/}" ) + password_files=( "''${password_files[@]%.gpg}" ) + + password=$(printf '%s\n' "''${password_files[@]}" | ${pkgs.fuzzel}/bin/fuzzel -d "$@") + + [[ -n $password ]] || exit + + ${pkgs.pass}/bin/pass show -c "$password" 2>/dev/null + ''; +in pkgs.symlinkJoin { + name = "fuzzel"; + paths = [ + fuzzel-emoji + fuzzel-pass + ]; +} |