From 6fae25b305d714b3ab7608fa003f1af9bf024545 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Tue, 14 Feb 2023 13:33:23 +0800 Subject: Rename tools into bin --- bin/desktop/password-store.sh | 51 ++++++++++++++++++++++++++++ bin/desktop/takeshot | 78 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100755 bin/desktop/password-store.sh create mode 100755 bin/desktop/takeshot (limited to 'bin/desktop') diff --git a/bin/desktop/password-store.sh b/bin/desktop/password-store.sh new file mode 100755 index 0000000..1de3148 --- /dev/null +++ b/bin/desktop/password-store.sh @@ -0,0 +1,51 @@ +#! /bin/bash + +# Use rofi to quickly access password by command 'pass' +# xsel needed !! + +ROFI_ARGS=( "-font" "Hack 22" ) + +find ~/.password-store -name '*gpg' -printf %P\\n | \ +sed 's/.gpg$//' | \ +rofi -dmenu "${ROFI_ARGS[@]}" | { + # Get arguments for command 'pass' + read ARG1 ARG2 + + if [[ -z $ARG1 ]]; then + exit 1 + elif [[ $ARG1 == edit ]]; then + # Edit an existing password + alacritty --hold -e pass edit $ARG2 && \ + rofi -e Password Edited: $ARG2 + else + # If pass fails, then it means password doesn't exists + set pipefail + + pass $ARG1 | { + # If command fails, just fail directly + read PASSWORD; [[ -z $PASSWORD ]] && exit 1 + + # Simply copy password into system clipboard + echo $PASSWORD | xsel -ib + + # Show success message, and display extra contents + rofi "${ROFI_ARGS[@]}" \ + -e "Copied: $ARG1 $(echo; echo; cat | sed '1{/^$/d}')" + } || { + # Make sure user want to create a new password + return_code=$(alacritty -e sh -c ' + dialog --yesno "Password does not exist, Generate a new one?" 8 30; + echo "$?" + ') + [[ $return_code == 1 ]] && exit 1 + + # Generate a new password by ARG1 + alacritty -e pass generate $ARG1 --clip && \ + + # Show success message + rofi "${ROFI_ARGS[@]}" -e "Password Created and Copied: $ARG1" + } + + # TODO: if return code is 2, it means gpg password is not cached + fi +} diff --git a/bin/desktop/takeshot b/bin/desktop/takeshot new file mode 100755 index 0000000..09252f3 --- /dev/null +++ b/bin/desktop/takeshot @@ -0,0 +1,78 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya +## Everyone is permitted to copy and distribute copies of this file under GNU-GPL3 + +## Script to take screenshots with maim + +time=`date +%Y-%m-%d-%H-%M-%S` +geometry=`xrandr | head -n1 | cut -d',' -f2 | tr -d '[:blank:],current'` +dir="`xdg-user-dir PICTURES`" +file="Screenshot_${time}_${geometry}.png" + +# notify and view screenshot +notify_view () { + dunstify -u low --replace=699 -i /usr/share/archcraft/icons/dunst/picture.png "Copied to clipboard." + viewnior ${dir}/"$file" + if [[ -e "$dir/$file" ]]; then + dunstify -u low --replace=699 -i /usr/share/archcraft/icons/dunst/picture.png "Screenshot Saved." + else + dunstify -u low --replace=699 -i /usr/share/archcraft/icons/dunst/picture.png "Screenshot Deleted." + fi +} + +# countdown +countdown () { + for sec in `seq $1 -1 1`; do + dunstify -t 1000 --replace=699 -i /usr/share/archcraft/icons/dunst/timer.png "Taking shot in : $sec" + sleep 1 + done +} + +# take shots +shotnow () { + cd ${dir} && maim -u -f png | tee "$file" | xclip -selection clipboard -t image/png + notify_view +} + +shot5 () { + countdown '5' + sleep 1 && cd ${dir} && maim -u -f png | tee "$file" | xclip -selection clipboard -t image/png + notify_view +} + +shot10 () { + countdown '10' + sleep 1 && cd ${dir} && maim -u -f png | tee "$file" | xclip -selection clipboard -t image/png + notify_view +} + +shotwin () { + cd ${dir} && maim -u -f png -i `xdotool getactivewindow` | tee "$file" | xclip -selection clipboard -t image/png + notify_view +} + +shotarea () { + cd ${dir} && maim -u -f png -s -b 2 -c 0.35,0.55,0.855 | tee "$file" | xclip -selection clipboard -t image/png + notify_view +} + +if [[ ! -d "$dir" ]]; then + mkdir -p "$dir" +fi + +if [[ "$1" == "--now" ]]; then + shotnow +elif [[ "$1" == "--in5" ]]; then + shot5 +elif [[ "$1" == "--in10" ]]; then + shot10 +elif [[ "$1" == "--win" ]]; then + shotwin +elif [[ "$1" == "--area" ]]; then + shotarea +else + echo -e "Available Options : --now --in5 --in10 --win --area" +fi + +exit 0 -- cgit v1.2.3-70-g09d2