如何在 i3 中使用目前鍵盤佈局作為鍵盤快速鍵?

如何在 i3 中使用目前鍵盤佈局作為鍵盤快速鍵?

我剛剛用預設配置安裝了 i3,並且有一個鍵盤快速鍵的主要問題:即使我的鍵盤佈局不是 QWERTY,鍵盤快速鍵也會對應到相關的 QWERTY 鍵。因此,我必須按Win+QWERTY 佈局中標記為“F”的鍵來全屏顯示窗口,即使按該鍵會產生“u”字元(在 Dvorak 佈局中)。我該如何解決這個問題,以便按Win+f起作用任何佈局,不需要每個佈局單獨配置?

答案1

簡短回答:

如果您想使用預設配置,只需複製/etc/i3/config~/.config/i3/config(或~/.i3/config;替換已存在的配置以避免混淆)。

長答案:

i3支援透過以下方式配置鍵盤快速鍵關鍵符號以及由關鍵程式碼

  • 關鍵符號是由按鍵發送的字符,取決於鍵盤佈局。它們與關鍵字綁定bindsym。例如,為了綁定到和 鍵toggle fullscreen的組合Win發送“f”你會使用:

     bindsym Mod4+f fullscreen toggle
    

    此方法適合與助記符一起使用(F全屏,重新Size等),只需查看配置即可立即找到所需的快捷方式。但如果您在鍵盤佈局之間切換,按鍵也可能會移動。此外,如果您在不同的字母之間切換,則並非每個符號都會在兩種佈局中表示。

  • 關鍵程式碼表示鍵盤上的實體鍵,不依賴鍵盤佈局,而僅依賴鍵盤型號(例如pc104pc105)。為了綁定到和 鍵toggle fullscreen的組合Win被標記為F在美式鍵盤上(主行,左手食指):

     bindcode Mod4+41 fullscreen toggle
    

    此方法將不同鍵盤佈局中的捷徑保留在相同的實體位置。如果您有時在佈局之間切換但主要透過肌肉記憶找到快捷方式,那麼這尤其有用。另一方面,配置的可讀性不太好(fvs. 41)。

根據個人喜好,您可能需要選擇任一方法。您甚至可以混合使用它們,但您必須小心不要分配相同的密鑰兩次,例如bindsym f …同時bindcode 41 …分配。

通常i3套件中的每個方法都有一個預設配置。/etc/i3/config為了bindsym/etc/i3/config.keycodes為了bindcode。如果i3找不到使用者配置,它會建議使用i3-config-wizard.這將採用config.keycodes預設配置,並將所有配置替換為目前鍵盤佈局上的bindcode等效配置。bindsym這可確保所有鍵都位於相同位置,如圖所示使用者指南並且配置文件同時易於理解。當然,缺點是如果您不使用 QWERTY 或 QWERTZ 佈局,它會破壞一些助記符。


我個人的建議是(長時間)看看使用者手冊並且僅使用預設配置作為起點來創建適合您的工作流程和首選項的您自己的配置。

相關內容