From 9cd223b8b15f7628d95548a9fc60d24cfc9e93ac Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 14 May 2020 10:29:30 +0200 Subject: [PATCH 01/15] [mpv] Implement robust sponsorblock solution Used po5's simpler and more stable solution for getting the correct configuration file directory to start the sponsorblock plugin on older mpv installations. --- mpv/.config/mpv/scripts/sponsorblock_legacy.lua | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/mpv/.config/mpv/scripts/sponsorblock_legacy.lua b/mpv/.config/mpv/scripts/sponsorblock_legacy.lua index 1111f3e..f35bed8 100644 --- a/mpv/.config/mpv/scripts/sponsorblock_legacy.lua +++ b/mpv/.config/mpv/scripts/sponsorblock_legacy.lua @@ -1,9 +1,3 @@ if mp.get_script_directory == nil then - local scriptpath = debug.getinfo(1).short_src:match('.*/') - local originalpath = package.path - package.path = scriptpath .. "?.lua" - - require 'sponsorblock/main' - - package.path = originalpath + dofile(mp.find_config_file("scripts/sponsorblock/main.lua")) end From 3796fa8ce599d03385a66d6f10d1633f2b601531 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 14 May 2020 09:51:58 +0200 Subject: [PATCH 02/15] [gopass] Move rofi-gopass to gopass directory Rofi gopass thematically belongs to gopass, not rofi. It depends on rofi, so it should check for its existence; but it is more closely entangled with gopass. --- {rofi => gopass}/.local/bin/rofi-gopass | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {rofi => gopass}/.local/bin/rofi-gopass (100%) diff --git a/rofi/.local/bin/rofi-gopass b/gopass/.local/bin/rofi-gopass similarity index 100% rename from rofi/.local/bin/rofi-gopass rename to gopass/.local/bin/rofi-gopass From 6fe0b66bd11e1b29e66a9b8e3c101c0b88bb7793 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 14 May 2020 12:47:01 +0200 Subject: [PATCH 03/15] [gopass] Fix simple autoentry of user credentials Simplify gopass autoentry script heavily. Will pick up user credentials from gopass store and enter them in whatever way the user wishes. Fix key entry for changes in gopass 1.9.* password display options. Several default variables can be customized, see the top of the rofi-gopass file. --- gopass/.local/bin/rofi-gopass | 292 +++++++++++----------------------- 1 file changed, 90 insertions(+), 202 deletions(-) diff --git a/gopass/.local/bin/rofi-gopass b/gopass/.local/bin/rofi-gopass index b6a9224..e39dc1d 100755 --- a/gopass/.local/bin/rofi-gopass +++ b/gopass/.local/bin/rofi-gopass @@ -1,228 +1,116 @@ -#!/bin/bash +#!/usr/bin/env bash +# +# Code originally inspired by https://github.com/carnager/rofi-pass/ -# Code belongs to https://github.com/carnager/rofi-pass/ -# Copyright (C) 2019 carnager +# DEFAULT OPTIONS + +# typing tool used, choice of: +# xdotool | +BACKEND=xdotool + +# the complete typing chain autoentry uses +# possible fields: +# :tab | :space | :enter | username | password +# +# Note that spaces have to be passed explicitly with :space, +# putting a literal ' ' in the chain will not work +# +# By default it enters the username, tabs down, and enters the password +# It does not press return at the end for safety, though you can add +# :return to make it do so. +AUTOENTRY_CHAIN="username :tab password" + +# wait time before entering each input +# in milliseconds +AUTOENTRY_DELAY=20 + +# default key bindings +# Automatically enter username and password +KEY_AUTOENTRY="Return" # rofi wrapper. Add custom settings here. _rofi() { + # TODO add check for dmenu + exist rofi critical "rofi-pass" || exit 0 rofi -dmenu -no-auto-select -i "$@" -theme /themes/dmenu } -# default settings -backend=xdotool -dotool_delay=20 -daemon_wait=2 -autotype_delay=2 -key_autotype="Return" -key_usertype="Alt+2" -key_passtype="Alt+3" -key_actions="Alt+a" -key_clipboard="Alt+1" -key_fieldtype="Return" - -# read config file -get_config_file() { - configs=("$ROFI_PASS_CONFIG" - "$HOME/.config/rofi-pass/rofi-gopass.conf" - "/etc/rofi-gopass.conf") - - # return the first config file with a valid path - for config in "${configs[@]}"; do - # '! -z' is needed in case ROFI_PASS_CONFIG is not set - if [[ ! -z "${config}" && -f "${config}" ]]; then - printf "%s" "$config" - return - fi - done -} - -# Make sure ESC will always end the programm. -# Call this function with "exit_check $?" after each rofi call. +# exit on escape pressed +# rofi returns exit code 1 on esc exit_check() { - exit_value=$1 - if [[ "${exit_value}" == "1" ]]; then - exit - fi + [ "$1" -eq 1 ] && exit } -clipboard() { - local entry - local key - local value - entry="${1}" - key="${2}" - value="$(gopass show "${entry}" "${key}")" - printf '%s' "${value}" | xclip -sel clip - notify-send "rofi-gopass" "Copied ${key} to clipboard\nClearing in 45 seconds." - ( - sleep 45 - printf '%s' "" | xclip - printf '%s' "" | xclip -selection clipboard | notify-send "rofi-gopass" "Clipboard cleared" - ) & - exit -} - -_ydotoold() { - if ! pgrep -x "ydotoold" >/dev/null; then - # ydotoold blocks the terminal, so we need to background it. - # Sadly this way we never know when the process finished starting up. - # Until ydotoold receives proper daemonizing we add a sleep value here. - ydotoold & - sleep "${daemon_wait}" - fi -} - -_dotool() { - local mode - local key - mode="${1}" - key="${2:-null}" - case "${mode}" in - "type") - case "${backend}" in - "xdotool") xdotool type --delay "${dotool_delay}" --file - ;; - "ydotool") - _ydotoold - ydotool type --delay "${dotool_delay}" --file - - ;; - esac - ;; - "key") - case "${backend}" in - "xdotool") xdotool key "${key}" ;; - "ydotool") - _ydotoold - ydotool key "${key}" - ;; - esac - ;; - esac -} - -list_passwords() { +# simply return a list of all passwords in gopass store +# TODO choose password store +# TODO only show website names (+ folder names), and account names for multiple accounts on one site +_gp_list_passwords() { gopass list --flat } -autopass() { - local entry - local autotype - entry="${1}" - autotype="$(gopass show "${entry}" autotype)" - autotype="${autotype:-username :tab pass}" +# return password for argument passed +_gp_show_password() { + gopass show -f --password "$1" +} - for word in ${autotype}; do - case "$word" in - ":tab") _dotool key Tab ;; - ":space") _dotool key " " ;; - ":delay") sleep "${autotype_delay}" ;; - ":enter") _dotool key enter ;; - "pass") printf '%s' "$(gopass show --password "${entry}")" | _dotool type ;; - *) printf '%s' "$(gopass show "${entry}" "${word}")" | _dotool type ;; +GOPASS_USERNAME_ATTEMPTS="username user login" + +# return username for argument passed +_gp_show_username() { + for key in $GOPASS_USERNAME_ATTEMPTS; do + + done + gopass show -f "$1" username || gopass -f show "$1" user || gopass -f show "$1" login +} + +# send password to clipboard +_gp_clip_password() { + gopass show -c "$1" +} + +# invoke the dotool to type inputs +_type() { + local tool + local toolmode + local key + tool="${BACKEND}" + toolmode="$1" + key="$2" + + "$tool" "$toolmode" --delay "$AUTOENTRY_DELAY" "$key" +} + +# automatically enter entry chain, set via AUTOENTRY_CHAIN +# transform special chain entries into valid dotool commands +autoentry() { + local selected + local autoentry_chain + selected="${1}" + autoentry_chain="${AUTOENTRY_CHAIN}" + + for part in $autoentry_chain; do + case "$part" in + ":tab") _type key Tab ;; + ":return") _type key Return ;; + ":space") _type key space ;; + "username") _type type "$(_gp_show_username "$selected")" ;; + "password") _type type "$(_gp_show_password "$selected")" ;; + *) printf '%s' "$part" ;; esac done } -list_keys() { - # gopass has no option to only list keys, so we need to build the list ourselves. - local entry - local keys - entry="${1}" - keys="$(gopass show "${entry}")" - printf '%s\n' "${keys}" | while read -r line; do - if [[ "${line}" == *": "* ]]; then - printf '%s\n' "${line%: *}" - fi - done -} - -edit_key() { - local entry - local keys - entry="${1}" - keys="$(list_keys "${entry}")" - key_name=$(printf '%s\n' "${keys}" | _rofi -mesg "Enter new key or chose existing one") - exit_check $? - value_name=$(printf '%s' "" | _rofi -mesg "Enter Value for key \"${key_name}\"") - exit_check $? - if [[ -z "${key_name}" ]]; then - printf '%s' "${value_name}" | gopass insert -a "${entry}" "${key_name}" - else - printf '%s' "${value_name}" | gopass insert "${entry}" "${key_name}" - fi -} - -# For dangerous operations call this function first. You can provide a message as argument. -# Example: confirm "Are you sure you want to delete entry?" -confirm() { - local message - message="${1}" - confirm_content=( - "Yes" - "No") - - confirm_menu=$(printf '%s\n' "${confirm_content[@]}" | _rofi -mesg "${message}") - exit_check $? - case "${confirm_menu}" in - "Yes") : ;; - "No") exit ;; - esac -} - -custom_type() { - local entry - local keys - entry="${1}" - keys="$(list_keys "${entry}")" - key_name=$(printf '%s\n' "${keys}" | _rofi -kb-accept-entry "" -no-custom -kb-custom-1 "${key_clipboard}" -kb-custom-2 "${key_fieldtype}" -mesg "${key_clipboard}: Copy to Clipboard | ${key_fieldtype}: Type Field") - local exit_value=$? - exit_check "${exit_value}" - case "${exit_value}" in - "10") clipboard "${entry}" "${key_name}" ;; - "11") - printf '%s' "$(gopass show "${entry}" "${key_name}")" | _dotool type - exit - ;; - esac -} - -do_menu() { - local entry - entry="${1}" - action_menu_content=( - "< Go Back" - "---" - "Show Fields" - "Add/Edit Keys" - "Generate New Password" - "Delete Entry" - ) - - action_menu="$(printf '%s\n' "${action_menu_content[@]}" | _rofi -no-custom -mesg "Selected Entry: ${entry}" -p '> ')" - exit_value=$? - exit_check "${exit_value}" - - case "${action_menu}" in - "< Go Back") main ;; - "Show Fields") custom_type "${entry}" ;; - "Add/Edit Keys") edit_key "${entry}" ;; - "Delete Entry") - confirm "Delete ${entry}?" - gopass rm -f "${entry}" - ;; - "Generate New Password") - confirm "Generate a new password for ${entry}?" - gopass generate -f "${entry}" - ;; - esac -} - main() { - entry="$(list_passwords | _rofi -kb-accept-entry "" -kb-custom-1 "${key_autotype}" -kb-custom-2 "${key_usertype}" -kb-custom-3 "${key_passtype}" -kb-custom-4 "${key_actions}" -mesg "${key_autotype}: Autotype | ${key_usertype}: Type User | ${key_passtype}: Type Pass | ${key_actions}: More Actions")" + # entry="$(list_passwords | _rofi -kb-accept-entry "" -kb-custom-1 "${key_autotype}" -kb-custom-2 "${key_usertype}" -kb-custom-3 "${key_passtype}" -kb-custom-4 "${key_actions}" -mesg "${key_autotype}: Autotype | ${key_usertype}: Type User | ${key_passtype}: Type Pass | ${key_actions}: More Actions")" + + entry="$(_gp_list_passwords | _rofi -kb-accept-entry "" -kb-custom-1 "${KEY_AUTOENTRY}")" exit_value=$? + exit_check "${exit_value}" case "${exit_value}" in + # autoentry selected "10") - autopass "${entry}" + autoentry "${entry}" exit ;; "11") From 03e8b3b9b5a4c91beeab101f229ea53bd60ecb89 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 14 May 2020 13:28:11 +0200 Subject: [PATCH 04/15] [gopass] Ensure default variables are set --- gopass/.local/bin/rofi-gopass | 58 ++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/gopass/.local/bin/rofi-gopass b/gopass/.local/bin/rofi-gopass index e39dc1d..bc5865f 100755 --- a/gopass/.local/bin/rofi-gopass +++ b/gopass/.local/bin/rofi-gopass @@ -6,7 +6,7 @@ # typing tool used, choice of: # xdotool | -BACKEND=xdotool +# BACKEND=xdotool # the complete typing chain autoentry uses # possible fields: @@ -18,15 +18,20 @@ BACKEND=xdotool # By default it enters the username, tabs down, and enters the password # It does not press return at the end for safety, though you can add # :return to make it do so. -AUTOENTRY_CHAIN="username :tab password" +# AUTOENTRY_CHAIN="username :tab password" # wait time before entering each input # in milliseconds -AUTOENTRY_DELAY=20 +# AUTOENTRY_DELAY=20 # default key bindings # Automatically enter username and password -KEY_AUTOENTRY="Return" +# KEY_AUTOENTRY="Return" + +# The field name containing your gopass username +# can take multiple names, separated by space +# Will go through names in descending precedence +# GOPASS_USERNAME_FIELD="username user login" # rofi wrapper. Add custom settings here. _rofi() { @@ -53,31 +58,48 @@ _gp_show_password() { gopass show -f --password "$1" } -GOPASS_USERNAME_ATTEMPTS="username user login" - -# return username for argument passed -_gp_show_username() { - for key in $GOPASS_USERNAME_ATTEMPTS; do - - done - gopass show -f "$1" username || gopass -f show "$1" user || gopass -f show "$1" login -} - # send password to clipboard _gp_clip_password() { gopass show -c "$1" } +# attempt to return the field specified +# attempts all (space separated) fields until the +# first one successfully returned +_gp_get_field() { + local gp_entry="$1" + local gp_field="$2" + local gp_opt="$3" + + for key in $gp_field; do + # return on first successfully returned key + if [ -n "$gp_opt" ]; then + gopass show "$gp_opt" -f "$gp_entry" "$key" && break + else + gopass show -f "$gp_entry" "$key" && break + fi + done +} + +# return username for argument passed +_gp_show_username() { + _gp_get_field "$1" "${GOPASS_USERNAME_FIELD:-"username user login"}" +} + +_gp_clip_username() { + _gp_get_field "$1" "${GOPASS_USERNAME_FIELD:-"username user login"}" "-c" +} + # invoke the dotool to type inputs _type() { local tool local toolmode local key - tool="${BACKEND}" + tool="${BACKEND:-xdotool}" toolmode="$1" key="$2" - "$tool" "$toolmode" --delay "$AUTOENTRY_DELAY" "$key" + "$tool" "$toolmode" --delay "${AUTOENTRY_DELAY:-20}" "$key" } # automatically enter entry chain, set via AUTOENTRY_CHAIN @@ -86,7 +108,7 @@ autoentry() { local selected local autoentry_chain selected="${1}" - autoentry_chain="${AUTOENTRY_CHAIN}" + autoentry_chain="${AUTOENTRY_CHAIN:-username :tab password}" for part in $autoentry_chain; do case "$part" in @@ -103,7 +125,7 @@ autoentry() { main() { # entry="$(list_passwords | _rofi -kb-accept-entry "" -kb-custom-1 "${key_autotype}" -kb-custom-2 "${key_usertype}" -kb-custom-3 "${key_passtype}" -kb-custom-4 "${key_actions}" -mesg "${key_autotype}: Autotype | ${key_usertype}: Type User | ${key_passtype}: Type Pass | ${key_actions}: More Actions")" - entry="$(_gp_list_passwords | _rofi -kb-accept-entry "" -kb-custom-1 "${KEY_AUTOENTRY}")" + entry="$(_gp_list_passwords | _rofi -kb-accept-entry "" -kb-custom-1 "${KEY_AUTOENTRY:-Return}")" exit_value=$? exit_check "${exit_value}" From c241352a7b87ffce8e03d8054821581e5b9bce66 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 14 May 2020 17:43:10 +0200 Subject: [PATCH 05/15] [gopass] Enable clipboard paste and entry submenu Added opening individual gopass entries in a rofi submenu (default Alt+Return). Allows copying any individual field to the clipboard, or directly autofilling them individually as well. Quick fill/copy is enabled from the main menu for usernames and passwords individually. --- gopass/.local/bin/rofi-gopass | 165 ++++++++++++++++++++++++++-------- 1 file changed, 127 insertions(+), 38 deletions(-) diff --git a/gopass/.local/bin/rofi-gopass b/gopass/.local/bin/rofi-gopass index bc5865f..8e86ba8 100755 --- a/gopass/.local/bin/rofi-gopass +++ b/gopass/.local/bin/rofi-gopass @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Code originally inspired by https://github.com/carnager/rofi-pass/ +# Original inspiration from https://github.com/carnager/rofi-pass/ # DEFAULT OPTIONS @@ -26,7 +26,20 @@ # default key bindings # Automatically enter username and password -# KEY_AUTOENTRY="Return" +# KEY_AUTOFILL="Return" +# Automatically enter username only +# KEY_FILL_USER="Alt+u" +# Add username to clipboard +# KEY_CLIP_USER="Ctrl+Alt+u" +# Automatically enter password only +# KEY_FILL_PASS="Alt+p" +# Add password to clipboard +# KEY_CLIP_PASS="Ctrl+Alt+p" +# For the individual gopass entry: +# Automatically fill selected field +# KEY_ENTRYMENU_FILL="Return" +# Add field to clipboard +# KEY_ENTRYMENU_CLIP="Alt+Return" # The field name containing your gopass username # can take multiple names, separated by space @@ -37,7 +50,7 @@ _rofi() { # TODO add check for dmenu exist rofi critical "rofi-pass" || exit 0 - rofi -dmenu -no-auto-select -i "$@" -theme /themes/dmenu + rofi -dmenu -no-auto-select -i "$@" } # exit on escape pressed @@ -49,17 +62,17 @@ exit_check() { # simply return a list of all passwords in gopass store # TODO choose password store # TODO only show website names (+ folder names), and account names for multiple accounts on one site -_gp_list_passwords() { +list_passwords() { gopass list --flat } # return password for argument passed -_gp_show_password() { +show_password() { gopass show -f --password "$1" } # send password to clipboard -_gp_clip_password() { +clip_password() { gopass show -c "$1" } @@ -69,12 +82,12 @@ _gp_clip_password() { _gp_get_field() { local gp_entry="$1" local gp_field="$2" - local gp_opt="$3" + local clip="$3" for key in $gp_field; do # return on first successfully returned key - if [ -n "$gp_opt" ]; then - gopass show "$gp_opt" -f "$gp_entry" "$key" && break + if [ -n "$clip" ]; then + gopass show -c "$gp_entry" "$key" && break else gopass show -f "$gp_entry" "$key" && break fi @@ -82,69 +95,145 @@ _gp_get_field() { } # return username for argument passed -_gp_show_username() { +show_username() { _gp_get_field "$1" "${GOPASS_USERNAME_FIELD:-"username user login"}" } -_gp_clip_username() { +clip_username() { _gp_get_field "$1" "${GOPASS_USERNAME_FIELD:-"username user login"}" "-c" } +show_field() { + _gp_get_field "$1" "$2" +} + +clip_field() { + _gp_get_field "$1" "$2" "-c" +} + +list_fields() { + gopass show -f "$1" | tail -n+2 +} + # invoke the dotool to type inputs _type() { - local tool - local toolmode - local key - tool="${BACKEND:-xdotool}" - toolmode="$1" - key="$2" + local tool="${BACKEND:-xdotool}" + local toolmode="$1" + local key="$2" - "$tool" "$toolmode" --delay "${AUTOENTRY_DELAY:-20}" "$key" + "$tool" "$toolmode" --delay "${AUTOENTRY_DELAY:-30}" "$key" } # automatically enter entry chain, set via AUTOENTRY_CHAIN # transform special chain entries into valid dotool commands -autoentry() { - local selected - local autoentry_chain - selected="${1}" - autoentry_chain="${AUTOENTRY_CHAIN:-username :tab password}" +autofill() { + local selected="${1}" + local autoentry_chain="${2}" for part in $autoentry_chain; do case "$part" in ":tab") _type key Tab ;; ":return") _type key Return ;; ":space") _type key space ;; - "username") _type type "$(_gp_show_username "$selected")" ;; - "password") _type type "$(_gp_show_password "$selected")" ;; - *) printf '%s' "$part" ;; + "username") _type type "$(show_username "$selected")" ;; + "password") _type type "$(show_password "$selected")" ;; + ":direct") _type type "$selected" ;; + *) printf '%s' "$selected" ;; esac done } -main() { - # entry="$(list_passwords | _rofi -kb-accept-entry "" -kb-custom-1 "${key_autotype}" -kb-custom-2 "${key_usertype}" -kb-custom-3 "${key_passtype}" -kb-custom-4 "${key_actions}" -mesg "${key_autotype}: Autotype | ${key_usertype}: Type User | ${key_passtype}: Type Pass | ${key_actions}: More Actions")" +# opens a menu for the specified gopass entry, containing its individual fields +entrymenu() { + local entry="$1" + local k_entrymenu_fill="${KEY_ENTRYMENU_FILL:-Return}" + local k_entrymenu_clip="${KEY_ENTRYMENU_CLIP:-Alt+Return}" - entry="$(_gp_list_passwords | _rofi -kb-accept-entry "" -kb-custom-1 "${KEY_AUTOENTRY:-Return}")" + local pass_obfuscation="(hidden)" + + local field + field=$( + printf "password: %s\n%s" "$pass_obfuscation" "$(list_fields "$entry")" | + _rofi \ + -kb-accept-entry "" \ + -kb-custom-1 "$k_entrymenu_fill" \ + -kb-custom-2 "$k_entrymenu_clip" \ + -mesg "| $k_entrymenu_fill: fill selection | $k_entrymenu_clip: clip selection |" + ) exit_value=$? + exit_check "$exit_value" - exit_check "${exit_value}" - case "${exit_value}" in - # autoentry selected + # get field name + field=${field%%:*} + case "$exit_value" in "10") - autoentry "${entry}" - exit + if [ "$field" = "password" ]; then + autofill "$entry" "password" + else + autofill "$(show_field "$entry" "$field")" ":direct" + fi + exit 0 ;; "11") - printf '%s' "$(gopass show "${entry}" username)" | _dotool type - exit + if [ "$field" = "password" ]; then + clip_password "$entry" + else + clip_field "$entry" "$field" + fi + exit 0 + ;; + esac +} + +main() { + local autoentry_chain="${AUTOENTRY_CHAIN:-username :tab password}" + local k_autofill="${KEY_AUTOFILL:-Return}" + local k_fill_user="${KEY_FILL_USER:-Alt+u}" + local k_clip_user="${KEY_CLIP_USER:-Ctrl+Alt+u}" + local k_fill_pass="${KEY_FILL_PASS:-Alt+p}" + local k_clip_pass="${KEY_CLIP_PASS:-Ctrl+Alt+p}" + local k_submenu="${KEY_CLIP_PASS:-Alt+Return}" + + entry="$( + list_passwords | + _rofi -kb-accept-entry "" \ + -kb-custom-1 "$k_autofill" \ + -kb-custom-2 "$k_clip_user" \ + -kb-custom-3 "$k_clip_pass" \ + -kb-custom-4 "$k_fill_user" \ + -kb-custom-5 "$k_fill_pass" \ + -kb-custom-6 "$k_submenu" \ + -mesg "| $k_autofill: fill credentials | $k_submenu: open entry | $k_fill_user: fill username | $k_fill_pass: fill password | $k_clip_user: clip username | $k_clip_pass: clip password |" + )" + exit_value=$? + + exit_check "$exit_value" + case "$exit_value" in + "10") + autofill "$entry" "$autoentry_chain" + exit 0 + ;; + "11") + clip_username "$entry" + exit 0 ;; "12") - printf '%s' "$(gopass show --password "${entry}")" | _dotool type + clip_password "$entry" + exit + ;; + "13") + autofill "$entry" "username" + exit + ;; + "14") + autofill "$entry" "password" + exit + ;; + "15") + entrymenu "$entry" exit ;; esac - do_menu "${entry}" } main From 271d71a91caed6327a98f5bae3554d9eb7f49882 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 14 May 2020 17:59:24 +0200 Subject: [PATCH 06/15] [gopass] Add ascending menus option Added the ability to move back from a single entry to the main rofi-gopass menu. (default to Alt+BackSpace) --- gopass/.local/bin/rofi-gopass | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gopass/.local/bin/rofi-gopass b/gopass/.local/bin/rofi-gopass index 8e86ba8..53fb977 100755 --- a/gopass/.local/bin/rofi-gopass +++ b/gopass/.local/bin/rofi-gopass @@ -40,6 +40,8 @@ # KEY_ENTRYMENU_FILL="Return" # Add field to clipboard # KEY_ENTRYMENU_CLIP="Alt+Return" +# Return to main menu +# KEY_ENTRYMENU_QUIT="Alt+BackSpace" # The field name containing your gopass username # can take multiple names, separated by space @@ -50,7 +52,7 @@ _rofi() { # TODO add check for dmenu exist rofi critical "rofi-pass" || exit 0 - rofi -dmenu -no-auto-select -i "$@" + rofi -dmenu -no-auto-select -i "$@" -p "Entry" } # exit on escape pressed @@ -148,6 +150,7 @@ entrymenu() { local entry="$1" local k_entrymenu_fill="${KEY_ENTRYMENU_FILL:-Return}" local k_entrymenu_clip="${KEY_ENTRYMENU_CLIP:-Alt+Return}" + local k_entrymenu_quit="${KEY_ENTRYMENU_QUIT:-Alt+BackSpace}" local pass_obfuscation="(hidden)" @@ -158,7 +161,8 @@ entrymenu() { -kb-accept-entry "" \ -kb-custom-1 "$k_entrymenu_fill" \ -kb-custom-2 "$k_entrymenu_clip" \ - -mesg "| $k_entrymenu_fill: fill selection | $k_entrymenu_clip: clip selection |" + -kb-custom-3 "$k_entrymenu_quit" \ + -mesg " ᐊ $k_entrymenu_quit ᐊ | $k_entrymenu_fill: fill selection | $k_entrymenu_clip: clip selection |" ) exit_value=$? exit_check "$exit_value" @@ -182,6 +186,9 @@ entrymenu() { fi exit 0 ;; + "12") + main + ;; esac } From fb2a51b05f4dbb2f5f8541302bad890e0f54c5b1 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Fri, 15 May 2020 19:06:54 +0200 Subject: [PATCH 07/15] [gopass] Strip unneccessary config, fix comments Removed unneccessary gopass configuration which should be automatically inferred on first startup (since it is mostly defaults). Fixed small comments in rofi-gopass. --- gopass/.config/gopass/config.yml | 20 +------------------- gopass/.local/bin/rofi-gopass | 5 ++--- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/gopass/.config/gopass/config.yml b/gopass/.config/gopass/config.yml index 4821550..1d7b65c 100644 --- a/gopass/.config/gopass/config.yml +++ b/gopass/.config/gopass/config.yml @@ -1,20 +1,2 @@ root: - askformore: false - autoclip: true - autoprint: false - autoimport: true - autosync: false - check_recipient_hash: false - cliptimeout: 45 - concurrency: 1 - editrecipients: false - nocolor: false - noconfirm: true - nopager: false - notifications: true - path: gpgcli-gitcli-fs+file:///home/marty/.local/share/gopass/passwords - recipient_hash: - .gpg-id: 353145383639394133414439344537334641363830434541313341433036443341444345413339410a423038433639313143453343313539463643373831324546334641423133324534463946343433390aa69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26 - safecontent: false - usesymbols: false -mounts: {} + path: gpgcli-gitcli-fs+file://~/.local/share/gopass/passwords diff --git a/gopass/.local/bin/rofi-gopass b/gopass/.local/bin/rofi-gopass index 53fb977..9479432 100755 --- a/gopass/.local/bin/rofi-gopass +++ b/gopass/.local/bin/rofi-gopass @@ -4,13 +4,12 @@ # DEFAULT OPTIONS -# typing tool used, choice of: -# xdotool | +# typing tool used, xdotool compatible syntax should work (e.g. ydotool) # BACKEND=xdotool # the complete typing chain autoentry uses # possible fields: -# :tab | :space | :enter | username | password +# :tab | :space | :return | username | password # # Note that spaces have to be passed explicitly with :space, # putting a literal ' ' in the chain will not work From 87031b8ce720695626b234c3484d82ef4de45f18 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Fri, 15 May 2020 19:08:52 +0200 Subject: [PATCH 08/15] [gopass] Add Docs --- .assets/gopass/rofi-menu.gif | Bin 0 -> 221770 bytes gopass/README.md | 47 +++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 .assets/gopass/rofi-menu.gif create mode 100644 gopass/README.md diff --git a/.assets/gopass/rofi-menu.gif b/.assets/gopass/rofi-menu.gif new file mode 100644 index 0000000000000000000000000000000000000000..79fad64835dc01a0b259d068da3c746c03bdda13 GIT binary patch literal 221770 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

~1Wwl}UrYph&i`28ap+XMMJu<`btDRF0Z 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 I`o@NG{k;>>5kEgk}tl>`Ay|=c^jgTYy(r| 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%0A9VJ*JhwB#Qnstr-(k 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%0Ap-ER{7>6DgzeqAZ0$zIC)r>0TMcmHw;1@&t9U7` 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 Date: Fri, 15 May 2020 21:12:13 +0200 Subject: [PATCH 09/15] [gopass] Add reading options from config file File can be used to alter the functions of rofi-gopass. --- gopass/.local/bin/rofi-gopass | 27 +++++++++++++++++++++++++- gopass/README.md | 36 ++++++++++++++++++++--------------- 2 files changed, 47 insertions(+), 16 deletions(-) diff --git a/gopass/.local/bin/rofi-gopass b/gopass/.local/bin/rofi-gopass index 9479432..013ff4b 100755 --- a/gopass/.local/bin/rofi-gopass +++ b/gopass/.local/bin/rofi-gopass @@ -26,6 +26,8 @@ # default key bindings # Automatically enter username and password # KEY_AUTOFILL="Return" +# Open entry +# KEY_OPEN_ENTRY # Automatically enter username only # KEY_FILL_USER="Alt+u" # Add username to clipboard @@ -47,6 +49,9 @@ # Will go through names in descending precedence # GOPASS_USERNAME_FIELD="username user login" +# The location of the rofi-gopass config file +# ROFI_PASS_CONFIGURATION_FILE="~/.config/rofi-gopass" + # rofi wrapper. Add custom settings here. _rofi() { # TODO add check for dmenu @@ -54,6 +59,25 @@ _rofi() { rofi -dmenu -no-auto-select -i "$@" -p "Entry" } +# read config file +get_config_file() { + local locations=("$ROFI_PASS_CONFIGURATION_FILE" + "${XDG_CONFIG_HOME:-$HOME/.config}/rofi-gopass/rofi-gopass.conf" + "$HOME/.rofi-gopass.conf" + "/etc/rofi-gopass.conf") + + # return the first config file with a valid path + for config in "${locations[@]}"; do + if [[ -n "$config" && -f "$config" ]]; then + # we only source config values, don't complain + # shellcheck disable=SC1090 + source "$config" + echo "sourced config" + return + fi + done +} + # exit on escape pressed # rofi returns exit code 1 on esc exit_check() { @@ -198,7 +222,7 @@ main() { local k_clip_user="${KEY_CLIP_USER:-Ctrl+Alt+u}" local k_fill_pass="${KEY_FILL_PASS:-Alt+p}" local k_clip_pass="${KEY_CLIP_PASS:-Ctrl+Alt+p}" - local k_submenu="${KEY_CLIP_PASS:-Alt+Return}" + local k_submenu="${KEY_OPEN_ENTRY:-Alt+Return}" entry="$( list_passwords | @@ -242,4 +266,5 @@ main() { esac } +get_config_file main diff --git a/gopass/README.md b/gopass/README.md index 749715e..0b7248c 100644 --- a/gopass/README.md +++ b/gopass/README.md @@ -12,25 +12,31 @@ To make accessing secrets easy, it uses the `rofi-gopass` script, which creates ![rofi-gopass demonstration](.assets/gopass/rofi-menu.gif) -There are several keybindings available, to either fill or copy to clipboard the username, password, or open the full view to an individual entry. For every send to clipboard action, the clipboard will be automatically cleared after the time specified in your gopass settings. +There are several keybindings available, to either fill or copy to clipboard the username, password, or open the full view to an individual entry. For every send to clipboard action, the clipboard will be automatically cleared after the time specified in your gopass settings. For auto-filling to work correctly, the username field will (by default) have to be highlighted. -| keybinding | function | -| -------- | -------- | -| Return | Auto-fill username & password | -| Alt+Return | Open individual entry | -| Alt+u | Auto-fill username | -| Alt+p | Auto-fill password | -| Ctrl+Alt+u | Send username to clipboard | -| Ctrl+Alt+p | Send password to clipboard | -| Return | Auto-fill selected field (from opened entry) | -| Alt+Return | Send selected field to clipboard (from opened entry) | -| Alt+BackSpace | Close individual entry, return to overview | +| keybinding | function | setting name | +| -------- | -------- | ---------- | +| Return | Auto-fill username & password | KEY_AUTOFILL | +| Alt+Return | Open individual entry | KEY_OPEN_ENTRY | +| Alt+u | Auto-fill username | KEY_FILL_USER | +| Alt+p | Auto-fill password | KEY_FILL_PASS | +| Ctrl+Alt+u | Send username to clipboard | KEY_CLIP_USER | +| Ctrl+Alt+p | Send password to clipboard | KEY_CLIP_PASS | +| Return | Auto-fill selected field (from opened entry) | KEY_ENTRYMENU_FILL | +| Alt+Return | Send selected field to clipboard (from opened entry) | KEY_ENTRYMENU_CLIP | +| Alt+BackSpace | Close individual entry, return to overview | KEY_ENTRYMENU_QUIT | -These keys can be reconfigured at the top of the script file. +These keys, as well as the additional configuration can be changed by setting the corresponding environment variable, through a configuration file, or at the top of the script file itself. The script tries to follow xdg-specification, meaning it looks for a configuration file in the following directories (in descending order): -For auto-filling to work, the username field will (by default) have to be highlighted. +* `XDG_CONFIG_HOME/rofi-gopass/rofi-gopass.conf` +* `~/.config/rofi-gopass/rofi-gopass.conf` +* `~/.rofi-gopass.conf` +* `/etc/rofi-gopass.conf` -Additional configuration at the top of the script file: +or, alternatively, a custom directory if the `ROFI_PASS_CONFIGURATION_FILE` variable points to a configuration file. + + +Additional configuration options: * `BACKEND` :sets the auto-filling tool used, only tested with `xdotool` currently. From 7fc1aa2e24296921dd145f8328e3085b9450bded Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Fri, 15 May 2020 22:06:06 +0200 Subject: [PATCH 10/15] [gopass] Refactor configuration options Configuration values can now be set through either environment variables, or a configuration file. Environment variables have their own special syntax (being prefixed with RGP_), and will take precedence over configuration files. The configuration file is also parsed, not sourced, so that no stray code would be executed on loading them. --- gopass/.local/bin/rofi-gopass | 132 +++++++++++++++------------------- gopass/README.md | 3 +- 2 files changed, 60 insertions(+), 75 deletions(-) diff --git a/gopass/.local/bin/rofi-gopass b/gopass/.local/bin/rofi-gopass index 013ff4b..b641915 100755 --- a/gopass/.local/bin/rofi-gopass +++ b/gopass/.local/bin/rofi-gopass @@ -2,80 +2,64 @@ # # Original inspiration from https://github.com/carnager/rofi-pass/ -# DEFAULT OPTIONS - -# typing tool used, xdotool compatible syntax should work (e.g. ydotool) -# BACKEND=xdotool - -# the complete typing chain autoentry uses -# possible fields: -# :tab | :space | :return | username | password -# -# Note that spaces have to be passed explicitly with :space, -# putting a literal ' ' in the chain will not work -# -# By default it enters the username, tabs down, and enters the password -# It does not press return at the end for safety, though you can add -# :return to make it do so. -# AUTOENTRY_CHAIN="username :tab password" - -# wait time before entering each input -# in milliseconds -# AUTOENTRY_DELAY=20 - -# default key bindings -# Automatically enter username and password -# KEY_AUTOFILL="Return" -# Open entry -# KEY_OPEN_ENTRY -# Automatically enter username only -# KEY_FILL_USER="Alt+u" -# Add username to clipboard -# KEY_CLIP_USER="Ctrl+Alt+u" -# Automatically enter password only -# KEY_FILL_PASS="Alt+p" -# Add password to clipboard -# KEY_CLIP_PASS="Ctrl+Alt+p" -# For the individual gopass entry: -# Automatically fill selected field -# KEY_ENTRYMENU_FILL="Return" -# Add field to clipboard -# KEY_ENTRYMENU_CLIP="Alt+Return" -# Return to main menu -# KEY_ENTRYMENU_QUIT="Alt+BackSpace" - -# The field name containing your gopass username -# can take multiple names, separated by space -# Will go through names in descending precedence -# GOPASS_USERNAME_FIELD="username user login" - -# The location of the rofi-gopass config file -# ROFI_PASS_CONFIGURATION_FILE="~/.config/rofi-gopass" - # rofi wrapper. Add custom settings here. _rofi() { # TODO add check for dmenu - exist rofi critical "rofi-pass" || exit 0 + exist rofi critical "rofi-gopass" || exit 0 rofi -dmenu -no-auto-select -i "$@" -p "Entry" } +# parse, see https://unix.stackexchange.com/a/331965/8541 +_parse_config() { + (grep -E "^$2=" -m 1 "$1" 2>/dev/null || printf "VAR=__UNDEFINED__\n") | head -n1 | cut -d '=' -f 2- +} + # read config file -get_config_file() { - local locations=("$ROFI_PASS_CONFIGURATION_FILE" +get_config() { + local locations=( + "$RGP_CONFIGURATION_FILE" "${XDG_CONFIG_HOME:-$HOME/.config}/rofi-gopass/rofi-gopass.conf" "$HOME/.rofi-gopass.conf" - "/etc/rofi-gopass.conf") + "/etc/rofi-gopass.conf" + ) # return the first config file with a valid path for config in "${locations[@]}"; do if [[ -n "$config" && -f "$config" ]]; then - # we only source config values, don't complain - # shellcheck disable=SC1090 - source "$config" - echo "sourced config" - return + # see if the config has been given a value + local val + val="$(_parse_config "$config" "$1")" + break fi done + + # if there was a config file but no value + # or there was no config file at all + if [ "$val" = "__UNDEFINED__" ] || [ -z "$val" ]; then + val="$2" + fi + printf -- "%s" "$val" +} + +set_defaults() { + # The location of the rofi-gopass config file + # ROFI_PASS_CONFIGURATION_FILE="~/.config/rofi-gopass" + # set options, leaving already set environment variables intact + # try to read any settings from config files + KEY_AUTOFILL="${RGP_KEY_AUTOFILL:-$(get_config KEY_AUTOFILL Return)}" + KEY_ENTRY_OPEN="${RGP_KEY_ENTRY_OPEN:-$(get_config KEY_ENTRY_OPEN Alt+Return)}" + KEY_FILL_USER="${RGP_KEY_FILL_USER:-$(get_config KEY_FILL_USER Alt+u)}" + KEY_CLIP_USER="${RGP_KEY_CLIP_USER:-$(get_config KEY_CLIP_USER Ctrl+Alt+u)}" + KEY_FILL_PASS="${RGP_KEY_FILL_PASS:-$(get_config KEY_FILL_PASS Alt+p)}" + KEY_CLIP_PASS="${RGP_KEY_CLIP_PASS:-$(get_config KEY_CLIP_PASS Ctrl+Alt+p)}" + KEY_ENTRYMENU_FILL="${RGP_KEY_ENTRYMENU_FILL:-$(get_config KEY_ENTRYMENU_FILL Return)}" + KEY_ENTRYMENU_CLIP="${RGP_KEY_ENTRYMENU_CLIP:-$(get_config KEY_ENTRYMENU_CLIP Alt+Return)}" + KEY_ENTRYMENU_QUIT="${RGP_KEY_ENTRYMENU_QUIT:-$(get_config KEY_ENTRYMENU_QUIT Alt+BackSpace)}" + + BACKEND="${RGP_BACKEND:-$(get_config BACKEND xdotool)}" + GOPASS_USERNAME_FIELD="${GOPASS_USERNAME_FIELD:-$(get_config GOPASS_USERNAME_FIELD 'username user login')}" + AUTOENTRY_CHAIN="${RGP_AUTOENTRY_CHAIN:-$(get_config AUTOENTRY_CHAIN 'username :tab password')}" + AUTOENTRY_DELAY="${RGP_AUTOENTRY_DELAY:-$(get_config AUTOENTRY_DELAY 30)}" } # exit on escape pressed @@ -121,11 +105,11 @@ _gp_get_field() { # return username for argument passed show_username() { - _gp_get_field "$1" "${GOPASS_USERNAME_FIELD:-"username user login"}" + _gp_get_field "$1" "${GOPASS_USERNAME_FIELD}" } clip_username() { - _gp_get_field "$1" "${GOPASS_USERNAME_FIELD:-"username user login"}" "-c" + _gp_get_field "$1" "${GOPASS_USERNAME_FIELD}" "-c" } show_field() { @@ -142,11 +126,11 @@ list_fields() { # invoke the dotool to type inputs _type() { - local tool="${BACKEND:-xdotool}" + local tool="${BACKEND}" local toolmode="$1" local key="$2" - "$tool" "$toolmode" --delay "${AUTOENTRY_DELAY:-30}" "$key" + "$tool" "$toolmode" --delay "${AUTOENTRY_DELAY}" "$key" } # automatically enter entry chain, set via AUTOENTRY_CHAIN @@ -171,9 +155,9 @@ autofill() { # opens a menu for the specified gopass entry, containing its individual fields entrymenu() { local entry="$1" - local k_entrymenu_fill="${KEY_ENTRYMENU_FILL:-Return}" - local k_entrymenu_clip="${KEY_ENTRYMENU_CLIP:-Alt+Return}" - local k_entrymenu_quit="${KEY_ENTRYMENU_QUIT:-Alt+BackSpace}" + local k_entrymenu_fill="${KEY_ENTRYMENU_FILL}" + local k_entrymenu_clip="${KEY_ENTRYMENU_CLIP}" + local k_entrymenu_quit="${KEY_ENTRYMENU_QUIT}" local pass_obfuscation="(hidden)" @@ -216,13 +200,13 @@ entrymenu() { } main() { - local autoentry_chain="${AUTOENTRY_CHAIN:-username :tab password}" - local k_autofill="${KEY_AUTOFILL:-Return}" - local k_fill_user="${KEY_FILL_USER:-Alt+u}" - local k_clip_user="${KEY_CLIP_USER:-Ctrl+Alt+u}" - local k_fill_pass="${KEY_FILL_PASS:-Alt+p}" - local k_clip_pass="${KEY_CLIP_PASS:-Ctrl+Alt+p}" - local k_submenu="${KEY_OPEN_ENTRY:-Alt+Return}" + local autoentry_chain="${AUTOENTRY_CHAIN}" + local k_autofill="${KEY_AUTOFILL}" + local k_fill_user="${KEY_FILL_USER}" + local k_clip_user="${KEY_CLIP_USER}" + local k_fill_pass="${KEY_FILL_PASS}" + local k_clip_pass="${KEY_CLIP_PASS}" + local k_submenu="${KEY_ENTRY_OPEN}" entry="$( list_passwords | @@ -266,5 +250,5 @@ main() { esac } -get_config_file +set_defaults main diff --git a/gopass/README.md b/gopass/README.md index 0b7248c..babf52a 100644 --- a/gopass/README.md +++ b/gopass/README.md @@ -33,8 +33,9 @@ These keys, as well as the additional configuration can be changed by setting th * `~/.rofi-gopass.conf` * `/etc/rofi-gopass.conf` -or, alternatively, a custom directory if the `ROFI_PASS_CONFIGURATION_FILE` variable points to a configuration file. +or, alternatively, a custom directory if the `RGP_CONFIGURATION_FILE` variable points to a configuration file. +To use environment variables to configure any of these options or keys, prefix them with `RGP_`, so that e.g. `KEY_AUTOFILL` becomes `RGP_KEY_AUTOFILL`. Environment variables take precedence over configuration file settings. Additional configuration options: From d5bc2aeab59520038a12d97d4b2d3661ff041cab Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Fri, 15 May 2020 22:17:32 +0200 Subject: [PATCH 11/15] [gopass] Fix missing env var prefix Fixed last remaining environment prefix not set. --- gopass/.local/bin/rofi-gopass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gopass/.local/bin/rofi-gopass b/gopass/.local/bin/rofi-gopass index b641915..984b470 100755 --- a/gopass/.local/bin/rofi-gopass +++ b/gopass/.local/bin/rofi-gopass @@ -57,7 +57,7 @@ set_defaults() { KEY_ENTRYMENU_QUIT="${RGP_KEY_ENTRYMENU_QUIT:-$(get_config KEY_ENTRYMENU_QUIT Alt+BackSpace)}" BACKEND="${RGP_BACKEND:-$(get_config BACKEND xdotool)}" - GOPASS_USERNAME_FIELD="${GOPASS_USERNAME_FIELD:-$(get_config GOPASS_USERNAME_FIELD 'username user login')}" + GOPASS_USERNAME_FIELD="${RGP_GOPASS_USERNAME_FIELD:-$(get_config GOPASS_USERNAME_FIELD 'username user login')}" AUTOENTRY_CHAIN="${RGP_AUTOENTRY_CHAIN:-$(get_config AUTOENTRY_CHAIN 'username :tab password')}" AUTOENTRY_DELAY="${RGP_AUTOENTRY_DELAY:-$(get_config AUTOENTRY_DELAY 30)}" } From 6100215c724da29c0d264d0d615611477413584a Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Sat, 16 May 2020 08:45:23 +0200 Subject: [PATCH 12/15] [gopass] Add fall-back to dmenu if rofi not found --- gopass/.local/bin/rofi-gopass | 15 +++++++++++---- gopass/README.md | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/gopass/.local/bin/rofi-gopass b/gopass/.local/bin/rofi-gopass index 984b470..dd639cb 100755 --- a/gopass/.local/bin/rofi-gopass +++ b/gopass/.local/bin/rofi-gopass @@ -2,11 +2,18 @@ # # Original inspiration from https://github.com/carnager/rofi-pass/ -# rofi wrapper. Add custom settings here. +# selector wrapper +# uses rofi if found, or dmenu if found, complains if no selector available _rofi() { - # TODO add check for dmenu - exist rofi critical "rofi-gopass" || exit 0 - rofi -dmenu -no-auto-select -i "$@" -p "Entry" + if type rofi 2>/dev/null; then + echo "rofi found" 1>&2 + rofi -dmenu -no-auto-select -i "$@" -p "Entry" + elif type dmenu 2>/dev/null; then + echo "dmenu found" 1>&2 + dmenu -i "$@" -p "Entry" + else + exist rofi critical "rofi-gopass" || exit 0 + fi } # parse, see https://unix.stackexchange.com/a/331965/8541 diff --git a/gopass/README.md b/gopass/README.md index babf52a..f0d4fa9 100644 --- a/gopass/README.md +++ b/gopass/README.md @@ -4,7 +4,7 @@ The gopass module tries to make interacting with the basic necessities of gopass painless and quick -- it is focused on accessing secrets, and quickly auto-filling forms or copying secrets to the clipboard. It relies on the default gopass auto-deleting clipping, so your secrets are automatically removed after a short while. -The configuration of gopass is relatively standard, it tries to follow XDG_specifications, putting the default pass store into `~/.local/share`. +The configuration of gopass is relatively standard, it tries to follow XDG_specifications, putting the default pass store into `~/.local/share/gopass/passwords`. ## rofi-gopass From 5733f928fa5654ba577aec7642183dfda38bb2d2 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Sat, 16 May 2020 09:04:43 +0200 Subject: [PATCH 13/15] [gopass] Add passing arguments to rofi Can be used to style rofi-gopass or add additional keybindings or change functionality slightly in a relatively easy way. --- gopass/.local/bin/rofi-gopass | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gopass/.local/bin/rofi-gopass b/gopass/.local/bin/rofi-gopass index dd639cb..8044305 100755 --- a/gopass/.local/bin/rofi-gopass +++ b/gopass/.local/bin/rofi-gopass @@ -4,13 +4,13 @@ # selector wrapper # uses rofi if found, or dmenu if found, complains if no selector available +# passes along any options given to main script +rofi_opts=("$@") _rofi() { if type rofi 2>/dev/null; then - echo "rofi found" 1>&2 - rofi -dmenu -no-auto-select -i "$@" -p "Entry" + rofi -dmenu -no-auto-select -i "${rofi_opts[@]}" "$@" -p "Entry" elif type dmenu 2>/dev/null; then - echo "dmenu found" 1>&2 - dmenu -i "$@" -p "Entry" + dmenu -i "${rofi_opts[@]}" "$@" -p "Entry" else exist rofi critical "rofi-gopass" || exit 0 fi From 76b53356614d1c6ba46bd249e317e5662c970631 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Sat, 16 May 2020 09:39:11 +0200 Subject: [PATCH 14/15] [gopass] Standardize autofill variables Some variables were called autoentry, some autofill, some did not carry any signifier. Unified this to use autofill in their variable name. --- gopass/.local/bin/rofi-gopass | 14 +++++++------- gopass/README.md | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/gopass/.local/bin/rofi-gopass b/gopass/.local/bin/rofi-gopass index 8044305..9e03429 100755 --- a/gopass/.local/bin/rofi-gopass +++ b/gopass/.local/bin/rofi-gopass @@ -63,10 +63,10 @@ set_defaults() { KEY_ENTRYMENU_CLIP="${RGP_KEY_ENTRYMENU_CLIP:-$(get_config KEY_ENTRYMENU_CLIP Alt+Return)}" KEY_ENTRYMENU_QUIT="${RGP_KEY_ENTRYMENU_QUIT:-$(get_config KEY_ENTRYMENU_QUIT Alt+BackSpace)}" - BACKEND="${RGP_BACKEND:-$(get_config BACKEND xdotool)}" + AUTOFILL_BACKEND="${RGP_BACKEND:-$(get_config AUTOFILL_BACKEND xdotool)}" + AUTOFILL_CHAIN="${RGP_AUTOENTRY_CHAIN:-$(get_config AUTOFILL_CHAIN 'username :tab password')}" + AUTOFILL_DELAY="${RGP_AUTOENTRY_DELAY:-$(get_config AUTOFILL_DELAY 30)}" GOPASS_USERNAME_FIELD="${RGP_GOPASS_USERNAME_FIELD:-$(get_config GOPASS_USERNAME_FIELD 'username user login')}" - AUTOENTRY_CHAIN="${RGP_AUTOENTRY_CHAIN:-$(get_config AUTOENTRY_CHAIN 'username :tab password')}" - AUTOENTRY_DELAY="${RGP_AUTOENTRY_DELAY:-$(get_config AUTOENTRY_DELAY 30)}" } # exit on escape pressed @@ -133,14 +133,14 @@ list_fields() { # invoke the dotool to type inputs _type() { - local tool="${BACKEND}" + local tool="${AUTOFILL_BACKEND}" local toolmode="$1" local key="$2" - "$tool" "$toolmode" --delay "${AUTOENTRY_DELAY}" "$key" + "$tool" "$toolmode" --delay "${AUTOFILL_DELAY}" "$key" } -# automatically enter entry chain, set via AUTOENTRY_CHAIN +# automatically fill out fields # transform special chain entries into valid dotool commands autofill() { local selected="${1}" @@ -207,7 +207,7 @@ entrymenu() { } main() { - local autoentry_chain="${AUTOENTRY_CHAIN}" + local autoentry_chain="${AUTOFILL_CHAIN}" local k_autofill="${KEY_AUTOFILL}" local k_fill_user="${KEY_FILL_USER}" local k_clip_user="${KEY_CLIP_USER}" diff --git a/gopass/README.md b/gopass/README.md index f0d4fa9..2bf955e 100644 --- a/gopass/README.md +++ b/gopass/README.md @@ -39,15 +39,15 @@ To use environment variables to configure any of these options or keys, prefix t Additional configuration options: -* `BACKEND` +* `AUTOFILL_BACKEND` :sets the auto-filling tool used, only tested with `xdotool` currently. -* `AUTOENTRY_CHAIN` +* `AUTOFILL_CHAIN` :sets the chain of keys that should be sent to auto-fill an entry. Can use the following special fields: `:tab`, `:space`, `:return`, `username`, `password`. The default chain is `username :tab password`, which will enter the username, simulate the tab-key to switch from the username to the password field, and enter the password. This can be changed to suit your needs. To, for example, log in fully automatically at the end of the sequence, change it to `username :tab password :return`, and there will be no further user input for the login required. -* `AUTOENTRY_DELAY` +* `AUTOFILL_DELAY` :sets the time for xdotool to wait in-between simulated actions, if some letters appear missing or the fields are not switched between quickly enough, it can usually be fixed by increasing this delay (though typing will also take longer) * `GOPASS_USERNAME_FIELD` From 8dcbb985c14fe61d66b401432ab077dd4f5df784 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Sat, 16 May 2020 10:40:19 +0200 Subject: [PATCH 15/15] [gopass] Fix entry selection Fixed entry selection not working with new type checking fallback mechanism, which would output to stdout, which the auto filling in turn attempted to read from. --- gopass/.local/bin/rofi-gopass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gopass/.local/bin/rofi-gopass b/gopass/.local/bin/rofi-gopass index 9e03429..80333c1 100755 --- a/gopass/.local/bin/rofi-gopass +++ b/gopass/.local/bin/rofi-gopass @@ -7,9 +7,9 @@ # passes along any options given to main script rofi_opts=("$@") _rofi() { - if type rofi 2>/dev/null; then + if type rofi 1>/dev/null 2>/dev/null; then rofi -dmenu -no-auto-select -i "${rofi_opts[@]}" "$@" -p "Entry" - elif type dmenu 2>/dev/null; then + elif type dmenu 1>/dev/null 2>/dev/null; then dmenu -i "${rofi_opts[@]}" "$@" -p "Entry" else exist rofi critical "rofi-gopass" || exit 0