Переключите раскладку клавиатуры программно

В первую очередь, используйте параметр отладки оболочки set -vx видеть, как/когда Вар, и т.д. оцениваются.

Извините, но почему у Вас есть своя установка кода как

 run="..."? 

потому что попытка позже использовать переменную $run ?

Если так, затем почти наверняка необходимо сделать

eval "$run"

который открывает совершенно новую кучу проблем до выхода из специальных символов. Поскольку другой комментатор указывает, что необходимо будет только выйти из требуемых символов, необходимо будет вдвойне выйти из них. Когда я раньше заставлял вещи как это работать, я мог волновать с Escape как \\\\\ (5!) для получения вещей, работающих.

Без дальнейшего объяснения контекста для этого кода моя рекомендация состоит в том, чтобы не учесть run= материал и просто выполненный tail -n0 -f -s 0.01 $cmds |.... как.

Кроме того, на комментарий Gilles, и распространяться о нем, Ваш целый конвейер не имеет большого смысла,

 tail -n0 -f -s 0.01 $cmds | (while true; do $tron ....

A. мы не знаем то, что находится в $cmds

B. Нет ничего, что я вижу в подоболочке (while true; ...) это читает вывод хвоста cmd. Если Вы говорите, что это передается завершенное в последующее tee после конца while , затем я изучил что-то новое.

C. Вы действительно хотите выполнить команду $tron с такой скоростью, как Вы можете в бесконечном цикле? В большом количестве систем это завершит потребление по крайней мере 1 полной мощности центральных процессоров. Возможно, добавьте a sleep 1?

Добавление большего количества контекста о том, что Вы пытаетесь выполнить, поможет нам помочь Вам!Удачи.

3
06.04.2013, 04:24
2 ответа

Например, для получения американского расположения (то есть, между прочим, превосходный для программирования; посмотрите этот вопрос).

В X, попробовать setxkbmap -layout us

В консоли Linux добавить XKBLAYOUT="us" кому: /etc/default/keyboard; затем выполненный setupcon как суперпользователь. Или, использовать dpkg-reconfigure keyboard-configuration (также как суперпользователь). Вы могли также использовать другую карту в консоли, чем в X при помощи KMAP; заглянуть /etc/console-setup/.

Это может потребовать некоторой игры; возможно, требуется записать псевдонимы и/или функции в Вашем .bashrc для быстрого доступа. Если Вы планируете переключение назад и вперед, я нашел, что составить ключ является лучшим решением. Если, конечно, Вы не пишете в полностью другом алфавите.

1
27.01.2020, 21:29

Это действительно странно это X11 не обеспечивает стандартный инструмент для переключения на данное расположение (когда Вы определяете несколько с setxkbmap).

Но я просто нашел инструмент, который может сделать это: xkblayout-state

С ним можно получить/установить текущий макет, или по имени или положением в стопке расположения.

1
27.01.2020, 21:29

Теги

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