Update documentation.

This commit is contained in:
Anna Rose Wiggins 2025-08-04 15:27:25 -04:00
parent 97e1aa83e3
commit e4246dd62e
2 changed files with 7 additions and 6 deletions

View file

@ -22,6 +22,7 @@ Each entry in `devices` must have a couple of parameters:
A couple of additional notes on virtual devices: A couple of additional notes on virtual devices:
* Users are encouraged to use the `preset` options whenever possible. They have the highest probability of working the way you expect. If you need to output to multiple types of device, the best approach is to create multiple virtual devices.
* For all 3 of the above options, there is a priority order. If you specify a `preset`, it will be used ignoring any other settings. An explicit list will override the corresponding `num_` parameter. * For all 3 of the above options, there is a priority order. If you specify a `preset`, it will be used ignoring any other settings. An explicit list will override the corresponding `num_` parameter.
* Some environments/applications are prescriptive about what combinations make sense; for example, they will only register mouse events if the device *only* supports mouse-like events. The `presets` attempt to take this into account. If you are defining capabilities manually and attempt to mix and match button codes, you may also run into this problem. * Some environments/applications are prescriptive about what combinations make sense; for example, they will only register mouse events if the device *only* supports mouse-like events. The `presets` attempt to take this into account. If you are defining capabilities manually and attempt to mix and match button codes, you may also run into this problem.

View file

@ -18,6 +18,7 @@ Joyful is ideal for Linux gamers who enjoy space and flight sims and miss the fe
* "Combined" axis mapping: map two physical axes to one virtual axis. * "Combined" axis mapping: map two physical axes to one virtual axis.
* Axis -> button mapping with optional "proportional" repeat speed (i.e. repeat faster as the axis is engaged further) * Axis -> button mapping with optional "proportional" repeat speed (i.e. repeat faster as the axis is engaged further)
* Axis -> Relative Axis mapping, for converting a joystick axis to mouse movement and scrollwheel events. * Axis -> Relative Axis mapping, for converting a joystick axis to mouse movement and scrollwheel events.
* Define keyboard, mouse, and gamepad outputs in addition to joysticks.
* Configure per-rule configurable deadzones for axes, with multiple ways to specify deadzones. * Configure per-rule configurable deadzones for axes, with multiple ways to specify deadzones.
* Define multiple modes with per-mode behavior. * Define multiple modes with per-mode behavior.
* Text-to-speech engine that announces the current mode when it changes. * Text-to-speech engine that announces the current mode when it changes.
@ -26,10 +27,9 @@ Joyful is ideal for Linux gamers who enjoy space and flight sims and miss the fe
* Macros - have a single input produce a sequence of button presses with configurable pauses. * Macros - have a single input produce a sequence of button presses with configurable pauses.
* Sequence combos - Button1, Button2, Button3 -> VirtualButtonA * Sequence combos - Button1, Button2, Button3 -> VirtualButtonA
* Output keyboard button presses
* Hat support * Hat support
* HIDRAW support for more button options. * HIDRAW support for more button options.
* Sensitivity Curves. * Sensitivity Curves?
* Packaged builds for Arch and possibly other distributions. * Packaged builds for Arch and possibly other distributions.
## Configure ## Configure
@ -87,10 +87,10 @@ Pressing `<enter>` in the running terminal window will reload the `rules` sectio
## Technical details ## Technical details
Joyful is written in golang, and uses `evdev`/`uinput` to manage devices, `piper` and `oto` for TTS. See [cmd/joyful/main.go](cmd/joyful/main.go) for the program's entry point. Joyful is written in golang, and uses `evdev`/`uinput` to manage devices and `espeak-ng` for TTS. See [cmd/joyful/main.go](cmd/joyful/main.go) for the program's entry point.
This was originally going to be a Rust project, but the author's Rust skills weren't quite up to the task yet. Please look forward to the inevitable Rust rewrite.
### Contributing ### Contributing
Send patches and questions to [annabunches@gmail.com](mailto:annabunches@gmail.com). Make sure the subject of your email starts with `[Joyful]`. Issues and pull requests should be made on the [Codeberg mirror](https://codeberg.org/annabunches/joyful).
If enough people show an interest in contributing, I'll consider mirroring the repository on Github.