私はCとPythonを学習中の初心者ですが,キーボードには無駄にこだわります.
##環境:
OS:Ubuntu Gnome 16.04 LTS
Keyboard: FILCO Majestouch2S
JIS Dvorak
Custom keyboard layout for JIS keyboards based on the Dvorak
Ubuntu Gnome 16.04上で作成した,JIS配列キーボード用の設定ファイルです.
xkb/geometry
ファイルについては,下記を参照してください.
AltGr(Level3_Shiftキー)とMetaキーを使ってひとつのキーに最大で6種類の機能を割り当てられるこのレイアウトは,ホームポジションと上下2段の30個のキーを使ってアルファベット, 数字, 記号, カーソルキー, Home, End, PageUp, PageDown, Ctrl+Z, X, C, V へのリダイレクトを入力できます.
左手親指に割り当てられたShiftキーは, "どちらの手の小指でShiftを押すかを判断し,届く指で入力したいキーを押す" という一連の動作を簡略化し,より素早く大文字を入力できます.
xkb/keycodes/evdev
は,ScrollLockとNumLockのインジケータの位置を入れ替え,テンキーの無い91キーボードでNumLockを使用しやすくします.キーボードのScrollLock用のLEDがNumLockと連動して光ります.
この設定ファイルはxkb/symbols/pc
(日本語,英語のどのレイアウトを選択していても読み込まれる修飾キーなどの配置を決めるファイル)とデフォルトのDvorak配列を上書きします.
このレイアウトを有効にするには,/usr/share/X11/xkb/
以下にファイルを上書きもしくは追加し,再ログインします.
AltGr / NumLock+Shift / NumLock+AltGr
AltGr+Shift / NumLock / NumLock+AltGr+Shift
Meta
Japanese Dvorak
カスタマイズ
xkb/symbols/us(dvorak)の設定は下記のような構造になっています.
key <AD08> {
symbols[Group1]=
// Level1 Level2 Level3 Level4 Level5
// Base Shift AltGr - AltGr+Shift
[ c, C, braceleft, Up, braceleft ],
actions[Group1]=
[ NoAction(), NoAction(), NoAction(), NoAction(), NoAction(),
RedirectKey(key=<UP>, clearmods=Lock+Mod3), // Level6 Meta
RedirectKey(key=<UP>, clearmods=Lock+Mod3) ] // Level7 Meta+Shift
};
Level4はkeyboard layout chartを見やすくするために用意した実際には使われないシンボルです.
MetaキーにはMod3を割り当ててあります.
xkb/symbols/us内のbasicセクション(QWERTY配列)やデフォルトのDvorak配列のシンボルを参考にし,お使いの言語に合わせてLevel3~Level7のシンボルもしくはアクションを編集してください. カーソルキー,修飾キー付きの動作,および数字キーの入力は,RedirectKeyを使ったほうがちゃんと動きます.