Как запретить gnome изменять порядок ввода языка при переключении языков?

Вот мои настройки ввода (обратите внимание на порядок языков в списке, который я предпочитаю.)

enter image description here

Теперь сначала, когда Я вызываю ярлык для переключения ввода, список выглядит так (как и ожидалось):

enter image description here

Теперь я выбираю корейский ввод (второй элемент) и снова вызываю ярлык переключения, вот как выглядит список:

enter image description here

Как вы можете см. порядок изменен.
И теперь, если я выберу другой вход и попытаюсь переключить снова, список полностью сдвинется.

Есть ли способ запретить gnome постоянно переставлять список?

Думаю, стоит упомянуть, что моя работа связана с языками, и я постоянно переключаю языки (поиск китайского иероглифа, возврат к английской клавиатуре, возвращаясь к корейскому словарю, чтобы найти определение и т. д.), я обнаружил, что мозг легче запоминает расположение языков в списке, чем то, что на самом деле написано, и именно так поступает Windows.
Я хотел бы, чтобы есть способ исправить это, в противном случае мне пришлось бы сообщить об этом как о проблеме на веб-сайте gnome.

Заранее спасибо.

1
задан 22 December 2019 в 14:33

1 ответ

Поскольку на данный момент нет расширения gnome-shell для статического сдвига раскладки клавиатуры с использованием сочетаний клавиш по умолчанию Super + Space и Shift + Super + Space ..

и комментарии об этой ссылке Статический порядок переключения раскладки клавиатуры в Ubuntu 17.10 и более поздних версиях с GNOME 3 из OP

проблема с решением, предложенным в ссылке (Alt + Shift), заключается в том, что ему не хватает визуальной обратной связи, и он не может использовать ярлык для предыдущего (например, win + shift + пробел, чтобы вернуться на один ввод). Так что это не очень приятно.

Я смог достичь хотя бы одного балла из двух (визуальная обратная связь и переключение на предыдущий макет) с помощью нижеприведенного обходного пути.

Обходной путь

ОС: Ubuntu 19.10

Ссылка: Управление ярлыком Super + Space по умолчанию для переключения на следующий источник ввода без графического представления

Создайте два сценария с приведенным ниже содержанием, я назвал их как «SuSpace.sh» и «ShSuSpace.sh»

SuSpace.sh

#!/bin/bash

totalLang=$(gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager()._mruSources.length" | grep -oP "(?<=').*?(?=')")

currentLang=$(gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().currentSource.index" | grep -oP "(?<=').*?(?=')")

declare -i math=$currentLang+1

if [ "$math" -lt "$totalLang" ]; then
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources["$currentLang+1"].activate()"
else
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"
fi

ShSuSpace.sh

#!/bin/bash

totalLang=$(gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager()._mruSources.length" | grep -oP "(?<=').*?(?=')")

currentLang=$(gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().currentSource.index" | grep -oP "(?<=').*?(?=')")

declare -i math=$currentLang-1

if [ "$math" -eq -1 ]; then
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources["$totalLang-1"].activate()"
else
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources["$currentLang-1"].activate()"
fi

вы можете создавать собственные ярлыки для этих двух скриптов по своему желанию.

enter image description here

1
ответ дан 23 December 2019 в 17:42

Другие вопросы по тегам:

Похожие вопросы: