USBキーボードを差すたびにコマンド実行

 昨日の続き。
doroyamada.hatenablog.jp

 昨日うまく行ったのに、うまく行かなくなっていた。コマンドラインからシェルスクリプトを実行するとうまくいくので、X関連の問題と推測。昨日の疑問もあって、書き換えてみる。ついでにログ書き出しも追加。

#!/usr/bin/zsh
sleep 1

DISPLAY=":0.0"
HOME=/home/kazz/
XAUTHORITY=${HOME}.Xauthority
export DISPLAY HOME XAUTHORITY

xmodmap /home/kazz/.xmodmap
echo $(date +"%Y%m%d%I%M%S") $XAUTHORITY >>$(cd $(dirname $0); pwd)/log/kb.log

 無事動くようになった。でも昨日動いていたのはなんでや。

 ログを見ても

20200422010349 /home/kazz/.Xauthority

 やっぱりそうやんな。念のため昨日の変数に戻してみたら

20200422071803 /home/kazz//.Xauthority

 やはり。

 Qiitaで間違いを見たのは二度め。このときは/漏れ。
doroyamada.hatenablog.jp

 「テストしてへんの?」と思ったものの、いろいろテストしながらエントリー書いていると失敗したバージョンを貼り付けることもあるよなと妙に納得した。

xubuntuでキーボードを抜くとキーマップが初期化される件

 xmodmapでCAPSと左Ctrlを入れ替え、半角/全角をESCに入れ替えている。これまでも、USBをいったん切り離して再接続するとキーマップが元に戻るという現象が発生していた。で、デスクトップにランチャを作って対応していたけど、在宅勤務が始まり、仕事用のノートPCと交互に使うようなことが増えてきた。

 「linuxなんだからキーボードをつないだらコマンドを実行するくらいできるやろ」と思って調べてみた。udevってやつが司っているらしい。いちばんわかりやすかったサイトはここ。

gihyo.jp

 /etc/udev/rules.d/80-keyboard.rulesを作ってみた。

ACTION!="add", GOTO end
ENV{ID_VENDOR_ID}=="25a7", ENV{ID_MODEL_ID}=="fa61", RUN+="xmodmap /home/kazz/.xmodmap"

LABEL="end"

 リロードして実行してみたが期待通りに動いていない。syslogには「failed to execute '/lib/udev/xmodmap' 'xmodmap /home/kazz/.xmodmap': No such file or directory」と。フルパスで書かなならんのか。
 フルパスで書いてみる。

ACTION!="add", GOTO end
ENV{ID_VENDOR_ID}=="25a7", ENV{ID_MODEL_ID}=="fa61", RUN+="/usr/bin/xmodmap /home/kazz/.xmodmap"

LABEL="end"

 syslogをみると「 Process '/usr/bin/xmodmap /home/kazz/.xmodmap' failed with exit code 1.」と。

 いろいろ検索してみて、xauthorityがなんか絡んでいるらしい。再度検索。

yukirinmk2.hatenablog.com

 なるほど、環境変数が要るんやな。やってみた。作ったスクリプトは以下。

#!/usr/bin/zsh
sleep 1

DISPLAY=":0"
HOME=/home/kazz/
XAUTHORITY=$HOME/.Xauthority
export DISPLAY HOME XAUTHORITY

xmodmap /home/kazz/.xmodmap

 無事動作。syslogにもエラーはない。成功メッセージもないけど。
 シェルスクリプトには疎いんだけど、この場合XAUTHORIYは/が重なって /home/kazz//.Xauthority が代入されてそうなんだが。

 setxkbmapってコマンドもあるんや。こっちだと固定できるようだ。そのうち乗り換えるかも。

 近所のカウンターメインの居酒屋、座敷はあるけどまず宴会はやってないので今日もやっていないだろうとたかをくくって行ったら6人の賑やかな宴会やってた(しかもあとから1人合流)。行っている時点で私も似たりよったりなんやけど。
 近所で感染者が出て消毒やってたという噂話も聞いた。「どこかわからんけど」というあたりがかえってリアリティを出すと実感。

怪しい戦国史 / 本郷和人

怪しい戦国史

怪しい戦国史

  • 作者:本郷和人
  • 発売日: 2019/08/09
  • メディア: Kindle版
 いくらなんでも最近本出し過ぎちゃう?と思う本郷先生。この本はなんかぶつ切り感があると思っていたら雑誌の連載をまとめたものだった。連載を持っているからこそ本がたくさん出せるってことかもしれない。
 個々のネタは十分おもしろいんやけど、連載サイズで切れているのでリズム感が今ひとつ。

全国マン・チン分布考 / 松本修

 やはりこれも蝸牛考の世界だったと。子供のものを指していたものが大人にも使われるという考察も興味深い。
 私が小学校時代を過ごした大分県USA市も中学高校時代を過ごした大分市もこの図の青丸塗りつぶしだったわけだけど、同心円の外側の例外。この瀬戸内海西部は「よる」「ちょる」を使い分け、断定の助動詞が「じゃ」のエリア。文法的分布と女陰部呼称の分布が一致しているわけやな。他にも「ネキ」「まる」とかの関西弁も使われていたし、かつて海上交通の影響で上方と言語的に近かったのかも。