GPD Win Max 2021 - AMD Ryzen 7 4800U


  • Runs the latest 4.1 release release candidate perfectly. No modifications needed to be made to the default install
  • The touchscreen and display’s default orientation is sideways to the position of the keyboard (I have a feeling the screen is identical to an iPad Mini display, and they’ve just repurposed it), so the GRUB menu, Plymouth boot screen, and login screen are all sideways. I have fixed it with an XFCE login script (attached below), but I’m still working on rotating GRUB and Plymouth.
  • Qubes OS with a touchscreen is a lot more awesome that you might think! (I’m going to look for an x86 tablet now…)
  • The built-in keyboard and trackpad, 2x USB A ports, 2xUSB-C ports are each on their own separate USB bus, which is nice. The built-in Xbox 360 controller, however, is with the 2 USB-A ports (which doubles as a pointer device). A sys-usb qube is definitely possible.
  • The internal keyboard (like most laptop keyboards) has things like volume, screen brightness, keyboard backlight control, etc. Fn + F1 acts as volume mute toggle. HOWEVER, when pressed, it makes Qubes OS mute and unmute the volume rapidly for about 2-3 seconds, and then kills the keyboard input (you can click on VM windows, but you cannot type in them, nor can you interact with anything in XFCE). It’s baked into the keyboard’s firmware, so you just have to make sure you don’t press Fn + F1. XFCE muting works without any issue (by clicking on it), just not Fn + F1.

More to be filled in later…


Qubes-HCL-GPD-G1619_02-20211104-201928.yml (836 Bytes)

Bash script to fix GPD Win Max display on login (will do nothing on boot, as X11 isn’t running yet…)

#Rotate display 90 degrees right with 1280x800 resolution
xrandr --newmode "800x1280_60.06" 68.500 800 816 832 880 1280 1283 1285 1296 -HSync -VSync
xrandr --addmode eDP1 "800x1280_60.06"
xrandr --output eDP1 --mode "800x1280_60.06" --rotate right

#Rotate touchscreen 90 degress right
xinput set-prop "Intel HID 5 button array" --type=float 177 0 1 0 -1 0 1 0 0 1
xinput set-prop "pointer:Goodix Capacitive TouchScreen" --type=float 177 0 1 0 -1 0 1 0 0 1
xinput set-prop "Virtual core pointer" --type=float 177 0 1 0 -1 0 1 0 0 1

#Map touchscreen to internal display only
xinput map-to-output "Intel HID 5 button array" eDP1
xinput map-to-output "pointer:Goodix Capacitive TouchScreen" eDP1
xinput map-to-output "Virtual core pointer" eDP1

I’m working on a udev rule to make this script run whenever a display is added/removed, otherwise the touchscreen is mapped to all displays combined.

1 Like

Thank you @alzer89 for this HCL report, which is now online.