Comments (6)
Попробуй поставить SFT_N
на кнопку без аккорда и выяснить, проявляется ли этот баг тогда. Затем попробуй поставить эту кнопку на аккорд, но без immediate. Вероятно баг в коде аккордов, а не в коде lang_shift.
Если хочешь, можешь сам раздебажить ошибку, где бы она ни была. Я доберусь очень нескоро, если вообще доберусь. Как видишь, в последнее время я вообще не коммичу код в пет-проекты.
Если захочешь сам раздебажить, то в QMK есть возможность делать printf, и получать это printf в консольке на линуксе через hid_listen, или QMK toolbox, как угодно. Я именно так все баги и раздебажил.
Если ошибка в коде аккордов - то можешь смело писать мне в телегу вопросы по поводу кода или конечного автомата, если ничего не будет получаться.
Конечно, в идеале бы всё это тестами покрыть, но уже поздно. Я скорее на раст всё перепишу, чем сделаю здесь тесты.
from lang_shift.
nomk
конечно звучит круто, но боюсь, что он будет ещё ооочень нескоро (хоть набор фичей запланированных в нём мне очень нравится).
Баг с шифтом я пока что глубоко не копал, но спасибо за идею касательно возможной причины - я попробую поиграться с подобными сочетаниями клавиш и попробую воспроизвести баг таким образом.
Что касается переключения языка для каждого приложения отдельно - я буквально только что закончил это писать и оно работает отлично. Код для сервиса на стороне хоста находится вот тут - https://github.com/zamazan4ik/moonlander_server. Работает через Dbus и только для KDE. Надо бы оформить в чуть более красивый сервис, подкрутить логов и тому прочее, чтобы было не стыдно запускать такое со стартом системы. Со стороны изменений в прошивке самого мунляндера - сущие мелочи: zamazan4ik/moonlander@633a4aa
Также для такого дела нашёл вот этот сниппет крайне полезным: https://gist.github.com/Nuigurumi777/47788978b556d1ce258d83f60578a26c
from lang_shift.
Попробовал отдебажить. К моему большому сожалению, баг имеет какой-то слишком плавающий характер: он может долго не проявляться, а потом шифт начинает залипать. Справиться с залипанием помогает отключить-включить клавиатуру.
Есть подозрение, что в ходе какого-то ряда действий внутренний инвариант прошивки нарушается, и он начинает неправильно работать. Если чего-то ещё полезного получится найти - отпишу, потому что пока что у меня нет идей, с чем это может быть связано.
Пробовал поменять с immediate chord на просто chord - не помогло, баг со временем всё равно проявляется. Надо будет потестировать некоторое время с обычным шифтом.
from lang_shift.
@optozorax кстати, вопрос немного оффтопный к этому иссусу, но я не могу не задать его) А какие есть варианты с текущей прошивкой реализовать возможность запоминания текущего слоя per application? потому что сейчас возможно использовать только глобальное переключение языка, и это напрягает при одновременной работе в IDE и чаттинге, например - приходится постоянно переключать язык.
Я пока что вижу только писать какую-то интеграцию на стороне DE (может быть сервис какой-то), который бы отслеживал смену фокуса и посылал команду на клавиатуру для смены текущего языкового слоя.
from lang_shift.
Мне кажется проблемы с шифтом могут возникать когда происходит нажатие на клавиши по типу RU_EXCL, которые сами нажимают шифт и отпускают его. В комбинации с другими клавишами из lang_shift это может приводить к проблемам. У меня вроде тоже такое возникает, но тут помогает просто нажать и отпустить шифт.
Жаль конечно что баг есть, а как воспроизвести - не знаем. Будем ждать nomk. Мечтаю начать делать его осенью, когда кончится то-что-нельзя-называть и вообще дела наладятся.
По поводу вопроса, ты прав, тут единственный вариант - сервис/демон, который посылает данные клавиатуре. Кажется самым сложным будет - разобраться с тем как узнать какое сейчас окно. Общаться с клавиатурой можно через https://docs.qmk.fm/#/feature_rawhid. В этой статье показывается пример на питоне. Я ни разу не пробовал эту штуку.
from lang_shift.
Спасибо за примеры кода! Действительно очень просто реализуется.
from lang_shift.
Related Issues (4)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lang_shift.