一部のアプリケーションでは、大文字の入力がESCキーを押すのと同じです。
再現:
- LibreOfficeドキュメントを開く
- 名前を付けて保存を選択する(Unityダイアログ)
- 「フォルダの作成」をクリック
- 大文字を入力するには、Shiftキーを使用します(例:Shift + A)。
この時点で、新しいフォルダの作成はキャンセルされます。 (ESCキーを押すのと同じ)
この動作は、さまざまなプログラムやゲームにも存在します。
xev
(Shift + dを押す)を使用して状況を分析します。
# xev
KeyPress event, serial 37, synthetic NO, window 0x4c00001,
root 0x259, subw 0x0, time 994702, (15,-13), root:(987,197),
state 0x10, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
FocusOut event, serial 37, synthetic NO, window 0x4c00001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 37, synthetic NO, window 0x4c00001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 37, synthetic NO, window 0x0,
keys: 89 0 0 0 0 1 4 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
KeyPress event, serial 37, synthetic NO, window 0x4c00001,
root 0x259, subw 0x0, time 994927, (15,-13), root:(987,197),
state 0x11, keycode 40 (keysym 0x44, D), same_screen YES,
XLookupString gives 1 bytes: (44) "D"
XmbLookupString gives 1 bytes: (44) "D"
XFilterEvent returns: False
KeyRelease event, serial 37, synthetic NO, window 0x4c00001,
root 0x259, subw 0x0, time 995062, (15,-13), root:(987,197),
state 0x11, keycode 40 (keysym 0x44, D), same_screen YES,
XLookupString gives 1 bytes: (44) "D"
XFilterEvent returns: False
KeyRelease event, serial 37, synthetic NO, window 0x4c00001,
root 0x259, subw 0x0, time 995395, (15,-13), root:(987,197),
state 0x11, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
私の考えでは、これらのFocusOut
出来事はFocusIn
疑わしいようです。
Linux:Ubuntu 14.04 LTS 32ビット、Unity
システムをどのように修正しますか?どんなアイデアや追加テストも歓迎します!
編集:ソリューション
私は言語変換をLeftShift + RightShiftに設定したことがあります。このアプローチは長年にわたって効果がありましたが、ある時点で問題になりました。とにかく、設定を別のキーの組み合わせに切り替えることで問題が解決しました。
ベストアンサー1
FocusOut event, serial 37, synthetic NO, window 0x4c00001, mode NotifyGrab, detail NotifyAncestor FocusIn event, serial 37, synthetic NO, window 0x4c00001, mode NotifyUngrab, detail NotifyAncestor
A長押しするとShiftどうなりますか?パッシブクロール:このキーの組み合わせを排他的に制御するXクライアントが1つあり、キーの組み合わせを押すとイベントはそのクライアントにのみルーティングされ、xev
他の人にはルーティングされません。xev
キーの組み合わせが発生したときに保持し、キーの組み合わせが完了したら、それらをキャンセルするようにクライアントに報告します。
Shift一般人の観点から、+をAグローバルキーバインディングとして定義するプログラムがあります。これはおそらく誤字です。バインディングShift++または++何かを意味しました。AltkeyWinShiftA
存在するコマンドラインでXキーとポインタをキャッチします。私はホットテイカーを見つける方法を尋ねました。私が見つけた最良のアプローチはアクティブなクロールに関するレポートのみを報告するので、情報を照会するときにキーを押す必要があります。
- インストールするxdoツールまだしていないなら。
- ランニング
sleep 1; xdotool key XF86LogGrabInfo
。 - Shift1秒以内に+を押し続けますA。実行されるまで待ちます
xdotool
。 - クロールの詳細については、Xサーバーのログを確認してください。 Xサーバーログの一般的な場所は次のとおりです
/var/log/Xorg.0.log
(表示番号の反映、つまり0
if isまたはthen Look atなどの数字)。$DISPLAY
$DISPLAY
:1
:1.0
/var/log/Xorg.1.log
以下は、私が押したキーがSawfishで定義されたキーバインディングであることを示すいくつかのサンプル出力です。
[2292688.331] Active grab 0x41602244 (core) on device 'Virtual core keyboard' (3):
[2292688.331] client pid 6745 sawfish
[2292688.331] at 2292687547 (from passive grab) (device thawed, state 3)
[2292688.331] core event mask 0x3
[2292688.331] passive grab type 2, detail 0x4e, activating key 78
[2292688.331] owner-events false, kb 0 ptr 0, confine 0, cursor 0x0
[2292688.331] (II) End list of active device grabs