切換鍵盤佈局
最終目標
我使用 Arch Linux
bspwm
作為我的視窗管理器和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
.以下是我對此的擔憂:
- 這不是一個優雅的解決方案。
- 我無法在不同的佈局中隨機播放。我必須每次執行命令並指定所需的佈局。
- 即使在我註銷或重新啟動系統後,這種更改是否會在全球範圍內持續存在?如果答案是肯定的,我可能會遇到麻煩。我在 LUKS 加密上使用 LVM,我需要
us
佈局來解密我的磁碟。因此,如果我在重新啟動之前忘記從西里爾腳本切換,那就永遠再見了。問題
有什麼方法可以讓我添加多個鍵盤映射
/etc/vconsole.conf
並us
使其成為預設鍵盤映射?如果是這樣,我需要做什麼才能在它們之間切換。它是一個簡單的命令還是我需要一個小腳本?如果這不是一個選擇,那麼實現我的最終目標的最佳方式是什麼。我試圖找到擁有多個鍵盤映射的答案,但我找不到任何適用於我的問題的東西。我會很感激一個解決方案,甚至是建議和建議,特別是如果它提高了我的知識。先感謝您!
我
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 重新啟動時,它也會重置為您所在地區的鍵盤(您啟動時使用的普通鍵盤)。這確實循環通過它們而不是設置特定的。我不知道這對你來說有多大的意義,但劇本的想法可以很容易地適應這一點。