一部のアプリケーションでは、大文字の入力が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
答え2
Ubuntu 16.04 LTS 64ビットの「ファイル」で同様の動作が表示されます。
- アイコングリッドモードでアイテムビューでファイルとフォルダの名前を変更できます。
- 「アイテムをリストとして表示」モードで:
- 名前の変更中に押すのは、right shift押すのと似ています。ESC
- プレスleft shift工程
- +を押すのはleft shift+を押すのとany letter似ています。ESCleft shiftany letter
そのため、ファイルまたはフォルダの名前を変更するときは、「項目をリストとして表示」に大文字を入力することはできません。
解決策:
- 行く
System settings
/Keyboard
Shortcuts
タブに切り替えるUniversal access
左選択- ズームバインディングの削除