Saya menggunakan gnome 3.22.1 tetapi masalah ada sejak 3.18.
Sebelum itu (tidak ingat versi persisnya) saya bisa mengganti tata letak keyboard menggunakan xkb-penyihir , aplikasi sederhana yang menggunakan binding X.org di bawah tenda.
Setelah 3,18 jika Anda menjalankan xkb-switch, tata letak keyboard tidak akan diaktifkan di gnome. Penyelidikan lebih lanjut menunjukkan bahwa pergantian tata letak berfungsi, tetapi untuk waktu yang sangat singkat.
Jika Anda menjalankan skrip ini:
for i in $(seq 1000); do
lang=$(xkb-switch -s ru; xkb-switch);
if [[ "$lang" == "ru" ]]; then
echo $lang;
fi;
done
Anda akan beralih dari 3 ke 20 "layout sukses", tergantung pada seberapa beruntungnya Anda.
Setelah googling masalah ini saya saran berikut :
gsettings set org.gnome.desktop.input-sources current 0
Pengaturan sedang diubah, tetapi tata letak tetap sama.
Saya telah menemukan satu metode "peretasan" untuk mengubah tata letak:
setxkbmap us,ru
setxkbmap ru,us
tetapi gnome shell tidak mengetahui perubahan itu, dan menunjukkan bahasa yang salah dalam indikator tata letak.
Saya telah memposting tentang masalah ini (maaf, reputasi tidak cukup, https: //bbs.archlinux.org/viewtopic.php? Pid = 1657582 https: //github.com/ierton/xkb-switch/issues/15), tetapi tidak beruntung mendapatkan jawaban yang baik.
Dan pada titik ini saya terjebak. Saya tidak cukup terampil untuk mengidentifikasi masalah dalam kode shell gnome. Aku bahkan tidak yakin itu masalah (gnome shell).
Yang saya inginkan adalah cara gnome-aware untuk mengganti tata letak keyboard dari terminal. Bisakah seseorang mengarahkan saya ke arah yang benar? Haruskah saya mengajukan ini sebagai bug (terutama fakta bahwa tata letak keyboard tidak dapat diubah melalui gsettings)?
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager()._mruSources[1].activate()"