Używam gnome 3.22.1, ale problem istnieje od 3.18.
Wcześniej (nie pamiętam dokładnej wersji) mogłem zmienić układ klawiatury za pomocą prostej aplikacji xkb-witch , która korzysta z powiązań X.org pod maską.
Po 3.18, jeśli uruchomisz przełącznik xkb, układ klawiatury nie zostanie przełączony w gnome. Dalsze dochodzenie wykazało, że zmiana układu działa, ale przez bardzo krótki czas.
Jeśli uruchomisz ten skrypt:
for i in $(seq 1000); do
lang=$(xkb-switch -s ru; xkb-switch);
if [[ "$lang" == "ru" ]]; then
echo $lang;
fi;
done
Dostaniesz od 3 do 20 „udanych” zmian układu, w zależności od tego, jakie masz szczęście.
Po przejrzeniu tego problemu korzystam z następującej porady :
gsettings set org.gnome.desktop.input-sources current 0
Ustawienie jest zmieniane, ale układ pozostaje taki sam.
Znalazłem jedną „hacką” metodę zmiany układu:
setxkbmap us,ru
setxkbmap ru,us
ale powłoka gnome nie jest świadoma tej zmiany i pokazuje niewłaściwy język we wskaźniku układu.
Napisałem o tym problemie (przepraszam, za mało reputacji, https: //bbs.archlinux.org/viewtopic.php? Pid = 1657582 https: //github.com/ierton/xkb-switch/issues/15), ale nie miał szczęścia uzyskać dobrych odpowiedzi.
I w tym momencie utknąłem. Nie mam wystarczających umiejętności, aby zidentyfikować problem w kodzie powłoki gnome. Nie jestem nawet pewien, czy to jest problem (powłoki gnoma).
To, czego chcę, to sposób gnomów, aby przełączyć układ klawiatury z terminala. Czy ktoś może skierować mnie we właściwym kierunku? Czy powinienem to zgłosić jako błąd (zwłaszcza fakt, że układu klawiatury nie można zmienić za pomocą ustawień gset)?
źródło
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()"
Jeśli używasz IBusa jako metody wprowadzania danych (prawdopodobnie jest to ustawienie domyślne), możesz zmienić dane wejściowe za pomocą
ibus
polecenia:Możesz wyświetlić wszystkie dostępne układy za pomocą
ibus list-engine
polecenia.Należy zauważyć, że to podejście nie zmienia wskaźnika języka, chociaż działa niezawodnie w inny sposób.
źródło
setxkbmap us
- bez możliwości zmiany układu za pomocą standardowych skrótów.setxkbmap
. Co więcej,setxkbmap
może działać jako zwykły buggy w nowoczesnych środowiskach WM, patrz pytanie o szczegóły na ten temat.Korzystanie
gsettings
.Ustawienie
org.gnome.desktop.input-sources.sources
na pustą listę, „[]”, pozwala używać konfiguracji klawiatury X serwera bez próby skonfigurowania go przez powłokę gnome , dzięki czemu można to zrobić jak poprzednio.źródło
setxkbmap
poleceń później wpisałem, dopóki nie przywrócę źródeł wejściowych z powrotem w oknie dialogowym Ustawienia.Myślę, że powinieneś spróbować
sudo dpkg-reconfigure keyboard-configuration
źródło
Możesz skonfigurować metodę wprowadzania i przejść do niej w wierszu polecenia, nawet jeśli ta metoda wprowadzania nie była wcześniej skonfigurowana za pomocą myszy:
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'ru')]"
W przypadku Dvorak użyj
us+dvorak
(lubgb+dvorak
jeśli jesteś w Wielkiej Brytanii, czy cokolwiek innego).źródło