spiegel-keyman/linux/keyman-system-service
Eberhard Beilharz 4d81589f48
maint(common): use unique names for Keyman version variables
Previously the builder scripts defined a readonly `VERSION` environment
variable for the Keyman version. That caused problems when another
(external) script tried to define a `VERSION` variable. We encountered
this problem when trying to move the TC build steps of a configuration
into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.

This change uses a Keyman specific prefix for the version variables and
renames `VERSION` → `KEYMAN_VERSION` etc. Unfortunately these variables
are used in a lot of places, so this turned out to be a bit of a yak
shave.

Test-bot: skip
2025-05-07 18:46:51 +02:00
..
man chore(linux): Fix lintian warnings 2023-06-05 17:18:55 +02:00
resources maint(common): use unique names for Keyman version variables 2025-05-07 18:46:51 +02:00
src chore(linux): address code review comments 2025-02-19 10:59:44 +01:00
tests chore(linux): add a stub unit test to allow successful coverage reporting 2025-04-23 18:52:10 +02:00
.gitignore chore(linux): use shared meson config 2024-06-24 19:08:12 +02:00
build.sh maint(common): consolidate standard.meson.build configuration 2025-04-30 09:16:43 +07:00
meson.build maint(common): cleanup meson versioning 2025-04-30 08:23:05 +07: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