Add new bin scripts
This commit is contained in:
Executable
+68
@@ -0,0 +1,68 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This is a modified version of sway-interactive-screenshot made by moverest
|
||||
# https://github.com/moverest/sway-interactive-screenshot/
|
||||
|
||||
|
||||
# `list_geometry` returns the geometry of the focused of visible windows. You can also get they title
|
||||
# by setting a second argument to `with_description`. The geometry and the title are seperated by `\t`.
|
||||
#
|
||||
# Arguments:
|
||||
# $1: `focused` or `visible`
|
||||
# $2: `with_description` or nothing
|
||||
#
|
||||
# Output examples:
|
||||
# - with the `with_description` option:
|
||||
# 12,43 100x200\tTermite
|
||||
# - without the `with_description` option:
|
||||
# 12,43 100x200
|
||||
|
||||
function list_geometry () {
|
||||
[ "$2" = with_description ] && local append="\t\(.name)" || local append=
|
||||
swaymsg -t get_tree | jq -r '.. | (.nodes? // empty)[] | select(.'$1' and .pid) | "\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)'$append'"'
|
||||
}
|
||||
|
||||
|
||||
# WINDOWS=`list_geometry visible with_description`
|
||||
WINDOWS=`list_geometry visible with_description | screenshot-wofi-text-align`
|
||||
FOCUSED=`list_geometry focused`
|
||||
|
||||
# CHOICE=`rofi -dmenu -i -p 'Screenshot' << EOF
|
||||
CHOICE=`wofi -i -d -W 800 -p 'Screenshot' << EOF
|
||||
Focused Window
|
||||
Focused Screen
|
||||
All Screens
|
||||
Region
|
||||
$WINDOWS
|
||||
EOF`
|
||||
|
||||
|
||||
SAVEDIR="$(xdg-user-dir PICTURES)/Screenshots"
|
||||
mkdir -p "$SAVEDIR"
|
||||
FILENAME="$SAVEDIR/$(date +'Screenshot %Y-%m-%d %H:%M:%S.png')"
|
||||
EXPANDED_FILENAME="${FILENAME/#\~/$HOME}"
|
||||
|
||||
case $CHOICE in
|
||||
'All Screens')
|
||||
grim "$EXPANDED_FILENAME"
|
||||
;;
|
||||
'Focused Screen')
|
||||
grim -o "$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')" "$EXPANDED_FILENAME"
|
||||
;;
|
||||
Region)
|
||||
grim -g "$(slurp)" "$EXPANDED_FILENAME"
|
||||
;;
|
||||
'Focused Window')
|
||||
grim -g "$FOCUSED" "$EXPANDED_FILENAME"
|
||||
;;
|
||||
'')
|
||||
# notify-send "Screenshot" "Cancelled"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
GEOMETRY="`echo \"$CHOICE\" | cut -d$'\t' -f1`"
|
||||
grim -g "$GEOMETRY" "$EXPANDED_FILENAME"
|
||||
esac
|
||||
|
||||
wl-copy < $(echo "$EXPANDED_FILENAME")
|
||||
notify-send "Screenshot" "File saved as <i>'$FILENAME'</i> and copied to the clipboard." -i "$EXPANDED_FILENAME"
|
||||
Reference in New Issue
Block a user