Jump to content

GPD Pocket 4

From ArchWiki

This article or section does not follow the Laptop page guidelines.

Reason: Misses an Accessibility and Firmware section. (Discuss in Talk:GPD Pocket 4)
Hardware PCI/USB ID Working?
GPU 1002:150e Yes
Wi-Fi 8086:2725 Yes
Bluetooth 8087:0032 Yes
Audio 1022:15e3 Yes
Touchscreen 0603:F001 Yes
Keyboard/Pointer 258a:000c Yes
Webcam 1bcf:28c4 Yes
Fingerprint 2808:0752 Untested
Accelerometer Yes

The GPD Pocket 4 is a compact 8.8" convertible laptop with a 1600x2560 portrait display, touchscreen, and accelerometer for tablet mode.

Note This page documents the AMD Ryzen AI 9 HX 370 variant. Other variants (e.g., Ryzen 7 8840U) may have different hardware IDs.

Screen orientation

The display panel is physically portrait (1600x2560) and requires rotation for normal laptop use: see Tablet PC#Screen rotation.

Touchscreen

The touchscreen (NVTK0603) requires calibration to match the display rotation.

Hyprland

Add a device section to your Hyprland configuration:

device {
    name = nvtk0603:00-0603:f001
    transform = 3
}
Note The transform value must match your monitor transform.

Wayland (udev)

For other Wayland compositors, create:

/etc/udev/rules.d/99-touchscreen.conf

ACTION=="add|change", KERNEL=="event[0-9]*", ATTRS{name}=="NVTK0603:00 0603:F001", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1"

Then reload udev rules.

Xorg

Install xf86-input-wacom and create /etc/X11/xorg.conf.d/99-touchscreen.conf:

Section "InputClass"
    Identifier    "GPD Pocket 4 Touchscreen"
    Driver        "wacom"
    MatchProduct  "NVTK0603"
    Option        "TransformationMatrix" "0 1 0 -1 0 1 0 0 1"
EndSection

Automatic rotation

The GPD Pocket 4 has an accelerometer (MXC6655) that can be used for automatic screen rotation in tablet mode, see Tablet PC#Automatic rotation.

Note The orientation mappings (normal being 3, left being 0, right being 2 and bottom being 1) are specific to the GPD Pocket 4. The accelerometer's "normal" position corresponds to laptop mode (keyboard facing user).

Touchscreen gestures

For touch gestures (swipe to switch workspaces, etc.), install lisgdAUR from the AUR.

Create a gesture script (e.g., ~/.config/hypr/scripts/touchscreen-gestures.sh):

#!/bin/bash
# GPD Pocket 4 touchscreen gestures using lisgd
# Accepts orientation parameter: 0, 1, 2, 3 (matches Hyprland transform)

if [ -z "$CALLED_FROM_AUTOROTATE" ]; then
    pkill -f "lisgd" 2>/dev/null
    sleep 0.3
fi

DEVICE="/dev/input/event10"  # Adjust if needed
TRANSFORM="${1:-3}"  # Default to laptop mode (transform 3)

# Commands - customize as needed
WS_PREV="hyprctl dispatch workspace e-1"
WS_NEXT="hyprctl dispatch workspace e+1"
OVERVIEW="hyprctl dispatch overview:toggle"

# Map Hyprland transform to lisgd orientation (-o flag)
case "$TRANSFORM" in
    3) LISGD_ORIENT=0 ;;  # Laptop mode
    0) LISGD_ORIENT=1 ;;  # Portrait left
    1) LISGD_ORIENT=2 ;;  # Laptop upside down
    2) LISGD_ORIENT=3 ;;  # Portrait right
esac

lisgd -d "$DEVICE" -o "$LISGD_ORIENT" \
    -g "3,LR,*,0.08,$WS_PREV" \
    -g "3,RL,*,0.08,$WS_NEXT" \
    -g "3,UD,*,0.08,$OVERVIEW" \
    -g "3,DU,*,0.08,$OVERVIEW" \
    -t 150 -r 25 &
Note The -o flag enables rotation-aware gestures. The DEVICE path may vary; check /dev/input/ for your touchscreen device.

Add to Hyprland startup:

exec-once = ~/.config/hypr/scripts/touchscreen-gestures.sh

To integrate with auto-rotation, modify the auto-rotation script to restart the gesture script with the new orientation when rotation changes. See the auto-rotation section for details.

Backlight

The backlight is controlled via /sys/class/backlight/amdgpu_bl1/.

Install brightnessctl for easy control:

$ brightnessctl s 5%+   # increase
$ brightnessctl s 5%-   # decrease

Function keys

Key Visible?1 Marked?2 Effect
Fn+Insert Yes Yes XF86MonBrightnessUp
Fn+PrintSc Yes Yes XF86MonBrightnessDown
Fn+[ Yes Yes XF86AudioMute
Fn+] Yes Yes XF86AudioLowerVolume
Fn+\ Yes Yes XF86AudioRaiseVolume
Fn+Space No Yes Keyboard backlight toggle3
Fn+= No Yes Fan speed cycle3
  1. Visible to wev, xev, and similar tools.
  2. The key has a physical symbol describing its function.
  3. Controlled by keyboard/EC firmware, not configurable from the OS.

Touchpad

The GPD Pocket 4's pointing device (HAILUCK USB KEYBOARD Mouse) is detected by libinput as a basic pointer rather than a touchpad, which means standard touchpad gesture tools like libinput-gestures will not work.

$ libinput list-devices | grep -A5 "HAILUCK.*Mouse"
Capabilities:            pointer
Tap-to-click:            n/a
Scroll methods:          button

For swipe gestures, use the touchscreen gesture solution above instead.

See also