diff options
Diffstat (limited to 'dotfiles/.local/bin')
29 files changed, 196 insertions, 240 deletions
diff --git a/dotfiles/.local/bin/addwgprofile b/dotfiles/.local/bin/addwgprofile deleted file mode 100755 index 1fa5eca..0000000 --- a/dotfiles/.local/bin/addwgprofile +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -nmcli connection import type wireguard file ~/.config/wireguard/wg0.conf diff --git a/dotfiles/.local/bin/barvpnstatus b/dotfiles/.local/bin/barvpnstatus deleted file mode 100755 index cca0201..0000000 --- a/dotfiles/.local/bin/barvpnstatus +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -isup=$(ip a | grep wg0:) - -if [ -n "$isup" ]; then - printf " vpn\n" -else - printf "" -fi - -# For some goddamned weird reason sed crashes with a -# "couldn't flush stdout: broken pipe" error when running from waybar itself -# if I don't call sed from its hard location, so I had to call it using -# /usr/bin/sed -nmcli monitor | grep -E --line-buffered 'wg0: connected|wg0: disconnected' | /usr/bin/sed --unbuffered 's/wg0: connected/ vpn/g;s/wg0: disconnected//g' diff --git a/dotfiles/.local/bin/chcolors b/dotfiles/.local/bin/chcolors index 7732267..e62b047 100755 --- a/dotfiles/.local/bin/chcolors +++ b/dotfiles/.local/bin/chcolors @@ -3,7 +3,7 @@ COLORSCHEME="dark" if [ -f $HOME/.cache/colorscheme ]; then - source $HOME/.cache/colorscheme + . $HOME/.cache/colorscheme fi case $COLORSCHEME in diff --git a/dotfiles/.local/bin/imgres b/dotfiles/.local/bin/imgres index 4eec5f6..ec7a20d 100755 --- a/dotfiles/.local/bin/imgres +++ b/dotfiles/.local/bin/imgres @@ -21,6 +21,16 @@ case "$option" in -quality 80 \ "$output" ;; + photo) + convert "$input" \ + -strip \ + -interlace plane \ + -define jpeg:dct-method=float \ + -sampling-factor 4:2:0 \ + -resize 1600x900 \ + -quality 80 \ + "$output" + ;; wallpaper) convert "$input" -resize 2560x1440^ -quality 90 "$output" ;; diff --git a/dotfiles/.local/bin/menublk b/dotfiles/.local/bin/menublk index 7af7a7f..64d28fd 100755 --- a/dotfiles/.local/bin/menublk +++ b/dotfiles/.local/bin/menublk @@ -8,8 +8,6 @@ # Yaroslav de la Peña Smirnov -. ~/.config/bemenurc - readarray -t blkdevs <<< "$(lsblk -r -o NAME,TYPE,FSTYPE,MOUNTPOINT | tail -n +2)" notify_and_end() { @@ -59,7 +57,7 @@ mount_dev() { fstype="$(lsblk -r -o FSTYPE "/dev/$1" | tail -n 1)" part="/dev/$1" if [ "$fstype" = "crypto_LUKS" ]; then - password="$(echo "" | bemenu -p "Enter passphrase for encrypted drive:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --ff="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")" + password="$(echo "" | rofi -dmenu -password -p "Enter passphrase for encrypted drive" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --ff="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")" if [ -z "$password" ]; then exit 0 fi @@ -113,23 +111,23 @@ poweroff_dev() { fi } -action="$(printf "mount\nunmount\npoweroff\n" | bemenu -p "What to do?" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")" +action="$(printf "mount\nunmount\npoweroff\n" | rofi -dmenu -matching prefix -p "What to do?" )" case "$action" in mount) - blkdev="$(get_mountable | bemenu -p "Choose device to mount:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")" + blkdev="$(get_mountable | rofi -dmenu -p "Choose device to mount" )" if [ -z "$blkdev" ]; then exit 0 fi mount_dev "$blkdev";; unmount) - blkdev="$(get_unmountable | bemenu -p "Choose device to umount:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")" + blkdev="$(get_unmountable | rofi -dmenu -p "Choose device to umount" )" if [ -z "$blkdev" ]; then exit 0 fi unmount_dev "$blkdev";; poweroff) - blkdev="$(get_usb_storage | bemenu -p "Choose device to power off:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")" + blkdev="$(get_usb_storage | rofi -dmenu -p "Choose device to power off" )" if [ -z "$blkdev" ]; then exit 0 fi diff --git a/dotfiles/.local/bin/menudisplay b/dotfiles/.local/bin/menudisplay deleted file mode 100755 index e42ec42..0000000 --- a/dotfiles/.local/bin/menudisplay +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -# Source settings from .bemenurc -. ~/.config/bemenurc - -display=$(swaymsg -t get_outputs | grep -E "name" | sed "s/^.*\"name\": \"//g;s/\",$//g;" | bemenu -p "Select output: " --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") - -if [ -z $display ]; then - exit 0 -fi - -action=$(printf "enable\ndisable\n" | bemenu -p "Choose action: " --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") - -swaymsg output $display $action diff --git a/dotfiles/.local/bin/menuemoji b/dotfiles/.local/bin/menuemoji deleted file mode 100755 index 094a5a9..0000000 --- a/dotfiles/.local/bin/menuemoji +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh -# Give dmenu list of all unicode characters to copy. -# Shows the selected character in dunst if running. - -list="$(grep -v "#" ~/.local/share/script-data/emoji)" - -if [ "$1" = "-t" ]; then - chosen=$(printf "$list" | fzf) -else - # Source settings from .bemenurc - . ~/.config/bemenurc - - chosen=$(printf "$list" | bemenu -i -l 25 --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") -fi - -if [ -z "$chosen" ]; then - exit 0 -fi - -c=$(echo "$chosen" | sed "s/ .*//") -echo "$c" | tr -d '\n' | wl-copy -echo "$c" -notify-send "'$c' copied to clipboard." diff --git a/dotfiles/.local/bin/menugrim b/dotfiles/.local/bin/menugrim deleted file mode 100755 index 28e1249..0000000 --- a/dotfiles/.local/bin/menugrim +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -if ! [ -d $SCROT_DIR ]; then - mkdir -p $SCROT_DIR -fi - -# Source settings from .bemenurc -. ~/.config/bemenurc - -notify_saved() { - notify-send "screenshot has been saved in $SCROT_DIR" ; -} - -notify_copied() { - notify-send "screenshot has been copied to clipboard" ; -} - -case "$1" in - --quick|-q) - grim $SCROT_DIR/fullscreen-"$(date '+%y%m%d-%H%M-%S').png"; notify_saved ;; - *) - case "$(printf "a selected area\ncurrent window\nfull screen\na selected area (copy)\ncurrent window (copy)\nfull screen (copy)\n" | bemenu -l 6 -i -p "Screenshot which area?" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")" in - "a selected area") grim -g "$(slurp)" $SCROT_DIR/selected-"$(date '+%y%m%d-%H%M-%S').png"; notify_saved ;; - "current window") grim -g "$(swaygetcurrentwindow)" $SCROT_DIR/window-"$(date '+%y%m%d-%H%M-%S').png"; notify_saved ;; - "full screen") grim $SCROT_DIR/fullscreen-"$(date '+%y%m%d-%H%M-%S').png"; notify_saved ;; - "a selected area (copy)") grim -g "$(slurp)" - | wl-copy; notify_copied ;; - "current window (copy)") grim -g "$(swaygetcurrentwindow)" - | wl-copy; notify_copied ;; - "full screen (copy)") grim - | wl-copy; notify_copied ;; - *) exit 0 ;; - esac -esac - - diff --git a/dotfiles/.local/bin/menumako b/dotfiles/.local/bin/menumako index 87cb473..628a93a 100755 --- a/dotfiles/.local/bin/menumako +++ b/dotfiles/.local/bin/menumako @@ -1,6 +1,3 @@ #!/bin/sh -# Source settings from .bemenurc -. ~/.config/bemenurc - -makoctl menu bemenu -p "What to do?" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR" +makoctl menu rofi -dmenu -p "What to do?" diff --git a/dotfiles/.local/bin/menuman b/dotfiles/.local/bin/menuman index 98efc02..d7aaa1f 100755 --- a/dotfiles/.local/bin/menuman +++ b/dotfiles/.local/bin/menuman @@ -1,18 +1,15 @@ #!/bin/sh # Search and open man page # Options: -# -t use in terminal with fzf otherwise launch bemenu. +# -t use in terminal with fzf otherwise launch gui menu # -s search with apropos. -# Source settings from .bemenurc -. ~/.config/bemenurc - issearch= isterminal= printusage() { echo "Options:" >&2 - echo " -t use in terminal with fzf otherwise launch bemenu." >&2 + echo " -t use in terminal with fzf otherwise gui menu." >&2 echo " -s search with apropos." >&2 } @@ -35,7 +32,7 @@ if [ ! -z "$issearch" ]; then printf "Enter query:\t" read query else - query="$(echo "" | bemenu -p "Enter apropos query:" -i --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")" + query="$(echo "" | rofi -dmenu -p "Enter apropos query" -i)" fi if [ -z "$query" ]; then echo "Empty query" >&2 @@ -49,7 +46,7 @@ fi if [ ! -z "$isterminal" ]; then chosen=$(printf "$list" | fzf) else - chosen=$(printf "$list" | bemenu -p "Select man page:" -i -l 25 --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") + chosen=$(printf "$list" | rofi -dmenu -p "Select man page" -i) fi if [ -z "$chosen" ]; then @@ -64,4 +61,4 @@ if [ ! -z "$isterminal" ]; then man "$chosen" && exit fi -$TERMINAL -T "man $chosen" man $chosen +$TERMINAL -T "Manual pages - $chosen" man $chosen diff --git a/dotfiles/.local/bin/menuoutput b/dotfiles/.local/bin/menuoutput deleted file mode 100755 index b9a4faa..0000000 --- a/dotfiles/.local/bin/menuoutput +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# Change audio output for all streams and set as default using dmenu - -# Source settings from .bemenurc -. ~/.config/bemenurc - -output=$(listsinks | bemenu -p "Select audio output: " --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") - -[ "$output" != "" ] || exit - -changeoutput $output - -notify-send "🔉 Audio output switched" "Audio output switched to '$output'" diff --git a/dotfiles/.local/bin/menupass b/dotfiles/.local/bin/menupass index 9633b56..844ef33 100755 --- a/dotfiles/.local/bin/menupass +++ b/dotfiles/.local/bin/menupass @@ -3,9 +3,6 @@ # Inspiration taken from # https://git.zx2c4.com/password-store/tree/contrib/dmenu/passmenu -# Source settings from .bemenurc -. ~/.config/bemenurc - shopt -s nullglob globstar notititle="🔑 Password store" @@ -33,7 +30,7 @@ notify_nocache() { } show_menu() { - password=$(printf '%s\n' "${password_files[@]}" | bemenu -p "$1:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") + password=$(printf '%s\n' "${password_files[@]}" | rofi -dmenu -p "$1") [ -n "$password" ] || exit } diff --git a/dotfiles/.local/bin/menuprompt b/dotfiles/.local/bin/menuprompt deleted file mode 100755 index 32823ec..0000000 --- a/dotfiles/.local/bin/menuprompt +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# A dmenu binary prompt script. -# Gives a dmenu prompt labeled with $1 to perform command $2. -# For example: -# `./prompt "Do you want to shutdown?" "shutdown -h now"` - -[ "$(printf "No\\nYes" | bemenu -i -p "$1" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")" = "Yes" ] && $2 diff --git a/dotfiles/.local/bin/menurun b/dotfiles/.local/bin/menurun deleted file mode 100755 index 772cd6f..0000000 --- a/dotfiles/.local/bin/menurun +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -# Source settings from .bemenurc -. ~/.config/bemenurc - -title="Run:" -action="" - -case $1 in - -x) - action="xway" - title="Run through xwayland:";; - -t) - action="$TERMINAL" - title="Run in terminal:";; -esac - -program="$(compgen -c | sort -u | bemenu -p "$title" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")" - -[ -n "$action" ] && $action "$program" && exit 0 -$program diff --git a/dotfiles/.local/bin/menusession b/dotfiles/.local/bin/menusession deleted file mode 100755 index de4d602..0000000 --- a/dotfiles/.local/bin/menusession +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -# Source settings from .bemenurc -. ~/.config/bemenurc - -action=$(printf "logout\nsuspend\nreboot\npoweroff\n" | bemenu -p "What to do?" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") - -swaysession $action diff --git a/dotfiles/.local/bin/menutz b/dotfiles/.local/bin/menutz deleted file mode 100755 index 2d783ae..0000000 --- a/dotfiles/.local/bin/menutz +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# Source settings from .bemenurc -. ~/.config/bemenurc - -timezone=$(cd /usr/share/zoneinfo/posix && find * -type f -or -type l | sort | bemenu -p "Select output: " --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") - -if [ -n "$timezone" ]; then - notify-send "🗺 Date and time in $timezone" "$(TZ=:$timezone date)" -else - notify-send "🗺 Date and time in your timezone" "$(TZ=:$timezone date)" -fi diff --git a/dotfiles/.local/bin/menuwebsurf b/dotfiles/.local/bin/menuwebsurf deleted file mode 100755 index 8d63fc8..0000000 --- a/dotfiles/.local/bin/menuwebsurf +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -# menu prompt to open a link with mimeo - -# Source settings from .bemenurc -. ~/.config/bemenurc - -searchurl="https://srx.yaroslavps.com/search?q=" - -# Have to use this "hack" because bemenu doesn't know how to paste -if [ "$1" = "paste" ]; then - prompt="$(wl-paste)" -else - qmarks="$HOME/.config/qutebrowser/quickmarks" - bmarks="$HOME/.config/qutebrowser/bookmarks/urls" - hist="$HOME/.local/share/qutebrowser/history.sqlite" - prompt="$(sqlite3 -separator ' ' "$hist" \ - 'select title, url from CompletionHistory' | - cat "$qmarks" - | cat "$bmarks" -)" -fi - -choice=$(printf "%s" "$prompt" | - bemenu -i -l 25 -p "Enter link or query:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") || exit 1 - -if echo "$choice" | egrep ".*://.*" >/dev/null 2>&1; then - choice="$(echo "$choice" | sed -E 's/[^ ]+ +//g' | - grep -E "https?:" || echo "$choice")" - mimeo "$choice" -else - $BROWSER "$choice" -fi - diff --git a/dotfiles/.local/bin/menuworkspace b/dotfiles/.local/bin/menuworkspace deleted file mode 100755 index 7d947d0..0000000 --- a/dotfiles/.local/bin/menuworkspace +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# Open a "workspace" (see workspace) from a list of dirs under home - -# Source settings from .bemenurc -. ~/.config/bemenurc - -# All dirs under home, except ones under hidden dirs -dirs="$(find $HOME -type d -path "*/\.*" -prune -o -not -name ".*" -type d)" - -workspace "$(echo "$dirs" | - bemenu -i -l 25 -p "Enter link or query:" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR")" diff --git a/dotfiles/.local/bin/rofiaudio b/dotfiles/.local/bin/rofiaudio new file mode 100755 index 0000000..6912bed --- /dev/null +++ b/dotfiles/.local/bin/rofiaudio @@ -0,0 +1,16 @@ +#!/bin/bash + +if [ "$ROFI_RETV" != 0 ]; then + changeoutput $1 + notify-send "🔉 Audio output" "Audio output switched to '$1'" + exit 0 +fi + +displays="$(swaymsg -t get_outputs | grep -E "name" | + sed "s/^.*\"name\": \"//g;s/\",$//g;")" + +echo -ne "\0no-custom\x1ftrue\n" +echo -ne "\0prompt\x1fSelect audio output\n" +for s in $(listsinks); do + echo -ne "$s\0icon\x1faudio-speakers\n" +done diff --git a/dotfiles/.local/bin/rofidisplay b/dotfiles/.local/bin/rofidisplay new file mode 100755 index 0000000..9d1e5ec --- /dev/null +++ b/dotfiles/.local/bin/rofidisplay @@ -0,0 +1,14 @@ +#!/bin/bash + +if [ "$ROFI_RETV" != 0 ]; then + swaymsg output $1 toggle > /dev/null +fi + +displays="$(swaymsg -t get_outputs | grep -E "name" | + sed "s/^.*\"name\": \"//g;s/\",$//g;")" + +echo -ne "\0no-custom\x1ftrue\n" +echo -ne "\0prompt\x1fToggle display\n" +for d in $displays; do + echo -ne "$d\0icon\x1fdisplay\n" +done diff --git a/dotfiles/.local/bin/rofigrim b/dotfiles/.local/bin/rofigrim new file mode 100755 index 0000000..47aff4d --- /dev/null +++ b/dotfiles/.local/bin/rofigrim @@ -0,0 +1,18 @@ +#!/bin/bash + +if [ "$ROFI_RETV" = 1 ]; then + coproc screensht "$1" + exit 0 +elif [ "$ROFI_RETV" = 20 ]; then + coproc screensht "$1" copy + exit 0 +fi + + +echo -ne "\0no-custom\x1ftrue\n" +echo -ne "\0prompt\x1fWhat to screenshot?\n" +echo -ne "\0message\x1fMake a selection (Alt+Enter to copy to clipboard)\n" +echo -ne "\0use-hot-keys\x1ftrue\n" +echo -ne "select area\0icon\x1fedit-cut\n" +echo -ne "current window\0icon\x1fdesktop\n" +echo -ne "full screen\0icon\x1fdisplay\n" diff --git a/dotfiles/.local/bin/rofimoji b/dotfiles/.local/bin/rofimoji new file mode 100755 index 0000000..64cfabe --- /dev/null +++ b/dotfiles/.local/bin/rofimoji @@ -0,0 +1,12 @@ +#!/bin/bash + +list="$(grep -v "#" ~/.local/share/script-data/emoji)" +if [ "$ROFI_RETV" != 0 ]; then + c=$(echo "$1" | cut -f1) + echo "$c" | tr -d '\n' | wl-copy + notify-send "'$c' copied to clipboard." + exit +fi + +echo -ne "\0prompt\x1fChoose emoji\n" +printf "%s" "$list" diff --git a/dotfiles/.local/bin/rofisession b/dotfiles/.local/bin/rofisession new file mode 100755 index 0000000..8ee7b2e --- /dev/null +++ b/dotfiles/.local/bin/rofisession @@ -0,0 +1,14 @@ +#!/bin/bash + +export SWAYSESSION_GUI=1 + +if [ -n "$1" ]; then + swaysession $1 > /dev/null + exit 0 +fi + +echo -ne "\0prompt\x1fWhat to do?\n" +echo -ne "logout\0icon\x1fsystem-log-out\n" +echo -ne "suspend\0icon\x1fsystem-suspend\n" +echo -ne "reboot\0icon\x1fsystem-reboot\n" +echo -ne "poweroff\0icon\x1fsystem-shutdown\n" diff --git a/dotfiles/.local/bin/rofitz b/dotfiles/.local/bin/rofitz new file mode 100755 index 0000000..d7f5ad7 --- /dev/null +++ b/dotfiles/.local/bin/rofitz @@ -0,0 +1,13 @@ +#!/bin/bash + +tzones="$(cd /usr/share/zoneinfo/posix && find * -type f -or -type l)" + +echo -ne "\0no-custom\x1ftrue\n" +echo -ne "\0prompt\x1fChoose timezone\n" + +if [ "$ROFI_RETV" != 0 ]; then + t="$(TZ=$1 date)" + echo -ne "\0message\x1fDate and time in $1: $t\n" +fi + +printf "%s" "$tzones" diff --git a/dotfiles/.local/bin/rofiwebsurf b/dotfiles/.local/bin/rofiwebsurf new file mode 100755 index 0000000..bcba65f --- /dev/null +++ b/dotfiles/.local/bin/rofiwebsurf @@ -0,0 +1,24 @@ +#!/bin/bash + +if [ "$ROFI_RETV" != 0 ]; then + choice="$1" + if echo "$choice" | egrep ".*://.*" >/dev/null 2>&1; then + choice="$(echo "$choice" | grep -Eo "[^[:space:]]*:\/\/[^[:space:]]*" | + head -n1 | + grep -E "https?:" || echo "$choice")" + mimeo "$choice" > /dev/null + else + setsid $BROWSER "$choice" > /dev/null & + fi + exit 0 +fi + +qmarks="$HOME/.config/qutebrowser/quickmarks" +bmarks="$HOME/.config/qutebrowser/bookmarks/urls" +hist="$HOME/.local/share/qutebrowser/history.sqlite" +prompt="$(sqlite3 -separator ' ' "$hist" \ + 'select title, url from CompletionHistory' | + cat "$qmarks" - | cat "$bmarks" -)" + +echo -ne "\0prompt\x1fEnter query or link\n" +printf "%s" "$prompt" diff --git a/dotfiles/.local/bin/screensht b/dotfiles/.local/bin/screensht new file mode 100755 index 0000000..f170d38 --- /dev/null +++ b/dotfiles/.local/bin/screensht @@ -0,0 +1,51 @@ +#!/bin/sh + +notify_saved() { + notify-send -i "$1" "🖼 Screenshot" "Screenshot has been saved in $1" ; +} + +notify_copied() { + notify-send "🖼 Screenshot" "Screenshot has been copied to clipboard" ; +} + +if [ "$2" = "copy" ]; then + case "$1" in + "select area") + grim -g "$(slurp)" - | wl-copy + notify_copied + ;; + "current window") + grim -g "$(swaygetcurrentwindow)" - | wl-copy + notify_copied + ;; + "full screen") + grim - | wl-copy + notify_copied + ;; + *) exit 0;; + esac + exit 0 +else + if ! [ -d $SCROT_DIR ]; then + mkdir -p $SCROT_DIR + fi + case "$1" in + "select area") + scrpath="$SCROT_DIR/selected-$(date '+%y%m%d-%H%M-%S').png" + grim -g "$(slurp)" "$scrpath" + notify_saved "$scrpath" + ;; + "current window") + scrpath="$SCROT_DIR/window-$(date '+%y%m%d-%H%M-%S').png" + grim -g "$(swaygetcurrentwindow)" "$scrpath" + notify_saved "$scrpath" + ;; + "full screen") + scrpath="$SCROT_DIR/fullscreen-$(date '+%y%m%d-%H%M-%S').png" + grim "$scrpath" + notify_saved "$scrpath" + ;; + *) exit 0;; + esac + exit 0 +fi diff --git a/dotfiles/.local/bin/swayrecord b/dotfiles/.local/bin/swayrecord index 91f6d31..b4e2aa6 100755 --- a/dotfiles/.local/bin/swayrecord +++ b/dotfiles/.local/bin/swayrecord @@ -1,7 +1,4 @@ -#!/bin/sh - -# Source settings from .bemenurc -. ~/.config/bemenurc +#!/bin/bash if ! [ -d $VREC_DIR ]; then mkdir -p $VREC_DIR @@ -116,7 +113,7 @@ audio () { } askrecording () { - TYPE="$(printf "video\nscreencast\nscreenshare\naudio\n" | bemenu -l 6 -i -p "What should be recorded?" --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB")" + TYPE="$(echo -ne "video\0icon\x1fcamera-video\nscreencast\0icon\x1fcamera-web\nscreenshare\0icon\x1fvideo-display\naudio\0icon\x1faudio-input-microphone\n" | rofi -dmenu -i -p "What should be recorded?")" case "$TYPE" in video) video;; screencast) screencast;; @@ -132,11 +129,13 @@ if [ -f "$HOME/.cache/recordingpid" ]; then fi if [ $(swaymsg -t get_outputs | jq '. | length') -gt 1 ]; then -MONITOR=$(swaymsg -t get_outputs | grep -E "name" | sed "s/^.*\"name\": \"//g;s/\",$//g;" | bemenu -p "Select display for capture: " --tf="$BEMENU_TF" --tb="$BEMENU_NB" --fb="$BEMENU_NB" --fn="$BEMENU_FN" --nb="$BEMENU_NB" --nf="$BEMENU_NF" --hf="$BEMENU_HF" --hb="$BEMENU_HB" --monitor="$BEMENU_MONITOR") + MONITOR=$(swaymsg -t get_outputs | grep -E "name" | sed "s/^.*\"name\": \"\(.*\)\",/\1\x00icon\x1fdisplay/g;" | rofi -dmenu -i -p "Select display for capture") else MONITOR="$(swaymsg -t get_outputs | jq -r '.[0]["name"]')" fi +[ -z "$MONITOR" ] && exit 0 + case $1 in video) video;; screencast) screencast;; diff --git a/dotfiles/.local/bin/swaysession b/dotfiles/.local/bin/swaysession index c4fa4db..2234c11 100755 --- a/dotfiles/.local/bin/swaysession +++ b/dotfiles/.local/bin/swaysession @@ -1,8 +1,6 @@ #!/bin/sh -# /usr/bin/i3exit -# on void just sudo -[[ $(cat /proc/1/comm) == "systemd" ]] && logind=systemctl || logind=loginctl +[ "$(cat /proc/1/comm)" = "systemd" ] && logind=systemctl || logind=loginctl case "$1" in lock) @@ -29,8 +27,11 @@ case "$1" in $logind poweroff ;; *) - echo "== ! i3exit: missing or invalid argument ! ==" - echo "Try again with: lock | logout | switch_user | suspend | hibernate | reboot | shutdown" + if [ "$SWAYSESSION_GUI" = 1 ]; then + notify-send "🖥 swaysession" "Invalid option" + else + echo "swaysession: missing or invalid argument" + fi exit 2 esac diff --git a/dotfiles/.local/bin/togglevpn b/dotfiles/.local/bin/togglevpn deleted file mode 100755 index 8baed38..0000000 --- a/dotfiles/.local/bin/togglevpn +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -isup=$(ip a | grep wg0:) - -if [ -z "$isup" ]; then - nmcli connection up wg0 && notify-send " VPN" "Wireguard VPN tunnel established" && exit - notify-send " VPN" "Error while trying to start Wireguard tunnel" - exit 1 -fi -nmcli connection down wg0 && notify-send " VPN" "Wireguard VPN tunnel brought down" && exit -notify-send " VPN" "Error while trying to close Wireguard tunnel" -exit 1 |