1

次のように、xrandr、grep、および wmctrl を使用して、ウィンドウを画面の半分のサイズに最大化するスクリプトをいくつか作成しました (ウィンドウを並べて配置しやすくするため)。

#!/bin/bash

w=`xrandr 2> /dev/null | grep '*' | grep -Po '\d+(?=x)'`
h=`xrandr 2> /dev/null | grep '*' | grep -Po '(?<=x)\d+'`
wmctrl -r :ACTIVE: -b remove,maximized_horz,maximized,vert
wmctrl -r :ACTIVE: -e 0,0,0,$((w / 2)),$h

これをよりネイティブに行う方法はありますか?スクリプトは私のデスクトップでは問題なく動作しますが、私のラップトップでは 0.5 秒の遅れがあり、ちょっと面倒です。

4

1 に答える 1

1

テストコード

# w_h="$(print -- "1280x1024 0.0*" | awk '/.*\*$/{sub(/ .*$/, "");sub("x"," ");$1=$1/2 ;print}')"
# w="${w_h% *}" ; h="${w_h#* }"

実際のコード

# awk matches only line ending with '*', remove everything from last space to EOL, replace X with " "
# w_H looks like "640 1040", below splits on space char populating correct var
w_h="$(xrandr | awk '/\*/{sub(/[0-9\.*\+]*$/, ""); sub("x", " "); $1=$1/2; print}')"
w="${w_h% *}" ; h="${w_h#* }"
wmctrl -r :ACTIVE: -b remove,maximized_horz,maximized,vert
wmctrl -r :ACTIVE: -e 0,0,0,${w},${h}

awk 内の W で div を実行したことに注意してください。また、バッククォートは posix シェルでは非推奨です。あなたの人生を楽にし、コマンド置換に $() を使用してください;-)

これが役立つことを願っています。

于 2011-03-25T04:08:02.743 に答える