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

- GPD Pocket 3 - Previous generation device
- Laptop - General laptop configuration
- Hyprland - Wayland compositor configuration
- Touchscreen - General touchscreen configuration

Category:

- GPD

Hidden category:

- Pages or sections flagged with Template:Laptop style

GPD Pocket 4
Add topic