Keyboard-Layout

如何在系統範圍內更改鍵盤佈局?(影響控制台和 LightDM)

  • August 20, 2020

我想更改鍵盤佈局,而不是在桌面上,而是在控制台和登錄螢幕上。這是系統範圍內的預設鍵盤佈局。

我正在執行 Linux Mint 20(基於 Ubuntu 20),但我希望這個執行緒能夠收集大多數發行版的答案。

我的鍵盤佈局是azerty,但我想切換到qwerty.

在基於Ubuntu的發行版中,例如 Linux Mint,你必須編輯/etc/default/keyboard(它是只讀的,所以使用你的終端編輯器sudo

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="qwerty"
XKBOPTIONS=""

BACKSPACE="guess"

如果您不知道要在文件中寫入什麼,請在桌面首選項中設置所需的鍵盤映射並執行localectl. 它將為您提供 XKBLAYOUT 和 XKBVARIANT 所需的佈局和變體名稱。

為了使更改生效,請重新啟動電腦。

Fedora和相關係統上,文件是這樣說的:

更改鍵盤佈局

鍵盤佈局設置使使用者能夠控制在文本控制台和圖形使用者界面上使用的佈局。

顯示目前設置

如前所述,您可以使用以下命令檢查目前的鍵盤佈局配置:

localectl status

範例 4. 顯示鍵盤設置

在以下輸出中,您可以看到為虛擬控制台和 X11 視窗系統配置的鍵盤佈局。

~]$ localectl status
  System Locale: LANG=en_US.utf8
      VC Keymap: us
     X11 Layout: us

列出可用的鍵盤映射

要列出可以在您的系統上配置的所有可用鍵盤佈局,請鍵入:

localectl list-keymaps

範例 5. 搜尋特定的鍵盤映射

您可以使用 grep 在上一個命令的輸出中搜尋特定的鍵盤映射名稱。通常有多個與您目前設置的語言環境兼容的鍵盤映射。例如,要查找可用的捷克語鍵盤佈局,請鍵入:

~]$ localectl list-keymaps | grep cz
cz
cz-cp1250
cz-lat2
cz-lat2-prog
cz-qwerty
cz-us-qwertz
sunt5-cz-us
sunt5-us-cz

設置鍵盤映射

要為您的系統設置預設鍵盤佈局,請以 root 身份使用以下命令:

localectl set-keymap map

將 map 替換為從localectl list-keymaps命令輸出中獲取的鍵映射的名稱。除非--no-convert通過該選項,否則在將其轉換為最匹配的 X11 鍵盤映射後,所選設置也將應用於 X11 視窗系統的預設鍵盤映射。這也適用於相反的情況,您可以使用以下命令作為 root 指定兩個鍵盤映射:

localectl set-x11-keymap map

如果您希望 X11 佈局與控制台佈局不同,請使用該--no-convert選項。

localectl --no-convert set-x11-keymap map

使用此選項,指定 X11 鍵盤映射而不更改以前的控制台佈局設置。

範例 6. 單獨設置 X11 鍵盤映射

想像一下,您想在圖形界面中使用德語鍵盤佈局,但對於控制台操作,您希望保留美國鍵盤映射。為此,請以 root 身份鍵入:

~]# localectl --no-convert set-x11-keymap de

然後您可以通過檢查目前狀態來驗證您的設置是否成功:

~]$ localectl status
  System Locale: LANG=de_DE.UTF-8
      VC Keymap: us
     X11 Layout: de

除了鍵盤佈局(地圖)之外,還可以指定其他三個選項:

localectl set-x11-keymap map model variant options

用鍵盤型號名稱、變體和選項替換模型,用鍵盤變體和選項組件,可用於增強鍵盤行為。預設情況下未設置這些選項。有關 X11 模型、X11 變體和 X11 選項的更多資訊,請參見 kbd(4) 手冊頁。

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