shadowblip / handygccs Goto Github PK
View Code? Open in Web Editor NEWHandheld Game Console Controller Support (Handy Geeks) for Linux
License: GNU General Public License v3.0
Handheld Game Console Controller Support (Handy Geeks) for Linux
License: GNU General Public License v3.0
hi, I'm getting this message in the logs on ayaneo retro power on latest holoiso and latest handycon. Is there something I'm missing in my setup?
The ONEXPLAYER Gundam has different codes than other devices in the same family.
Just found out that constants.py
doesn't get copied over when installing from AUR.
Not sure if every other file is there or not but after copying constants.py
over to /usr/local/bin
the AUR installation works again.
Holoiso update itself to 3.4. Is there a fix, or a possibility to disable Steam Deck Updates?
The steam deck has haptic feedback when a OSK is pressed. I would like to have this functionality with non-deck hardware as well.
HandyGCCS will crash if another program or system event takes control of the hardware controller or keyboard.
Known causes:
We need a way to detect a missing device, await the return of that device, and to restart the event loop for that device.
Utilize optional gyro support from BMI160 chips in OXP/AN devices.
The WM2 also has:
/sys/bus/iio/devices/iio:device0
.KEYBOARD_KEY
with press and release events associated with /dev/input/event7
.Aya neo air pro (5825) gyroscope support?
THANK you
Installation from the AUR says the latest is 22.11.3.54c68f5-1
but always installs 22.11.1.54c68f5-1
.
It's been like this for a few days now, this keeps bugging me whenever I check to do a system update.
Not sure if this is an AUR issue but thought I mention it.
System ID:
Win600
X-Box 360 Device:
Microsoft X-Box 360 pad | usb-0000:02:00.3-5/input0 | bustype: 3 vendor: 1118 product: 654 version: 272
keyboard Device:
AT Translated Set 2 keyboard | isa0060/serio0/input0 | bustype: 17 vendor: 1 product: 1 version: 43907
All Devices:
Microsoft X-Box 360 pad 0 | | bustype: 3 vendor: 10462 product: 4607 version: 1
Microsoft X-Box 360 pad | usb-0000:02:00.3-5/input0 | bustype: 3 vendor: 1118 product: 654 version: 272
AT Translated Set 2 keyboard | isa0060/serio0/input0 | bustype: 17 vendor: 1 product: 1 version: 43907
Captured Keymaps:
[125] -- "Win Button" being pressed (Right side)
[34, 125] -- "Home" button being pressed (Left side)
Following request:
Map [34, 125] to normal home press, and [125] to QAM on gamepadui
I just gave your project a try on my Win Max 2 running Fedora Silverblue. I had to make some changes here and there to get it to run (some IDs are different -- but different subject). Once I had it running, I realized that the currently implemented gyro support basically behaves like right joystick inputs. I was wondering; would it be possible for HandyGCCS to work in such a way that it basically behaves like a DualShock 4 controller, with "native" gyro support? If so, what do you think that would entail?
Thank you!
I got a new device AOKZOE A1 AR07
Report according to your instructions
System ID:
AOKZOE A1 AR07
X-Box 360 Device:
keyboard Device:
AT Translated Set 2 keyboard | isa0060/serio0/input0 | bustype: 17 vendor: 1 product: 1 version: 43907
All Devices:
Microsoft X-Box 360 pad | usb-0000:04:00.3-4/input0 | bustype: 3 vendor: 1118 product: 654 version: 41474
AT Translated Set 2 keyboard | isa0060/serio0/input0 | bustype: 17 vendor: 1 product: 1 version: 43907
Captured Keymaps:
I have followed the instructions manually.
But my power button, volume button, Ayaneo button(Steam button) make no response.
Since the initial "Aprils Fools Day" a lot of "drama" is happening around ASUS and their gaming handheld. I was able to boot a current Gnome daily build by going thru some hoops. Now that version is on a USB-C Stick installed so I can experiment with the device.
A current probe can be found here
Would be nice to see some support for the missing buttons.
My 2021 seems to be stuck in limbo but thankfully my Air Pro came so was wondering if there will be support to modify the Air's analog stick LEDs, personally I want to turn them off cause it's quite bright.
here is the data from capture_system.py (running latest holoiso build)
System ID:
AOKZOE A1 AR07
X-Box 360 Device:
keyboard Device:
All Devices:
Microsoft X-Box 360 pad 1 | | bustype: 3 vendor: 10462 product: 4607 version: 1
Microsoft X-Box 360 pad 0 | | bustype: 3 vendor: 10462 product: 4607 version: 1
Microsoft X-Box 360 pad | usb-0000:e4:00.3-4/input0 | bustype: 3 vendor: 1118 product: 654 version: 41474
Handheld Controller | py-evdev-uinput | bustype: 3 vendor: 1118 product: 654 version: 272
HD-Audio Generic Headphone | ALSA | bustype: 0 vendor: 0 product: 0 version: 0
HD-Audio Generic Mic | ALSA | bustype: 0 vendor: 0 product: 0 version: 0
HD-Audio Generic HDMI/DP,pcm=7 | ALSA | bustype: 0 vendor: 0 product: 0 version: 0
HD-Audio Generic HDMI/DP,pcm=3 | ALSA | bustype: 0 vendor: 0 product: 0 version: 0
GXTP7385:00 27C6:0118 Keyboard | i2c-GXTP7385:00 | bustype: 24 vendor: 10182 product: 280 version: 256
GXTP7385:00 27C6:0118 UNKNOWN | i2c-GXTP7385:00 | bustype: 24 vendor: 10182 product: 280 version: 256
GXTP7385:00 27C6:0118 Stylus | i2c-GXTP7385:00 | bustype: 24 vendor: 10182 product: 280 version: 256
GXTP7385:00 27C6:0118 | i2c-GXTP7385:00 | bustype: 24 vendor: 10182 product: 280 version: 256
PC Speaker | isa0061/input0 | bustype: 16 vendor: 31 product: 1 version: 256
Video Bus | LNXVIDEO/video/input0 | bustype: 25 vendor: 0 product: 6 version: 0
MM711 Lite Gaming Mouse COOLER MASTER | usb-0000:e5:00.0-1/input1 | bustype: 3 vendor: 6700 product: 45057 version: 273
Power Button | LNXPWRBN/button/input0 | bustype: 25 vendor: 0 product: 1 version: 0
Power Button | PNP0C0C/button/input0 | bustype: 25 vendor: 0 product: 1 version: 0
Captured Keymaps:
Hi, I find there is no force feedback in Ayaneo Air. I tried the python script. The do_rumble()
function is working as expected. Do you have something in mind that I can try?
After GPD WinMax2 support was added, a bug was noted when starting the service at boot time on some devices. This has been observed on the OneXPlayer Mini AMD and the AOK ZOE A1
Nov 25 20:00:32 chimeraos systemd[1]: Started Handheld Game Console Controller Service.
Nov 25 20:00:32 chimeraos python3[485]: Traceback (most recent call last):
Nov 25 20:00:32 chimeraos python3[485]: File "/usr/local/bin/handycon.py", line 65, in <module>
Nov 25 20:00:32 chimeraos python3[485]: who = [(w[0], re.search(r"(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2})", w[1]).groups()[0]) for w in who]
Nov 25 20:00:32 chimeraos python3[485]: File "/usr/local/bin/handycon.py", line 65, in <listcomp>
Nov 25 20:00:32 chimeraos python3[485]: who = [(w[0], re.search(r"(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2})", w[1]).groups()[0]) for w in who]
Nov 25 20:00:32 chimeraos python3[485]: IndexError: list index out of range
Nov 25 20:00:32 chimeraos systemd[1]: handycon.service: Main process exited, code=exited, status=1/FAILURE
Nov 25 20:00:32 chimeraos systemd[1]: handycon.service: Failed with result 'exit-code'.
Add support for OneXPlayer devices.
Known devices:
oxp-1s
oxp-amd
oxp-mini
oxp-mini-amd
Due to bad EDID/DMI data, we will need to identify a simple way to isloate a specific device.
OneX Player 1S 1195G7 capture
onexplayer_Intel_mini_capture.txt
Might sound like a weird request but would it be possible to add extra functionality to each button?
For example, I can configure in handycon.py so the on my Aya Neo Air Pro, I can press the small button once for the keyboard or long press for Ctrl+Alt+Esc.
Additionally can adjust the time between presses.
Hope I am doing this right, very new to this.
Installed on latest Holoiso on Aya Neo founder (1st IGG batch).
Used “esc” to enable and the gyro controls and they barely register or stutter and act unexpectedly in conjunction with the stick.
Is there a way tune this by adjusting one of the config files?
Had Gyro working relatively well in windows with Handheld Companion.
thank you so much creating this - button mapping is great.
For some reason handcon isn't being detected after being installed from the AUR.
What am I meant to write to customize the button?
button2 = QAM
How should I write KEY_LEFTMETA
, KEY_LEFTCTRL
and KEY_ESC
to get it to apply and work?
Testing system holoiso. In kernel 6.0 and 6.1, the 'AT Translated Set 2 keyboard' device cannot be driven properly. However, it can be driven by rolling back to kernel 5.19.
The gyroscope sensor is not BMI160 but a device with HID BOSC0200.
AirPlus can use this test that I modified: https://github.com/honjow/HandyGCCS
DSDT file
plus_dsdt.tar.gz
Refactor the project to be more like other python modules in a way that can be distributed more easily.
I can do some PRs to this if you agree. The ultimate goal is to convert it to a build/install wheel that can be managed by the python installer and hopefully can be easier to packagers of other distros or even the AUR.
Move away from bool checks for keypresses on custom keys and switch to queueing events that are only emitted when key-up events occur, or long-press events override. This will allow two mode buttons to function correctly. Normal joy and controller events should still be passed through to ensure response time of the controller isn't effected during gameplay.
Just noticed strange behavior regarding the power button.
When handycon is started, the power button is intermittent, requiring multiple presses to enter the power menu.
When handycon is stopped, the power button works as intended, only requiring one press to enter the power menu.
I don't think this is intended.
Utilize a stream plug-in manager to enable/disable the controller, remap optional keys, and calibrate or adjust sensitivity of the gyros. Requires saving configurations
capture_file.txt
After I press it, what is captured is the home button
It also has 2 buttons on the back
But after pressing, nothing catches
Use the controller service from https://github.com/ShadowBlip/aya-neo-fixes as a baseline for this repository.
gamer chimeraos journalctl.txt
Device:
AOKZOE A1
Issues:
Built in controller starts to wig out. Input is delayed and only reconized when the key/joysticks/buttons are held. Once they are held the controller goes unresponsive. Almost like stickey keys where the keys aren't pressed but the previous input is sustained.
Solution:
Disabling the "Handycon" service fixes the controller unresponsiveness issue. But the sustained input continues.
Attached the history of the service as well.
i have a win 4 and getting this all the time
Mai 20 00:25:40 gpdwin4 python3[681]: [230520_00:25:40 | handycon.py:999:capture_controller_events] Attempting to grab controller device...
Mai 20 00:25:40 gpdwin4 python3[681]: [230520_00:25:40 | handycon.py:399:get_controller] Controller device not yet found. Restarting scan.
Mai 20 00:25:41 gpdwin4 python3[681]: [230520_00:25:41 | handycon.py:948:capture_keyboard_events] Attempting to grab keyboard device...
Mai 20 00:25:41 gpdwin4 python3[681]: [230520_00:25:41 | handycon.py:434:get_keyboard] Keyboard device not yet found. Restarting scan.
Mai 20 00:25:41 gpdwin4 python3[681]: [230520_00:25:41 | handycon.py:999:capture_controller_events] Attempting to grab controller device...
Mai 20 00:25:41 gpdwin4 python3[681]: [230520_00:25:41 | handycon.py:399:get_controller] Controller device not yet found. Restarting scan.
Mai 20 00:25:42 gpdwin4 python3[681]: [230520_00:25:42 | handycon.py:948:capture_keyboard_events] Attempting to grab keyboard device...
Mai 20 00:25:43 gpdwin4 python3[681]: [230520_00:25:43 | handycon.py:434:get_keyboard] Keyboard device not yet found. Restarting scan.
His ID is ONEXPLAYER Mini Pro
I know this is designed with HoloISO in mind however I would like to make a personal edit so I can map the extra buttons on my founders unit to the equivalent value such as to open the start menu etc but I don't know what values to change, I'm not a programmer just an ordinary user and want some help.
Report from ChimeraOS v36 testing that RetroArch has inverted x/y axes on the right stick using OneXPlayer Mini 5800U. The possible root causes are:
Using Holoiso, on an Aya Neo Next.
after typing sudo make install in konsole, getting this error.
'HandyGCCS-Controller.cfg' -> '/usr/share/libretro/autoconfig/udev/'
cp: cannot create regular file '/usr/share/libretro/autoconfig/udev/': No such file or directory
make: *** [makefile:3: install] Error 1
Note: The only other things I've installed are Crankshaft and some related plugins as well as a couple games to try out.
Let me know if more information is needed.
the extra button works after the fix but nothing else work. using the latest holoiso
I noticed strange behavior as when I try to change volume duckstation quits without warning, I tested this and it happens with almost all of the extra buttons except the standard xbox controls but only when the handycon service is active. When disabled duckstation remains open when changing voltume or opening the keyboard etc.
with this fix, everything seems to work fine expect you need to press "x+steam" rather then "steam+x" like the steam deck to bring up the OSK on destop mode, took me a while to figure out.
Is there a way to avoid this?
(ng@holoiso ~)$ cd HandyGCCS
(ng@holoiso HandyGCCS)$ sudo make install
./install.sh
Installing HandyGCCS...
:: Synchronizing package databases...
holoiso-stable is up to date
holostaging is up to date
jupiter.db failed to download
holo.db failed to download
core.db failed to download
extra.db failed to download
community.db failed to download
error: failed retrieving file 'jupiter.db' from steamdeck-packages.steamos.cloud : The requested URL returned error: 404
error: failed retrieving file 'holo.db' from steamdeck-packages.steamos.cloud : The requested URL returned error: 404
error: failed retrieving file 'core.db' from steamdeck-packages.steamos.cloud : The requested URL returned error: 404
warning: too many errors from steamdeck-packages.steamos.cloud, skipping for the remainder of this transaction
error: failed retrieving file 'community.db' from steamdeck-packages.steamos.cloud : The requested URL returned error: 404
error: failed retrieving file 'extra.db' from steamdeck-packages.steamos.cloud : The requested URL returned error: 404
error: failed to synchronize all databases (failed to retrieve some files)
make: *** [makefile:3: install] Error 1
I have tried to use the configuration of AIR and AIR Pro, but it doesn't work, the OS is holoiso.
I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:08/PNP0C09:00/PNP0C0D:00/input/input0
U: Uniq=
H: Handlers=event0
B: PROP=0
B: EV=21
B: SW=1
I: Bus=0019 Vendor=0000 Product=0003 Version=0000
N: Name="Sleep Button"
P: Phys=PNP0C0E/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input1
U: Uniq=
H: Handlers=kbd event1
B: PROP=0
B: EV=3
B: KEY=4000 0 0
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input2
U: Uniq=
H: Handlers=kbd event2
B: PROP=0
B: EV=3
B: KEY=10000000000000 0
I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input3
U: Uniq=
H: Handlers=kbd event3
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0
I: Bus=0003 Vendor=6080 Product=8061 Version=0110
N: Name="AMR-4630-XXX-0- 0-1023 USB KEYBOARD"
P: Phys=usb-0000:00:14.0-4/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4:1.0/0003:6080:8061.0001/input/input4
U: Uniq=
H: Handlers=sysrq kbd event4 leds
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7
I: Bus=0003 Vendor=6080 Product=8061 Version=0110
N: Name="AMR-4630-XXX-0- 0-1023 USB KEYBOARD Mouse"
P: Phys=usb-0000:00:14.0-4/input1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4:1.1/0003:6080:8061.0002/input/input5
U: Uniq=
H: Handlers=mouse0 event5
B: PROP=0
B: EV=17
B: KEY=1f0000 0 0 0 0
B: REL=1943
B: MSC=10
I: Bus=0003 Vendor=6080 Product=8061 Version=0110
N: Name="AMR-4630-XXX-0- 0-1023 USB KEYBOARD System Control"
P: Phys=usb-0000:00:14.0-4/input1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4:1.1/0003:6080:8061.0002/input/input6
U: Uniq=
H: Handlers=kbd event6
B: PROP=0
B: EV=13
B: KEY=c000 10000000000000 0
B: MSC=10
I: Bus=0003 Vendor=6080 Product=8061 Version=0110
N: Name="AMR-4630-XXX-0- 0-1023 USB KEYBOARD Consumer Control"
P: Phys=usb-0000:00:14.0-4/input1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4:1.1/0003:6080:8061.0002/input/input7
U: Uniq=
H: Handlers=kbd event7
B: PROP=0
B: EV=13
B: KEY=28000000000 0 0 1000302000000 3878d8011001 e000000000000 0
B: MSC=10
I: Bus=0003 Vendor=2f24 Product=0135 Version=0110
N: Name=" Mouse for Windows"
P: Phys=usb-0000:00:14.0-5/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5:1.0/0003:2F24:0135.0003/input/input8
U: Uniq=
H: Handlers=mouse1 event8
B: PROP=0
B: EV=17
B: KEY=1f0000 0 0 0 0
B: REL=903
B: MSC=10
I: Bus=0003 Vendor=2f24 Product=0135 Version=0110
N: Name=" Mouse for Windows"
P: Phys=usb-0000:00:14.0-5/input1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5:1.1/0003:2F24:0135.0004/input/input9
U: Uniq=
H: Handlers=sysrq kbd event9 leds
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7
I: Bus=0018 Vendor=0416 Product=038f Version=1060
N: Name="Goodix Capacitive TouchScreen"
P: Phys=input/ts
S: Sysfs=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-2/i2c-GDIX1002:00/input/input10
U: Uniq=
H: Handlers=kbd mouse2 event10
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 2000000000000001 f800000000000000
B: ABS=265800000000003
I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="Intel HID events"
P: Phys=
S: Sysfs=/devices/platform/INTC1051:00/input/input12
U: Uniq=
H: Handlers=rfkill kbd event11
B: PROP=0
B: EV=13
B: KEY=81000300000000 5000004000 1e294000000020 0
B: MSC=10
I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="Intel HID 5 button array"
P: Phys=
S: Sysfs=/devices/platform/INTC1051:00/input/input13
U: Uniq=
H: Handlers=kbd event12
B: PROP=0
B: EV=13
B: KEY=2000000000000 0 0 0 0 1000000000000 0 201c000000000000 0
B: MSC=10
I: Bus=0019 Vendor=0001 Product=0001 Version=0100
N: Name="gpio-keys"
P: Phys=gpio-keys/input0
S: Sysfs=/devices/pci0000:00/0000:00:1f.0/ACPI0011:00/gpio-keys.1.auto/input/input14
U: Uniq=
H: Handlers=kbd event13
B: PROP=0
B: EV=100003
B: KEY=c000000000000 0
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="sof-hda-dsp Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input15
U: Uniq=
H: Handlers=event14
B: PROP=0
B: EV=21
B: SW=10
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="sof-hda-dsp Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input16
U: Uniq=
H: Handlers=event15
B: PROP=0
B: EV=21
B: SW=4
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="sof-hda-dsp HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input17
U: Uniq=
H: Handlers=event16
B: PROP=0
B: EV=21
B: SW=140
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="sof-hda-dsp HDMI/DP,pcm=4"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input18
U: Uniq=
H: Handlers=event17
B: PROP=0
B: EV=21
B: SW=140
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="sof-hda-dsp HDMI/DP,pcm=5"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input19
U: Uniq=
H: Handlers=event18
B: PROP=0
B: EV=21
B: SW=140
There are two universal buttons on the back of gpd win4. They can customize the key value to be stored in ec through wincontrol under Windows, which makes the mapping of win4 custom back button in Windows also in Linux. If I want to map one of them to the QAM button, how should I change it?
I'm sorry that I'm not familiar with Linux.
Work with OXP to fix their controller and DMI firmware has resulted in a potential bifurcation of support for identical models with different BIOS versioning. We need to create a knowledge base of new and old BIOS parameters to ensure we can maintain support for updated and non-updated BIOS devices.
Hi, does HandyGCCS support Ayaneo 2 or not? Or what can I do to use HandyGCCS on Ayaneo 2? How can I find its button mapping?
Thx a lot
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.