hhd-dev / hhd Goto Github PK
View Code? Open in Web Editor NEWHandheld Daemon, a tool for configuring handheld devices.
License: GNU General Public License v3.0
Handheld Daemon, a tool for configuring handheld devices.
License: GNU General Public License v3.0
Hello!
After installing hhd fron dnf, hhd does not start - it require additional packages: hidapi and acpi_call.
hidapi is available in repos, but acpi_call exists only in third-party repos or here https://github.com/MiMillieuh/acpi_call-fedora
It's a common issue that the shoulder trigger buttons don't work correctly. That is usually fixed through Armory Crate by setting a max percentage on each triggers.
How easy would it be to make this on option here? Also I don't mind forking and patching and building from source - it get's pretty annoying with racing games for example.
For reference my right trigger when fully pressed goes to around 28000 instead of 32767.
Example - https://www.youtube.com/watch?v=SIXmsfNa0PY
Other settings are fine and HDD is installed properly but on Ally the Gyro functionality just won't be activated.
I noticed this line in logs:
Could not find overlay displays, gamescope is not active.
It explains why hdd-ui doesn't launch in kwin when I press the hotkey, but the hotkey doesn't work even in games launched with gamescope. Is it because it requires wp_presentation? Plasma 5 doesn't support it.
Your Wayland compositor does NOT support wp_presentation/presentation-time which is required for VK_KHR_present_wait and VK_KHR_present_id.
The file readme.md
has a link to the URL github.com/hhd-dev/bmi260
:
To use the gyro, you will need a [dkms package](github.com/hhd-dev/bmi260) for the Bosch 260 IMU Driver.
The URL https://github.com/hhd-dev/bmi260
(note that https://
is prepended by me or my browser, it does not come from your URL) works, but when viewing the readme.md
in github.com that URL is converted to https://github.com/hhd-dev/hhd/blob/master/github.com/hhd-dev/bmi260
which leads to a non-existing page (HTTP error "404 not found").
I think you should either prefix https://
to or remove github.com
from your URL.
Regards!
I just played around with hhd-ui
and I found a button "update Decky" there.
It apparently did nothing, but on the terminal where hhd
runs it is printed:
Command 'curl -L https://github.com/hhd-dev/hhd-decky/raw/main/update.sh | HOME="/root/" sh' returned non-zero exit status 255.
So it actually invokes remote file download and execution as the local user. Without any warning. Without any looking-at.
This is a major security issue:
Also, it maybe does stuff on a system even when there is no "Decky" or when the decky plugin is installed via the package manager.
Please remove the option, or move it to an advanced section with an explicit explanation of whait does in the background and a big warning.
Regards!
I recently installed BazziteOS with HHD-decky
My device is Aokzoe A1
Upon restart HHD controller emulation works (e.g. dualsense) which makes the home and quick menu button work. However upon sleep and wake up of the device, the controller reverts to Xbox 360 controller that doesn't have support of the 2 buttons.
Any help would be very much appreciated
On GPD Win Max 2 (2003) setting Motion HZ to 1600 uses whopping 12% of one cpu core. Setting HZ to 50 reduces load to 2%, but it's still a lot.
Example output from systemd:
Loaded: loaded (/etc/systemd/system/[email protected]; enabled; preset: disabled)
Active: active (running) since Thu 2024-05-02 23:01:23 UTC; 31s ago
Main PID: 12976 (hhd)
Tasks: 4 (limit: 57414)
Memory: 38.0M
CPU: 4.297s
In 30 seconds since the daemon launch, it already used 4 seconds of CPU time.
I don't know how it's implemented in HHD, but can you do something about this? Just a couple of ideas out of the top of my head:
I have install a fresh, vanilla version of Fedora 39 Workstation Edition on my Lenovo Legion Go.
I have installed the acpi_call dkms package, then I installed hhd, adjuster and hhd-ui with the provided commands:
`# Fedora
sudo dnf copr enable hhd-dev/hhd
sudo dnf install hhd adjustor hhd-ui
sudo systemctl enable hhd@$(whoami)`
Unfortunately hhd does not run correctly.
The output of sudo systemctl status hhd@$(whoami)
gave
Main PID: 13944 (code=exited, status=1/FAILURE)
When I ran the command 'hhd' from the terminal, it outputted:
` _______ _______ ______
/ / ╲╲/ / ╲╲_/ ╲╲
/ // // //
/ / / /
╲___//╲/___/╲________/
[22:50] MAIN INFO Handheld Daemon starting...
MAIN INFO Running under an unknown Linux distro.
MAIN WARNING Plugin blacklist not found, using default (empty).
MAIN INFO Running autodetection...
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /usr/bin/hhd:8 in │
│ │
│ 5 from hhd.main import main │
│ 6 if name == "main": │
│ 7 │ sys.argv[0] = re.sub(r"(-script.pyw|.exe)?$", "", sys.argv[0]) │
│ ❱ 8 │ sys.exit(main()) │
│ 9 │
│ │
│ /usr/lib/python3.12/site-packages/hhd/main.py:193 in main │
│ │
│ 190 │ │ │ if name in blacklist: │
│ 191 │ │ │ │ logger.info(f"Skipping blacklisted provider '{name}'.") │
│ 192 │ │ │ else: │
│ ❱ 193 │ │ │ │ detectors[autodetect.name] = autodetect.resolve() │
│ 194 │ │ │
│ 195 │ │ # Save new blacklist file │
│ 196 │ │ save_blacklist_yaml(blacklist_fn, detector_names, blacklist) │
│ │
│ /usr/lib/python3.12/site-packages/pkg_resources/init.py:2523 in resolve │
│ │
│ 2520 │ │ """ │
│ 2521 │ │ Resolve the entry point from its module and attrs. │
│ 2522 │ │ """ │
│ ❱ 2523 │ │ module = import(self.module_name, fromlist=['name'], level=0) │
│ 2524 │ │ try: │
│ 2525 │ │ │ return functools.reduce(getattr, self.attrs, module) │
│ 2526 │ │ except AttributeError as exc: │
│ │
│ /usr/lib/python3.12/site-packages/hhd/device/gpd/win/init.py:15 in │
│ │
│ 12 │ get_gyro_config, │
│ 13 ) │
│ 14 from hhd.plugins.settings import HHDSettings │
│ ❱ 15 from hhd.controller.lib.hid import enumerate_unique │
│ 16 │
│ 17 from .const import GPD_WIN_MAX_2_2023_MAPPINGS, GPD_WIN_DEFAULT_MAPPINGS │
│ 18 │
│ │
│ /usr/lib/python3.12/site-packages/hhd/controller/lib/hid.py:34 in │
│ │
│ 31 │ error = "Unable to load any of the following libraries:{}".format( │
│ 32 │ │ " ".join(library_paths) │
│ 33 │ ) │
│ ❱ 34 │ raise ImportError(error) │
│ 35 │
│ 36 │
│ 37 hidapi.hid_init() │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
ImportError: Unable to load any of the following libraries:libhidapi-hidraw.so libhidapi-hidraw.so.0
`
Could anyone please advise and assist me on how to get this up and running on Fedora 39 Workstation Edition?
In the README it mentioned adding services.handheld=daemon.enable = true;
to your configuration.nix
, however, upon doing nixos-rebuiid
, the following error is thrown out:
building the system configuration...
error:
… while calling the 'head' builtin
at /nix/store/r1g09wfd968168f6drdl7agfaf3msik4-source/lib/attrsets.nix:1541:11:
1540| || pred here (elemAt values 1) (head values) then
1541| head values
| ^
1542| else
… while evaluating the attribute 'value'
at /nix/store/r1g09wfd968168f6drdl7agfaf3msik4-source/lib/modules.nix:809:9:
808| in warnDeprecation opt //
809| { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
810| inherit (res.defsFinal') highestPrio;
(stack trace truncated; use '--show-trace' to show the full trace)
error: The option `services.handheld-daemon.user' is used but not defined.
I decided to add services.handheld-daemon.user = "USERNAME";
per the error's suggestion and I was able to get a successful rebuild, alongside being able to connect to my HHD service through https://hhd.dev as well.
Is this just an edge case of my install being started out from 23.11 then upgraded to unstable, or is the instruction outdated?
Let me know if you need more info.
-Neon
in many games when i need to use the touch screen (miniMetro, Civilisation 5, VRChat) it doesn't work
sometime a cursor appears but no always i can't click when a game is runing.
i don't know if it's an probleme from HHD or my setup on my the legion go
if it can help i have made a vidéo of the issue
https://youtu.be/2wdDfE5XYbs
This is a follow up from this post in issue #29:
Your device is supported by the latest version, make sure you are using 1.0.4.
I use latest git checkout, currently at commit c980f91. git describe --tags
says v1.1.4-16-gc980f91
. (The release installation from the hhd
AUR package did not start up at all, so I made a hhd-git
package and used this.)
When I start hhd
as root, it prints:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Running as root without a specified user (`--user`). Configs will be placed at `/root/.config`.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
_______ _______ ______
/ / ╲╲/ / ╲╲_/ ╲╲
/ // // //
/ / / /
╲___/____/╲___/____/╲________/
[14:15] MAIN INFO Handheld Daemon starting...
MAIN INFO Running autodetection...
MAIN INFO Found plugin providers: ayaneo, gpd_win, legion_go, powerbuttond, rog_ally
MAIN INFO Loaded the following plugins:
- powerbuttond: powerbuttond@'uknown'
PBTN INFO Starting isa keyboard powerbutton handler for device 'uknown'.
MAIN INFO Reloading configuration.
PBTN INFO Waiting for steam to launch.
MAIN INFO No profiles found.
MAIN INFO Initialization Complete!
If it still does not work by default, I would greatly appreciate it if you could follow the steps below
OK,
and pull request me.
this I don't know how to do and is to complicated for me. I continue to report here, and you can directly include in your repository in a way that suits your coding.
Having this information is important for supporting devices. https://github.com/hhd-dev/hwinfo/tree/master/devices
It is probably due to a failed DMI check:
hhd/src/hhd/device/gpd/win/__init__.py
Line 20 in c980f91
On my system, files in /sys/devices/virtual/dmi/id/
say:
/sys/devices/virtual/dmi/id/product_name
: G1619-04
/sys/devices/virtual/dmi/id/board_name
: G1619-04
/sys/devices/virtual/dmi/id/uevent
: MODALIAS=dmi:bvnAmericanMegatrendsInternational,LLC.:bvr0.35:bd09/12/2023:br0.35:efr0.14:svnGPD:pnG1619-04:pvrVer.1.0:rvnGPD:rnG1619-04:rvrVer.1.0:cvnDefaultstring:ct10:cvrDefaultstring:sku7896559068635:
That is different from your G1619-05
.
/sys/devices/virtual/dmi/id/bios_release
: 0.35
I've submitted a patch to the kernel that adds the Legion Controller USB IDs to xpad
. This adds out-of-the-box support for all the buttons except {the rear paddles and the Legion buttons} to the Linux kernel. Due to a quirk with my work email setup and the Linux kernel contribution process, the patch is on hold until January.
I see
Hiding the original xbox controller!
in the README. I presume this means hhd
is compatible with the kernel patch, and I should carry-on submitting it when my email troubles are resolved next month. Is this correct?
Is there an easy way to toggle off the controller hiding. As far as I can tell it doesn't seem to be done with a udev rule but it still breaks my Xbox elite controller connected via Bluetooth.
Short press makes steam deck sleep
Since this isn't designed to be used on a physical Steam Deck, this wording is a bit ambiguous. Perhaps "short press initiates sleep/hibernate/hybrid sleep" (picking whichever one it does).
In steam, the accelerometer calibration bar is too high. In addition, for the legion go accelerometer is completely non-functional.
For the working devices, this is due to a scaling math error.
I'm seeing #51 on the Ally, always reproducible after suspend, running Bazzite. Notably changing device emulation does not fix it here though. I have to systemctl restart hhd@<username>
.
<resume at this exact moment>
Apr 26 11:43:22 ally hhd[10125]: ALLY ERROR Received the following error:
Apr 26 11:43:22 ally hhd[10125]: <class 'OSError'>: [Errno 19] No such device
Apr 26 11:43:22 ally hhd[10125]: ALLY ERROR Assuming controllers disconnected, restarting after 0.3s.
Apr 26 11:43:22 ally hhd[10125]: Exception in thread Thread-2 (plugin_run):
Apr 26 11:43:22 ally hhd[10125]: Traceback (most recent call last):
Apr 26 11:43:22 ally hhd[10125]: File "/usr/lib64/python3.12/threading.py", line 1073, in _bootstrap_inner
Apr 26 11:43:22 ally hhd[10125]: self.run()
Apr 26 11:43:22 ally hhd[10125]: File "/usr/lib64/python3.12/threading.py", line 1010, in run
Apr 26 11:43:22 ally hhd[10125]: self._target(*self._args, **self._kwargs)
Apr 26 11:43:22 ally hhd[10125]: File "/usr/lib/python3.12/site-packages/hhd/device/rog_ally/base.py", line 169, in plugin_run
Apr 26 11:43:22 ally hhd[10125]: raise e
Apr 26 11:43:22 ally hhd[10125]: File "/usr/lib/python3.12/site-packages/hhd/device/rog_ally/base.py", line 154, in plugin_run
Apr 26 11:43:22 ally hhd[10125]: controller_loop(conf.copy(), should_exit, updated, emit)
Apr 26 11:43:22 ally hhd[10125]: File "/usr/lib/python3.12/site-packages/hhd/device/rog_ally/base.py", line 268, in controller_loop
Apr 26 11:43:22 ally hhd[10125]: evs.extend(d.produce(r))
Apr 26 11:43:22 ally hhd[10125]: ^^^^^^^^^^^^
Apr 26 11:43:22 ally hhd[10125]: File "/usr/lib/python3.12/site-packages/hhd/controller/physical/evdev.py", line 377, in produce
Apr 26 11:43:22 ally hhd[10125]: for e in self.dev.read():
Apr 26 11:43:22 ally hhd[10125]: File "/usr/lib64/python3.12/site-packages/evdev/eventio.py", line 71, in read
Apr 26 11:43:22 ally hhd[10125]: events = _input.device_read_many(self.fd)
Apr 26 11:43:22 ally hhd[10125]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Apr 26 11:43:22 ally hhd[10125]: OSError: [Errno 19] No such device
This may be out of scope for HHD, apologies and please close if so.
I am on a ROG Ally, using Bazzite with the dualsense edge configuration applied. I am trying to configure gyro in RPCS3. The instructions are pretty much to just add your user to the input group and to disable Steam input.
However, it looks like gyro is still not exposed in RPCS3 even after doing that. Gyro works fine with my external controller though.
To configure, you open RPCS3, open the pads menu, select SDL, select your controller in the drop-down menu. Click configure under Motion Controls
, and move your controller around to make sure it's working.
I am interested in this for Folklore support primarily but a simple game to test this would be Super Rub'a'Dub.
Hello!
Are you planning to add GPD Winmax2 2022 to compatible devices list (Bosch 160)?
Thanks
I have a GPD win max2 and I tend to disable it before sleep. Unfortunately hhd will just keep retrying finding the device every second until it's back. There should be a better way for it to look for the device.
Hello, I have a GPD win mini 2024 and certain games aren’t functioning right with the use of the triggers… for example, in both Spider-Man miles morales and Spider-Man remastered the triggers just don’t work at all no input is shown when pushing down the triggers the only way I’ve gotten them to work is by disabling steam input but it’s inconvenient due to the fact that the game still receives input when I’m in the steam menus on bazzite… this problem is also in GTA V, days gone, and X-men origins Wolverine except disabling steam input in those games makes the controller stop working all together… every other game I’ve tried works fine it’s just those games and those are some of my favorite games so it’s unfortunate that this issue is happening with them… any help would be appreciated, thank you
Hi, I'm running Bazzite on Legion Go and wondering how I can emulate the Elite controller, when I choose Xbox it seems to be emulating a standard controller with no back button mapping.
I'm aware I can just use duelsense edge, but I don't use gyro, and prefer the virtual touchpad to the game one. Also, some games force playstation glyphs with it.
It also says in the readme that elite emulation is supported so just wondering if there are extra steps that I haven't found?
As someone new to Linux and Steam, my understanding of Linux gamepad support is:
As such, I would expect a novel controller (like the Legion Go) to announce "I have ABXY, start, select, mode, capture, D-pad, 2 sticks, 2 digital shoulders, 2 analog shoulders, 4 rear paddle buttons, and a scroll wheel," and then for those buttons to appear in Steam Input.
The button codes are defined in the kernel, and the mappings for the very similar Steam Deck are documented in the kernel.
Why does HHD pretend to be a PS Edge?
Device: Ayaneo Air (Standard) 16+512
System: Chimera OS 46 Unstable (SK Modified) repo
Version: newest (ce940eb)
Confirmed it was caused by hhd. It got stuck in such loop:
Feb 07 00:51:50 chimeraos kernel: usb 1-4: USB disconnect, device number 87
Feb 07 00:51:49 chimeraos (udev-worker)[4299]: event12: Process '/bin/systemctl start controller-wake@/dev/input/event12.service' failed with exit code 4.
Feb 07 00:51:49 chimeraos systemd[1]: Requested transaction contradicts existing jobs: Transaction for [email protected]/start is destructive (veritysetup.target has 'stop' job queued, but 'start' is included in transaction).
Feb 07 00:51:48 chimeraos (udev-worker)[4300]: js0: Process '/bin/systemctl start controller-wake@/dev/input/js0.service' failed with exit code 4.
Feb 07 00:51:48 chimeraos systemd[1]: Requested transaction contradicts existing jobs: Transaction for [email protected]/start is destructive (systemd-remount-fs.service has 'stop' job queued, but 'start' is included in transaction).
Feb 07 00:51:48 chimeraos (udev-worker)[4299]: input108: Process '/bin/systemctl start [email protected]' failed with exit code 1.
Feb 07 00:51:48 chimeraos kernel: input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:08.1/0000:04:00.3/usb1/1-4/1-4:1.0/input/input108
Feb 07 00:51:48 chimeraos kernel: usb 1-4: Manufacturer: ZhiXu
Feb 07 00:51:48 chimeraos kernel: usb 1-4: Product: Controller
Feb 07 00:51:48 chimeraos kernel: usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Feb 07 00:51:48 chimeraos kernel: usb 1-4: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.10
Feb 07 00:51:48 chimeraos kernel: usb 1-4: new full-speed USB device number 87 using xhci_hcd
Feb 07 00:51:48 chimeraos kernel: xpad 1-4:1.0: xpad_try_sending_next_out_packet - usb_submit_urb failed with result -19
Feb 07 00:51:48 chimeraos kernel: usb 1-4: USB disconnect, device number 86
This situation made hhd not able to gracefully shutdown. It would reach 1min30s timeout of systemd and be killed, then poweroff process continued.
Full log seen here: gist
So far, you provide only a HTTP configuration interface.
hhd --help
says I can also pass [command]
, but I find it nowhere documented.
Can you make this configurable also via command line, please?
So far I did not get anything meaningful out of this; I have a GPD Win Max 2 (2023), and hhd
only loads the plugin powerbuttond
.
Regards!
Handheld Daemon Version: 2.5.3
Handheld Daemon UI Version: 2.2.1
Adjustor (TDP) Version: 2.1.3
HHD Decky Version: 0.1.0
Tested on various recent releases of Bazzite OS based on Fedora 39.
So I have tried multiple different Bazzite releases and a few different versions of HHD that I know used to work and it didn't fix my issue.
The Legion L and R buttons on the True Strike controllers can be mapped to either Home / QAM access buttons or swapped to be Select / Start buttons. I started encountering an issue after some recent updates and maybe a hard reset or two where pressing Legion L / R buttons causes all other controller inputs to not be detected for a good half second or so. I have a feeling this input nullification is meant for the Home / QAM menu navigation, but when I am using those buttons as Start / Select I don't want my analog inputs or held buttons to be ignored or interrupted. At the same time the two buttons that act as Start / Select by default have no input nullification, inputs are not interrupted even when those buttons are mapped to Home / QAM.
I tried deleting every HHD folder within the home directory to no avail, rebasing hasn't helped, downgrading HHD hasn't helped, reinstalling the decky plugin, toggling on and off all settings hasn't helped, also tried factory resetting controllers to no avail. Not sure where else the issue could be but hopefully someone here may have an idea.
The hid
module appears to be a fork of @apmorton's pyhidapi.
There should be a credits section in the README to cite prior work.
Normally I'd say there should be a license header too, but since they're both MIT, I'm presuming it's fine.
I'm updating the decky plugin to directly pull the port num from the state.yml
file.
However, after updating the port num, the http server still keeps serving from the old port until manually restarting the hhd service.
Not sure if this is intentional or not, but filing a bug report just in case.
Can you add GPD Win 3 support?
journalctl | grep hhd
Jan 01 22:57:47 brenton-go hhd[1048]: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Jan 01 22:57:47 brenton-go hhd[1048]: Running as root without a specified user (`--user`). Configs will be placed at `/root/.config`.
Jan 01 22:57:47 brenton-go hhd[1048]: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Jan 01 22:57:47 brenton-go hhd[1048]: Failed getting permissions with error:
Jan 01 22:57:47 brenton-go hhd[1048]: [Errno 25] Inappropriate ioctl for device
Jan 01 22:57:47 brenton-go hhd[1048]: Could not get user information. Exiting...
Rolling back to 0.2.7 works. Adding the modules-load.d
rule doesn't change this issue.
I've gotten requests and questions from a few people already asking on how to disable m2 as screenshot.
please make it configurable via plugin or ui, I'm assuming the users just want to outright turn it off.
Hello! Can't install on ubuntu 24.04, error:
$ curl -L https://github.com/hhd-dev/hhd/raw/master/install.sh | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 1992 100 1992 0 0 1661 0 0:00:01 0:00:01 --:--:-- 14028
sh: 21: source: not found
sh: 22: pip: not found
after edit install.sh pip
-> pip3
it's ok:
$ ./install.sh
Collecting hhd
Downloading hhd-2.7.2.tar.gz (170 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 170.1/170.1 kB 264.9 kB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting adjustor
Downloading adjustor-2.1.5.tar.gz (32 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: evdev>=1.6.1 in /usr/lib/python3/dist-packages (from hhd) (1.7.0)
Requirement already satisfied: PyYAML>=6.0.1 in /usr/lib/python3/dist-packages (from hhd) (6.0.1)
Requirement already satisfied: rich>=13.5.2 in /usr/lib/python3/dist-packages (from hhd) (13.7.1)
Collecting setuptools>=65.5.0 (from hhd)
Using cached setuptools-69.5.1-py3-none-any.whl.metadata (6.2 kB)
Collecting python-xlib>=0.33 (from hhd)
Downloading python_xlib-0.33-py2.py3-none-any.whl.metadata (6.2 kB)
Collecting pyroute2>=0.7.3 (from adjustor)
Downloading pyroute2-0.7.12-py3-none-any.whl.metadata (8.2 kB)
Requirement already satisfied: six>=1.10.0 in /usr/lib/python3/dist-packages (from python-xlib>=0.33->hhd) (1.16.0)
Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/lib/python3/dist-packages (from rich>=13.5.2->hhd) (3.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/lib/python3/dist-packages (from rich>=13.5.2->hhd) (2.17.2)
Requirement already satisfied: mdurl~=0.1 in /usr/lib/python3/dist-packages (from markdown-it-py>=2.2.0->rich>=13.5.2->hhd) (0.1.2)
Downloading pyroute2-0.7.12-py3-none-any.whl (460 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 460.5/460.5 kB 615.7 kB/s eta 0:00:00
Downloading python_xlib-0.33-py2.py3-none-any.whl (182 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 182.2/182.2 kB 806.2 kB/s eta 0:00:00
Using cached setuptools-69.5.1-py3-none-any.whl (894 kB)
Building wheels for collected packages: hhd, adjustor
Building wheel for hhd (pyproject.toml) ... done
Created wheel for hhd: filename=hhd-2.7.2-py3-none-any.whl size=191232 sha256=fa56694c74188f331dc3c59b4639105b97899936b6c40cc09f1dec5d234c32f8
Stored in directory: /home/gene/.cache/pip/wheels/3b/99/90/68c3a7dd6b0569cbf8c462c94ccb66e48263629d6246629224
Building wheel for adjustor (pyproject.toml) ... done
Created wheel for adjustor: filename=adjustor-2.1.5-py3-none-any.whl size=37044 sha256=87984208201a506caa288dee4f26b09ac1881811fd893a391a8b6d375840297a
Stored in directory: /home/gene/.cache/pip/wheels/f6/3c/da/66345fca46ba03ebe5f9a1a00adbd5db929c6f7a01f5b94f83
Successfully built hhd adjustor
Installing collected packages: pyroute2, setuptools, python-xlib, hhd, adjustor
Successfully installed adjustor-2.1.5 hhd-2.7.2 pyroute2-0.7.12 python-xlib-0.33 setuptools-69.5.1
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1400 100 1400 0 0 10129 0 --:--:-- --:--:-- --:--:-- 10144
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 604 100 604 0 0 4676 0 --:--:-- --:--:-- --:--:-- 4718
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 191 100 191 0 0 1336 0 --:--:-- --:--:-- --:--:-- 1345
ln: не удалось создать символьную ссылку '/home/gene/.local/bin/hhd': Файл существует
ln: не удалось создать символьную ссылку '/home/gene/.local/bin/hhd.contrib': Файл существует
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 102M 100 102M 0 0 15.1M 0 0:00:06 0:00:06 --:--:-- 22.9M
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!! Do not forget to remove a Bundled Handheld Daemon if your distro preinstalls it. !!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Reboot!
There is a linux service/rule that runs on boot and after every add
trigger of udev that applies group rw
to input devices.
The udev rule applied by hhd to hide the controller runs chmod 000
after the rule application, which overrides it. However, on boot, the service/rule starts/is applied after hhd hides the controller, resulting in the controller not being hidden.
Identify what this service/rule is and make hhd run after it.
As in description, swap_legion isn't working correctly for me. It also is using terms that are unique to DualShock 4 and older controllers (select and start don't exist anymore, those buttons are "create" and "options" now). Unless, of course this is meant to simulate clicking on the left or right of a DS5 trackpad - despite the steam UI suggesting the "create" and "options" buttons being activtated.
I'll assume that "create" == "select" and "options" == "start" since that appears to be what you mean.
In that case, things still don't line up:
I suspect that the issue could be related to the NoneType you used here - https://github.com/antheas/hhd/blame/3a0e7d2607c97d49d4f51c1a25809d1d985a723f/src/hhd/device/legion_go/base.py#L309
But I haven't had a chance to confirm that yet by trying it locally.
On Gpd win mini I'm obliged to open the UI and disable emulation(decky or desktop) to make work again the touchpad in desktop mode with gestures(that on a similar device means using it like a normal device)
Is it eventually possible to add a toggle to make possible an automatic on/off like said in the title?
Cause in gamemode having touchpad emulation (controller or virtual) is the only way to have an effective left click from the touchpad.(while it messes up things on the desktop)
Ps: I'm on bazzite
When using the DualSense Edge bindings for the Legion Go, every button is accounted for except Legion R, which gets chorded into two buttons. Unfortunately, the chording prevents this key from being remapped in Steam.
Is it possible to choose which button gets chorded, to allow the others to be mapped in Steam?
I've just packaged this for NixOS and tested it.
The buttons Steam sees don't match the physical location on the device. For instance:
I tried remapping them with Setup Device Inputs
. When I got to the "click the touchpad" section, it wasn't registering my touchpad clicks. It never asked me for rear paddles.
I guess I'll have to reboot into Windows and use Legion Space to swap my start+select and Legion buttons. I've been doing it in Steam Settings with the xpad
driver, but since the menu button is chorded with hhd
, it isn't easily swapped in Steam Settings.
Also, I'm still seeing the Legion Controller in Steam Settings in 0.2.6.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.