
我意識到箭頭鍵重新映射是一個老問題,但是我似乎找不到一個好的解決方案,可以讓我使用 SHIFT + 重新映射鍵選擇文本,就像使用普通箭頭鍵一樣。
例如,如果我將 Caps Lock 重新對應到 ISO_Level3_Shift 並將 xkb_symbols 設為讀取
key <AC08> { [ k, K , Down, Down] };
或者
key <AC08> { type="THREE_LEVEL",
[ k, K , Down ] };
按 Shift+CapsLock+K 的行為與 CapsLock+K 完全相同(而 Shift+Down 的行為與單獨按下時不同)。
我使用更高級別的巨集實用程式並產生鍵盤事件(即生成 Shift 和箭頭按鍵)取得了更大的成功;然而,這種方法存在一系列不同的問題 - 通常,UI 對模擬按鍵的響應與“真實”按鍵不同,並且還存在性能問題 - 我打字的速度比設備處理的速度快。
太;博士;如何使用 X 下重新映射的箭頭鍵進行 Shift-選擇?
答案1
您可以使用preserve
以下方法:為您新增類型定義(例如THREE_LEVEL
)行
preserve[LevelThree+Shift] = Shift;
這告訴 xkb 在 的情況下從修飾符組合中找出適當的層級時保留移位修飾符LevelThree + Shift
。移位修飾符被傳遞以供工具包或應用程式使用(另請參見此處:結合使用preserve和類型)。
請注意,這會影響應用程式如何解釋擊鍵組合:如果您已定義了上述保留和
key <AC08> { type="THREE_LEVEL", [ k, K, kappa ] };
並且您按下Ctrl + Shift + LevelThree + <AC08>
應用程式會將其讀取為組合鍵Ctrl + Shift + kappa
(而不是通常Ctrl + kappa
),因為 Shift 修飾符會保留並傳遞給應用程式。