Contents
はじめに
こんにちは、野村です。
今回は、コマンドラインツール「xdotool」でウィンドウを操作する方法を紹介します。
僕は、ウィンドウマネージャを起動したら時に必ず以下の操作をするのですよ。
1. mltermを起動する。
2. mltermを画面の左半分に配置する。
3. mlterm内でscreenを起動する。
4. 2つ目のmltermを起動する
5. 2つ目のmltermを画面の右半分に配置する
6. 2つ目のmlterm内でscreenを起動する
この6行程をバッチ処理できたら便利だなと思って調べたところ、xdotoolというツールの存在を知りました。
かなり多くの機能があるようで、すべてを紹介すると膨大な記事になってしまいます。
なのでこの記事では、以上のバッチ処理を例にとって簡単に説明したいと思います。
インストール
管理ユーザになって以下のコマンドを実行します。(debianの場合)
# apt install xdotool
スクリプト
以下のスクリプトをパスの通ったデレクトリに保存し、実効権限を与えます。
なお、このスクリプトは、解像度1920×1080画面専用です。
実行するときは、
・dmenuなどからコマンドを打って呼び出す
・xbindkeysなどでショートカットキーを割り当てて呼び出す
という方法が考えられます。
僕はdmenuを使ってます。
!/bin/bash func00(){ ID=`xdotool getwindowfocus` xdotool windowraise $ID xdotool windowsize $ID 958 1028 xdotool windowmove $ID $1 $2 xdotool type --delay 50 'screen -q' xdotool key ctrl+j } mlterm & mlterm & sleep 3s xdotool key alt+Tab func00 1 1 xdotool key alt+Tab func00 961 1
説明
xdotool key alt+Tab
キー入力をシュミレートします。
この場合はalt+Tab。ウィンドウのフォーカスの切り替えです。
ID=`xdotool getwindowfocus`
フォーカスされているウィンドウのIDを変数IDに格納します。
xdotool windowraise $ID
指定したウィンドウを最前面に押し上げます。
xdotool windowsize $ID 958 1028
指定したウィンドウをサイズ変更します。
引数は、ウィンドウID、横幅、縦幅、です。
xdotool windowmove $ID $1 $2
指定したウィンドウを移動します。
引数は、ウィンドウID、x座標、y座標、です。
xdotool type –delay 50 ‘screen’
キー入力をシュミレートします。
「xdotool key」との違いは、複数の文字列に対応していることです。
deleyオプションで1文字ごとの入力速度を調整できます。
入力速度が早すぎると、ちゃんと入力してくれません。
終わりに
以上、xdotoolの基本的な使い方を簡単に紹介しました。
できるだけマウスを使いたくない人にとって便利なツールだと思いますよ。
というわけで、今回はこれにて。