sotvm
@sotvm
Умный поймёт, а дураку и так всё равно.

Как переключить раскладку из скрипта?

проблема: запилил через xmacroplay , открытие Caja сразу в двух панелях+в каждой свой адрес.
т.е. у меня на панели висит ярлык/значёк ,который открывает мой дефолтный файлманагер через костыль
2caja.sh , в котором прописано
#!/bin/sh
#запуск caja в двухпанельном режиме
caja ~/
echo "Delay 1 KeyStrPress F3 KeyStrRelease F3 KeyStrPress Control_L KeyStrPress l KeyStrRelease l KeyStrRelease Control_L KeyStrPress slash KeyStrRelease slash KeyStrPress t KeyStrRelease t KeyStrPress m KeyStrRelease m KeyStrPress p KeyStrRelease p KeyStrPress Return KeyStrRelease Return"|xmacroplay ":0.0"

т.е. открыв caja + жмакнуть F3 (открыть двухпанельный режим) ,
+ жмакнуть Control_L +L (фокус в адресную строку панели (по умолчанию это левая)),
+ бла-бла-бла (пишем нужный адрес + Enter)
OK
всё хорошо ,НО если в это время раскладка RU ,то и адресной строке оно мне пишет по русски,
а значит ,чтобы заработало ,мне нужно перед выполнением команды xmacroplay(т.е. вначале скрипта) ,
принудительно переключить раскладку на EN .

как то так
андестенд? доступно излагаю ? :)

ps
сделал так = работает
#!/bin/bash
## запуск Caja в двухпанельном режиме с разными адресами в панелях
## левая /tmp  , правая по умолчанию ~/
if
## в настройках клавы ,должна быть включена опция  Use keyboard LED to show alternative layout 
## если горит Scroll_Lock т.е. включена RU локаль ,
[ $(xset q | grep -Po 'LED mask:\s*\K\d+') -eq '00001006' ]
then
## то переключаем на US , имитируя нажатие Caps_Lock (у меня так настроено переключение раскладки)
echo "KeyStrPress  Caps_Lock KeyStrRelease Caps_Lock"|xmacroplay ":0.0"
fi

caja ~/ &
## задержка ,чтобы успел открыться окно Caja
sleep 0.5

## собственно команды для xmacroplay имитирующих нажатия кнопок клавы
## F3 открыть вторую панель
## Control_L+l  передача фокуса в адресное поле 1-ой панели
## вписываем путь /tmp   и жмакаем Enter
echo "Delay 1 KeyStrPress F3 KeyStrRelease F3 Delay 1 KeyStrPress Control_L KeyStrPress l KeyStrRelease l KeyStrRelease Control_L  KeyStrPress slash KeyStrRelease slash KeyStrPress t KeyStrRelease t KeyStrPress m KeyStrRelease m KeyStrPress p KeyStrRelease p  KeyStrPress Return KeyStrRelease Return"|xmacroplay ":0.0"
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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