From cd572d460b9cf4a0834ee218f0f17bc776f054d4 Mon Sep 17 00:00:00 2001 From: cspark Date: Sun, 4 Aug 2024 18:21:35 +0100 Subject: [PATCH] Make password manager script for fuzzel, currently only on niri desktop configuration --- modules/nixos/cspark-desktop-niri/home.nix | 27 +++++++++++++++++++ .../home-manager/.config/niri/config.kdl | 1 + 2 files changed, 28 insertions(+) diff --git a/modules/nixos/cspark-desktop-niri/home.nix b/modules/nixos/cspark-desktop-niri/home.nix index 5e534a79..9178a371 100644 --- a/modules/nixos/cspark-desktop-niri/home.nix +++ b/modules/nixos/cspark-desktop-niri/home.nix @@ -37,6 +37,33 @@ in swaybg -i ${config.home.homeDirectory}/Pictures/Wallpapers/justfriends.png & wlsunset -l 51.5 -L 0.1 & '') + (writeShellScriptBin "fuzzel-pass" + '' +shopt -s nullglob globstar + +typeit=0 +if [[ $1 == "--type" ]]; then +typeit=1 +shift +fi + +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[@]}" | fuzzel --background=fbf1c7ff --border-color=d79921ff --text-color=3c3836ff --match-color=f9f5d7ff --selection-color=d79921ff --selection-text-color=fbf1c7ff --dmenu "$@") + +[[ -n $password ]] || exit + +if [[ $typeit -eq 0 ]]; then + pass_output=$(pass show -c "$password" 2>/dev/null) + notify-send "$pass_output" +else + pass_output=$(pass show "$password" | { IFS= read -r pass; printf %s "$pass"; }) + notify-send "$pass_output" +fi + '') ]; home.sessionVariables = { diff --git a/modules/nixos/cspark-desktop-niri/resources/home-manager/.config/niri/config.kdl b/modules/nixos/cspark-desktop-niri/resources/home-manager/.config/niri/config.kdl index 62d0c179..4a8c1b64 100644 --- a/modules/nixos/cspark-desktop-niri/resources/home-manager/.config/niri/config.kdl +++ b/modules/nixos/cspark-desktop-niri/resources/home-manager/.config/niri/config.kdl @@ -259,6 +259,7 @@ binds { Alt+Return { spawn "foot"; } Alt+D { spawn "fuzzel" "--background=fbf1c7ff" "--border-color=d79921ff" "--text-color=3c3836ff" "--match-color=f9f5d7ff" "--selection-color=d79921ff" "--selection-text-color=fbf1c7ff"; } Super+L { spawn "swaylock"; } + Ctrl+Alt+P { spawn "fuzzel-pass"; } // You can also use a shell: // Alt+T { spawn "bash" "-c" "notify-send hello && exec alacritty"; }