summaryrefslogtreecommitdiff
path: root/home-manager/sh/fuzzel.nix
blob: 01f1125f9484fdf85db73b02379348ad92be6cf4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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
  ];
}
Software created with 💖