From 2f9048fc842056e8f5917fea744229781483a623 Mon Sep 17 00:00:00 2001 From: honjow Date: Fri, 28 Nov 2025 11:30:14 +0800 Subject: [PATCH 1/3] add extra button for GPD Win5 L4 is mapped by default to LEFTCTRL + LEFTSHIFT + F14, but in WinControls, it only shows LEFTCTRL + LEFTSHIFT, so it can be inferred that F14 is included by default. R4 is mapped by default to F3 + F15. Similarly, in WinControls, it only shows F3, so it can be inferred that F15 is included by default. --- src/hhd/device/gpd/win/base.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/hhd/device/gpd/win/base.py b/src/hhd/device/gpd/win/base.py index 00a91212..264b86cd 100644 --- a/src/hhd/device/gpd/win/base.py +++ b/src/hhd/device/gpd/win/base.py @@ -71,12 +71,14 @@ EC("KEY_SYSRQ"), EC("KEY_F20"), EC("KEY_L"), + EC("KEY_F14"), # Win5: LEFTCTRL + LEFTSHIFT + F14 } RIGHT_BUTTONS = { EC("KEY_PAUSE"), EC("KEY_F21"), - EC("KEY_R") + EC("KEY_R"), + EC("KEY_F15"), # Win5: F3 + F15 } From d8b9bddb6894d7e43ffadab1d96cf32b03ad77cc Mon Sep 17 00:00:00 2001 From: honjow Date: Fri, 28 Nov 2025 11:30:14 +0800 Subject: [PATCH 2/3] add more mappings for win5 When the home button is held down, it outputs the TAB , and when the keyboard button is held down, it outputs the DELETE. --- src/hhd/device/gpd/win/const.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/hhd/device/gpd/win/const.py b/src/hhd/device/gpd/win/const.py index c35c4bd7..d4152365 100644 --- a/src/hhd/device/gpd/win/const.py +++ b/src/hhd/device/gpd/win/const.py @@ -43,5 +43,7 @@ B("KEY_VOLUMEUP"): "key_volumeup", B("KEY_VOLUMEDOWN"): "key_volumedown", B("KEY_O"): "share", # Keyboard button: LMETA + LCTRL + O + B("KEY_DELETE"): "share", # Keyboard button hold: DEL B("KEY_D"): "mode", # Home button: LMETA + D + B("KEY_TAB"): "mode", # Home button hold: TAB } From 8f7cbde258ca460b1bafd4bae02471244bd9adf5 Mon Sep 17 00:00:00 2001 From: honjow Date: Fri, 28 Nov 2025 11:30:14 +0800 Subject: [PATCH 3/3] add gyro mappings fow GPD Win5 --- src/hhd/device/gpd/win/__init__.py | 2 ++ src/hhd/device/gpd/win/const.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/hhd/device/gpd/win/__init__.py b/src/hhd/device/gpd/win/__init__.py index e31cad32..8926db5a 100644 --- a/src/hhd/device/gpd/win/__init__.py +++ b/src/hhd/device/gpd/win/__init__.py @@ -17,6 +17,7 @@ from .const import ( GPD_WIN_4_8840U_MAPPINGS, + GPD_WIN_5_MAPPINGS, GPD_WIN_DEFAULT_MAPPINGS, GPD_WIN_MAX_2_2023_MAPPINGS, GPD_WIN_5_BTN_MAPPINGS, @@ -40,6 +41,7 @@ "G1618-05": { "name": "GPD Win 5", "hrtimer": True, + "mapping": GPD_WIN_5_MAPPINGS, "btn_mapping": GPD_WIN_5_BTN_MAPPINGS, }, "G1617-01": { diff --git a/src/hhd/device/gpd/win/const.py b/src/hhd/device/gpd/win/const.py index d4152365..2cb42db9 100644 --- a/src/hhd/device/gpd/win/const.py +++ b/src/hhd/device/gpd/win/const.py @@ -39,6 +39,8 @@ GPD_WIN_4_8840U_MAPPINGS = gen_gyro_state("z", True, "x", False, "y", True) +GPD_WIN_5_MAPPINGS = gen_gyro_state("z", True, "x", False, "y", True) + GPD_WIN_5_BTN_MAPPINGS: dict[int, Button] = { B("KEY_VOLUMEUP"): "key_volumeup", B("KEY_VOLUMEDOWN"): "key_volumedown",