Arch-Linux

切換鍵盤佈局

  • May 20, 2022

最終目標

我使用 Arch Linuxbspwm作為我的視窗管理器和sxhkd熱鍵守護程序。我想在我的sxhkdrc中映射某個組合鍵,以便它在不同的鍵盤佈局中隨機播放。例如:

# Shuffle through keyboard layouts
super + e
   *action to be executed*

當地的

首先,我不知道是否需要添加塞爾維亞語語言環境,因為我只是(不時)想要啟動塞爾維亞語鍵盤佈局。我的想法是鍵盤映射就足夠了。以防萬一,我生成了塞爾維亞語語言環境;所以現在當我執行時localectl list-local,輸出是:

en_US.UTF-8
sr_RS.UTF-8
sr_RS.UTF-8@latin

這些分別對應於:

  • 美國的英語語言環境 – UTF-8 編碼
  • 塞爾維亞的塞爾維亞語語言環境 – 西里爾字母 – UTF-8 編碼
  • 塞爾維亞的塞爾維亞語語言環境 – 拉丁文字 – UTF-8 編碼

鍵盤映射

我想使用的三種佈局(能夠隨機播放)是:

  • us= 美國英語
  • sr-cy= 西里爾字母的塞爾維亞語
  • sr-latin= 拉丁文的塞爾維亞語

我知道我可以編輯/etc/vconsole.conf和設置KEYMAP=sr_cy而不是us使用localectl set-keymap sr_cy.

以下是我對此的擔憂

  1. 這不是一個優雅的解決方案。
  2. 我無法在不同的佈局中隨機播放。我必須每次執行命令並指定所需的佈局。
  3. 即使在我註銷或重新啟動系統後,這種更改是否會在全球範圍內持續存在?如果答案是肯定的,我可能會遇到麻煩。我在 LUKS 加密上使用 LVM,我需要us佈局來解密我的磁碟。因此,如果我在重新啟動之前忘記從西里爾腳本切換,那就永遠再見了。

問題

有什麼方法可以讓我添加多個鍵盤映射/etc/vconsole.confus使其成為預設鍵盤映射?如果是這樣,我需要做什麼才能在它們之間切換。它是一個簡單的命令還是我需要一個小腳本?如果這不是一個選擇,那麼實現我的最終目標的最佳方式是什麼。

我試圖找到擁有多個鍵盤映射的答案,但我找不到任何適用於我的問題的東西。我會很感激一個解決方案,甚至是建議和建議,特別是如果它提高了我的知識。先感謝您!

setxkbmap用來在 Dvorak 和 QUERTY 之間切換。我有一個 bash 腳本~/.local/bin/toggle_kbd(包含在我的 中PATH),我的視窗管理器已綁定到一個快捷方式。它只是執行一個 case 語句來將我的鍵盤設置為它目前不是的那個。我正在使用中列出的鍵盤映射名稱localectl list-keymaps

#!/usr/bin/env bash

case $(setxkbmap -query | grep layout | awk '{ print $2 }') in
         us) setxkbmap sr-cy ;;
      sr-cy) setxkbmap sr-latin ;;
   sr-latin) setxkbmap us -variant altgr-intl ;;
          *) setxkbmap us -variant altgr-intl ;;
esac

每當 X 重新啟動時,它也會重置為您所在地區的鍵盤(您啟動時使用的普通鍵盤)。這確實循環通過它們而不是設置特定的。我不知道這對你來說有多大的意義,但劇本的想法可以很容易地適應這一點。

引用自:https://unix.stackexchange.com/questions/703316