嘗試在 MATE 中的 Debian Bulleye 的 IBus 上添加拉丁美洲西班牙語鍵盤佈局,但我只能得到西班牙西班牙語

嘗試在 MATE 中的 Debian Bulleye 的 IBus 上添加拉丁美洲西班牙語鍵盤佈局,但我只能得到西班牙西班牙語

我在 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版本)。

我為使其發揮作用所做的工作如下:

  1. /usr/share/ibus/component/simple.xml使用sudo和您選擇的編輯器開啟檔案。

  2. 找到xkb:es::spa引擎。在我的機器上,它看起來像這樣:

<engine>
    <name>xkb:es::spa</name>
    <language>es</language>
    <license>GPL</license>
    <author>Peng Huang &lt;[email protected]&gt;</author>
    <layout>es</layout>
    <longname>Spanish</longname>
    <description>Spanish</description>
    <icon>ibus-keyboard</icon>
    <rank>50</rank>
</engine>
  1. 找到後,複製<engine>標籤並將其貼上到其旁邊(作為同級,在同一層級上),然後更改以下標籤值:

    • name, 從xkb:es::spaxkb:latam::spa
    • layout, 從eslatam
    • 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 &lt;[email protected]&gt;</author>
    <layout>es</layout>
    <longname>Spanish</longname>
    <description>Spanish</description>
    <icon>ibus-keyboard</icon>
    <rank>50</rank>
</engine>
  1. 新增引擎後,儲存檔案。

  2. 透過發出命令重新啟動 IBus 服務ibus restart

  3. 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
  1. 使用ibus-setupibus engine,將佈局設定為您先前建立的佈局。此時,它應該可以工作。

我希望這對你有用。 :)

答案2

我剛剛刪除了所有鍵盤Ibus 偏好設定然後運行命令:setxkbmap 拉美在終端中。

相關內容