Skip to content

Commit 9239a08

Browse files
committed
cleanup readme
1 parent ae2db37 commit 9239a08

File tree

2 files changed

+139
-130
lines changed

2 files changed

+139
-130
lines changed

faq.md

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
## Frequently Asked Questions (Old)
2+
3+
### What does the current version of Handheld Daemon do?
4+
The current version of HHD maps the x-input mode of the Legion Go controllers to
5+
a DualSense 5 Edge controller, which allows using all of the controller
6+
functions. In addition, it adds support for the Steam powerbutton action, so you
7+
get a wink when going to sleep mode.
8+
9+
When the controllers are not in x-input mode, HHD adds a shortcuts device so
10+
that combos such as Steam and QAM keep working.
11+
12+
### Steam reports a Legion Controller and a Shortcuts controller instead of a PS5
13+
The Legion controllers have multiple modes (namely x-input, d-input, dual d-input,
14+
and FPS).
15+
HHD only remaps the x-input mode of the controllers.
16+
You can cycle through the modes with Legion L + RB.
17+
18+
X-input and d-input refer to the protocol the controllers operate in.
19+
Both are legacy protocols introduced in the mid-2000s and are included for hardware
20+
support reasons.
21+
22+
X-input is a USB controller protocol introduced with the xbox 360 controller and
23+
is widely supported.
24+
Direct input is a competing protocol that works based on USB HID.
25+
Both work the same.
26+
The only difference between them is that d-input has discrete triggers for some
27+
reason, and some games read the button order wrong.
28+
29+
X-input requires a special udev rule to work, see below.
30+
31+
### Other Legion Go gamepad modes
32+
Handheld Daemon remaps the x-input mode of the Legion Go controllers into a PS5 controller.
33+
All other modes function as normal.
34+
In addition, Handheld Daemon adds a shortcuts device that allows remapping the back buttons
35+
and all Legion L, R + button combinations into shortcuts that will work accross
36+
all modes.
37+
38+
### I can not see any Legion Controllers controllers before or after installing
39+
Your kernel needs to know to use the `xpad` driver for the Legion Go's
40+
controllers.
41+
42+
This is expected to be included in a future Linux kernel, so it is not included
43+
by default by HHD.
44+
45+
In the mean time, [apply the patch](https://github.com/torvalds/linux/compare/master...appsforartists:linux:legion-go-controllers.patch), or add a `udev`
46+
rule:
47+
48+
49+
You will see the following in the HHD logs (`sudo systemctl status hhd@$(whoami)`)
50+
if you are missing the `xpad` rule.
51+
52+
```
53+
ERROR Device with the following not found:
54+
Vendor ID: ['17ef']
55+
Product ID: ['6182']
56+
Name: ['Generic X-Box pad']
57+
```
58+
59+
### Yuzu does not work with the PS5 controller
60+
See above.
61+
Use yuzu controller settings to select the DualSense controller and disable
62+
Steam Input.
63+
64+
### Freezing Gyro
65+
The gyro used for the PS5 controller is found in the display.
66+
It may freeze occasionally. This is due to the accelerometer driver being
67+
designed to be polled at 5hz, not 100hz.
68+
If that is the case, you need to reboot.
69+
70+
The gyro may exhibit stutters when being polled by `iio-sensor-proxy` to determine
71+
screen orientation.
72+
However, a udev rule that is installed by default disables this.
73+
74+
If you do not need gyro support, you should disable it for a .2% cpu utilisation
75+
reduction.
76+
77+
### No screen autorotation after install
78+
HHD includes a udev rule that disables screen autorotation, because it interferes
79+
with gyro support.
80+
This is only done specifically to the accelerometer of the Legion Go.
81+
If you do not need gyro, you can do the local install and modify
82+
`83-hhd.rules` to remove that rule.
83+
The gyro will freeze and will be unusable after that.
84+
85+
### Touchpad Behavior is different after install/is not part of dualsense
86+
By default, in the Legion Go the handheld daemon uses a virtual touchpad
87+
with proper left/right clicks, which work in gamescope.
88+
If you use your device outside gamescope and find this problematic, switch
89+
`Touchpad Emulation` to `Disabled`.
90+
If you want to use your touchpad for steam input, set the option to `Controller`
91+
and use the `Right Touchpad` under steam.
92+
93+
### HandyGCCS
94+
HHD replicates all functionality of HandyGCCS for the Legion Go, so it is not
95+
required. In addition, it will break HHD by hiding the controller.
96+
You should uninstall it with `sudo pacman -R handygccs-git`.
97+
98+
You will see the following in the HHD logs (`sudo systemctl status hhd@$(whoami)`)
99+
if HandyGCCS is enabled.
100+
```
101+
ERROR Device with the following not found:
102+
Vendor ID: ['17ef']
103+
Product ID: ['6182']
104+
Name: ['Generic X-Box pad']
105+
```
106+
107+
### Buttons are mapped incorrectly
108+
Buttons mapped in Legion Space will carry over to Linux.
109+
This includes both back buttons and legion swap.
110+
You can reset each controller by holding Legion R + RT + RB, Legion L + LT + LB.
111+
However, we do not know how to reset the Legion Space legion button swap at
112+
this point, so you need to use Legion Space for that.
113+
114+
Another set of obscure issues occur depending on how apps hook to the Dualsense controller.
115+
Certain versions of gamescope and certain games do not support the edge controller,
116+
so switch to `Dualsense` or `Xbox` emulation modes if you are having issues.
117+
118+
If Steam itself is broken and can not see the controllers properly (e.g., you
119+
can not see led/gyro settings or the Edge controller mapping is wrong), you
120+
should update your distribution and if that does not fix it consider re-installing.
121+
There are certain gamescope/distro issues that cause this and we are unsure of
122+
the cause at this moment.
123+
ChimeraOS 44 and certain versions of Nobara 38 and 39 have this issue.

readme.md

Lines changed: 16 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,22 @@ Provided these drivers are installed and are supported by your device,
242242
LED support will be enabled by default.
243243

244244
The paddles of the Ayn Loki Max are not remappable as far as we know.
245+
If the gyro driver is not installed and Motion is turned on, LED setting might
246+
not work.
247+
248+
#### Extra steps for Legion Go
249+
If you are using a kernel older than 6.8 and you are not on a gaming distro
250+
(ChimeraOS, Nobara, Bazzite), you need the following rule for the controllers
251+
to be recognized.
252+
```bash
253+
# Enable xpad for the Legion Go controllers
254+
ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="6182", RUN+="/sbin/modprobe xpad" RUN+="/bin/sh -c 'echo 17ef 6182 > /sys/bus/usb/drivers/xpad/new_id'"
255+
```
256+
257+
If you have set any mappings on Legion Space, they will interfere with Handheld
258+
Daemon.
259+
In this case, you may reset your controllers by holding Legion R + RT + RB,
260+
and then Legion L + LT + LB or booting into windows.
245261

246262
#### <a name="gyro"></a>Gyro Kernel Drivers
247263
Which kernel patch is required will depend on your device's bosch module.
@@ -362,7 +378,6 @@ and add this line to your `configuration.nix`:
362378
services.handheld-daemon.enable = true;
363379
```
364380

365-
366381
### Distribution Installation (not recommended)
367382
You can install Handheld Daemon from [AUR](https://aur.archlinux.org/packages/hhd)
368383
(Arch) or [COPR](https://copr.fedorainfracloud.org/coprs/hhd-dev/hhd/) (Fedora).
@@ -428,135 +443,6 @@ The global configuration for HHD is found in:
428443

429444
You can modify it and it will hot-reload upon saving.
430445

431-
## Frequently Asked Questions (FAQ)
432-
### What does the current version of HHD do?
433-
434-
The current version of HHD maps the x-input mode of the Legion Go controllers to
435-
a DualSense 5 Edge controller, which allows using all of the controller
436-
functions. In addition, it adds support for the Steam powerbutton action, so you
437-
get a wink when going to sleep mode.
438-
439-
When the controllers are not in x-input mode, HHD adds a shortcuts device so
440-
that combos such as Steam and QAM keep working.
441-
442-
### Steam reports a Legion Controller and a Shortcuts controller instead of a PS5
443-
The Legion controllers have multiple modes (namely x-input, d-input, dual d-input,
444-
and FPS).
445-
HHD only remaps the x-input mode of the controllers.
446-
You can cycle through the modes with Legion L + RB.
447-
448-
X-input and d-input refer to the protocol the controllers operate in.
449-
Both are legacy protocols introduced in the mid-2000s and are included for hardware
450-
support reasons.
451-
452-
X-input is a USB controller protocol introduced with the xbox 360 controller and
453-
is widely supported.
454-
Direct input is a competing protocol that works based on USB HID.
455-
Both work the same.
456-
The only difference between them is that d-input has discrete triggers for some
457-
reason, and some games read the button order wrong.
458-
459-
X-input requires a special udev rule to work, see below.
460-
461-
### Other Legion Go gamepad modes
462-
Handheld Daemon remaps the x-input mode of the Legion Go controllers into a PS5 controller.
463-
All other modes function as normal.
464-
In addition, Handheld Daemon adds a shortcuts device that allows remapping the back buttons
465-
and all Legion L, R + button combinations into shortcuts that will work accross
466-
all modes.
467-
468-
### I can not see any Legion Controllers controllers before or after installing
469-
Your kernel needs to know to use the `xpad` driver for the Legion Go's
470-
controllers.
471-
472-
This is expected to be included in a future Linux kernel, so it is not included
473-
by default by HHD.
474-
475-
In the mean time, [apply the patch](https://github.com/torvalds/linux/compare/master...appsforartists:linux:legion-go-controllers.patch), or add a `udev`
476-
rule:
477-
478-
#### `/etc/udev/rules.d/95-hhd.rules`
479-
```bash
480-
# Enable xpad for the Legion Go controllers
481-
ATTRS{idVendor}=="17ef", ATTRS{idProduct}=="6182", RUN+="/sbin/modprobe xpad" RUN+="/bin/sh -c 'echo 17ef 6182 > /sys/bus/usb/drivers/xpad/new_id'"
482-
```
483-
484-
You will see the following in the HHD logs (`sudo systemctl status hhd@$(whoami)`)
485-
if you are missing the `xpad` rule.
486-
487-
```
488-
ERROR Device with the following not found:
489-
Vendor ID: ['17ef']
490-
Product ID: ['6182']
491-
Name: ['Generic X-Box pad']
492-
```
493-
494-
### Yuzu does not work with the PS5 controller
495-
See above.
496-
Use yuzu controller settings to select the DualSense controller and disable
497-
Steam Input.
498-
499-
### Freezing Gyro
500-
The gyro used for the PS5 controller is found in the display.
501-
It may freeze occasionally. This is due to the accelerometer driver being
502-
designed to be polled at 5hz, not 100hz.
503-
If that is the case, you need to reboot.
504-
505-
The gyro may exhibit stutters when being polled by `iio-sensor-proxy` to determine
506-
screen orientation.
507-
However, a udev rule that is installed by default disables this.
508-
509-
If you do not need gyro support, you should disable it for a .2% cpu utilisation
510-
reduction.
511-
512-
### No screen autorotation after install
513-
HHD includes a udev rule that disables screen autorotation, because it interferes
514-
with gyro support.
515-
This is only done specifically to the accelerometer of the Legion Go.
516-
If you do not need gyro, you can do the local install and modify
517-
`83-hhd.rules` to remove that rule.
518-
The gyro will freeze and will be unusable after that.
519-
520-
### Touchpad Behavior is different after install/is not part of dualsense
521-
By default, in the Legion Go the handheld daemon uses a virtual touchpad
522-
with proper left/right clicks, which work in gamescope.
523-
If you use your device outside gamescope and find this problematic, switch
524-
`Touchpad Emulation` to `Disabled`.
525-
If you want to use your touchpad for steam input, set the option to `Controller`
526-
and use the `Right Touchpad` under steam.
527-
528-
### HandyGCCS
529-
HHD replicates all functionality of HandyGCCS for the Legion Go, so it is not
530-
required. In addition, it will break HHD by hiding the controller.
531-
You should uninstall it with `sudo pacman -R handygccs-git`.
532-
533-
You will see the following in the HHD logs (`sudo systemctl status hhd@$(whoami)`)
534-
if HandyGCCS is enabled.
535-
```
536-
ERROR Device with the following not found:
537-
Vendor ID: ['17ef']
538-
Product ID: ['6182']
539-
Name: ['Generic X-Box pad']
540-
```
541-
542-
### Buttons are mapped incorrectly
543-
Buttons mapped in Legion Space will carry over to Linux.
544-
This includes both back buttons and legion swap.
545-
You can reset each controller by holding Legion R + RT + RB, Legion L + LT + LB.
546-
However, we do not know how to reset the Legion Space legion button swap at
547-
this point, so you need to use Legion Space for that.
548-
549-
Another set of obscure issues occur depending on how apps hook to the Dualsense controller.
550-
Certain versions of gamescope and certain games do not support the edge controller,
551-
so switch to `Dualsense` or `Xbox` emulation modes if you are having issues.
552-
553-
If Steam itself is broken and can not see the controllers properly (e.g., you
554-
can not see led/gyro settings or the Edge controller mapping is wrong), you
555-
should update your distribution and if that does not fix it consider re-installing.
556-
There are certain gamescope/distro issues that cause this and we are unsure of
557-
the cause at this moment.
558-
ChimeraOS 44 and certain versions of Nobara 38 and 39 have this issue.
559-
560446
## Contributing
561447
### <a name="gyro"></a> Finding the correct axis for your device
562448
To figure the correct axis from your device, go to desktop and open the steam

0 commit comments

Comments
 (0)