b80c5e3032
Formatting and changelog updates. ( #14 )
...
Reviewed-on: https://codeberg.org/annabunches/joyful/pulls/14
2026-09-12 16:29:51 +02:00
eviLu
7e4d4f3c20
Add support for setting vendor/device IDs ( #10 )
...
Sets vendor and product IDs, defaults to the prior default values.
This is needed for some games to be able to correctly identify the virtual devices since not all games support device indexes.
Reviewed-on: https://codeberg.org/annabunches/joyful/pulls/10
2026-09-12 16:22:43 +02:00
77ee020b2a
Add hold option to axis-to-button ( #13 )
...
Reviewed-on: https://codeberg.org/annabunches/joyful/pulls/13
2026-09-12 16:09:10 +02:00
5e005478f1
Basic hat support. ( #20 )
...
Reviewed-on: #20
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-09-15 17:55:55 +00:00
62befa045a
Remove debug statements.
2025-09-14 20:37:49 -04:00
2650159a81
Better deadzones ( #19 )
...
Reviewed-on: #19
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-09-14 23:11:56 +00:00
8a903e0703
Make enum values typed strings ( #18 )
...
This also moves validation into the parsing process and refactors a bunch of code related to the config.
Reviewed-on: #18
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-09-05 21:17:55 +00:00
8d2b15a7c8
Move initialization code closer to the appropriate structs. ( #17 )
...
Reviewed-on: #17
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-08-12 00:57:11 +00:00
d9babf5dc0
Improve config yaml schema ( #16 )
...
Leverages custom unmarshaling to be more declarative for our config specification.
Reviewed-on: #16
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-08-09 16:33:46 +00:00
329058b4b5
Support specifying physical devices via device file instead of device name. ( #15 )
...
Fixes https://codeberg.org/annabunches/joyful/issues/2
Reviewed-on: #15
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-08-05 20:02:45 +00:00
838449000c
Support keyboard buttons and add presets. ( #14 )
...
Reviewed-on: #14
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-08-04 19:55:56 +00:00
9652df9366
Add device locking with a flag to disable for testing.
2025-08-01 13:49:03 -04:00
9d262977f9
Add text-to-speech support. ( #13 )
...
Reviewed-on: #13
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-07-29 19:59:54 +00:00
3196d4ea22
Add support for combining 2 axes into one virtual axis. ( #11 )
...
Reviewed-on: #11
2025-07-28 17:45:16 +00:00
35bedfa58c
Remove debug statements.
2025-07-18 19:12:19 -04:00
97a1acd228
Add more deadzone specification options. ( #9 )
...
Reviewed-on: #9
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-07-18 23:10:12 +00:00
238faa9082
Fix button indexing.
2025-07-18 12:52:08 -04:00
46a28fda7a
Add tests for EventBuffer ( #7 )
...
Reviewed-on: #7
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-07-18 16:42:22 +00:00
3ffccf4c08
Add tests for parseCode ( #6 )
...
Reviewed-on: #6
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-07-17 23:06:28 +00:00
6ef0cbd07c
Allow all buttons and axes on virtual devices to be specified by either number or an explicit list. ( #5 )
...
Reviewed-on: #5
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-07-17 20:04:21 +00:00
712dcdbc07
Add more tests ( #4 )
...
This also refactors some of the code parsing logic.
Reviewed-on: #4
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-07-17 17:02:30 +00:00
a05dc9126d
Add support for multiple keycode formats. ( #3 )
...
Additionally:
- Increases maximum supported buttons per output device to 74.
- Updates documentation.
Reviewed-on: #3
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-07-16 23:27:29 +00:00
e1940006d8
Support live re-loading of rules. ( #2 )
...
Reviewed-on: #2
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-07-15 23:38:53 +00:00
e617a6eda6
Implement axis targets, axis -> button and axis -> relative axis mappings. ( #1 )
...
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-07-15 19:55:19 +00:00
ff38db6596
Big Refactor ( #2 )
...
Refactor Everything.
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-07-08 03:26:24 +00:00
a0949e719f
Start rulemapping refactor to be more explicit about typing intentions.
2025-07-06 17:22:05 -04:00
08fc828b46
Refactor mapping rules.
2025-07-06 15:46:48 -04:00
b9d02e6482
More refactoring, start implementing proportional axis...
2025-07-05 18:18:25 -04:00
cefd6a22b8
Improve rule generation error logging.
2025-07-05 12:01:02 -04:00
be0a1cf24c
Refactor rule generating code and check modes more thoroughly.
2025-07-05 11:56:48 -04:00
7ef62cbdc7
Rename mapping rules for consistent prefix.
2025-07-04 23:47:25 -04:00
3b75fd30e4
Use testify, write a couple more tests, and start a major refactor.
2025-07-04 23:40:34 -04:00
649fb5e377
An single test.
2025-07-04 20:28:38 -04:00
1f6c2517c0
Fix inverted buttons.
2025-07-04 19:11:39 -04:00
288a07eb73
Make modeless operation work more cleanly / remove implicit "main" mode.
2025-07-04 12:57:01 -04:00
2e501db084
Documentation updates.
2025-07-04 12:50:46 -04:00
db848db810
Fix up refactored rule targets.
2025-07-04 12:34:39 -04:00
c14ec074d1
WIP converting some functions into methods.
2025-07-04 10:14:04 -04:00
f773897509
Bugfixes.
2025-07-04 01:17:05 -04:00
4c76ad4f49
Start implementing timer logic for proportional axis checking.
2025-07-04 00:30:05 -04:00
bf1bb868e5
Start implementing a channel for timer-based events.
2025-07-03 18:11:37 -04:00
f12d119116
Formatting.
2025-07-03 17:10:56 -04:00
034d2a8718
Add ability to change modes via rules.
2025-07-03 17:10:46 -04:00
8fafe3d27c
Debugging rule processing.
2025-07-03 13:47:54 -04:00
cc37904fad
Initial implementation of modes, though they're not quite working.
2025-07-03 12:19:57 -04:00
15b9fa6ac0
Refactor and add some documentation (it'll be true soon enough)
2025-07-03 11:03:57 -04:00
f5283f33ca
Add latched rules.
2025-07-02 20:05:36 -04:00
a078dcb193
Read events from multiple devices.
2025-07-02 17:01:17 -04:00
a5b59bf39e
Fix combo rules and add some example config.
2025-07-02 14:53:52 -04:00
428749a519
Build rules from config.
2025-07-02 13:54:41 -04:00