Jak NIE wyświetlać wyskakującego okna wyboru układu klawiatury podczas zmiany języka w GNOME 3

12

Odkąd zainstalowałem 17.10, przełączając język za pomocą przypisanego skrótu klawiaturowego, otrzymuję to „okno” przełącznika, które utrudnia mi pisanie przez kilka sekund. I tak, kilka sekund to ogromna ilość czasu, kiedy często zmieniasz języki.

ogromny, przyciągający uwagę wskaźnik zmiany języka

Dzieje się tak zarówno w X11, jak i Wayland, ale tak się nie dzieje (okno przeszkodowe nie pojawi się), gdy zmieniam język, klikając wskaźnik języka na górnym pasku. Czy jest jakiś sposób, aby powiedzieć temu oknu „proszę odejdź”?

nikosal
źródło

Odpowiedzi:

4

Jest to możliwe poprzez wysłanie zapytania do gnome-shell poprzez jego interfejs JS z gdbus call( src ).

Poniższy skrypt będzie na przemian między dwoma skonfigurowanymi źródłami wejściowymi. Łatwy do modyfikacji, jeśli masz więcej.

#!/usr/bin/env bash

cur_idx=$(
        gdbus call \
                --session \
                --dest org.gnome.Shell \
                --object-path /org/gnome/Shell \
                --method org.gnome.Shell.Eval \
                "imports
                        .ui.status
                        .keyboard
                        .getInputSourceManager()
                        .currentSource
                        .index" |
        cut -d"'" -f2
)

next_idx=$(( 1 - $cur_idx ))

gdbus call \
        --session \
        --dest org.gnome.Shell \
        --object-path /org/gnome/Shell \
        --method org.gnome.Shell.Eval \
        "imports
                .ui
                .status
                .keyboard
                .getInputSourceManager()
                .inputSources[$next_idx]
                .activate()" \
        &> /dev/null

Ustaw go jako wykonywalny, chmod a+x </path/to/script>a następnie możesz powiązać go z niestandardowym klawiszem skrótu:

Otwórz Ustawienia -> Urządzenia -> Klawiatura i kliknij przycisk wyboru „ + ” u dołu, aby przypisać skrypt do jakiegoś skrótu

(Dla Gnome <3.x: Ustawienia -> Urządzenia -> Klawiatura -> Niestandardowe skróty ).

Dmitrij Zotikov
źródło
1
Dziękujemy, skrypt działa bezbłędnie w najnowszym SID + Gnome-3.
ankostis
3

Nakładka pojawi się, jeśli naciśniesz i przytrzymasz nieco dłużej. Szybkie naciśnięcie i zwolnienie powinno zmienić układ bez pokazywania nakładki.

Aby obejść ten problem, możesz ustawić inny skrót klawiaturowy do przełączania układów, zobacz to w celach informacyjnych: Ubuntu 17.10 nie może zmienić skrótu przełączania wejścia na alt + shift .

pomsky
źródło
Tak, mógłbym zrobić to, co chciałem, przypisując nowy skrót, tak jak zaproponowałeś. Przy moim poprzednim wyborze (który naciskałem F2 / F3) to okno (nakładka, jak to nazywasz) pojawiłoby się, nawet gdybym przez chwilę naciskał klawisze. Dziękuję Ci.
nikosal
Zawsze przypisywałem przełączanie języka na klawisze F2 / F3 zamiast Alt + Shift, oczywiście dlatego, że wolę głaskanie „jednym klawiszem” zamiast kombinacji. Kiedy zaktualizowałem do wersji 17.10, przełączanie F2 / F3 dawało mi tę nakładkę. Kiedy przypisałem nowy klawisz (ScrLk), nakładka się nie pojawi, więc jestem mniej więcej w porządku (chociaż ScrLk jest daleko po prawej stronie i nie jest wygodny do szybkiego pisania).
nikosal
Naciskam klawisz tak szybko, jak to tylko możliwe, a okno wciąż się wyświetla (co jest OK) i kradnie fokus klawiatury (co nie jest OK).
Flimm
@Flimm Co na temat alternatywnego skrótu (np. Alt + shift)?
pomsky
1
Ustawienie innego skrótu zmusza użytkowników do zmiany wspólnych kluczy, zerwania z nawykami, a także zerwania z kompatybilnością z innymi systemami. Raczej wracam do okien. Nie
uważałbym