我在 HP Pavillion Touch 14-N009LA 筆記型電腦上運行適用於 AMD64 的 Debian 11 Bullseye,使用 IBus 和 MATE 作為桌面環境,最近從 Buster 升級。在升級點版本之前,我可以將拉丁美洲鍵盤佈局與 IBus 結合使用;之後,我就不能再這樣做了。
MATE 控制中心上的鍵盤首選項應用程式顯示拉丁美洲西班牙語佈局,我可以setxkbmap latam
在終端上手動設定它(在 IBus 啟動並替換它之前),但在 IBus 上我只看到“西班牙語”鍵盤,對應於西班牙人的西班牙語鍵盤,具有不同的標點符號鍵;沒有“拉丁美洲”或類似選項。
運行ibus list-engine
給出了以下輸出,其中我看不到拉丁美洲西班牙語佈局,並且沒有匹配latam
或類似的內容:
<irrelevant languages omitted>
language: Spanish
xkb:es:nodeadkeys:spa - Spanish (no dead keys)
xkb:es:sundeadkeys:spa - Spanish (Sun dead keys)
xkb:es:winkeys:spa - Spanish (Windows)
xkb:es:dvorak:spa - Spanish (Dvorak)
xkb:es:deadtilde:spa - Spanish (dead tilde)
xkb:es:mac:spa - Spanish (Macintosh)
xkb:es::spa - Spanish
<irrelevant languages omitted>
到目前為止我只能找到似乎只適用於 Ubuntu 的指南, 和IBus 的 Arch Linux 指南。
前一個指南建議我也許必須為我的系統生成一個西班牙語語言環境,我通過取消註釋語言es-MX
環境/etc/locale.gen
然後運行locale-gen
.之後,我重新啟動了系統。它不起作用。
關於如何在 Debian Bullseye 的 IBus 上使用拉丁美洲西班牙語佈局還有其他想法嗎?
答案1
更新。我發現IBus 來源中的最新提交黑名單已經實施了嗎?預設情況下,所有拉丁美洲佈局都被列入黑名單。
這會影響生成過程,生成過程是在建置時使用 Python 腳本完成的,而生成過程又從以下位置取得可用的 X 佈局/usr/share/X11/xkb/rules/evdev.xml
:正如該評論明確指出的那樣。
實施此限制的確切提交在這兒。至於這樣做的原因,老實說超出了我的範圍,在這種情況得到妥善解決之前,必須應用我在下面提出的修復方案每次 IBus 更新時(就像聲明的那樣在之前的回答中)。
我在 Xubuntu 22.04 中遇到了同樣的問題,最近使用了一種涉及編輯白名單的解決方案。
儘管有人建議IBus 1.5.23 將包含黑名單,以代替目前使用的白名單,這樣新增的引擎就會自動顯示為可選擇的佈局,看來這個功能還沒有實現(我現在有1.5.26版本)。
我為使其發揮作用所做的工作如下:
/usr/share/ibus/component/simple.xml
使用sudo
和您選擇的編輯器開啟檔案。找到
xkb:es::spa
引擎。在我的機器上,它看起來像這樣:
<engine>
<name>xkb:es::spa</name>
<language>es</language>
<license>GPL</license>
<author>Peng Huang <[email protected]></author>
<layout>es</layout>
<longname>Spanish</longname>
<description>Spanish</description>
<icon>ibus-keyboard</icon>
<rank>50</rank>
</engine>
找到後,複製
<engine>
標籤並將其貼上到其旁邊(作為同級,在同一層級上),然後更改以下標籤值:name
, 從xkb:es::spa
到xkb:latam::spa
。layout
, 從es
到latam
。longname
,添加到您選擇的任何文本,以便您可以將其與其他佈局區分開來。
現在它應該看起來像這樣:
<!-- I added this one. vvv -->
<engine>
<name>xkb:latam::spa</name>
<language>es</language>
<license>GPL</license>
<author>logo_writer</author>
<layout>latam</layout>
<longname>Spanish Latam</longname>
<description>Spanish Latam</description>
<icon>ibus-keyboard</icon>
<rank>50</rank>
</engine>
<!-- I added this one. ^^^ -->
<engine>
<name>xkb:es::spa</name>
<language>es</language>
<license>GPL</license>
<author>Peng Huang <[email protected]></author>
<layout>es</layout>
<longname>Spanish</longname>
<description>Spanish</description>
<icon>ibus-keyboard</icon>
<rank>50</rank>
</engine>
新增引擎後,儲存檔案。
透過發出命令重新啟動 IBus 服務
ibus restart
。IBus 重新啟動後,鍵入
ibus list-engine
並檢查新引擎是否出現在清單中。
在我的機器上,我有以下配置。我加的那個是Spanish Latam
.
$ ibus list-engine | grep -A 7 Espa
idioma: Español
xkb:es:nodeadkeys:spa - Spanish (no dead keys)
xkb:es:winkeys:spa - Spanish (Windows)
xkb:es:dvorak:spa - Spanish (Dvorak)
xkb:es:deadtilde:spa - Spanish (dead tilde)
xkb:latam::spa - Spanish Latam
xkb:es:mac:spa - Spanish (Macintosh)
xkb:es::spa - Spanish
- 使用
ibus-setup
或ibus engine
,將佈局設定為您先前建立的佈局。此時,它應該可以工作。
我希望這對你有用。 :)
答案2
我剛剛刪除了所有鍵盤Ibus 偏好設定然後運行命令:setxkbmap 拉美在終端中。