7.4 KiB
Executable File
Here's a hypothetical but realistic Arch setup for a Surface Pro tablet with all the touch/tablet features:
Base System Setup
1. Installation with Surface kernel:
# Install base Arch
# After base install, add linux-surface repo
# Add the linux-surface repository key
wget -qO - https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc | sudo pacman-key --add -
sudo pacman-key --finger 56C464BAAC421453
sudo pacman-key --lsign-key 56C464BAAC421453
# Add repo to /etc/pacman.conf
[linux-surface]
Server = https://pkg.surfacelinux.com/arch/
# Update and install Surface kernel
sudo pacman -Syu
sudo pacman -S linux-surface linux-surface-headers iptsd
2. Core tablet packages:
# Surface-specific firmware and drivers
sudo pacman -S libwacom # Wacom/stylus support
sudo pacman -S iptsd # Surface touchscreen daemon
sudo systemctl enable iptsd
# Camera support
sudo pacman -S linux-firmware
# Surface cameras need special firmware from linux-surface
Desktop Environment: GNOME (Best Touch Support)
Install GNOME with Wayland:
sudo pacman -S gnome gnome-extra
sudo pacman -S gdm
sudo systemctl enable gdm
# Touch-specific tools
sudo pacman -S gnome-shell-extension-appindicator
sudo pacman -S gnome-browser-connector
GNOME gives you out-of-box:
- Automatic screen rotation
- Touch gestures (swipe between workspaces)
- On-screen keyboard (built-in)
- Pinch-to-zoom
- Good HiDPI scaling
Screen Rotation
Auto-rotation with iio-sensor-proxy:
sudo pacman -S iio-sensor-proxy
sudo systemctl enable iio-sensor-proxy
# Test rotation sensor
monitor-sensor
Manual rotation keybinds (if needed):
# Create a script ~/bin/rotate.sh
#!/bin/bash
case $(xrandr --query --verbose | grep 'connected primary' | cut -d' ' -f5) in
normal)
xrandr --output eDP-1 --rotate right
;;
right)
xrandr --output eDP-1 --rotate inverted
;;
inverted)
xrandr --output eDP-1 --rotate left
;;
left)
xrandr --output eDP-1 --rotate normal
;;
esac
Battery Optimization
TLP (automatic power management):
sudo pacman -S tlp tlp-rdw
sudo systemctl enable tlp
sudo systemctl start tlp
# Configure /etc/tlp.conf for aggressive power saving
sudo nano /etc/tlp.conf
# Key settings:
TLP_DEFAULT_MODE=BAT
CPU_SCALING_GOVERNOR_ON_BAT=powersave
RUNTIME_PM_ON_BAT=auto
Additional power tools:
sudo pacman -S powertop # Power usage analysis
sudo pacman -S thermald # Thermal management
sudo systemctl enable thermald
# Run powertop calibration once
sudo powertop --calibrate
Check battery stats:
sudo pacman -S acpi
acpi -V # Show battery info
Touch & Stylus Support
Stylus configuration:
sudo pacman -S xf86-input-wacom
# Surface Pen should work automatically with iptsd + libwacom
# For pressure sensitivity in apps
sudo pacman -S xournalpp # Note-taking with pen
sudo pacman -S krita # Drawing with pressure
sudo pacman -S gimp
On-screen keyboard alternatives:
# GNOME has built-in OSK, but alternatives:
yay -S onboard # Feature-rich OSK
yay -S squeekboard # Mobile-focused OSK
Touch gestures (if not using GNOME):
yay -S libinput-gestures
yay -S gestures # GUI for libinput-gestures
# Configure swipes, pinches, etc.
Camera Support
Video/camera stack:
sudo pacman -S v4l-utils # Video4Linux utilities
sudo pacman -S cheese # Test webcam
sudo pacan -S pipewire pipewire-pulse wireplumber
# Check cameras
v4l2-ctl --list-devices
# Surface cameras need IPU3 firmware
# Should be in linux-surface kernel already
WiFi & Bluetooth
sudo pacman -S networkmanager network-manager-applet
sudo systemctl enable NetworkManager
sudo pacman -S bluez bluez-utils
sudo systemctl enable bluetooth
Audio
sudo pacman -S pipewire pipewire-alsa pipewire-pulse pipewire-jack
sudo pacman -S wireplumber
HiDPI Scaling
For GNOME:
# Settings > Displays > Scale (100%, 200%, etc.)
# Or via gsettings:
gsettings set org.gnome.desktop.interface scaling-factor 2
For Wayland fractional scaling:
gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
Type Cover (Keyboard) Support
Should work automatically, but ensure:
# Check keyboard detected
libinput list-devices
# Keyboard backlight control
yay -S surface-control
# Or manually:
echo 1 | sudo tee /sys/class/leds/surface::kbd_backlight/brightness
Useful Tablet Apps
# Note-taking
sudo pacman -S xournalpp # Best for stylus notes
yay -S rnote # Rust-based note app
# PDF annotation
sudo pacman -S okular
yay -S xournal++
# Drawing
sudo pacman -S krita inkscape
# E-reading
sudo pacman -S foliate # E-book reader
sudo pacman -S zathura # PDF reader
# Touch-friendly file manager
sudo pacman -S nautilus # GNOME Files
Performance Tweaks
Reduce swappiness:
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.d/99-swappiness.conf
Enable ZRAM (compressed RAM):
sudo pacman -S zram-generator
sudo nano /etc/systemd/zram-generator.conf
[zram0]
zram-size = ram / 2
compression-algorithm = zstd
Trim SSD weekly:
sudo systemctl enable fstrim.timer
Testing Everything
Rotation:
monitor-sensor # Rotate device, watch output
Battery:
sudo tlp-stat -b # Battery stats
sudo powertop # Power consumption
Touch:
libinput debug-events # Watch touch events
Stylus:
xsetwacom list devices # List stylus
Camera:
cheese # Open camera app
Alternative: KDE Plasma
If you prefer KDE over GNOME:
sudo pacman -S plasma-meta kde-applications
sudo pacman -S plasma-wayland-session
# KDE has:
# - Good touch support
# - Better customization
# - Onboard for OSK
# - Screen rotation works
# - More lightweight than GNOME
Common Issues & Fixes
Camera not working:
# Update firmware
sudo pacman -Syu
# Check dmesg for IPU3 errors
dmesg | grep -i ipu3
Stylus not detected:
sudo systemctl restart iptsd
# Check if iptsd is running
systemctl status iptsd
Battery draining fast:
sudo powertop --auto-tune
# Add to systemd service for persistence
Screen rotation not working:
# Check sensor
monitor-sensor
# May need to install iio-sensor-proxy-git from AUR
yay -S iio-sensor-proxy-git
Maintenance
# Update system + Surface kernel
sudo pacman -Syu
# Check for Surface-specific updates
# linux-surface team releases patches regularly
This setup gives you:
✅ Automatic rotation
✅ Battery optimization (6-8 hours typical)
✅ Working cameras (front + rear)
✅ Stylus with pressure sensitivity
✅ Touch gestures
✅ On-screen keyboard
✅ Type Cover support
✅ Good performance
The key is linux-surface kernel + GNOME/KDE + proper power management. It won't be exactly like iPad smoothness, but it's very usable as a daily driver tablet.
Want me to elaborate on any specific part?