-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Не отжимается Shift #3
Comments
Попробуй поставить Если хочешь, можешь сам раздебажить ошибку, где бы она ни была. Я доберусь очень нескоро, если вообще доберусь. Как видишь, в последнее время я вообще не коммичу код в пет-проекты. Если захочешь сам раздебажить, то в QMK есть возможность делать printf, и получать это printf в консольке на линуксе через hid_listen, или QMK toolbox, как угодно. Я именно так все баги и раздебажил. Если ошибка в коде аккордов - то можешь смело писать мне в телегу вопросы по поводу кода или конечного автомата, если ничего не будет получаться. Конечно, в идеале бы всё это тестами покрыть, но уже поздно. Я скорее на раст всё перепишу, чем сделаю здесь тесты. |
Попробовал отдебажить. К моему большому сожалению, баг имеет какой-то слишком плавающий характер: он может долго не проявляться, а потом шифт начинает залипать. Справиться с залипанием помогает отключить-включить клавиатуру. Есть подозрение, что в ходе какого-то ряда действий внутренний инвариант прошивки нарушается, и он начинает неправильно работать. Если чего-то ещё полезного получится найти - отпишу, потому что пока что у меня нет идей, с чем это может быть связано. Пробовал поменять с immediate chord на просто chord - не помогло, баг со временем всё равно проявляется. Надо будет потестировать некоторое время с обычным шифтом. |
@optozorax кстати, вопрос немного оффтопный к этому иссусу, но я не могу не задать его) А какие есть варианты с текущей прошивкой реализовать возможность запоминания текущего слоя per application? потому что сейчас возможно использовать только глобальное переключение языка, и это напрягает при одновременной работе в IDE и чаттинге, например - приходится постоянно переключать язык. Я пока что вижу только писать какую-то интеграцию на стороне DE (может быть сервис какой-то), который бы отслеживал смену фокуса и посылал команду на клавиатуру для смены текущего языкового слоя. |
Мне кажется проблемы с шифтом могут возникать когда происходит нажатие на клавиши по типу RU_EXCL, которые сами нажимают шифт и отпускают его. В комбинации с другими клавишами из lang_shift это может приводить к проблемам. У меня вроде тоже такое возникает, но тут помогает просто нажать и отпустить шифт. Жаль конечно что баг есть, а как воспроизвести - не знаем. Будем ждать nomk. Мечтаю начать делать его осенью, когда кончится то-что-нельзя-называть и вообще дела наладятся. По поводу вопроса, ты прав, тут единственный вариант - сервис/демон, который посылает данные клавиатуре. Кажется самым сложным будет - разобраться с тем как узнать какое сейчас окно. Общаться с клавиатурой можно через https://docs.qmk.fm/#/feature_rawhid. В этой статье показывается пример на питоне. Я ни разу не пробовал эту штуку. |
Баг с шифтом я пока что глубоко не копал, но спасибо за идею касательно возможной причины - я попробую поиграться с подобными сочетаниями клавиш и попробую воспроизвести баг таким образом. Что касается переключения языка для каждого приложения отдельно - я буквально только что закончил это писать и оно работает отлично. Код для сервиса на стороне хоста находится вот тут - https://github.com/zamazan4ik/moonlander_server. Работает через Dbus и только для KDE. Надо бы оформить в чуть более красивый сервис, подкрутить логов и тому прочее, чтобы было не стыдно запускать такое со стартом системы. Со стороны изменений в прошивке самого мунляндера - сущие мелочи: zamazan4ik/moonlander@633a4aa Также для такого дела нашёл вот этот сниппет крайне полезным: https://gist.github.com/Nuigurumi777/47788978b556d1ce258d83f60578a26c |
Спасибо за примеры кода! Действительно очень просто реализуется. |
Здравствуйте.
Заметил странное поведение при использовании клавиши Shift. При её нажатии и отпускании не отправляется ивент отпускания клавиши (проверял через
xev
). Из-за этого пока я не нажму другую клавишу, то Shift остаётся нажатым, а то порождает особенности при работе курсором мышки.Мой вариант прошивки расположен вот здесь - https://github.com/zamazan4ik/moonlander
Заранее спасибо.
The text was updated successfully, but these errors were encountered: