Индикатор языка ввода на клавиатуре (или цвет курсора)

Возможно ли иметь некоторые указания на языке ввода на клавиатурном курсе (или рядом с ним) или, возможно, изменить цвет курсора в зависимости от языка ввода?

Я думаю, что это было бы отличным дополнением для тех, кто использует более одного языка для ввода.

2
задан 13 January 2018 в 23:57

2 ответа

Конечно, это возможно, но решение для этого я придумал очень ... уродливо.

Прежде всего, вам нужно будет создать свои собственные темы курсора с вашими собственными цветами. Вы можете скопировать те, которые у вас есть в /usr/share/icons (проверьте папки, содержащие файл cursor.theme) в папку users ~/.icons, переименуйте их по вашему выбору и раскрасьте. Для доказательства концепции я покажу вам отдых, просто используя темы курсора, которые уже должны быть доступны в системе. Скажем, «DMZ-White» и «DMZ-Black».

Что касается раскраски курсоров, вы можете сделать это с помощью GIMP и его «раскрасить» функцию / фильтр, но вы должны применить его ко всем слоям ( различные размеры), а затем экспортировать эти файлы с расширением .xmc, а затем разделите это расширение, чтобы имена были похожими на исходную тему источника.

Различные среды рабочего стола отличаются методы для хранения текущей раскладки клавиатуры и для той, над которой я работаю (MATE). Я даже не смог найти хороший метод, поэтому мне нужно было использовать xset -q, который возвращает очень бессмысленную «маску», которая отличается для каждого раскладка клавиатуры.

Попробуйте запустить эту команду после переключения раскладок клавиатуры:

xset -q | grep -A 0 'LED' | cut -c59-67

Он должен дать вам что-то вроде «00000002» для одного макета и «00001002» для другого. Вам понадобятся эти значения позже.

Теперь вы должны выяснить, как изменить тему курсора командой в вашей среде.

Вот что работает на MATE:

gsettings set org.mate.peripherals-mouse cursor-theme 'DMZ-Black'

... и это, вероятно, должно работать на GNOME:

gsettings set org.gnome.desktop.interface cursor-theme 'DMZ-Black'

Что касается раскраски курсоров, вы можете сделать это с помощью GIMP, и это «раскрасить» функцию / фильтр, но вы должны применить ее ко всем слоям (разные размеры), а затем экспортировать эти файлы с расширением .xmc, а затем отделить это расширение, чтобы имена были как в исходной, так и в исходной теме.

gsettings get org.mate.peripherals-mouse cursor-theme gsettings get org.gnome.desktop.interface cursor-theme

И теперь ... самая уродливая часть - все вместе и запускает скрипт в цикле с заданным интервалом, который изменит курсор в соответствии со значением из xset. Вот простой пример:

#!/bin/bash current=$(gsettings get org.mate.peripherals-mouse cursor-theme) echo "STARTING WITH: $current" while [ "true" ]; do xval=$(xset -q | grep -A 0 'LED' | cut -c59-67) if [ "$xval" == "00000002" ]; then if [ "$current" != "'DMZ-Black'" ]; then current="'DMZ-Black'" echo "CHANGING TO: $current" gsettings set org.mate.peripherals-mouse cursor-theme $current fi elif [ "$xval" == "00001002" ]; then if [ "$current" != "'DMZ-White'" ]; then current="'DMZ-White'" echo "CHANGING TO: $current" gsettings set org.mate.peripherals-mouse cursor-theme $current fi fi sleep 1 # one-second interval between each re-check done

Поместите этот скрипт в некоторый файл, примените chmod +x к нему (выполнимое разрешение) и после настройки в соответствии с вашей ситуацией и тестированием в терминале (fe bash /home/glaz/my-dynamic-cursor-script), вы можете добавить его к вашему автозапуску и ~ VIOLA ~

Возможно, это не самое приятное решение, но он выполняет эту работу - по крайней мере, для меня:)

Ох ... Он также работает, когда вы используете эту функцию, которая позволяет использовать разные макеты ввода для каждого окна, поэтому, когда вы меняете фокус на другое окно, курсор также обновляется. Однако он не будет работать над приложениями, которые используют свои собственные пользовательские курсоры - для таких случаев потребуется другая идея: следить за курсором в режиме реального времени и отображать некоторые надписи рядом с ним, но я не думаю, что это так просто, как это ... может потребоваться кодирование некоторых специализированных приложений / демонов, которые будут выполнять именно это.

2
ответ дан 17 July 2018 в 23:08

Конечно, это возможно, но решение для этого я придумал очень ... уродливо.

Прежде всего, вам нужно будет создать свои собственные темы курсора с вашими собственными цветами. Вы можете скопировать те, которые у вас есть в /usr/share/icons (проверьте папки, содержащие файл cursor.theme) в папку users ~/.icons, переименуйте их по вашему выбору и раскрасьте. Для доказательства концепции я покажу вам отдых, просто используя темы курсора, которые уже должны быть доступны в системе. Скажем, «DMZ-White» и «DMZ-Black».

Что касается раскраски курсоров, вы можете сделать это с помощью GIMP и его «раскрасить» функцию / фильтр, но вы должны применить его ко всем слоям ( различные размеры), а затем экспортировать эти файлы с расширением .xmc, а затем разделите это расширение, чтобы имена были похожими на исходную тему источника.

Различные среды рабочего стола отличаются методы для хранения текущей раскладки клавиатуры и для той, над которой я работаю (MATE). Я даже не смог найти хороший метод, поэтому мне нужно было использовать xset -q, который возвращает очень бессмысленную «маску», которая отличается для каждого раскладка клавиатуры.

Попробуйте запустить эту команду после переключения раскладок клавиатуры:

xset -q | grep -A 0 'LED' | cut -c59-67

Он должен дать вам что-то вроде «00000002» для одного макета и «00001002» для другого. Вам понадобятся эти значения позже.

Теперь вам нужно выяснить, как изменить тему курсора командой в вашей среде.

Вот что работает на MATE:

gsettings set org.mate.peripherals-mouse cursor-theme 'DMZ-Black'

... и это, вероятно, должно работать на GNOME:

gsettings set org.gnome.desktop.interface cursor-theme 'DMZ-Black'

Что касается раскраски курсоров, вы можете сделать это с помощью GIMP, и это «раскрасить» функцию / фильтр, но вы должны применить ее ко всем слоям (разные размеры), а затем экспортировать эти файлы с расширением .xmc, а затем отделить это расширение, чтобы имена были как в исходной, так и в исходной теме.

gsettings get org.mate.peripherals-mouse cursor-theme gsettings get org.gnome.desktop.interface cursor-theme

И теперь ... самая уродливая часть - все вместе и запускает скрипт в цикле с заданным интервалом, который изменит курсор в соответствии со значением из xset. Вот простой пример:

#!/bin/bash current=$(gsettings get org.mate.peripherals-mouse cursor-theme) echo "STARTING WITH: $current" while [ "true" ]; do xval=$(xset -q | grep -A 0 'LED' | cut -c59-67) if [ "$xval" == "00000002" ]; then if [ "$current" != "'DMZ-Black'" ]; then current="'DMZ-Black'" echo "CHANGING TO: $current" gsettings set org.mate.peripherals-mouse cursor-theme $current fi elif [ "$xval" == "00001002" ]; then if [ "$current" != "'DMZ-White'" ]; then current="'DMZ-White'" echo "CHANGING TO: $current" gsettings set org.mate.peripherals-mouse cursor-theme $current fi fi sleep 1 # one-second interval between each re-check done

Поместите этот скрипт в некоторый файл, примените chmod +x к нему (выполнимое разрешение) и после настройки в соответствии с вашей ситуацией и тестированием в терминале (fe bash /home/glaz/my-dynamic-cursor-script), вы можете добавить его к вашему автозапуску и ~ VIOLA ~

Возможно, это не самое приятное решение, но он выполняет эту работу - по крайней мере, для меня:)

Ох ... Он также работает, когда вы используете эту функцию, которая позволяет использовать разные макеты ввода для каждого окна, поэтому, когда вы меняете фокус на другое окно, курсор также обновляется. Однако он не будет работать над приложениями, которые используют свои собственные пользовательские курсоры - для таких случаев потребуется другая идея: следить за курсором в режиме реального времени и отображать некоторые надписи рядом с ним, но я не думаю, что это так просто, как это ... может потребоваться кодирование некоторых специализированных приложений / демонов, которые будут выполнять именно это.

2
ответ дан 24 July 2018 в 13:40
  • 1
    Но это изменяет только курсор мыши, а не текстовый курсор, правильно? Я понял, что речь идет о текстовых курсорах ... – Byte Commander 14 January 2018 в 16:27
  • 2
    Вы можете изменить любой курсор, который вы хотите ... при раскрашивании текстового курсора в теме он изменит текстовый курсор. Вам просто нужно иметь файл с именем & quot; text & quot; в вашей теме, поэтому в случае «DMZ» -themes вы можете просто ln -s xterm text и раскрасить «xterm». один. Если, конечно, ваше приложение не использует собственный пользовательский курсор ... – GreggD 14 January 2018 в 16:59

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

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