diff options
author | Rasmus Steinke <rasi@xssn.at> | 2021-01-25 21:49:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-25 21:49:50 +0100 |
commit | 916ac3bf5f50d0140a9839f523621c5d77bccf0e (patch) | |
tree | b230491e0f0bc0811c0c66928cd48114b91e2a7a | |
parent | 6e7fd8e3db831eedcea63aa1c1869c5fcb71f265 (diff) | |
parent | 3c90a957a4b0850e66f444a84faf5b7d7f82a1c3 (diff) | |
download | rofi-pass-916ac3bf5f50d0140a9839f523621c5d77bccf0e.tar.gz |
Merge pull request #205 from bjonnh/feature/generic-clipboard-support
[Feature] Customization of clipboard commands.
-rw-r--r-- | config.example | 25 | ||||
-rwxr-xr-x | rofi-pass | 33 |
2 files changed, 50 insertions, 8 deletions
diff --git a/config.example b/config.example index cb32391..ef045dc 100644 --- a/config.example +++ b/config.example @@ -20,6 +20,31 @@ _image_viewer () { # display } +# It is possible to use wl-copy and wl-paste from wl-clipboard +# Just uncomment the lines with wl-copy and wl-paste +# and comment the xclip lines +# +_clip_in_primary() { + xclip + # wl-copy-p +} + +_clip_in_clipboard() { + xclip -selection clipboard + # wl-copy +} + +_clip_out_primary() { + xclip -o + # wl-paste -p +} + +_clip_out_clipboard() { + xclip --selection clipboard -o + # wl-paste +} + + # xdotool needs the keyboard layout to be set using setxkbmap # You can do this in your autostart scripts (e.g. xinitrc) @@ -17,6 +17,23 @@ _image_viewer () { feh - } +_clip_in_primary() { + xclip +} + +_clip_in_clipboard() { + xclip -selection clipboard +} + +_clip_out_primary() { + xclip -o +} + +_clip_out_clipboard() { + xclip --selection clipboard -o +} + + config_dir=${XDG_CONFIG_HOME:-$HOME/.config} cache_dir=${XDG_CACHE_HOME:-$HOME/.cache} @@ -82,9 +99,9 @@ list_passwords() { doClip () { case "$clip" in - "primary") xclip ;; - "clipboard") xclip -selection clipboard;; - "both") xclip; xclip -o | xclip -selection clipboard;; + "primary") _clip_in_primary ;; + "clipboard") _clip_in_clipboard ;; + "both") _clip_in_primary; _clip_out_primary | _clip_in_clipboard;; esac } @@ -257,9 +274,9 @@ copyPass () { fi if [[ $notify == "true" ]]; then - (sleep $clip_clear; printf '%s' "" | xclip; printf '%s' "" | xclip -selection clipboard | notify-send "rofi-pass" "Clipboard cleared") & + (sleep $clip_clear; printf '%s' "" | _clip_in_primary; printf '%s' "" | _clip_in_clipboard | notify-send "rofi-pass" "Clipboard cleared") & elif [[ $notify == "false" ]]; then - (sleep $clip_clear; printf '%s' "" | xclip; printf '%s' "" | xclip -selection clipboard) & + (sleep $clip_clear; printf '%s' "" | _clip_in_primary; printf '%s' "" | _clip_in_clipboard) & fi } @@ -625,9 +642,9 @@ showEntry () { notify-send "rofi-pass" "Copied Password\\nClearing in $clip_clear seconds" fi if [[ $notify == "true" ]]; then - (sleep $clip_clear; printf '%s' "" | xclip; printf '%s' "" | xclip -selection clipboard | notify-send "rofi-pass" "Clipboard cleared") & + (sleep $clip_clear; printf '%s' "" | _clip_in_primary; printf '%s' "" | _clip_in_clipboard | notify-send "rofi-pass" "Clipboard cleared") & elif [[ $notify == "false" ]]; then - (sleep $clip_clear; printf '%s' "" | xclip; printf '%s' "" | xclip -selection clipboard) & + (sleep $clip_clear; printf '%s' "" | _clip_in_primary; printf '%s' "" | _clip_in_clipboard) & fi exit fi @@ -684,7 +701,7 @@ manageEntry () { } insertPass () { - url=$(xclip --selection clipboard -o) + url=$(_clip_out_clipboard) if [[ "${url:0:4}" == "http" ]]; then domain_name="$(printf '%s\n' "${url}" | awk -F / '{l=split($3,a,"."); print (a[l-1]=="com"?a[l-2] OFS:X) a[l-1] OFS a[l]}' OFS=".")" |