Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Post History

50%
+0 −0
Q&A Latin American keyboard layout on IBus for Debian Bullseye doesn't work; Spanish layout is applied instead

I answered this question over SE, as it can be found here. UPDATE. I've found that the latest commit in the IBus source has the blacklist already implemented, and that all Latin American layouts...

posted 6d ago by aura-lsprog-86‭

Answer
#1: Initial revision by user avatar aura-lsprog-86‭ · 2025-02-15T07:00:17Z (6 days ago)
_I answered this question over SE, as it can be found [here](https://unix.stackexchange.com/a/704228/135504)._

<hr />

**UPDATE.** I've found that [the latest commit in the IBus source](https://github.com/ibus/ibus/blob/16df64edadc21f50906e5442b73425b9256fbf65/engine/denylist.txt) has the blacklist already implemented, and that _all Latin American layouts are blacklisted by default_.

This affects the generation process, which is done with a Python script on build time, which in turn, sources the available X layouts from `/usr/share/X11/xkb/rules/evdev.xml`, [as this comment clearly states](https://github.com/ibus/ibus/issues/2322#issuecomment-1027763150).

The exact commit on which this restriction was implemented [is here](https://github.com/ibus/ibus/commit/568d58dfadefa801b96058c1155daecff3d51605). As for the reason why this was done, is honestly beyond me, and until this situation is properly addressed, the fix I propose below must be applied _every time IBus is updated_ (as stated [in this previous answer](https://askubuntu.com/a/1242981)).

<hr />

I've faced the same problem in Xubuntu 22.04, and recently used a workaround that involves editing a whitelist.

Even though it's been suggested that [IBus 1.5.23 would include a blacklist, in place of the currently used whitelist](https://fedoraproject.org/wiki/Changes/IBus_1.5.23), so that engines added would automatically appear as selectable layouts, it seems this feature is yet to be implemented (I have version 1.5.26 right now).

What I did to make it work is as follows:

1. Open the file `/usr/share/ibus/component/simple.xml` using `sudo`, and your editor of choice.
2. Locate the `xkb:es::spa` engine. In my machine, it looks like this:

       <engine>
           <name>xkb:es::spa</name>
           <language>es</language>
           <license>GPL</license>
           <author>Peng Huang &lt;shawn.p.huang@gmail.com&gt;</author>
           <layout>es</layout>
           <longname>Spanish</longname>
           <description>Spanish</description>
           <icon>ibus-keyboard</icon>
           <rank>50</rank>
       </engine>

3. Once found, copy the `<engine>` tag and paste it beside it (as a sibling, on the same level), and change the following tag values:

   * `name`, from `xkb:es::spa` to `xkb:latam::spa`.
   * `layout`, from `es` to `latam`.
   * `longname`, to any text of your choice so that you can distinguish it from other layouts.

   It should now look like this:

       <!-- I added this one. vvv -->
       <engine>
           <name>xkb:latam::spa</name>
           <language>es</language>
           <license>GPL</license>
           <author>Aura Lesse Programmer</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;shawn.p.huang@gmail.com&gt;</author>
           <layout>es</layout>
           <longname>Spanish</longname>
           <description>Spanish</description>
           <icon>ibus-keyboard</icon>
           <rank>50</rank>
       </engine>

4. Once the new engine is added, save the file.
5. Restart the IBus service, by issuing the command `ibus restart`.
6. Once IBus restarts, type `ibus list-engine` and check that the new engine appears in the list.

   In my machine, I have the following configurations. The one I added is `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

7. Using `ibus-setup` or `ibus engine`, set the layout to the one you previosuly created. At this point, it should work.

I hope this works for you. :)