環境
- ホストOS
- Ubuntu 14.04
- ゲストOS
- Windows 7
- VM PF
- Virtualbox
要件
- Windows側
- CapsLockを使いたくない
- HHK モードが理想
- DIP SW 1: OFF, 2:OFF としたい
- Windowsキーを使いたい
- DeleteよりもBackSpaceを使う
- 左手でもFnキーが欲しい
- AltキーはSpaceの両隣
- Wakeupは無効
- Linux側
- 右Alt(◇と入れ替えたキー,以降は「新右◇」と表記)をxmonadのショートカットキーの起点にしたい
- Lite 拡張モードの場合,新右◇はSuper_Rなので,mod4あたりを設定に使えば良かった.HHKモードの場合,新右◇はHenkan_Modeであり,modキーに割り当てられていない.
課題
- HHKモードでWindowsキーを使いたい
- HHKモードで新右◇をSuper_Rの代用にしたい
対策
- キーマップの変更 in Windows
-
HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout
へ Scancode Map を設定する.
他に設定がない場合,
0x00000000
0x00000000
0x02000000
0x5ce07900
0x00000000
とする.
ちなみに,0x79=変換キー,0xe05c=右Windowsキー
- xmodmap in Linux
-
xmodmapを設定した上で,xmodmapでロード.
add Mod4 = Henkcan
xmodmap ~/.Xmodmap
補足
両方設定していても,VM上で正しくWindowsキーとして動作する.
追記(2017/1/24)
remminaで接続した先のWindowsに対して,上の設定ではWindowsキーとしての動作をさせられなかったので別の手段を適用してみた.
この場合,上で行なった設定は不要になるので注意.
この辺を参照のこと.
xkbでキーバインドを変更する – Happy My Life
Ubuntu 15.04: キーボードのカスタマイズ設定 - 児童小銃
要点としては,キーが何になっているのかは xev で確認.
henkan_mode はsetxkbmap上は<HENK>.
- キーマップの出力
-
$ setxkbmap -print > ~/.xkb/keymap/mykbd
- キーの置き換え設定の記述
-
partial modifier_keys
xkb_symbols "HenkSuper" {
replace key <HENK> {[ Super_L ]};
};
- キーマップの修正
- ~/.xkb/keymap/mykbd の xkb_symbolsの項目のの最後に”+kbd_swap(HenkSuper)”を追加する
- キーマップの適用
-
以下を,X起動時のどこかでやれば良い.
xkbcomp -I${HOME}/.xkb ${HOME}/.xkb/keymap/mykbd $DISPLAY
私の場合,xmonadを使っているので,xmonad.hsのstartupHookで
spawn "xkbcomp -I${HOME}/.xkb ${HOME}/.xkb/keymap/mykbd $DISPLAY; xmodmap ~/.Xmodmap
としてみた.
後ろにxmodmapをつけているのは,xkbcompの実行後にxmodmapがデフォルトに戻ってしまって,xmonadのmodキーの設定が外れてしまうため.
結果
ダメだった.
remminaには,相変わらず何も送信できてないっぽい.
他にremminaの設定でRDPのキーボードレイアウトのタブのuse client keyboard mappingをオン/オフ変えてもダメ.
Super_LとSuper_Rと変えてもダメ.
あんまし意味なかった.
追記(2017/2/24)
rdesktopなら,xkb の方の設定でスタートメニューを開くことができた.
.Xmodmapの方は試してないので不明.
rdesktop -g 2560x1440 -a 32 -z -u $(id -un) -p $(cat /path/to/passwordfile) HOSTADDR