Mit diesem kleinen Script lässt sich das aktuelle Fenster leicht per Shortcut von einem auf den anderen Monitor verschieben. Funktioniert auch mit maximierten Fenstern, die nach dem Verschieben weiterhin maximiert bleiben.
Das Script ist für zwei Monitore mit gleicher Auflösung ausgelegt.
#!/bin/bash
# screen width
screen_width=1280
# active window
window=`xdotool getactivewindow`
# get active window size and position
x=`xwininfo -id $window | grep "Absolute upper-left X" | awk '{print $4}'`
w=`xwininfo -id $window | grep "Width" | awk '{print $2}'`
maximized=false
if [[ "$w" -eq "$screen_width" ]]; then
maximized=true
fi
# window on left monitor
if [ "$x" -lt "$screen_width" ]; then
if $maximized; then
wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
fi
wmctrl -r :ACTIVE: -e 0,$screen_width,-1,-1,-1
if $maximized; then
wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
fi
# window on right monitor
else
if $maximized; then
wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
fi
wmctrl -r :ACTIVE: -e 0,0,-1,-1,-1
if $maximized; then
wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
fi
fi
26. Juli 2011 um 16:43
very nice script, thanks a lot for this.
I modified it so it works with 2 monitors with different resolutions:
[CODE]
#!/bin/bash
# screen width
screen_width1=1680
screen_width2=1920
# active window
window=`xdotool getactivewindow`
# get active window size and position
x=`xwininfo -id $window | grep “Absolute upper-left X” | awk ‘{print $4}’`
w=`xwininfo -id $window | grep “Width” | awk ‘{print $2}’`
maximized=false
# window on left monitor
if [ "$x" -lt "$screen_width1" ]; then
if [[ "$w" -eq "$screen_width1" ]]; then
maximized=true
fi
if $maximized; then
wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
fi
wmctrl -r :ACTIVE: -e 0,$screen_width1,-1,-1,-1
if $maximized; then
wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
fi
# window on right monitor
else
if [[ "$w" -eq "$screen_width2" ]]; then
maximized=true
fi
if $maximized; then
wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
fi
wmctrl -r :ACTIVE: -e 0,0,-1,-1,-1
if $maximized; then
wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
fi
fi
[/CODE]