spiegel-keyman/linux/keyman-system-service
Marc Durdin 900f248558 chore(common): cleanup meson deprecations and warnings
Most warnings have been cleaned up:

* min meson version is now 1.0
* additional parameters such as check, recursive added
* uses now global_source_root() instead of source_root()
* catting files on Windows wasn't actually working -- used in unit
  tests. This is because meson passes paths with forward slashes to
  cmd.exe `type` command, which doesn't understand them. This is bad,
  because we were running effectively null tests for the affected tests.
  Fortunately, the same tests were configured correctly on macOS and
  Linux, and were all passing, so no serious damage.

There is one significant warning left:

`WARNING: Project targets '>=1.0' but uses feature deprecated since
'0.64.0': copy arg in configure_file. Use fs.copyfile instead`

Refer to mesonbuild/meson#12792. I have opened a PR against that to
undeprecate `copy` kwarg in a future version of meson.

Fixes: #8399
2024-05-24 08:46:52 +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(common): cleanup meson deprecations and warnings 2024-05-24 08:46:52 +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