Can't change keyboard layout

Hi,

I’m trying to toggle between English (US) and Thai keyboard layouts. I have both set up in the “Region & Language” options in the settings, and I set “Super+Space” to toggle between them, and I have it set to be the same for all windows.

The language indicator applet correctly shows the languages changing between “US” and “TH”, but it hasn’t actually done anything - I’m still typing in English regardless. I have rebooted the machine.

However, if I go into the options and manually re-order the languages (dragging Thai to be above English US), I’m typing in Thai as expected - so the Thai language definitely works. But it’s obviously very inconvenient to do this - I have to switch between languages mid-sentence frequently.

Would could be going wrong here? How can I debug?

I found this guy having the same problem, but I don’t know if he got it resolved:

Interestingly, if I mess around with the language order the settings, the language switcher starts working again, until I log out or reboot, then it’s broken again. So I guess a temporary workaround is to do this every time I log in - so something must be bugged.

Any ideas?
Thanks a lot!

I can confirm the observation under 21.10 - I’ve no idea though why its happening.

You could script something like this:

First get the list of sources:

gsettings get org.gnome.desktop.input-sources sources

e.g.

gsettings get org.gnome.desktop.input-sources sources
[('xkb', 'gb'), ('xkb', 'us'), ('xkb', 'th')]

Then in your script change around the order - sleep and then reset back again. That seems to work for me e.g.

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'th'), ('xkb', 'us'), ('xkb', 'gb')]
sleep 3
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'gb'), ('xkb', 'us'), ('xkb', 'th')]

Nice, that did the trick!! Thanks a lot!

I figure this must annoy a lot of people. Now that you’ve confirmed it, I think I should raise it as a bug so it can get prioritised and fixed.

Think it will need someone to dig into budgie-desktop code and somehow figure out what the fix is - then submit it to upstream. It won’t get fixed until someone delves in.