spiegel-keyman/linux/keyman-system-service
Marc Durdin cd8121ef65 chore(common): builder scripts now use /resources/build/builder.inc.sh
Note: there is a bit of potential confusion about the difference between
/resources/builder.inc.sh (the full implementation for builder scripts),
and /resources/build/builder.inc.sh (the source script that builder
scripts should always use).

This allows us to make assumptions that will always be true for builder
scripts that may not be true for other scripts, such as setting base
folder.
2024-05-02 15:54:31 +07:00
..
man chore(linux): Fix lintian warnings 2023-06-05 17:18:55 +02:00
resources feat(linux): Add system service to toggle capslock LED 2023-05-15 09:13:58 +02:00
src feat(linux): Refactor to benefit from C++ RAII 2023-05-22 19:51:45 +02:00
tests feat(linux): Refactor to benefit from C++ RAII 2023-05-22 19:51:45 +02:00
build.sh chore(common): builder scripts now use /resources/build/builder.inc.sh 2024-05-02 15:54:31 +07:00
meson.build chore(linux): Add dependency to build.sh 2023-09-21 16:11:43 +02:00
README.md docs(core): Document how to build Core on Linux 2023-07-24 19:54:17 +02:00

keyman-system-service

A DBus system service that allows to access /dev/input/* devices to toggle capslock and perform other keyboard related actions. This is required when running under Wayland, but also used with X11.

See https://0pointer.net/blog/the-new-sd-bus-api-of-systemd.html, https://stackoverflow.com/a/44281937, https://github.com/chiehmin/gdbus_test/blob/master/server.c, https://aleksander.es/data/GNOMEASIA2014%20-%20Introduction%20to%20DBus.pdf.

Notes

  • If we need to limit access to the interface to only Keyman, we can use polkit which allows to add a rule with an action that checks for the program.

  • to see the log file

    journalctl -f -u systemd-keyman
    
  • to monitor method calls

    sudo busctl monitor com.keyman.SystemService1