Я не совсем понимал, чего ожидать от написания программы на C для Kinto, моего решения на базе Linux для переноса через клавиатуру Mac. И будьте спокойны, UX-часть этой статьи находится буквально в последнем абзаце.

Я никогда не был на 100% удовлетворен использованием xprop в Kinto, и зная, что будущее за Wayland, во время создания Kinto я не знал, действительно ли я хочу потратить время на написание собственной программы на C или C ++, просто обнаружив окно фокуса под x11 или Xlib, учитывая, что я мало пишу на C / C ++ и, конечно, никогда не имел дела с x11 на каком-либо серьезном уровне.

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

Необходимость знать необходимые параметры / аргументы переключателя также была незначительной неприятностью, но не полностью неожиданной. Раньше я компилировал ядра Linux, особенно для телефонов Android и других проектов с открытым исходным кодом.

# The arguments to provide if you are compiling for Xlib and Xmu libraries
-lX11 -lXmu
# Also the compiler you will use under linux for c is
gcc
# While c++ is
g++
# macOS used to use gcc, but modern versions use the following
clang
# Be aware that some library names and arguments for compiling may be slightly different btwn linux and macOS
https://github.com/rbreaves/kinto/blob/dev/kintox11/src/kintox11.c

Я очень доволен тем, как это получилось, хотя должен признать, что большая часть кода основана на том, что было написано kui. Первоначально я основывал свою работу на советах, данных в stackoverflow, с некоторыми примерами того, как взаимодействовать с Xlib, но я быстро понял, компилируя эти примеры, что они крайне нестабильны, чтобы основывать мою работу, и это займет больше времени. отлаживать, чем переписывать с нуля… По крайней мере, пока я не наткнулся на суть по куи.

https://github.com/kui
https://gist.github.com/kui/2622504

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

Утилита запуска действий в зависимости от используемого приложения может быть полезна не только для переназначения клавиатуры, но и для изменения способа взаимодействия человека со своим компьютером, особенно людей с ограниченными возможностями. К сожалению, гибкость подобных решений должна быть адаптирована в сфере Linux, поскольку безопасность базовой оконной системы x11 переходит на Wayland. Несмотря на все происходящие крики и крики, а также заявления о безопасности, я думаю, что на самом деле мы просто перекладываем бремя безопасности на DE, такие как gnome, kde, xfce и т. Д. Уже есть довольно простые методы для извлечения активное окно из Gnome через dbus и, возможно, также под kde, если не через dbus, то через kwin или любой другой скриптовый движок, используемый для плазмоидов.