毎日仕事していると、同じ作業を延々と長時間やらないといけないこともあります。数日前も社内掲示板にファイルを貼り付ける作業を小一時間やらされて…(ry

シェルスクリプトを使えば多くの操作を自動化できるかも知れませんが、GUIアプリのマウス操作などシェルスクリプトでは自動化できないことも多いでしょう。

というわけで、今回はGUI操作を記録・再生することができるxneeというプログラムを試してみました。Ubuntu 10.04(Lucid)とUbuntu 10.10(Maverick)では、リポジトリに含まれていますが、いずれもうまく動作できなかったので、最新版のxnee-3.07をソースからコンパイルしてみたところ、コマンドで実行することができました。

GNU Xneeは、マウスやキーボードの操作を.xnsという拡張子のテキストファイルに記録し、そのファイルの情報からGUI操作をリピートする機能をもっています。Windows版のマウスレコーダーと同じようなものですね。コマンドで実行する「cnee」、GUIの「gnee」、Gnomeパネルのアプレット「pnee」という3つのプログラムから成り立っています。

gnee+pneeこれらが使えれば楽なんですが…

Ubuntu 10.04でxnee-3.06とxnee-3.07をコンパイルして試したところ、cneeの起動には成功しましたが、pneeとgneeは動作できませんでした。Ubuntu 10.10でリポジトリにあるxnee-3.06を試したところ、Xがクラッシュしてログイン画面に戻ってしまいます。xneeというより、Xそのもののバグのようで…。 cneeは使えましたので、一応まとめておきます。

《参考》
・Bug #690223
・Bug #378648
・Bug #315456

コンパイル環境の準備

リポジトリのものはいさぎよく(?)諦めて、ソースファイルをコンパイルする環境を整えておきましょう。checkinstallは必須ではありませんが、アンインストールする際にcheckinstallでdebパッケージを作っておいた方が便利ですので加えました。

$ sudo aptitude install build-essential libxtst-dev libpanel-applet2-dev autoconf automake libtool libgnomeui-dev checkinstall

ソースファイルの入手と展開

GNUのサーバにあるソースファイルを入手して展開します。

$ wget http://ftp.gnu.org/gnu/xnee/xnee-3.07.tar.gz
$ tar xzvf xnee-3.07.tar.gz
$ cd xnee-3.07


コンパイル

docを有効にするとtex関係のパッケージを要求されますので、あえてdocを無効にして「configure & make」します。

$ ./configure --disable-doc
$ make


makeしなおす場合は、
$ make clean
で生成したバイナリを綺麗に削除しておきます。

インストール

make installでも構いませんが、checkinstallでdebパッケージを作成しておくとアンインストールが容易になります。

$ sudo checkinstall
あるいは
$ sudo make install

[追記] Ubuntu 10.10の場合、
$ sudo mkdir /usr/local/share/xnee
$ sudo mkdir /usr/local/lib/bonobo
を実行しておく必要があるようです。


アンインストール

checkinstallでインストールした場合は、下記のコマンドでアンインストールできます。

$ sudo dpkg -r xnee

cneeでの記録方法

端末で cnee --record コマンドを使います。例えば、下記のコマンドでは、10秒間カウントしてから60秒間の記録を行ないます。なお、取得したデータは/tmp/test.xnsに保存され、記録時間は --seconds-to-record というオプションの後に記録したい秒数を整数値で指定します。

$ cnee --record --mouse --keyboard -o /tmp/test.xns --store-mouse-position --time 10 --seconds-to-record 60

cneeでの再生方法

端末で cnee --replay コマンドを使います。例えば、下記のコマンドでは、10秒間カウントした後、/tmp/test.xnsに従ってGUI操作が自動的に実行されます。

$ cnee --replay --mouse --keyboard -f /tmp/test.xns --recall-window-position --time 10

記録・再生のオプションに関しては、ソースファイルにあるxnee-3.07/doc/xnee.txtというマニュアル(英語)が参考になると思います。英語が苦手な方は下記のサイトを参照して下さい。

Xnee Manual (日本語)

pneeが使えれば、ボタン操作だけで記録・停止・再生ができるので、非常に便利なのですが…惜しいです。