Ubuntu で窓使いの憂鬱使う方法
(後で見るとき|同じ問題が起こる人)用
1 - uinput をロードするようにする
これは README にあるとおり。
/etc/modules に以下の行を追加
uinput
2 - rc スクリプトを書く
/etc/init.d/mayu に、以下の内容のスクリプトを書く
USER 変数に .mayu を置いているユーザを指定*1
#! /bin/sh DAEMON=/usr/local/bin/mayu NAME=mayu USER=anekos DESC="Mayu at $USER" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/mayu do_start() { echo -n "Starting $DESC: " if start-stop-daemon --stop --quiet --pidfile $PIDFILE \ --signal 0 then echo "already running." exit fi env HOME=/home/$USER \ start-stop-daemon --user $USER --start --quiet --background \ --make-pidfile --pidfile $PIDFILE \ --exec $DAEMON echo "$NAME was started" } do_loadtest() { env HOME=/home/$USER \ start-stop-daemon --user $USER --start --quiet --exec $DAEMON echo "$NAME was started" } do_stop() { echo "Stopping daemon: $NAME" start-stop-daemon --stop --pidfile $PIDFILE rm -f $PIDFILE } case "$1" in start) do_start ;; stop) do_stop ;; restart) do_stop do_start ;; loadtest) do_loadtest ;; *) echo "Usage: $0 (start|stop|restart)" ;; esac # vim: set ts=4 sw=4 :
3 - 起動時に自動で走るように登録
sudo update-rc.d mayu start 10 2 . stop 10 0 1 3 4 5 6 .
デーモンとして、早めに実行してやらないと多分うまくいかない。
代わりに xinput のデバイスの自動追加(? AutoAddDevices)が死んでいそうだけど…
4 - .mayu を HOME に置く
CapsLock を Ctrl に置き換える場合はこんな感じで。
include "linux104.mayu" keymap Global mod control += CapsLock key *CapsLock = *LControl
5 - 再起動
あとは、PC 再起動するだけ。
.mayu が読まれているか確認する
動いていないように思えるときは、
sudo /etc/init.d/mayu loadtest
として、非バックグラウンドで動かしてみる。
そうすると
loading: /home/anekos/.mayu /home/anekos/.mayu loading: /usr/local/share/mayu/linux104.mayu /usr/local/share/mayu/linux104.mayu successfully loaded.
こんな感じの出力があればOK。
既に mayu が起動していたりすると
error: EVIOCGRAB ioctl failed
とでるはずだけど、とりあえずは問題ないと思う。
.mayu をリロードする
.mayu を更新するなどして再読み込みさせたい場合は
sudo /etc/init.d/mayu restart
で、OK
xinput さんが気になる場合
.mayu が先に有効なるから使えるだけで、xinput の方で問題起きていそうな気もする。
なので、 /etc/X11/xorg.conf に以下の行を追加して置くのも良いかもしれない。
Section "ServerFlags" Option "AutoAddDevices" "False" EndSection
こうすると、新機能の hotplug とやらが動かなくなるらしいが、どういう機能なのかイマイチわからない。
この場合、rc スクリプトを書かないでも問題ないが*2、デーモンとして置いたほうが便利だろう。
止めたら、キーボードが効かなくなった
"/etc/init.d/mayu stop" とかすると、キーが一切効かなくなったりするが、X 上だけなので別端末から mayu を再起動すれば大丈夫。