История изменений
Исправление flappyright, (текущая версия) :
Но мне интересней другое, что за нахрен делает та часть скрипта, которая сначала убивает некий kbdd, потом вызывает его снова, а затем запрашивает непонятную фиговину через dbus? Неужели нельзя узнать раскладку более простым способом?
Можешь предложить свой вариант. Буду благодарен.
Для переключения использую:
setxkbmap us,ru -option grp:caps_toggle
Итоговый вариант:
killall kbdd 2>/dev/null
kbdd >/dev/null || exit 1
N=$( dbus-send --print-reply=literal --dest=ru.gentoo.KbddService\
/ru/gentoo/KbddService ru.gentoo.kbdd.getCurrentLayout 2>/dev/null |\
sed -un 's/^.*uint32 //p' )
LAYOUT=$( dbus-send --print-reply=literal --dest=ru.gentoo.KbddService \
/ru/gentoo/KbddService ru.gentoo.kbdd.getLayoutName uint32:$N )
if [[ $LAYOUT = " English (US)" ]]; then
echo "АНГ"
else
echo "РУС"
fi
pkill -RTMIN+
.Ресурсы не жрет, но это лютый костыль, признаю.
Исходная версия flappyright, :
Но мне интересней другое, что за нахрен делает та часть скрипта, которая сначала убивает некий kbdd, потом вызывает его снова, а затем запрашивает непонятную фиговину через dbus? Неужели нельзя узнать раскладку более простым способом?
Можешь предложить свой вариант. Буду благодарен.
Для переключения использую:
setxkbmap us,ru -option grp:caps_toggle
Итоговый вариант:
killall kbdd 2>/dev/null
kbdd >/dev/null || exit 1
N=$( dbus-send --print-reply=literal --dest=ru.gentoo.KbddService\
/ru/gentoo/KbddService ru.gentoo.kbdd.getCurrentLayout 2>/dev/null |\
sed -un 's/^.*uint32 //p' )
LAYOUT=$( dbus-send --print-reply=literal --dest=ru.gentoo.KbddService \
/ru/gentoo/KbddService ru.gentoo.kbdd.getLayoutName uint32:$N )
if [[ $LAYOUT = " English (US)" ]]; then
echo "АНГ"
else
echo "РУС"
fi
pkill -RTMIN+
.Ресурсы не жрет, но это лютый костыль, признаю.