spiegel-keyman/linux/keyman-system-service
Eberhard Beilharz 2a19a2fb12
chore(linux): Fix coverage report creation for keyman-system-service
Since keyman-system-service is a dependency of ibus-keyman it gets
build when ibus-keyman gets build. However, in that case the `--coverage`
flag doesn't get passed through in which case the `coverage-html`
target is missing from ninja. This change fixes this problem by checking
if ninja has the `coverage-html` target. If not we remove the output
directory which causes the configure action to run again with the
`--coverage` option.
2023-10-18 10:32:41 +02: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(linux): Fix coverage report creation for keyman-system-service 2023-10-18 10:32:41 +02: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