Linux MintでSuperキーを使う操作はWindowsのそれほど多くありませんが、使えると便利です。
ですが、昔のThinkPadにはWindowsキーがありませんでした。別のキーで代替してみたのでご報告です。
Linux Mint 19.1を試してみる
Windows7がサポート切れとなるときまであと1年を切りました。Windows8.1やWindows10に移行できればいいのですが、残念ながらPAE非対応の旧ThinkPadではWindows8以降のOSをインストールできません。(※インストール条件にPAE、NX、および SSE2 をサポートするCPUってのがあるためです。)
そこで旧ThinkPadで使えるOSとしてLinux Mintを実用までにもっていくためにいろいろと試しているところです。
そこで思ったのが、昔のThinkPadにはWindowsキーがないこと。
X60(やT60)以降のキーボードならCtrlキーとAltキーの間に存在するはずのWindowsキーがX31/X32(他同世代のThinkPad)には存在しません。
今回試したのはThinkPad X31にインストールしたLinux Mint Debian Edition(LMDE)とLinux Mint 19.1の二種類でキーの割り当てができるかどうかをUSBブートで用意した環境で試してみることにしました。
今回はどうせ使わない無変換キーをSuperキーに割り当ててみます。
簡単に割り当て実行
まずキーの割り当てを調べます。無変換キーのキーコードってのを調べます。
ターミナルからコマンド「xev」を実行します。
実行すると、
こんな画面になりますので、そこで、割り当てたい「無変換キーを押す」ことによって、無変換キーが押されたというイベントを収集してキーコードを画面に表示してくれます。
-------------------------------------------------------
キーコードを調べる
-------------------------------------------------------
UserNAME@HostNAME ~ $ xev
KeyRelease event, serial 38, synthetic NO, window 0x3800001,
root 0xfb, subw 0x0, time 464595, (167,160), root:(590,453),
state 0x0, keycode 102 (keysym 0xff22, Muhenkan), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 38, synthetic NO, window 0x3800001,
root 0xfb, subw 0x0, time 464722, (167,160), root:(590,453),
state 0x0, keycode 102 (keysym 0xff22, Muhenkan), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
-------------------------------------------------------
「$ xev」コマンドを実行した後、対象のキー(今回は無変換キー)を何回か押下して、対象のキーを押下したイベントの記録を確認するコマンドが「xev」コマンドです。
これで無変換キーのキーコードは「keycode 102」と判明しました。。
※ここで調べるキーコードはPCによって異なるので、PC別に調べる必要があります。
キーを割り当てる
まずはデフォルト状態のキーバインドをバックアップしておきます。
問題が起きたときにはデフォルトに戻れるように、デフォルト状態をファイルにバックアップして置くようにします。(※カレントディレクトリは/home/%USERNAME%で実行)
-------------------------------------------------------
$ xmodmap -pke > ~/.Xmodmap.default
-------------------------------------------------------
ファイル名「.Xmodmap.default」が内容ズラズラ記載されて生成されていればOKです。
次にキーを実際に割り当ててみます。
コマンドで
$ vi .Xmodmap
ファイルには
「keycode 102 = Super_L」
と記述するだけでOK
終わったら
$ xmodmap .Xmodmap
コマンドで有効化できる。
一連の流れはこんな感じ。
-------------------------------------------------------
UserNAME@HostNAME ~ $ vi .Xmodmap
UserNAME@HostNAME ~ $ cat .Xmodmap
keycode 102 = Super_L
UserNAME@HostNAME ~ $ xmodmap .Xmodmap
-------------------------------------------------------
これで、無変換キーがSuperキー(Windowsキーと同等)の動きをするようになりました。
スグに反映
コマンド「xmodmap .Xmodmap」を実行した後はすぐに無変換キーがSuperキーとして動作するようになります。
LinuxってWindowsと違って、キーマップ変更するのってOS標準でできちゃうんですね。ちょっと新鮮でした。
ただ、一つ目論見と違ったのは、Superキーが使えるようになればRemminaでリモートデスクトップ接続した先のWindowsキーとして今回割り当てた無変換キーが使えるかと思ったら、Remminaでは無変換キーで割り当てたSuperキーがWindowsキーとして動作しない、という動作に。
これはどうやら「無変換キー」以外にも「変換キー」「カナ/かな/ローマ字キー」の三つのキーがRemminaでは動作しないという動作上の仕様の模様。
うーん、なんだかちょっと残念な結果に終わってしまいました。