spiegel-keyman/linux/keyman-system-service
Marc Durdin f394245636 maint(common): consolidate builder scripts
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.

Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh

Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
  android/build.sh.
* Renames functions in builder-basic.inc.sh

More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.

Fixes: #14065
Build-bot: build all
Test-bot: skip
2025-08-02 08:11:24 +10:00
..
man maint(linux): fix lintian warnings 2025-05-13 20:07:32 +02:00
resources fix(linux): configurable path in .service file when using basu 2025-05-19 09:46:41 +02:00
src refactor(linux): move dbus defines to common include 2025-07-25 19:39:50 +02:00
tests docs(linux): update readme for test service 2025-07-25 19:51:47 +02:00
.gitignore maint(linux): fix lintian warnings 2025-05-13 20:07:32 +02:00
build.sh maint(common): consolidate builder scripts 2025-08-02 08:11:24 +10:00
meson.build maint(common): use cpp_std=c++17 in meson project default_options 2025-08-01 10:23:57 +10: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