Xmodmapとのどか(旧窓使いの憂鬱)の設定ファイルを晒してみる
- HHKが前提だけど日本語キーボードでも一応使えると思う
- 新たな修飾キーModeSwitchを入れることで、ホームポジション周辺3列にできるだけ全てのキーを詰め込もうとしている
- SKK使いなので小指の負担を減らすために右手のShiftはホームポジションの小指の位置に。そもそもコロンやセミコロンはそれほど多用するキーではないのに何故ホームポジションにあるのか謎である。
- Lisperが特に多用する括弧はModeSwitchとの組合せでSとDの位置に割り当てる
- 数字もModeSwitchとの組合せでテンキーっぽく配列
- 左利きなのでModeSwitchを右手に割り当てて、左手を動かすようになっている
上の配列を実現するには、 ~/.Xmodmap に次のように書けばいい。
! <注意> ! modifiers のキーリピートを解除しておかないとsynergyとかでおかしなことになる. ! $ xset -r [keycode] ! で解除できる. ! ! $XFree86: xc/programs/Xserver/hw/xfree86/etc/xmodmap.std,v 3.5 1996/12/23 06:47:28 dawes Exp $ ! ! Standard key mapping for XFree86 (for US keyboards). ! ! This file can be fed to xmodmap to restore the default mapping. ! ! $XConsortium: xmodmap.std /main/7 1996/02/21 17:48:55 kaleb $ ! ! First, clear the modifiers ! clear shift clear lock clear control clear mod1 clear mod2 clear mod3 clear mod4 clear mod5 ! ! Set the mapping for each key ! keycode 8 = keycode 9 = grave asciitilde keycode 10 = 1 exclam keycode 11 = 2 at keycode 12 = 3 numbersign keycode 13 = 4 dollar keycode 14 = 5 percent keycode 15 = 6 asciicircum keycode 16 = 7 ampersand keycode 17 = 8 asterisk keycode 18 = 9 parenleft keycode 19 = 0 parenright keycode 20 = minus underscore keycode 21 = equal plus keycode 22 = BackSpace keycode 23 = Tab keycode 24 = q Q 1 keycode 25 = w W 2 keycode 26 = e E 3 keycode 27 = r R 4 keycode 28 = t T 5 keycode 29 = y Y keycode 30 = u U keycode 31 = i I semicolon colon keycode 32 = o O 0 keycode 33 = p P keycode 34 = minus underscore keycode 35 = backslash bar keycode 36 = Return keycode 37 = Control_L keycode 38 = a A question keycode 39 = s S parenleft percent bracketleft keycode 40 = d D parenright dollar bracketright keycode 41 = f F bracketleft braceleft keycode 42 = g G bracketright braceright keycode 43 = h H exclam exclam keycode 44 = j J Escape keycode 45 = k K plus asterisk keycode 46 = l L ampersand asciicircum keycode 47 = Shift_R Shift_R dollar keycode 48 = apostrophe quotedbl keycode 49 = Escape keycode 50 = Shift_L keycode 51 = backslash bar keycode 52 = z Z 6 keycode 53 = x X 7 keycode 54 = c C 8 keycode 55 = v V 9 keycode 56 = b B equal exclam keycode 57 = n N slash backslash keycode 58 = m M minus underscore keycode 59 = comma less grave asciitilde keycode 60 = period greater keycode 61 = Mode_switch keycode 62 = Alt_R keycode 63 = KP_Multiply keycode 64 = Meta_L keycode 65 = space keycode 66 = Control_L keycode 67 = F1 keycode 68 = F2 keycode 69 = F3 keycode 70 = F4 keycode 71 = F5 keycode 72 = F6 keycode 73 = F7 keycode 74 = F8 keycode 75 = F9 keycode 76 = F10 keycode 77 = Num_Lock keycode 78 = Multi_key keycode 79 = KP_Home KP_7 keycode 80 = KP_Up KP_8 keycode 81 = KP_Prior KP_9 keycode 82 = KP_Subtract keycode 83 = KP_Left KP_4 keycode 84 = NoSymbol KP_5 keycode 85 = KP_Right KP_6 keycode 86 = KP_Add keycode 87 = KP_End KP_1 keycode 88 = KP_Down KP_2 keycode 89 = KP_Next KP_3 keycode 90 = KP_Insert KP_0 keycode 91 = KP_Delete KP_Decimal !keycode 92 = X386Sys_Req keycode 93 = keycode 94 = keycode 95 = F11 keycode 96 = F12 ! keycodes 97-107 are not available on 84-key keyboards keycode 97 = Home keycode 98 = Up keycode 99 = Prior keycode 100 = Num_Lock keycode 101 = Begin keycode 102 = Alt_L keycode 103 = End keycode 104 = Down keycode 105 = Next keycode 106 = Insert keycode 107 = Delete keycode 108 = Control_R keycode 110 = Pause keycode 111 = Up keycode 112 = Prior keycode 113 = Left keycode 114 = Right ! keycodes 115-117 are only available on some extended keyboards ! (e.g., Microsoft's ergonomic keyboard). keycode 115 = Meta_L keycode 116 = Down keycode 117 = Next keycode 120 = Control_R keycode 129 = Meta_R keycode 131 = Alt_L keycode 208 = Control_R ! ! Set the modifiers add shift = Shift_L Shift_R add lock = Caps_Lock add control = Control_L Control_R add mod1 = Alt_L Alt_R ! If you have ServerNumlock set in your XF86Config, you can comment out !add mod2 = Numlock ! ! ! ! If you use any of the special default key mappings in Xconfig, they should be ! duplicated in this file. Mappings should be added before the section above ! which sets the modifiers. ! ! For the key specs: ! LeftAlt => keycode 64 ! RightAlt => keycode 113 ! AltGr => keycode 113 ! ScrollLock => keycode 78 ! RightCtl => keycode 109 ! ! For the mappings: ! Meta => Alt_L Meta_L ! Alt_R Meta_R ! Compose => Multi_key ! ModeShift => Mode_switch ! ModeLock => Mode_switch X386Mode_Lock ! ScrollLock => Scroll_Lock ! Control => Control_R ! ! If you use ModeShift or ModeLock, the following modifier must be set: ! add mod4 = Meta_L Meta_R add mod5 = Mode_switch ! ! For example, to get the equivalent of: ! ! ScrollLock ModeLock ! RightAlt ModeShift ! LeftAlt Meta ! RightCtl Compose ! ! use the following: ! !keycode 78 = Mode_switch X386Mode_Lock !keycode 113 = Mode_switch !keycode 64 = Alt_L Meta_L !keycode 109 = Multi_key ! !add mod5 = Mode_Switch ! When using ServerNumLock in your XF86Config, the following codes/symbols ! are available in place of 79-81, 83-85, 87-91 !keycode 136 = KP_7 !keycode 137 = KP_8 !keycode 138 = KP_9 !keycode 139 = KP_4 !keycode 140 = KP_5 !keycode 141 = KP_6 !keycode 142 = KP_1 keycode 143 = Meta_L !keycode 144 = KP_3 !keycode 145 = KP_0 !keycode 146 = KP_Decimal !keycode 147 = Home !keycode 148 = Up !keycode 149 = Prior !keycode 150 = Left !keycode 151 = Begin !keycode 152 = Right !keycode 153 = End !keycode 154 = Down !keycode 155 = Next !keycode 156 = Insert !keycode 157 = Delete !マウスの左と右を入れ替える !pointer = 3 2 1 5 6 7 8 4 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ! for Expert Mouse 7.0 pointer = 3 2 1 5 4 6 7 8 9 10 11 12
のどか(旧窓使いの憂鬱)の場合
Windowsの場合はのどか(旧窓使いの憂鬱)によって同じ配列を実現できる。
104配列を指定した上で、以下の内容のファイルを読み込む
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Nodoka - dotjp.nodoka # Copyright (C) 1999-2005, TAGA Nayuta <nayuta@users.sourceforge.net> # # Modify by applet on 2010-03-29 # まずキーボード定義を読み込む。 if ( USE104 ) include "104.nodoka" # 104 キーボード設定 if ( USE109on104 ) include "109on104.nodoka" # 104 キーボードを 109 キーボード風に endif else include "109.nodoka" # 109 キーボード設定 if ( USE104on109 ) include "104on109.nodoka" # 109 キーボードを 104 キーボード風に endif endif if ( USEdefault ) include "default2.nodoka" # Emacs ライクなさまざまな設定 endif # Global keymap 設定 keymap Global # 以下は、便宜上、設定するもの key C-A-D = &DescribeBindings # 現在のキーマップのログ出力 key F1 = &SendPostMessage("PostTray",,"のどか", 0x0205, 0, 0) # のどかのメニューを開く # シフト+F2: 日本語キーボード、英語キーボード 切り替えトグル if ( USE109 ) if ( USE104on109 ) key S-F2 => &IconColor(0) &HelpMessage("Reloaded", "日本語 109 キーボード") &LoadSetting("日本語 109 キーボード") else key S-F2 => &IconColor(2) &HelpMessage("Reloaded", "日本語 109 キーボード (104 風)") &LoadSetting("日本語 109 キーボード (104 風)") endif endif if ( USE104 ) if ( USE109on104 ) key S-F2 => &IconColor(0) &HelpMessage("Reloaded", "英語 104 キーボード") &LoadSetting("英語 104 キーボード") else key S-F2 => &IconColor(2) &HelpMessage("Reloaded", "英語 104 キーボード (109 風)") &LoadSetting("英語 104 キーボード (109 風)") endif endif # 以下に、ご自身の設定を御書き下さい。 #HHK固有設定 def key LeftDiamond = 0x7b def key RightDiamond = 0x79 keymap Global #以降の設定をIMEの未確定入力時にも適用 key *IC- = #Slashをモディファイヤキーとする入力 mod mod0 = !Slash key M0-A = S-Slash # ? key M0-S = S-_9 # ( key M0-D = S-_0 # ) key M0-B = Equal # = key M0-F = LeftSquareBracket #[ key M0-S-F = S-LeftSquareBracket #{ key M0-G = RightSquareBracket #] key M0-S-G = S-RightSquareBracket #} key M0-N = Slash #/ key M0-S-N = BackSlash #\ key M0-Comma = GraveAccent #` key M0-S-Comma = S-GraveAccent #~ key M0-Q = _1 # 1 key M0-W = _2 # 2 key M0-E = _3 # 3 key M0-R = _4 # 4 key M0-T = _5 # 5 key M0-Z = _6 # 6 key M0-X = _7 # 7 key M0-C = _8 # 8 key M0-V = _9 # 9 key M0-O = _0 # 0 key M0-L = S-_7 # & key M0-S-L = S-_6 # ^ key M0-K = S-Equal # + key M0-S-K = S-_8 # * key M0-M = Minus # - key M0-S-M = S-Minus # _ key M0-N = Slash # / key M0-S-N = BackSlash # \ key M0-I = Semicolon # ; key M0-S-I = S-Semicolon # : key M0-J = BS key M0-S-B = S-_1 key LeftSquareBracket = Minus key S-LeftSquareBracket = S-Minus key RightSquareBracket = BackSlash key S-RightSquareBracket = S-BackSlash # EscapeとGraveAccentの交換 key Esc = GraveAccent key GraveAccent = Esc mod shift += !Semicolon mod alt -= !RightAlt mod control += !RightAlt