Ubuntu 14.10でキー配置を変更してみた xkb編

私が使用している↓このキーボードは、

LOGICOOL ウォッシャブル キーボード K310

LOGICOOL ウォッシャブル キーボード K310

本来アプリケーションキー(メニューキー)がある場所にFNキーがあって、メニューキーをたまに使っていた私としてはそれが微妙に不便だったので、以前はxmodmapを使ってScroll Lockキーをメニューキーに変更して使用していたのだが、最近はxmodmapではなくxkbを使った方がいいらしいという話をどこかで目にしたので、ググった情報を元にxkbでキーを変更してみた。

まず設定フォルダと設定ファイルを作成。

mkdir -p ~/.xkb/keymap ~/.xkb/symbols ~/.config/autostart 
setxkbmap -print > ~/.xkb/keymap/mykbd 

テキストエディターなどで入れ替えるキーの設定ファイルを作成。

leafpad ~/.xkb/symbols/addmenukey 

上記のコマンドで起動したエディターに、

partial modifier_keys
xkb_symbols "mymenu" {
  replace key <SCLK> {[ Menu ] };
};

と記述して保存。
保存した設定を参照するようにするために、

leafpad ~/.xkb/keymap/mykbd 

と実行して最初に作成した設定ファイルをエディターで開き、赤字の部分を追加して保存。

xkb_keymap {
	xkb_keycodes  { include "evdev+aliases(qwerty)"	};
	xkb_types     { include "complete"	};
	xkb_compat    { include "complete+japan"	};
	xkb_symbols   { include "pc+jp+inet(evdev)+terminate(ctrl_alt_bksp)+addmenukey(mymenu)"	};
	xkb_geometry  { include "pc(pc105)"	};
};

ログイン時に自動的に実行されるように設定。

bash -c "echo '[Desktop Entry]'$'\n''Type=Application'$'\n''Exec=xkbcomp -I$HOME/.xkb $HOME/.xkb/keymap/mykbd $DISPLAY 2> /dev/null'$'\n''Hidden=false'$'\n''NoDisplay=false'$'\n''X-GNOME-Autostart-enabled=true'$'\n''Name=xkbcomp' > $HOME/.config/autostart/xkbcomp.desktop" 

これでログアウトしてログインし直すとScroll Lockキーがメニューキーになっている。

参考にしたページ : Happy my life | xkbでキーバインドを変更する