Caps LockをvimのようにAltGrおよびArrowsとして構成する


9

1.グローバルにマッピングCaps LockするにはどうすればよいAltGrですか?

CapsLockは必要なく、代わりにAltGrキーに簡単にアクセスしたい

2.すべての移動キーをのvimような位置にマッピングしたい

  • AltGr+ F=Backspace
  • AltGr+ H=LeftArr
  • AltGr+ J=DownArr
  • AltGr+ L=RightArr
  • AltGr+ K=UpArr
  • AltGr+ U=PgUp
  • AltGr+ D=PgDown
  • AltGr+ S=Enter
  • AltGr+ 3=Pos1
  • AltGr+ $=End
  • AltGr+ X=Del

そのため、10指の位置から手を離さずにコードを簡単にウォークできます(vimエディターの場合と同様)。

私はこの答えを見つけました:Caps Lockキーをバックスペースキーに再マッピングするにはどうすればよいですか?
使用を提案

xmodmap -e "keycode [code] = [new key]"

参照:http : //wiki.linuxquestions.org/wiki/List_of_Keysyms_Recognised_by_Xmodmap

しかし、これをたとえばAltGr + Jの組み合わせに追加する方法はわかりません

別のスタートは、「代替文字キー」をunity-control-center-> Keyboard-> Shortcuts-> Typing asに設定​​することです。Caps Lock

更新:いくつかの解決策を見つけました(下記を参照)が、すべてのアプリケーションで機能しない場合があります。一部のアプリで使用されているのは、「XFree 4」と呼ばれるグローバル設定だと思います。

XFree 4のキー割り当てもどうやって設定しますか?


私はAltGrキーを持っていませんが、この同様の質問がいくつかの手掛かりを提供することに気付くかもしれません。
オタク長老2017

回答:


4

1.新しいXKB部分ファイルを追加します

sudo vi /usr/share/X11/xkb/symbols/altgr_vim

このコンテンツ:

partial keypad_keys
xkb_symbols "altgr-vim" {
  # replace Caps with AltGr
  key <CAPS> { [ ISO_Level3_Shift            ] };
  # Add vim cursor keys to be accessed with AltGr
  key <AB02> { [ x, X, Delete, Delete        ] };
  key <AC02> { [ s, S, KP_Enter, KP_Enter    ] };
  key <AC03> { [ d, D, Next, Next            ] };
  key <AC04> { [ f, F, BackSpace, BackSpace  ] };
  key <AC06> { [ h, H , Left, Left           ] };
  key <AC07> { [ j, J, Down, Down            ] };
  key <AC08> { [ k, K, Up, Up                ] };
  key <AC09> { [ l, L, Right, Right          ] };
  key <AD07> { [ u, U, Prior, Prior          ] };
  key <AE03> { [ 3, section, Home, Home      ] };
  key <AE04> { [ 4, dollar, End, End         ] };
};

2.言語ファイルに部分テンプレートを含めます

たとえば、ドイツ語の場合は/usr/share/X11/xkb/symbols/de/de言語はどこですか)、これを最初のブロック(xkb_symbols "basic")内に追加します。

include "altgr_vim(altgr-vim)"

注:この部分は、ディストリビューションを更新するたびに繰り返す必要があります。

3.ウィンドウセッションをリロードします

Alt + F2キーを押し、「r」と入力してgnomeセッションを再読み込みするか、ログアウトして再度ログインします。これで、新しい主要な楽曲が利用可能になります

いくつかの問題

一部のアプリケーションは設定を受け入れません。たとえば、sublimeこれはに置き換えることができますatom

一部のアプリケーションでは追加の設定が必要です。たとえばyakuake、キーバインディングが「XFree 4」に設定されている場合、「Linux」または「Solaris」に設定すると、XKB設定もそこで機能します。


1
表示されるように定義lv3:caps_switchを変更する代わりに、XKBオプションを使用することを強くお勧めし<CAPS>ます。/usr/share/X11/xkb/symbols/level3(そのオプションが定義されている場所)を参照してください。
quixotic 2017

@quixotic:必要となる構成で新しい回答を追加できますか?賞金のためにここで良い完全な答えが必要かもしれません;)
rubo77

これは私にとっては完璧に機能しました。ただし、前向きに考えれば、shift + 3の「section」を「numbersign」に変更したいと思うかもしれません
mowwwalker '27

0

取得するためにAltGr+ hjklなど任意のアプリケーションなしで他のキーのAutokey peformするあなたのキーボードレイアウトをカスタマイズすることができますがでた/は、/ usr / share / X11 / XKB /記号を。現時点では、ドイツ語のレイアウト「de」を使用しています。だからまず第一に私は:

1-標準レイアウトをコピーする

cp /usr/share/X11/xkb/symbols/de /usr/share/X11/xkb/symbols/de.bak

2-お好みのテキストエディター(ここではgedit)でレイアウトを開きます

sudo gedit /usr/share/X11/xkb/symbols/de 

そこでは次のようなものが表示されます。

key <AD03>  { [         e,          E,     EuroSign,     EuroSign ] };
key <AD06>  { [         z,          Z,    leftarrow,          yen ] };
key <AD11>  { [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] };
....
....
key <AD12>  { [      plus,   asterisk,   dead_tilde,  macron ]  };
key <AC02>  { [               s,               S,          ssharp,          U017F ] }; 
key <AC06>  { [               h,               H,            Left,             Left ]   }; 
key <AC07>  { [               j,               J,            Down,             Down ]   }; 
key <AC08>  { [               k,               K,              Up,               Up ]   }; 
key <AC09>  { [               l,               L,           Right,            Right ]   }; 
....
....
key <AB10>  { [     minus, underscore,               endash,     emdash ] };
key <LSGT>  { [     less,     greater,                  bar,     NoSymbol   ] };

ご覧のとおり、AB、AC、AD、AEは行を表し、数字はキーボード上のその位置を表します(less / greaterキーなどの特別なキーがあり、他のキーに再マッピングすることもできます)。

そこでは、すべてのキーボードが見つかるわけではなく、キーボードが基づいているレイアウトとは異なるものだけが見つかります。ファイルの冒頭でわかるように、ドイツ語は「latin(type4)」に基づいています。

include "latin(type4)"

次に、必要に応じて変更するだけです。それは次のように機能します:

キー{[ keykey+ shiftkey+ AltGrkey+ Shift+ AltGr ]};

(5番目のレベルの修飾子を追加することも可能です)

再起動せずに変更を確認する場合。(レイアウトの「de」を変更しています... 可能なレイアウトのリストを次に示します

 setxkbmap -layout de

矢印には、「左、右、下、上」のようにラベルが付けられています。以下は可能な値の良いリストです。

ここに私のカスタムレイアウトの一例です。(現時点では使用されていません)

次に、CapslockとAltGrを再マッピングする必要があります。

「通常の」ドイツ語レイアウトも保持したい場合は、通常は使用しない別のレイアウトに変更できます(または同じ「de」ファイルでさらに見つけられる「ドイツ語のデッドキーなし」を変更します)。 ..)

ソース:xbkとカスタムレイアウトの非常に包括的な説明へのリンク。良い答えのある同様の質問への
リンク


1
最新のUbuntuおよび派生物では、/etc/default/keyboardこれらの変更が行われた後、XKBレイアウトとオプションを設定できます。詳細man 5 keyboardについては、を参照してください。既存のものを変更するのではなく、新しいバリアントとオプションを追加することをお勧めします。
quixotic 2017年

0

CapsLockをAltGrに再マッピングするには

xmodmap -e "keycode 66 = ISO_Level3_Shift"

(ソース:https : //superuser.com/a/138757/160420

矢印キーをAltGr + h、j、kおよびlにマップするには、を使用xmodmap -pkeして適切な設定を見つけます。

xmodmap -pke|egrep "f F|j J|k K|h H|l L|o O|u U|d D|dollar|BackSpace"

5番目の値を新しいキーに変更し、これをすべてbashスクリプトに追加します。

# xrandr needs the desktop to be fully loaded. add a delay, to be able to add it to Startup Applications:
sleep 15
# change BackSpace into AltGr
xmodmap -e "keycode 66 = ISO_Level3_Shift"
# set BackSpace on AltGr + F
xmodmap -e "keycode 41 = f F f F BackSpace BackSpace dstroke ordfeminine f F dstroke ordfeminine"
# create arrow keys at h,j,k,l
xmodmap -e "keycode  43 = h H h H Left Left"
xmodmap -e "keycode  44 = j J j J Down Down"
xmodmap -e "keycode  45 = k K k K Up Up"
xmodmap -e "keycode  46 = l L l L Right Right"
xmodmap -e "keycode  30 = u U u U Prior Prior"
xmodmap -e "keycode  40 = d D d D Next Next"
xmodmap -e "keycode  12 = 3 section 3 numbersign Home Home"
xmodmap -e "keycode  13 = 4 dollar 4 dollar End End"
xmodmap -e "keycode  53 = x X x X Delete Delete"

(ソース:https : //askubuntu.com/a/466315/34298

そのbashスクリプトをスタートアップアプリケーションに配置します[ダッシュ]> [スタートアップアプリケーション]> [追加]を選択し、コマンドを追加します)。

注:奇妙なことに、gnome-terminalこれは正常に機能しますが、yakuakeAltGr + FのBackSpaceで機能しますが、キーバインディングを「Linux」に設定しない限り、AltGr + h、j、k、lをD、B、A、Cに設定します。 「(デフォルト)XFree 4」、その中sublime-textではまったく機能しません


xmodmap非推奨であり、推奨されません。X11環境では引き続き機能しますが、Waylandおよびその他のX11の代替品では機能しません。代わりにXKBベースのソリューションを使用することを強くお勧めします。
quixotic

だから、私は新しいカスタムキーボードレイアウトを追加する必要があると思いますか?askubuntu.com/questions/482678/...
rubo77

1
カスタムレイアウトを追加することも1つの方法ですが、カスタムオプションを作成するだけで十分です。GNOMEまたはUnity では、xmodmapのカスタマイズを機能させるために、設定デーモンのキーボードプラグイン無効にする必要がある場合がありますが、システム全体の新しいXKBレイアウト/バリアント/オプションを作成する場合は、で設定できます/etc/default/keyboard
quixotic 2017年

1
これはかなりの作業のようですが、新しいキーの組み合わせが一部のアプリで機能しないという問題は解決しますか?
rubo77 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.