Code Monkey home page Code Monkey logo

Comments (6)

optozorax avatar optozorax commented on July 29, 2024 1

Попробуй поставить SFT_N на кнопку без аккорда и выяснить, проявляется ли этот баг тогда. Затем попробуй поставить эту кнопку на аккорд, но без immediate. Вероятно баг в коде аккордов, а не в коде lang_shift.

Если хочешь, можешь сам раздебажить ошибку, где бы она ни была. Я доберусь очень нескоро, если вообще доберусь. Как видишь, в последнее время я вообще не коммичу код в пет-проекты.

Если захочешь сам раздебажить, то в QMK есть возможность делать printf, и получать это printf в консольке на линуксе через hid_listen, или QMK toolbox, как угодно. Я именно так все баги и раздебажил.

Если ошибка в коде аккордов - то можешь смело писать мне в телегу вопросы по поводу кода или конечного автомата, если ничего не будет получаться.

Конечно, в идеале бы всё это тестами покрыть, но уже поздно. Я скорее на раст всё перепишу, чем сделаю здесь тесты.

from lang_shift.

zamazan4ik avatar zamazan4ik commented on July 29, 2024 1

nomk конечно звучит круто, но боюсь, что он будет ещё ооочень нескоро (хоть набор фичей запланированных в нём мне очень нравится).

Баг с шифтом я пока что глубоко не копал, но спасибо за идею касательно возможной причины - я попробую поиграться с подобными сочетаниями клавиш и попробую воспроизвести баг таким образом.

Что касается переключения языка для каждого приложения отдельно - я буквально только что закончил это писать и оно работает отлично. Код для сервиса на стороне хоста находится вот тут - https://github.com/zamazan4ik/moonlander_server. Работает через Dbus и только для KDE. Надо бы оформить в чуть более красивый сервис, подкрутить логов и тому прочее, чтобы было не стыдно запускать такое со стартом системы. Со стороны изменений в прошивке самого мунляндера - сущие мелочи: zamazan4ik/moonlander@633a4aa

Также для такого дела нашёл вот этот сниппет крайне полезным: https://gist.github.com/Nuigurumi777/47788978b556d1ce258d83f60578a26c

from lang_shift.

zamazan4ik avatar zamazan4ik commented on July 29, 2024

Попробовал отдебажить. К моему большому сожалению, баг имеет какой-то слишком плавающий характер: он может долго не проявляться, а потом шифт начинает залипать. Справиться с залипанием помогает отключить-включить клавиатуру.

Есть подозрение, что в ходе какого-то ряда действий внутренний инвариант прошивки нарушается, и он начинает неправильно работать. Если чего-то ещё полезного получится найти - отпишу, потому что пока что у меня нет идей, с чем это может быть связано.

Пробовал поменять с immediate chord на просто chord - не помогло, баг со временем всё равно проявляется. Надо будет потестировать некоторое время с обычным шифтом.

from lang_shift.

zamazan4ik avatar zamazan4ik commented on July 29, 2024

@optozorax кстати, вопрос немного оффтопный к этому иссусу, но я не могу не задать его) А какие есть варианты с текущей прошивкой реализовать возможность запоминания текущего слоя per application? потому что сейчас возможно использовать только глобальное переключение языка, и это напрягает при одновременной работе в IDE и чаттинге, например - приходится постоянно переключать язык.

Я пока что вижу только писать какую-то интеграцию на стороне DE (может быть сервис какой-то), который бы отслеживал смену фокуса и посылал команду на клавиатуру для смены текущего языкового слоя.

from lang_shift.

optozorax avatar optozorax commented on July 29, 2024

Мне кажется проблемы с шифтом могут возникать когда происходит нажатие на клавиши по типу RU_EXCL, которые сами нажимают шифт и отпускают его. В комбинации с другими клавишами из lang_shift это может приводить к проблемам. У меня вроде тоже такое возникает, но тут помогает просто нажать и отпустить шифт.

Жаль конечно что баг есть, а как воспроизвести - не знаем. Будем ждать nomk. Мечтаю начать делать его осенью, когда кончится то-что-нельзя-называть и вообще дела наладятся.


По поводу вопроса, ты прав, тут единственный вариант - сервис/демон, который посылает данные клавиатуре. Кажется самым сложным будет - разобраться с тем как узнать какое сейчас окно. Общаться с клавиатурой можно через https://docs.qmk.fm/#/feature_rawhid. В этой статье показывается пример на питоне. Я ни разу не пробовал эту штуку.

from lang_shift.

optozorax avatar optozorax commented on July 29, 2024

Спасибо за примеры кода! Действительно очень просто реализуется.

from lang_shift.

Related Issues (4)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.