gnome-terminal のように、--geometry オプションが使えるとありがたいが、できないアプリケーションもある。すべてのウィンドウ配置をコマンドラインで制御したいというのは、いまだ awk や sed が手放せずにいるネアンデルタール人の感覚か...
ちなみに、nautilus や mutter では、痒いところに手が届かない。
ウィンドウのサイズは、nautilus から...
$ dconf-editor
org/gnome/nautilus/window-state に "initial-size" があり、自動で変化する模様。
ウィンドウの起動位置は、mutter から...
$ dconf-editor
org/gnome/mutter に "center-new-windows" の on/off しか見当たらない。
0. てなわけで、xdotool を試す...
$ sudo dnf install xdotool
尚、環境は...
OS: Rock Linux 9.5 (Blue Onyx)
Kernel: 5.14.0-503.38.1.el9_5.x86_64
Gnome Version: 40.4.0
Gnome 環境: スタンダード(X11ディスプレイサーバー)
1. 手順は、こんな感じ...
- Window ID を取得: xdotool search --name(or --class) "ウィンドウ名"
- Window ID を指定して移動: xdotool windowmove "Window ID" X Y
Window ID さえ取得できれば、なんとかなりそう...
2. 例えば、chrome では、素直にうまくいく。
$ xdotool search --neme chrome 39845892 $ xdotool windowmove 39845892 100 200
尚、baobab は、ウィンドウサイズは記憶してくれるが、起動位置は記憶してくれない。
$ xdotool search --name baobab 33554433 $ xdotool windowmove 33554433 100 200これで反応なし!
xwininfo で確認すると、Window ID の取得に問題あり...
そして、こうやると、うまく取得できる。
$ xdotool selectwindow => 対象ウィンドウをクリック! 33554680これは、xwininfo の取得値(16 進表記)と同じ。
さらに、こうやると、二つの値が得られる。
$ xdotool search --class baobab 33554433 33554680欲しいのは、下の ID...
そして、こうやると、ビンゴ!
$ xdotool search --onlyvisible --class baobab 33554680尚、"--class" を "--classname" としても結果は同じだが、違いは微妙か...
4. 結果、コードはこんな感じ... とりあえず、めでたし!めでたし!
#! /bin/bash baobab /home/username & sleep 1s window_id=$(xdotool search --onlyvisible --class baobab) xdotool windowmove $window_id 100 200
0 コメント:
コメントを投稿