Ctrlキーと矢印をHomeキーとEndキーにバインドする方法 xmodmapは機能しません


15

Windowsでは、私が結合するために使用Ctrl+ LeftHomeしてCtrlまで右+ EndAHK経由。

現在、Ubuntuでこの動作を実現するのに苦労しています。私は編集しようとしました/etc/inputrc

"\e[1;5C": end-of-line
"\e[1;5D": beginning-of-line

動作しますが、ターミナルウィンドウでのみです。私はxmodmapも試しました:

xmodmap -e "keycode 113=Left NoSymbol Home"

しかし、それは機能しません。
ここで奇妙なことは、xmodmapでShift+ にバインドするLeftと動作することです。

xmodmap -e "keycode 113=Left Home"

ここでの私の推測は、Ctrl+ Left(単語をスキップする)のデフォルトの動作がxmodmapバインディングよりも優先されるということです。

デフォルトのバインディングの場所と削除方法はどこで確認できますか?または、必要な動作をバインドすることもできますか?

Ubuntu 12.04を使用しています


xev変更したいキーの出力が得られますか?
セス

私がやります。xev出力からキーコード113 = Leftを取得しました。
acid009

xev出力全体を追加してください。
セス

状態0x0、キーコード113(keysym 0xff51、左)
acid009

Ctrlキーで押された場合に、状態を0x4、キーコード113(キーシンボル0xff51、左) -予想通り状態を0x4に変更される
acid009

回答:


11

AutoKeyはこのようなバインディングを実行できますが、バックグラウンドでサービスを実行する必要があります(ahmodのようですが、xmodmapとは異なります)。

テキストが<home>、貼り付け方法がKeyboard、ホットキーがである「フレーズ」を構成します<ctrl>-<left>

AutoKey GUI



1
拡張されたより一般的なバージョン:askubuntu.com/a/304834/194 この質問は重複していますか?
cscarney

それはおそらくそうですが、あなたはまだ報奨金を得る必要があります。;-)
ケビンボーウェン

この方法は機能しません。
acid009 14

1
@JeffDrorそれは<page_up>および<page_down>(code.google.com/p/autokey/wiki/SpecialKeys
cscarney 14年

1

UbuntuワークステーションでAppleのアルミニウムキーボードを使用していますが、次のxmodmapコマンドがそれを実現しました。

# remap Ctrl_L to ModeSwitch, then use it to map arrow keys so that
# they act like on the MacBook keyboard with Fn key pressed 
xmodmap -e "keycode 37=Mode_switch"
xmodmap -e "keycode 113 = Left NoSymbol Home"
xmodmap -e "keycode 114 = Right NoSymbol End"
xmodmap -e "keycode 111 = Up NoSymbol Prior"
xmodmap -e "keycode 116 = Down NoSymbol Next"

これCaps Lockは、Ubuntuキーボード設定を使用してキーがコントロール機能に再マップされるため、完全に機能します。したがって、左のコントロールキーは必要ありません。MacBookキーボードのFnキーがある場所にあるため、デスクトップキーボードとMacBookキーボードを切り替えても筋肉の記憶に影響はありません。


0

Autokeyは私のために働いた。デフォルトのAutokeyの動作は、right ctrl+ arrowleft ctrl+の両方をマップしますarrow。そして、私は言葉だけをナビゲートしていたright ctrlので、だけが欲しかったleft ctrl

Autokeyで使用したスクリプトは次のとおりです。

output = system.exec_command('xinput query-state "AT Translated Set 2 keyboard" | grep down', getOutput=True)
# 105 is right ctrl
if 'key[105]=down' in output:
    keyboard.send_keys('<end>')
else:
    keyboard.send_keys('<ctrl>+<right>')

注:別のキーボード名を持っている可能性があります。それらをすべて試してください。3台のデバイスがありましたが、1台しか動作しませんでした

xinput list --name-only | grep -i keyb
Virtual core keyboard
Virtual core XTEST keyboard
AT Translated Set 2 keyboard

PS Ubuntu Softwareのパッケージが壊れているため、GitHubからAutokeyをインストールしました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.