Big move about + cleanup
This commit is contained in:
49
bin/i3/launch-or-show
Executable file
49
bin/i3/launch-or-show
Executable file
@ -0,0 +1,49 @@
|
||||
#!/bin/zsh
|
||||
#####################################################################
|
||||
|
||||
USAGE="$0 APPLICATION CLIENT_CLASS"
|
||||
|
||||
function ERROR() {
|
||||
local ERROR_CODE=$1
|
||||
local MESSAGE="$2"
|
||||
|
||||
echo -e "$MESSAGE\n\nUSAGE : $USAGE\n" >&2
|
||||
|
||||
[ $MESSAGE ] && notify-send "Application Launcher" "$MESSAGE"
|
||||
exit $ERROR_CODE
|
||||
}
|
||||
|
||||
#####################################################################
|
||||
|
||||
APPLICATION="$1"
|
||||
which $APPLICATION >/dev/null 2>&1 \
|
||||
|| ERROR 2 "Application '$APPLICATION' not found"
|
||||
|
||||
CLIENT_CLASS="${@:2}"
|
||||
[ ! $CLIENT_CLASS ] && CLIENT_CLASS="$APPLICATION"
|
||||
|
||||
|
||||
XFFSET=0.0
|
||||
YFFSET=0.0
|
||||
FACTOR=0.8
|
||||
case $APPLICATION in
|
||||
pavucontrol ) FACTOR=0.4 YFFSET=200 ;;
|
||||
esac
|
||||
|
||||
|
||||
xdotool search --class "$CLIENT_CLASS" >/dev/null 2>&1 || {
|
||||
i3-msg "exec --no-startup-id $APPLICATION;"
|
||||
}
|
||||
|
||||
WINDOW_SIZE=$(\
|
||||
xrandr \
|
||||
| grep 'connected primary' \
|
||||
| sed 's/.*connected primary \([^x]*\)x\([^+]*\).*/\1 \2/' \
|
||||
| awk -v f=$FACTOR -v x=$XFFSET -v y=$YFFSET \
|
||||
'{print int($1*f+x)," ",int($2*f+y);}'\
|
||||
)
|
||||
|
||||
i3-msg "[class=$CLIENT_CLASS] move scratchpad"
|
||||
i3-msg "[class=$CLIENT_CLASS] resize set $WINDOW_SIZE"
|
||||
i3-msg "[class=$CLIENT_CLASS] scratchpad show"
|
||||
i3-msg "[class=$CLIENT_CLASS] move position center"
|
Reference in New Issue
Block a user