机の上がせまいので、テンキーレスなキーボードを愛用していましたが、なぜか左側のCtrlキーだけが反応しなくなってしまいました。キートップを外して念入りに掃除してみたものの改善されず、しばらくこの状態でガマンしていました。
安くて良さげなテンキーレスキーボードを物色していたところ、たまたまFILCOの状態の良い中古品を発見できたので、勢いで買ってしまいました。
新調したのはFILCOの茶軸タイプで大変高級感があるのですが、安物キーボードに慣れた体にはまだしっくりきていません。キーを押すと「カシュン、カシュン」っていう感じで、個人的にはもうちょっと手応えがあっても良いです。
FILCO Majestouch 2 TKL S 静音 91日本語 CHERRY MXピンク軸メカニカルKB USB&PS/2 N-Key ブラック FKBN91MPS/JB2SHK
posted with amazlet at 19.11.08
FILCO (2018-06-25)
売り上げランキング: 12,735
売り上げランキング: 12,735
新しいキーボードを使い始めてから気づいたのですが、このキーボードには以前はあった右側のWindowsキーがなかったのです。
右側のWindowsキーはLinux MintでCinnamonのメニューを開いたり、画面ロックする時によく使っているキーで、個人的にかなり困ってしまいました。
そんな時のためにLinuxにはxmodmapというコマンドが用意されています。
今回はこのコマンドを利用して、メニューキーを右Windowsキーに論理的に差し替えてみることにします。
現在の制御キーの割り当て状況を確認してみます。
$ xmodmap -pm xmodmap: up to 4 keys per modifier, (keycodes in parentheses): shift Shift_L (0x32), Shift_R (0x3e) lock Eisu_toggle (0x42) control Control_L (0x25), Control_R (0x69) mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd) mod2 Num_Lock (0x4d) mod3 mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf) mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
「mod4」という部分がWindowsキーというかSuperキーの割り当て状況です。ちなみにメニューキーは「Menu」、左Windowsキーは「Super_L」、右Windowsキーは「Super_R」というキーシンボルとして定義されています。
Super_Lのキー番号は0x85なので133、Super_Rのキー番号は0x86なので134です。Menuは135でした。
メニューキーを押すと「135番が押された」という信号が発生するので、「135番は134番だよ」と再定義してあげるわけです。
xmodmap -e "keysym Menu = Super_R"
このコマンドで「メニューキー」=「右Windowsキー」だよ、と再定義します。コマンドを実行した瞬間に反映されます。
確かにこれでメニューキーを押してもメニュー(マウスの右クリックで出てくるメニューのことです)が出なくなったのですが、Linux MintのCinnamonメニューは開いてくれません。
試しにWindowsキー(実際はメニューキー) + Lキーを押すと画面ロックされ、Windowsキーとしては働いているようです。
個人的には画面ロックよりもCinnamonのメニューを開く方が使用頻度が高いため、xmodmapの設定は元に戻し、Cinnamonメニューの設定で回避することにしました。
以前は「Behaior」の「Keyboard shortcut to open and close the menu」に「Super_L」と「Super_R」を指定していましたが、ひとまず「Super_R」 の替わりに「Menu」を指定しています。
この設定画面上でも「Super_R」と認識はされるので、Cinnamonのバグではないかと思っていますが、もう少し足掻いてみることにします。