キーバインディングマッピング

キーバインディングマッピング

背景:昨日Acer Chromebookを購入してUbuntuを実行しています(私はLinuxに初めてアクセスしました)。 ChromeOS(Linuxの実行時に機能しない)に代替キーバインディングがあるため、キーボードには専用とHomeボタンはありません。End

私の質問:キーの組み合わせで両方のキーを復元できるように、Linuxの特定のキーバインディングをキー操作Homeに割り当てる方法はありますか?End

答え1

存在するxkeyboard-config-1.7-nav-keys.patch過去にXKBを使用してどのように実行されたかを説明します。 Chrome OSの最新バージョン今灰を使う

~/.xkb/keymap~/.xkb/typesおよびというディレクトリを作成します~/.xkb/symbols~/.xkb/types/chromebook次の定義を含むファイルを作成します。

xkb_types "chromebook" {
    virtual_modifiers Alt;
    type "ARROW" {
        modifiers              = Shift+Lock+Alt+Control;
        map[Shift]             = Level2;
        map[Lock]              = Level2;
        map[Alt]               = Level3;
        map[Alt+Shift]         = Level3;
        map[Alt+Lock]          = Level3;
        map[Control+Alt]       = Level4;
        map[Control+Alt+Shift] = Level4;
        map[Control+Alt+Lock]  = Level4;
        level_name[Level1]     = "Base";
        level_name[Level2]     = "Caps";
        level_name[Level3]     = "Alt";
        level_name[Level4]     = "ControlAlt";
    };
}

~/.xkb/symbols/chromebook次の定義を含むファイルを作成します。

xkb_symbols "chromebook" {
    key <UP> {
        type="ARROW",
        repeat=yes,
        [ Up, Up, Prior, Home ],
        actions[Group1] = [
            NoAction(),
            NoAction(),
            RedirectKey(key=<PGUP>, clearmods=Alt),
            RedirectKey(key=<HOME>, clearmods=Control+Alt)
        ]
    };
    key <DOWN> {
        type="ARROW",
        repeat=yes,
        [ Down, Down, Next, End ],
        actions[Group1] = [
            NoAction(),
            NoAction(),
            RedirectKey(key=<PGDN>, clearmods=Alt),
            RedirectKey(key=<END>, clearmods=Control+Alt)
        ]
    };
};

コマンドを実行してくださいsetxkbmap -print >~/.xkb/keymap/chromebook。生成されたファイルを編集して+chromebookディレクティブにおよびを追加したら、ファイルは次のようになります。includexkb_typesxkb_symbols

xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete+chromebook"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+us+inet(evdev)+chromebook"     };
        xkb_geometry  { include "pc(pc105)"     };
};

次のコマンドを追加します。申請開始:

xkbcomp -I ~/.xkb -R ~/.xkb keymap/chromebook $DISPLAY

注:これはテストされておらず、XKBについてよく知らず、文書も正しく書かれていません。追いかけようとするVincent LefèvreのXKBのヒント

関連情報