скриптик для ноута для поддержки функций хоткеев(мож кому интересно)
diff 16 июля, 2011 - 00:41
Colorized Source Code
Наваял тут на досуге. задолбало с перетаскиванием окон с монитора на монитор и поиском мышки. В итоге родился скриптик:
#!/bin/sh # # mode_switch.sh cmd [args] # # Commands: # wlan <on|off> - switch on/off wlan power # power - moving to stadby mode # mwindow - move active window to second monitor # mmouse - move mouse cursor to top of active window # monupd <up|down|left|right> - update monitors settings after plug/unplug monitor # get_current_window() { wid=`xprop -root |awk '/_NET_ACTIVE_WINDOW/ {print $5; exit;}'|cut -d"," -f1|sed 's/0x/0x0/'` } action=$1 case $action in wlan) state=`sed -n '1p;1q' /sys/class/net/wlan0/device/tx_power` case $state in off) iwconfig wlan0 tx on ifconfig wlan0 up echo "on" ;; *) iwconfig wlan0 tx off echo "off" ;; esac ;; power) sync echo -n mem > /sys/power/state ;; monupd) out=`xrandr | awk '/^(VGA|LVDS)/ {print $1}'` LVDS=`echo $out | sed 's/VGA[a-zA-Z0-9]//'` VGA=`echo $out | sed 's/LVDS[a-zA-Z0-9]//'` case $2 in up) xrandr --output $LVDS --auto --output $VGA --auto --above $LVDS ;; down) xrandr --output $LVDS --auto --output $VGA --auto --below $LVDS ;; left) xrandr --output $LVDS --auto --output $VGA --auto --left-of $LVDS ;; right) xrandr --output $LVDS --auto --output $VGA --auto --right-of $LVDS ;; *) echo "wrong position" exit ;; esac ;; mwindow) # move window betwin monitors monitors=`xvinfo|grep Adaptor|wc -l` # if more than one if [ ${monitors} -ge 1 ] ;then # get window id wid=0; get_current_window # get window giometry and position metric=`xwininfo -id ${wid} -metric|grep -E "(Width|Height|Corner)"` inc=`xrandr -q | sed 's/+/ /g' | awk '/^(VGA|LVDS)/ { if ( $4 > 0 ) print $4 }'` # $10 - x, $11 - y, $2 - width $6 height repos=`echo ${metric} |sed 's/+/ /g' | awk -v inc=$inc '{ if( inc < $10 ) npos= $10 - inc - 1 else npos= $10 + inc -1 if( $11 > 46 ) h = $11 - 22 else h = 0 printf("%s,%s,%s,%s,%s", 0, npos, h, -1, -1);}'` wmctrl -e ${repos} -i -r ${wid} fi ;; mmouse) # move mouse cursor to the current window wid=0 get_current_window # convert from hex to binary wid=`printf "%d" ${wid}` xdotool mousemove -w ${wid} 55 0 ;; *) echo "error" exit1 ;; esac
»
- Для комментирования войдите или зарегистрируйтесь