コマンドキーとコントロールキーを入れ替えたAppleの長いアルミニウムキーボードを使用したい。これは、Trusty Tahr(14.04)を使用して段階的にどのように行われますか?CmdCtrlxkb
注:この解決策は、13.04またはそれ以前にxkb置き換えられただけxmodmapでは機能しません。
コマンドキーとコントロールキーを入れ替えたAppleの長いアルミニウムキーボードを使用したい。これは、Trusty Tahr(14.04)を使用して段階的にどのように行われますか?CmdCtrlxkb
注:この解決策は、13.04またはそれ以前にxkb置き換えられただけxmodmapでは機能しません。
回答:
この答えは、主にここで与えられた答えに基づいています。私がこの質問にもう一度答える理由は、完全に説明されていない最後のステップです。さらに読書のためにxkb見て、ここで、ここでは、とここに。
で呼び出され、次のマッピングを含むファイルを作成します/usr/share/X11/xkb/symbols(の場合もあります/etc/X11/xkb/symbols)altwin2。
// Control is SWAPPED with Win-keys 
partial modifier_keys
xkb_symbols "cmd_n_ctrl" {
    key <LWIN> {        [       Control_L               ]       };
    key <RWIN> {        [       Control_R               ]       };
    key <LCTL> {       [       Super_L         ]       };
    modifier_map Control { <LWIN>, <RWIN> };
    modifier_map Mod4 { <LCTL> };
};
のoption = symbolsセクションの下に次の行を挿入します/usr/share/X11/xkb/rules/evdev(最初の行の警告は無視してください)。
altwin2:cmd_n_ctrl               =       +altwin2(cmd_n_ctrl)
/usr/share/X11/xkb/rules/evdev.lstセクションの下に新しいオプションを追加しますoption。
altwin2:cmd_n_ctrl    Win swapped with Ctrl
キーボード構成ファイルの場所がわからない場合は、dconf-editorを使用して編集できます。以下に示すよう"altwin2:cmd_n_ctrl"にxkb-options、org :: gnome :: desktop :: input-sourcesの下に追加します。構成ファイルの場所がわかっている場合は、XkbOptions以下に示すように、フィールドに新しいオプションを含める必要があります。
Section "InputClass"
        Identifier "keyboard-layout"
        Driver "evdev"
        MatchIsKeyboard "yes"
        Option "XkbLayout" "us, ru, ca, fr"
        Option "XkbOptions" "altwin2:cmd_n_ctrl"
EndSection
再起動または再起動lightdmして、変更を更新します。
sudo restart lightdm
注:オプションを使用せずにレイアウトファイルを直接変更した場合/var/lib/xkb/は、ここに示すように、キャッシュファイルを削除する必要があります。
!option    =    symbolsセクションではなく、セクションである必要があります(セクションoptions = symbolsを見つけるために "options ="を検索するのに費やした時間)。
                    16.04では、これが最終的に機能する方法です。Xmodmapはすべてのアプリで普遍的に機能するわけではなく、gnome tweakツールに機能がなく、dconfによるカスタムaltwin2キースワップの編集(ここでの主な回答のように)に失敗したため、いくつかの回答をこの完全でシンプルなものにまとめるまで髪を切り裂きました、エレガントなソリューション:
gksudo gedit /usr/share/X11/xkb/symbols/pc
それを次のように変更します。
default  partial alphanumeric_keys modifier_keys
xkb_symbols "pc105" {
key <ESC>  {    [ Escape        ]   };
// The extra key on many European keyboards:
key <LSGT> {    [ less, greater, bar, brokenbar ] };
// The following keys are common to all layouts.
key <BKSL> {    [ backslash,    bar ]   };
key <SPCE> {    [    space      ]   };
include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(x11)"
key <BKSP> {    [ BackSpace, BackSpace  ]   };
key  <TAB> {    [ Tab,  ISO_Left_Tab    ]   };
key <RTRN> {    [ Return        ]   };
key <CAPS> {    [ Caps_Lock     ]   };
key <NMLK> {    [ Num_Lock      ]   };
key <LFSH> {    [ Shift_L       ]   };
key <LCTL> {    [ Alt_L     ]   };
key <LWIN> {    [ Super_L       ]   };
key <RTSH> {    [ Shift_R       ]   };
key <RCTL> {    [ Alt_R     ]   };
key <RWIN> {    [ Super_R       ]   };
key <MENU> {    [ Menu          ]   };
// Beginning of modifier mappings.
modifier_map Shift  { Shift_L, Shift_R };
modifier_map Lock   { Caps_Lock };
modifier_map Control{ Control_L, Control_R };
modifier_map Mod2   { Num_Lock };
modifier_map Mod4   { Super_L, Super_R };
// Fake keys for virtual<->real modifiers mapping:
key <LVL3> {    [ ISO_Level3_Shift  ]   };
key <MDSW> {    [ Mode_switch       ]   };
modifier_map Mod5   { <LVL3>, <MDSW> };
key <ALT>  {    [ NoSymbol, Control_L, Control_R    ]   };
//include "altwin(meta_alt)"
key <LALT> {    [ Control_L     ]   };
key <RALT> {    [ Control_R     ]   };
modifier_map Mod1   { Alt_L, Alt_R, Meta_L, Meta_R };
key <META> {    [ NoSymbol, Meta_L, Meta_R  ]   };
modifier_map Mod1   { <META> };
key <SUPR> {    [ NoSymbol, Super_L ]   };
modifier_map Mod4   { <SUPR> };
key <HYPR> {    [ NoSymbol, Hyper_L ]   };
modifier_map Mod4   { <HYPR> };
// End of modifier mappings.
key <OUTP> { [ XF86Display ] };
key <KITG> { [ XF86KbdLightOnOff ] };
key <KIDN> { [ XF86KbdBrightnessDown ] };
key <KIUP> { [ XF86KbdBrightnessUp ] };
};
hidden partial alphanumeric_keys
xkb_symbols "editing" {
key <PRSC> {
type= "PC_ALT_LEVEL2",
symbols[Group1]= [ Print, Sys_Req ]
};
key <SCLK> {    [  Scroll_Lock      ]   };
key <PAUS> {
type= "PC_CONTROL_LEVEL2",
symbols[Group1]= [ Pause, Break ]
};
key  <INS> {    [  Insert       ]   };
key <HOME> {    [  Home         ]   };
key <PGUP> {    [  Prior        ]   };
key <DELE> {    [  Delete       ]   };
key  <END> {    [  End          ]   };
key <PGDN> {    [  Next         ]   };
key   <UP> {    [  Up           ]   };
key <LEFT> {    [  Left         ]   };
key <DOWN> {    [  Down         ]   };
key <RGHT> {    [  Right        ]   };
};
セーブ。
rm -rf /var/lib/xkb/*
(これが必要かどうかはわかりませんが、必要です)。
リブート。