私はマップしようとしています:
Super+h -> Left
Super+j -> Down
Super+k -> Up
Super+l -> Right
グローバルにXの下にあります。矢印キーを使用することが多いホーム行を離れたくないので、スーパー修飾子+ hjklを使用してXの下の矢印キーをエミュレートします。これを行う方法はありますか?
私が試したことの1つは、この構成を使用したxbindkeys + xteです。
"xte 'keydown Up' 'keyup Up'"
Mod4+k
"xte 'keydown Down' 'keyup Down'"
Mod4+j
"xte 'keydown Left' 'keyup Left'"
Mod4+h
"xte 'keydown Right' 'keyup Right'"
Mod4+l
しかし、私がキーを押してから結果に気付くまでには大きな遅れがあるようで、ほとんどの場合、何も起こりません。
実際に遅延なく機能するよりエレガントな方法はありますか?
〜/ .Xmodmapを作成し、これを内部に配置します。
clear Lock
keycode 66 = ISO_Level3_Shift
/usr/share/X11/xkb/symbols/us
のh、j、k、lキーエントリに3番目の項目としてLeft
、Down
、Up
、Right
を追加します(最初のセクション):
key { [ h, H, Left, Left ] };
key { [ j, J, Down, Down ] };
key { [ k, K, Up, Up ] };
key { [ l, L, Right, Right ] };
xmodmap ~/.Xmodmap
を実行します
これが私の現在の設定です。 Control_Lをコントロールキーとしてマッピング解除し、それを特別な修飾子(ISO_Level3_Shift)として使用します。これは、hjklマッピングの/usr/share/X11/xkb/symbols/us
ファイルの3番目のエントリに対応します。
以前のように/ usr/share/X11/xkb/symbol/usの最初のスタンザを変更しました。
key { [ h, H, Left, Left ] };
key { [ j, J, Down, Down ] };
key { [ k, K, Up, Up ] };
key { [ l, L, Right, Right ] };
次に、これを〜/ .Xmodmapファイルに入れます。
clear Control
keycode 66 = Control_L
add Control = Control_L
add Control = Control_R
keycode 37 = ISO_Level3_Shift
keycode 66
はcapslockで、keycode 37
は左コントロールです
この設定では、Control_L + hjklで矢印キーを使用したり、Control_L + caps + hlで単語をスキップしたりできます。かんたん!
/ usr/share/X11/xkb/symbols/usの上記の変更は、私には機能しません:
新しいキーボードの説明の読み込み中にエラーが発生しました
しかし、矛盾する多くのハウツーを調べた後、hjklと組み合わせて左のスーパーキー(左のウィンドウキー/ Mod4)を左、下、上、右にマッピングするソリューションを思いつきました。これはシステム全体の設定です。
このブロックを/ usr/share/X11/xkb/symbol/usの最初のセクションの最後(};
の直前)に追加します。
//hjkl
//AltGr + hjkl
key <AC06> { [ h, H, Left ] };
key <AC07> { [ j, J, Down ] };
key <AC08> { [ k, K, Up ] };
key <AC09> { [ l, L, Right ] };
//Super_L -> Alt Gr
key <LWIN> { [ ISO_Level3_Shift ] }; //see below!
最初のキーラインはAltGr + hを左にマップします。
最後のキー行により、左のスーパーキーがAltGrのように動作します。
どうぞ:
スーパー+ h->左
スーパー+ j->ダウン
スーパー+ k->アップ
スーパー+ l->右
新しい設定を適用するには、setxkbmapを実行するか、システムを再起動します。
重要:これは明らかにスーパーキーを無効にするため、実際にスーパーキーを他の目的(つまり、ウィンドウを別のワークスペースに移動する)に使用している場合は、このように再マップしないでください。
Superの代わりにCaps Lockを使用するには、最後のキー行を次のように変更します:
key <CAPS> { [ ISO_Level3_Shift ] };
これが私の設定ファイルの完全な最初のセクションです:
default
partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
name[Group1]= "English (US)";
// Alphanumeric section
key <TLDE> { [ Grave, asciitilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at ] };
key <AE03> { [ 3, numbersign ] };
key <AE04> { [ 4, dollar ] };
key <AE05> { [ 5, percent ] };
key <AE06> { [ 6, asciicircum ] };
key <AE07> { [ 7, ampersand ] };
key <AE08> { [ 8, asterisk ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };
key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
key <AD03> { [ e, E ] };
key <AD04> { [ r, R ] };
key <AD05> { [ t, T ] };
key <AD06> { [ y, Y ] };
key <AD07> { [ u, U ] };
key <AD08> { [ i, I ] };
key <AD09> { [ o, O ] };
key <AD10> { [ p, P ] };
key <AD11> { [ bracketleft, braceleft ] };
key <AD12> { [ bracketright, braceright ] };
key <AC01> { [ a, A ] };
key <AC02> { [ s, S ] };
key <AC03> { [ d, D ] };
key <AC04> { [ f, F ] };
key <AC05> { [ g, G ] };
key <AC06> { [ h, H ] };
key <AC07> { [ j, J ] };
key <AC08> { [ k, K ] };
key <AC09> { [ l, L ] };
key <AC10> { [ semicolon, colon ] };
key <AC11> { [ apostrophe, quotedbl ] };
key <AB01> { [ z, Z ] };
key <AB02> { [ x, X ] };
key <AB03> { [ c, C ] };
key <AB04> { [ v, V ] };
key <AB05> { [ b, B ] };
key <AB06> { [ n, N ] };
key <AB07> { [ m, M ] };
key <AB08> { [ comma, less ] };
key <AB09> { [ period, greater ] };
key <AB10> { [ slash, question ] };
key <BKSL> { [ backslash, bar ] };
// End alphanumeric section
//hjkl
//AltGr + hjkl
key <AC06> { [ h, H, Left ] };
key <AC07> { [ j, J, Down ] };
key <AC08> { [ k, K, Up ] };
key <AC09> { [ l, L, Right ] };
//Super_L -> Alt Gr
key <LWIN> { [ ISO_Level3_Shift ] };
};
これが誰かの役に立つことを願っています...
誰かがより良い解決策を持っている場合は、私に知らせてください。
編集:Fedoraでテスト済み。
Sudoは不要、 here から派生、と組み合わせた場合にも機能するように変更 Alt。
次のコンテンツでfile
wを作成します。
! remove Caps Lock
clear lock
! remove Lock = Caps_Lock
! remove Shift = Caps_Lock
keycode 66 = NoSymbol NoSymbol
keycode 66 = ISO_Level3_Shift
keysym h = h H NoSymbol NoSymbol Left Left
keysym j = j J NoSymbol NoSymbol Down Down
keysym k = k K NoSymbol NoSymbol Up Up
keysym l = l L NoSymbol NoSymbol Right Right
! some sugar
keysym o = o O NoSymbol NoSymbol BackSpace NoSymbol
keysym i = i I NoSymbol NoSymbol Delete NoSymbol`
呼び出す
xmodmap file
マップします AltGr に Caps の代わりに Super、あなたはむしろ設定するかもしれません
keycode 66 = Super_L
(またはwatever xev
は打撃であなたを与えます Super)
砂糖の部分は、iとoへの特別な割り当てとしてバックスペースとDelを与えます。それを省略するか、自分で拡張/調整するためのボーナスまたは動機として見ることができます;)
PS:試してみる場合は、呼び出して「デフォルト」のマッピングをリセットしてください
setxkbmap
私はこれを自分で試したことがありませんが、xkbがあなたが望むことをするかもしれないようです http://en.wikipedia.org/wiki/X_keyboard_extension 。
有望に聞こえるx11-xkb-utilsというパッケージをUbuntuに持っています:)
ようやく、すべての修飾子(Ctrl +、Shift +、Ctrl + Shift +)とSublime Text 2で機能するソリューションを見つけたようです。
すべての栄光は、私が最近見つけたこのgem構成に行きます http://www.spinics.net/lists/xorg/msg35931.html 。 ijklの矢印について説明していますが、hjklナビゲーション用に簡単に変更できます。キーボードレイアウトファイルを更新する必要があります/ usr/share/X11/xkb/symbols/*(個人的には、Xkbを使用してキーボードレイアウトに含める/ usr/share/X11/xkb/symbols/typoを使用しますオプション "misc:typo"なので、どのキーボードレイアウトでも機能します)。構成は、修飾キーがISO_Level3_Shiftを送信することを前提としています(SuperまたはAltをISO_Level3_Shiftにバインドする方法はたくさんあります)。
キー定義は次のようになります(../symbols/typoを変更する場合はNoSymbolを使用してください):
key <AC07> {
type="MOD5_NAV",
[NoSymbol, NoSymbol, Down, Down],
actions[Group1] = [NoAction(), NoAction(), RedirectKey(key=<DOWN>, clearmods=ISO_Level3_Shift)]
};
また、/ usr/share/X11/types/basicを編集して、タイプ「MOD5_NAV」を宣言する必要があります。
type "MOD5_NAV" {
modifiers = Shift+Mod5;
map[None] = level1;
map[Shift] = level2;
map[Mod5] = level3;
map[Mod5+Shift] = level3;
level_name[Level1] = "Base";
level_name[Level2] = "Caps";
level_name[Level3] = "Arrows";
};
Sublime Text 2に関しては、解決策はよりトリッキーでハック的です。上記のように、Sublime Text 2はデバイスから直接キーコードを読み取るため、Xkbの一部の機能を無視します(矢印を使用したxkbトリックは効果がありません)。ほぼ放棄されたがまだ機能しているプロジェクト、Gizmo Daemon http://gizmod.sourceforge.net/ があります。苦労してグーグルした後、DebianWheezyで正常にコンパイルしました。次に、このgizmodスクリプトを作成し、〜/ .gizmod/modules.d/010-KeyboardViMode-SublimeText2.py http://Pastebin.com/HNQgGEwD に配置しました。
P.S. Linuxでは、時々KeyboardRemap4MacBookを見逃します。 OS Xソフトウェアのこの大きな平和は、ほんの少しのチェックボックスでそのようなナビゲーション(そして他の多くのもの)を可能にすることができます。
私はDebian/UbuntuのHHKBユーザーであり、このソリューションは私のために機能します。
使用する Left Ctrl アクティブキーに。
$ vi ~/.Xmodmap
keycode 37 = ISO_Level3_Shift
このコードを/ usr/share/X11/xkb/symbol/usのbasicブロックの// End alphanumeric section
の下に追加します
//hjkl
//Ctrl + hjkl
key <AC06> { [ h, H, Left ] };
key <AC07> { [ j, J, Down ] };
key <AC08> { [ k, K, Up ] };
key <AC09> { [ l, L, Right ] };
これで、左、下、上、右のキーを使用できるようになります。 Ctrl + h、 j、 k、 l。
ちなみに、Firefoxでpentadactylを使用したことがある場合は、このコードを〜/ .pentadactylrcに追加できます。
map -modes=i,c <C-down> <down>
map -modes=i,c <C-up> <up>
私は autokey を見つけ、マッピングに適しています。
リンク キーバインディング-ラップトップでキーパッドをエミュレート-Ubuntuに質問 が役立つかもしれないと思います。
これはArchで私のために働きます。 Caps + hjklを矢印キーに、またShift + CapsをCapsに再マッピングします。
以下を~/.Xmodmap
に入れます。
! Remap caps lock to special modifier, but still allow shift+caps to
toggle caps lock
clear lock
clear mod5
add lock = Mode_switch
keycode 66 = Mode_switch Caps_Lock NoSymbol NoSymbol
keycode 43 = h H Left Left
keycode 44 = j J Down Down
keycode 45 = k K Up Up
keycode 46 = l L Right Right
再起動するか、xmodmap ~/.Xmodmap
で設定します
次のようなエラーが発生した場合:
X Error of failed request: BadValue (integer parameter out of range for operation)
おそらく、mod5
(現在Mode_switch
に設定されているもの)以外のものをクリアする必要があることを意味します。 xmodmap
を使用して現在の修飾子のマッピングを確認してください。