« 2013年3月 | トップページ | 2013年6月 »

2013年5月

2013.05.29

GNOME3.6でのxmodmapの設定 (Gentoo Linux)

GNOME3.6では、キーボードレイアウトとIMEがGNOMEに統合された模様で、~/.Xmodmapとしてxmodmapの設定を置いてGDMログイン時に/etc/X11/Sessions以下のスクリプト(GnomeやXsession)から読込ませようとしても、その後のGNOME自体の起動時にリセットされてしまうようだ。もっと賢い方法があるのかもしれないが、GNOME起動後にgnome-session-propertiesからxmodmapを起動する設定にしてみた。


$ gnome-session-properties &

GUIから以下のコマンドを入力。
/usr/bin/xmodmap /home/hm/.Xmodmap

これで一安心と思ったが、このxmodmapの設定がことある毎にキャンセルされてしまう。System Settings -- Region & LanguageのInput sourcesを変更した時や、Alt+Ctrl+F1でコンソールに降りて戻ってくる場合などの特殊な場合は仕方ないにしても、サスペンドするたびにキャンセルされるのは困る。

例によってArchwikiで調べてみると、pm-utilsというプログラムがサスペンドを仕切っているようで、その設定は/etc/pm/sleep.d以下に処理内容を書いたスクリプトを置けばよいことがわかった。xmodmapを動かす設定は以下の内容。ただし、xmodmapを動かすにはユーザ名とXのディスプレイ名が必要なので、それを取得するために別のスクリプトをgnome-session-propertiesで動かしている。

・pm-utilsのスクリプト。

$ sudo emacs /etc/pm/sleep.d/30xmodmap
#!/bin/sh
case $1 in
    suspend)
        echo "suspend: xmodmap -- do nothing"
        ;;
    resume)
        echo "resume: reload ~/.Xmodmap"
        sleep 1
        PM_USER=$(less /var/tmp/pm-utils_user)
        PM_DISPLAY=$(less /var/tmp/pm-utils_display)
        echo "user display" $PM_USER $PM_DISPLAY
        sudo -u $PM_USER /usr/bin/xmodmap -display $PM_DISPLAY /home/hm/.Xmodmap
        ;;
    hibernate)
        echo "hibernate: xmodmap -- do nothing"
        ;;
    thaw)
        echo "thaw: reload ~/.Xmodmap"
        sleep 1
        PM_USER=$(less /var/tmp/pm-utils_user)
        PM_DISPLAY=$(less /var/tmp/pm-utils_display)
		echo "user display" $PM_USER $PM_DISPLAY
        sudo -u $PM_USER /usr/bin/xmodmap -display $PM_DISPLAY /home/hm/.Xmodmap
        ;;
    *)  echo "30xmodmap error"
        ;;
esac
$ chmod +x 30xmodmap

・ユーザ名、Xディスプレイ名を取得するスクリプト(場所は当然、~/binでなくても可)

$ emacs ~/bin/gnome3_startup.sh
#!/bin/sh
echo $USER > /var/tmp/pm-utils_user
echo $DISPLAY > /var/tmp/pm-utils_display
xmodmap ~/.Xmodmap
uim-toolbar-gtk3

上のスクリプトのxmodmapで起動時の設定を実施。サスペンド復帰時の設定をその上のスクリプトで実施(uim-toolbar-gtk3は本件と無関係)。
$ chmod u+x ~/bin/gnome3_startup.sh

・このスクリプトをgnome-session-propertiesで自動起動として登録する。

これでサスペンド復帰時にxmodmapの設定も復帰できるようになった。でも、今後のGNOMEのアップデートに起因してトラブルが起きそうな気がするので、GNOME純正のgnome-tweak-toolで設定できる項目はなるべくそちらで設定して、xmodmapを使わないと設定できない内容(shift+0で"_"など)に限定してこの方法を使うことにした。

キーボードレイアウトというシステムの根源的な話はGNOMEで何とかして欲しいものだが、設定簡素化に走るGNOMEは今後も対応してくれそうもない。必要ならGNOME Shell Extensionを作れば?ということなのかもしれない。でも、一昔前の未完成だったGNOMEではこの程度のアドホックな対応は当たり前で、それがまた楽しかったことも思い出し、OSSはこれで良いのかもねと納得したりする。

2013.05.27

GNOME3.6のユーザ設定は~/.config/dconf/userに保存される

GNOME3.6でSystem Settingsやgnome-tweak-toolを使って設定を調整しているうちに、変更が元に戻せなくなってしまった。

消えなくなった"ibus-mozc"という文字列で~/以下をgrep検索したところ、
~/.config/dconf/userというファイルが設定DBと判明。このファイルを消すかrenameして再ログインするとファイルが作り直されて設定が初期化できることが分かった。設定変更を試す前にこのファイルのバックアップを取れば気軽に変更できそうだ。

ただし、Gnome Shellの拡張機能を試す場合には拡張機能をアンインストールしてからバックアップを戻さないとデータの不整合が起きそう。いつか失敗するなと今から確信してしまった。でも、そのぐらいのことはGNOMEの中の人も考えてくれているかも?という期待もある。かといってわざわざ試す元気もないので、メモだけを残しておく。

2013.05.23

GNOME3.6へ更新 (Gentoo Linux)

先日リリースされたDebian7.0のGNOMEはver.3.4ということで、いよいよ3系列が主流になったと判断してGentooをGNOME2.32から3.6に更新した。

作業自体は、GentooのUpgrade guideとGentoo wiki(トラブルがあって修復中の模様)の情報により実施。途中、conflict地獄に落ちかけたが、GNOME単独の更新をあきらめてemerge -uNDv @worldに切替え、どうしても引っ掛かるパッケージをアンインストールすることで完了できた(その過程を記事にまとめても他の環境で活きるとも思えないので詳細は書かない)。

GNOME3のUIの不評情報はいろいろ読んできたが、なかなか受け入れにくいかなと言う点には同意。特にアクティブになっているウインドウ以外にどんなウインドウを開いているかを知るためにはアクティビティ画面に切替える必要があるという点が一番の問題点。要するに自分のデスクトップが"見通せない"感じが不評の原因だなと感じた。

Mac OSXもMissionControlという似たようなUIなのだが、OSXは"手探り操作+決め打ちハードウェアへの最適化"である快適なスワイプ操作なのに対して、GNOME3のActivity画面は、押しにくい位置にあるWindowsキーまたはAlt+F1という複数キーの操作か、左上のホットコーナーへのカーソル移動という気軽とは言えない操作になっていることと、汎用ハードウェアによる動作のもっさり感が"いまいち"感を強くしていると思う。ということはこの先、タッチUIなどのハードウェアの改善が進めば、このUIも受け入れられるようになるのかなと感じる。

1週間ほど使った後にGNOME2.32に戻すか、Xfceに乗り換えるかと少し悩んだが、"タスクバー"に戻るのも退化かな、と思い直して、「サブ環境ゆえに"GNOME3系の成長を待つ"ことができる」との方針に頭を切り替えて、このまま使ってみることに決めた。

2013.05.09

マレット指その後、3年後

右手中指の腱が切れてマレット指になって3年が経過した。相変わらず、このブログではマレット指の記事が一番人気なのでその後の状況を書く。

最初の記事
1年後の記事

前回の記事の1年目の頃と比べると、中指のしっかり感はより強くなり、少々力仕事をしても症状が悪化するようなこともなくなった。ほぼ、完治したと言っても良いと思う。でも"ほぼ"を付ける理由がいくつかある。

1つ目は左手と比べて曲げられる角度が浅いこと。下の写真のように、指の腹どおしがくっ付くまでは曲げられない。とはいえ日常生活では全く使わない領域なので実害はない。
Dscn0582

2つ目は伸ばした時にやや反り気味になったこと。これも自分の指なので分かる程度で第3者には見分けられない程度。おそらくは切れた腱が修復した時に腱の全長がわずかに短くなり、その分伸ばした時の反りが強くなったのだと思う。
Dscn0584

3つ目はキーボードを打っている時にかすかな衝撃感を感じること。自分でもどういう状態なのかは理解できていないが、"指の慣性力を止める衝撃"のようなもの、あるいは腱自身の緩みのようなものなのかもしれない。修復した2本の腱の長さが若干違っていて片方にだけ緩みや揺れが起きるという状態ではないかと考えている。

いずれにしても、実害はない。1年目にあきらめていたギターも素人が自分の鼻歌の伴奏として弾く程度ならば指への負担はほとんどなく問題なく楽しめている。腱が切れた時点で47才、もうダメかとあきらめかけたが、手術なしでもここまで回復できたのは本当にありがたい。高いなと思った装具に改めて感謝。 1

« 2013年3月 | トップページ | 2013年6月 »