Эмо тоя бопеда наб содой
- 26.08.17, 22:13
Моя победа над собой
Наконец-то свершилось - я написал скрипт своей мечты. Честно, много лет думал, искал, пытался. Не так давно начал пробовать, вчера кое-что озарило. И вот - свершилось. Можно даже гордиться. Впрочем, мне очень много чем есть гордиться. И это чертовски приятно.
Вчерашняя записка самому себе не прошла даром. Полночи не спал и думал, забылся причудливым сном, а утром встал и засел за комп.
Перерыл туеву хучу всего, потом порылся в недрах и наконец-то сообразил, почему и как. Примерно три часа и наконец-то понял как именно выловить текущую раскладку и как ее менять только в одном случае. А случай для меня был нужен лишь один - текущая раскладка была "английская" и нужно сменить на русскую. При этом есть куча нюансов и все эти нюансы удалось учесть.
Ту часть, что перекодирует текст из буфера обмена и вставляет его обратно, я уже приводил, а вот теперь самое главное - кусок, которым я горжусь. После того, как буфер обмена перекодирован и обратно вставлен, нужно определить - стоит ли переключать раскладку на русскую или оставить, такой как была. И с этой задачей я справился красивше и лучше, чем на всех линукс-форумах вместе взятых.
И, кстати, про украинскую раскладку я тоже не забыл. Она присутствует, но проблемы путать её с другой пока не возникало. Возникнет - скрипт можно расширить и в эту сторону.
и еще текстом - себе, на всякий случай, да и мало-ли кому пригодится:
---
setxkbmap -query | grep layout | grep ",ru"
if [ $? -eq 0 ]; then
xset -q | grep "LED" | grep "00000"
if [ $? -eq 0 ]; then
echo "us"
echo "us,ru,ua"
setxkbmap -layout 'ru,us,ua' -option 'grp:rctrl_toggle,grp_led:scroll'
fi
else
xset -q | grep "LED" | grep "00000"
if [ $? -eq 1 ]; then
echo "us"
echo "ru,us,ua"
setxkbmap -layout 'us,ru,ua' -option 'grp:rctrl_toggle,grp_led:scroll'
fi
fi
exit 0
---