web-dev-qa-db-ja.com

高度なウィンドウ配置

[〜#〜] tldr [〜#〜]windowpad のubuntuの置き換えを探しています

ウィンドウの配置はCtrl-Alt-Numpad#Ctrl-Super-arrowで定義できることは知っていますが十分ではありません。 CompizConfig>複数のサイズを循環する

ただし、ホットキーを割り当てて、ウィンドウを左、全高、1/3幅に固定するようにします。右も同じです。真ん中のために。私は(Windowsで)Windowpadを使用することに慣れています。これにより、ほとんど何でも定義できます。そして、私はそれにとても慣れています。

これを微調整する方法はありますか?

編集を明確にします。これはウィンドウを開くことについてではなく、現在アクティブなウィンドウについてです。

3
janw

あなたが探しているように聞こえます xdotool または wmctrl 。これらは、GUIとのさまざまな対話をスクリプト化できるツールです。どちらもリポジトリからインストールでき、どちらでも使用できます。

Sudo apt-get install wmctrl xdotool

私のディスプレイは1920 x 1080なので、1/3の幅は640になります。アクティブウィンドウを画面の左側、全高、1/3の幅に配置するには、次のように実行します。

wmctrl -r :ACTIVE: -e 0,0,0,640,1080

形式はman wmctrlで説明されています。

-r <WIN>
     Specify a target window for an action.
-e <MVARG>
     Resize and move a window that has been specified with a -r action 
     according to the  <MVARG> argument.

 [...]

<MVARG>
     A move and resize argument has the format 'g,x,y,w,h'.  All five components  are  integers.
     The  first  value, g, is the gravity of the window, with 0 being the
     most common value (the default value for the window). [...]
     The four remaining values are a standard geometry specification: x,y 
     is the position of the top  left  corner  of  the  window, and w,h
     is the width and height of the window [...].

<WIN>
     This  argument  specifies a window that is the target of an action. [...]
     The  window name string :ACTIVE: may be used to instruct wmctrl to 
     use the currently active window for the action.

幅を自動的に検出することで、より動的にすることもできます。このコマンドは、ディスプレイの幅を出力します。

$ xrandr | grep -Po 'current\s*\K\d+'
1920

したがって、次のようにwmctrlに統合できます。

wmctrl -r :ACTIVE: -e 0,0,0,$(($(xrandr | grep -Po 'current\s*\K\d+')/3)),1080

これで、Unity設定からキーボードショートカットにそのコマンドを割り当てるだけで、準備が整いました。

2
terdon