libx52/daemon
nirenjan 75f0125f54 feat: Add layout file parsing to x52d
This change is an initial step to adding support for profiles in x52d.
This will allow the user to create a keyboard layout in an easy to
read/write text based format, and have it compiled into a flat layout
that's easy for the daemon to parse and load into memory. This layout
can then be used to map a user's action key to the actual input usage
needed. This is necessary, because keyboards don't actually send the
character that is typed, but just the position on the keyboard. For
example, on a French AZERTY keyboard, the A key would actually send the
usage for `Keyboard_q_and_Q`. The OS would translate that into the
letter 'a' (or 'A' if Shift key is held) and pass that to the active
window.

This commit adds the full logic necessary for the layout loading,
validation and compiling, as well as tests for the compiler and loader.
2026-04-04 23:16:51 -07:00
..
tests Add test case for setting unknown configuration value 2022-09-22 22:14:44 -07:00
client.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
client.h refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
clock.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
clock.h refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
comm_client.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
comm_internal.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
command.c feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
command.h refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
config.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
config.def feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
config.h feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
config_dump.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
config_parser.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
constants.h feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
crc32.c feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
crc32.h feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
crc32_test.c feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
daemon.dox Update daemon documentation to include notify socket 2022-09-21 20:08:58 -07:00
daemon_control.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
device.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
device.h refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
io.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
io.h refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
keyboard_layout.c feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
keyboard_layout.h feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
layout_format.h feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
layout_load.c feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
layout_load_test.c feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
layout_usage_allowlist.c feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
layout_usage_allowlist.h feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
layout_usage_allowlist_test.c feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
led.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
main.c feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
meson.build feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
mouse.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
mouse.h refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
mouse_handler.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
mouse_test.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
notify.c refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
notify.h refactor: Rename daemon sources to remove x52d_ prefix 2026-04-03 23:50:18 -07:00
protocol.dox Update daemon protocol documentation 2023-01-04 10:07:20 -08:00
test_daemon_comm.py feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
x52d.conf feat: Add layout file parsing to x52d 2026-04-04 23:16:51 -07:00
x52d.service.in Revert "Enable verbose logging in systemd service" 2021-10-05 22:38:34 -07:00
x52dcomm-internal.h Move common socket code into x52d_comm_internal.c 2023-01-04 08:42:47 -08:00
x52dcomm.h feat: Update symbol visibility 2026-03-30 22:35:52 -07:00