qnikst / kbdd

keyboard library for per-window keyboard layout
GNU General Public License v2.0
146 stars 16 forks source link

при попытке смены раскладки она сразу же меняется на предыдущую #9

Open imposeren opened 12 years ago

imposeren commented 12 years ago

версия 0.6. При одиночной посылке дбас сообщения раскладка переключается на мгновение, и тут же переключается на предідущую. Что бы она переключилась окончательно приходится посылать несколько сообщений подряд (зажимать хоткей). Вот что говорит дбасмонитор:

один клик: signal sender=:1.72 -> dest=ru.gentoo.KbddService serial=2 path=/ru/gentoo/KbddService; interface=ru.gentoo.kbdd; member=set_layout uint32 1 signal sender=:1.0 -> dest=(null destination) serial=130 path=/ru/gentoo/KbddService; interface=ru.gentoo.kbdd; member=layoutChanged uint32 1 signal sender=:1.0 -> dest=(null destination) serial=131 path=/ru/gentoo/KbddService; interface=ru.gentoo.kbdd; member=layoutChanged uint32 0 signal sender=:1.0 -> dest=(null destination) serial=132 path=/ru/gentoo/KbddService; interface=ru.gentoo.kbdd; member=layoutNameChanged string "USA" signal sender=:1.0 -> dest=(null destination) serial=133 path=/ru/gentoo/KbddService; interface=ru.gentoo.kbdd; member=layoutChanged uint32 1 signal sender=:1.0 -> dest=(null destination) serial=134 path=/ru/gentoo/KbddService; interface=ru.gentoo.kbdd; member=layoutChanged uint32 0 signal sender=:1.0 -> dest=(null destination) serial=135 path=/ru/gentoo/KbddService; interface=ru.gentoo.kbdd; member=layoutNameChanged string "USA"

"зажатие" хоткея: signal sender=:1.0 -> dest=(null destination) serial=148 path=/ru/gentoo/KbddService; interface=ru.gentoo.kbdd; member=layoutChanged uint32 1 signal sender=:1.73 -> dest=ru.gentoo.KbddService serial=2 path=/ru/gentoo/KbddService; interface=ru.gentoo.kbdd; member=set_layout uint32 1 signal sender=:1.74 -> dest=ru.gentoo.KbddService serial=2 path=/ru/gentoo/KbddService; interface=ru.gentoo.kbdd; member=set_layout uint32 1 signal sender=:1.75 -> dest=ru.gentoo.KbddService serial=2 path=/ru/gentoo/KbddService; interface=ru.gentoo.kbdd; member=set_layout uint32 1 signal sender=:1.76 -> dest=ru.gentoo.KbddService serial=2 path=/ru/gentoo/KbddService; interface=ru.gentoo.kbdd; member=set_layout uint32 1 signal sender=:1.77 -> dest=ru.gentoo.KbddService serial=2 path=/ru/gentoo/KbddService; interface=ru.gentoo.kbdd; member=set_layout uint32 1

т.е. при зажатии он просто не пытается переключаься обратно самостоятельно.

вот мой .xbindkeysrc:

eng layout

"dbus-send --dest=ru.gentoo.KbddService /ru/gentoo/KbddService ru.gentoo.kbdd.set_layout uint32:0" Mod1+Shift + 1

ru layout

"dbus-send --dest=ru.gentoo.KbddService /ru/gentoo/KbddService ru.gentoo.kbdd.set_layout uint32:1" Mod1+Shift + 2

ua layout

"dbus-send --dest=ru.gentoo.KbddService /ru/gentoo/KbddService ru.gentoo.kbdd.set_layout uint32:2" Mod1+Shift + 3

кстати в вики на гитхабе у вас ошибка: там для обоих случаев стоит uint32:1

imposeren commented 12 years ago

tested on version 0.5: Works fine.

qnikst commented 12 years ago

исправлено в 32517d3..d266ea7 в версию выложу позже.

imposeren commented 12 years ago

Что-то я перешел на awesome, и теперь тут такие же грабли. kbdd ставлю *9999, 0.6 тоже пробовал.

qnikst commented 12 years ago

если всё ещё используешь kbdd, то можешь ли проверить работает ли у тебя 9999?

imposeren commented 12 years ago

Я сейчас вообще без ничего, но это напрягает. Попробую на досуге.

imposeren commented 12 years ago

ну вроде постваил 9999. Всё равно что бы поменять раскладку, надо зажимать надолго хоткей (т.е. слать много команд подряд). Подозреваю что проблема таже что и была раньше. свитч лейаута тоже так работает: надо зажать, и через секунду начинает прыгать туда-сюда пока не отпустишь.

imposeren commented 12 years ago

Как запоминалка раскладок для разных окон работает на ура, но вот как свитчер — нет