From 61b9707ae7832f11eaf8f06645734c4e46bb6acd Mon Sep 17 00:00:00 2001 From: Chris Date: Sun, 13 Jun 2021 11:43:14 +0100 Subject: [PATCH] Lots of stuff --- .config/gnupg/gpg.conf | 0 .config/nvim | 2 +- .config/shell/aliasrc | 1 - .config/shell/profile | 1 + .local/bin/dmenulib | 24 ++++++++------------ .local/bin/dmenupass | 2 +- .local/bin/enp | 44 ++++++++++++++++++++++++++++++++++++ .local/bin/setup/setup | 3 +++ .local/bin/setup/setupenpass | 9 ++++++++ .local/bin/setup/setupjoplin | 23 +++++++++++++++++-- 10 files changed, 90 insertions(+), 19 deletions(-) create mode 100644 .config/gnupg/gpg.conf create mode 100755 .local/bin/enp create mode 100644 .local/bin/setup/setupenpass diff --git a/.config/gnupg/gpg.conf b/.config/gnupg/gpg.conf new file mode 100644 index 0000000..e69de29 diff --git a/.config/nvim b/.config/nvim index 2b59570..40b9ec8 160000 --- a/.config/nvim +++ b/.config/nvim @@ -1 +1 @@ -Subproject commit 2b5957097aa473b490f3e03cf4bb600a3d57d0f1 +Subproject commit 40b9ec87f979585380e745c1ee3a7cf0b6737b75 diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc index 4c30088..3f956b6 100644 --- a/.config/shell/aliasrc +++ b/.config/shell/aliasrc @@ -46,7 +46,6 @@ alias \ ag="alias | grep" \ lc="clone_from_labs" \ gc="clone_from_github" \ - enp="enpasscli -vault="$HOME/Documents/Enpass/Vaults/primary" -sort show" \ dgit="git --git-dir ~/.config/dotfiles/.git --work-tree=$HOME" # Clone from labs diff --git a/.config/shell/profile b/.config/shell/profile index 14f7f0c..ce1a3ea 100644 --- a/.config/shell/profile +++ b/.config/shell/profile @@ -26,6 +26,7 @@ export XINITRC="${XDG_CONFIG_HOME:-$HOME/.config}/x11/xinitrc" export NOTMUCH_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/notmuch-config" export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0" export LESSHISTFILE="-" +export GNUPGHOME="${XDG_CONFIG_HOME:-$HOME/.config}/gnupg" export WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc" export INPUTRC="${XDG_CONFIG_HOME:-$HOME/.config}/shell/inputrc" export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh" diff --git a/.local/bin/dmenulib b/.local/bin/dmenulib index c451b6a..4940360 100755 --- a/.local/bin/dmenulib +++ b/.local/bin/dmenulib @@ -1,20 +1,16 @@ - #!/bin/sh +#!/bin/sh -files="$(find -L "$HOME/Tower/Library")" +files="$(find -L "$HOME/Tower/Library" -name '*.pdf' -or -name '*.epub')" -options=$(echo $files | xargs --delimiter="\n" basename -a) +options=$(echo "$files" | xargs --delimiter="\n" basename -a) -# Get user selection via dmenu from emoji file. -chosen=$(cut -d ';' -f1 ~/.local/share/emojis | dmenu -i -l 30 | sed "s/ .*//") +chosen=$(echo "$options" | dmenu -i -ix -c -l 30) -# Exit if none chosen. [ -z "$chosen" ] && exit -# If you run this command with an argument, it will automatically insert the -# character. Otherwise, show a message that the emoji has been copied. -if [ -n "$1" ]; then - xdotool type "$chosen" -else - printf "$chosen" | xclip -selection clipboard - notify-send "'$chosen' copied to clipboard." & -fi +line="$(($chosen + 1))" + +file="$(echo "$files" | sed "${line}q;d")" + +zathura "$file" + diff --git a/.local/bin/dmenupass b/.local/bin/dmenupass index 2c14e6f..b8e2f1b 100755 --- a/.local/bin/dmenupass +++ b/.local/bin/dmenupass @@ -3,4 +3,4 @@ # This script is the SUDO_ASKPASS variable, meaning that it will be used as a # password prompt if needed. -dmenu -fn Monospace-18 -P -p "$1" <&- && echo +dmenu -P -p "$1" <&- && echo diff --git a/.local/bin/enp b/.local/bin/enp new file mode 100755 index 0000000..ce7cafc --- /dev/null +++ b/.local/bin/enp @@ -0,0 +1,44 @@ +#! /usr/bin/zsh + +pwdpath="/tmp/pwd.gpg" +pinpath="${XDG_DATA_HOME:-$HOME/.local/share}/pin.gpg" + +if [ -f "$pwdpath" ] +then + PIN="$(dmenupass "PIN")" + export MASTERPW="$(gpg --batch --yes --passphrase "$PIN" --decrypt "$pwdpath" 2&>/dev/null)" +elif [ -f "$pinpath" ] +then + export MASTERPW="$(dmenupass "Password")" + PIN="$(gpg --batch --yes --passphrase "$MASTERPW" --decrypt "$pinpath" 2&>/dev/null)" + echo "$MASTERPW" | gpg --symmetric --batch --yes --passphrase "$PIN" --output "$pwdpath" +else + export MASTERPW="$(dmenupass "Password")" + PIN="$(dmenupass "PIN")" + echo "$PIN" | gpg --symmetric --batch --yes --passphrase "$MASTERPW" --output "$pinpath" + echo "$MASTERPW" | gpg --symmetric --batch --yes --passphrase "$PIN" --output "$pwdpath" +fi + +[ -z "$MASTERPW" ] && exit 1; + +choices="$(enpasscli -vault="$HOME/Documents/Enpass/Vaults/primary" -sort show 2>&1 | sed -n '/level=info/p')" + +awkcommand=' + { + if (length($3)) { + $line = $2" ("$3")"; # If username exists wrap it in brackets + } else { + $line = $2; # Otherwise just show title + } + print $line; + } +' + +chosen="$(echo "$choices" | awk -F '\\s*(title|login|pass|cat\\.)\\s*:\\s*' "$awkcommand" | dmenu -i -ix -l 30)" + +linenumber="$((chosen + 1))" + +line="$(echo "$choices" | sed "${linenumber}q;d")" + +echo $line | sed -n -e 's/.*? pass : (.*)+$/\\1/p' + diff --git a/.local/bin/setup/setup b/.local/bin/setup/setup index a44f90d..5cb0215 100755 --- a/.local/bin/setup/setup +++ b/.local/bin/setup/setup @@ -32,3 +32,6 @@ setupdev setupwacom setupmaptool setupkeyring +setupfirefox +setupjoplin +setupnextcloud diff --git a/.local/bin/setup/setupenpass b/.local/bin/setup/setupenpass new file mode 100644 index 0000000..cefd84f --- /dev/null +++ b/.local/bin/setup/setupenpass @@ -0,0 +1,9 @@ +#! /bin/bash + + +[ -z MASTERPW ] && + export MASTERPW=$(dialog --no-cancel --passwordbox "Enter Enpass master password." 10 60 3>&1 1>&2 2>&3 3>&1 | sed 's/\s//g') + +PIN=$(dialog --no-cancel --passwordbox "Enter short term PIN for master password." 10 60 3>&1 1>&2 2>&3 3>&1 | sed 's/\s//g') + + diff --git a/.local/bin/setup/setupjoplin b/.local/bin/setup/setupjoplin index 8387d79..a9f1e72 100755 --- a/.local/bin/setup/setupjoplin +++ b/.local/bin/setup/setupjoplin @@ -4,8 +4,27 @@ TOWER=$(enpasscli -vault="$HOME/Documents/Enpass/Vaults/primary" -sort show "Sca TOWERUN=$(echo "$TOWER" | grep -Po "(?<=login: )\w+") TOWERPW=$(echo "$TOWER" | grep -Po "(?<=pass : ).+(?=\")") +path="https://tower.scarif.space/remote.php/dav/files/chris/Joplin" + joplin config sync.target 5 -joplin config sync.5.path https://tower.scarif.space/remote.php/dav/files/chris/Joplin +joplin config sync.5.path "$path" joplin config sync.5.username "$TOWERUN" joplin config sync.5.password "$TOWERPW" -joplin sync +joplin sync & + +echo "$path" | xclip -selection clipboard -i + +joplin-desktop & + +clipnotify + +echo "$TOWERUN" | xclip -selection clipboard -i + +clipnotify + +echo "$TOWERPW" | xclip -selection clipboard -i + +read -n 1 -r -s -p $'Press enter when you have synced Joplin...\n' + +echo "" | xclip -selection clipboard -i +