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:** ```bash # 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:** ```bash # 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:** ```bash 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:** ```bash sudo pacman -S iio-sensor-proxy sudo systemctl enable iio-sensor-proxy # Test rotation sensor monitor-sensor ``` **Manual rotation keybinds (if needed):** ```bash # 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):** ```bash 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:** ```bash 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:** ```bash sudo pacman -S acpi acpi -V # Show battery info ``` --- ## **Touch & Stylus Support** **Stylus configuration:** ```bash 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:** ```bash # 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):** ```bash yay -S libinput-gestures yay -S gestures # GUI for libinput-gestures # Configure swipes, pinches, etc. ``` --- ## **Camera Support** **Video/camera stack:** ```bash 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** ```bash sudo pacman -S networkmanager network-manager-applet sudo systemctl enable NetworkManager sudo pacman -S bluez bluez-utils sudo systemctl enable bluetooth ``` --- ## **Audio** ```bash sudo pacman -S pipewire pipewire-alsa pipewire-pulse pipewire-jack sudo pacman -S wireplumber ``` --- ## **HiDPI Scaling** **For GNOME:** ```bash # Settings > Displays > Scale (100%, 200%, etc.) # Or via gsettings: gsettings set org.gnome.desktop.interface scaling-factor 2 ``` **For Wayland fractional scaling:** ```bash gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']" ``` --- ## **Type Cover (Keyboard) Support** Should work automatically, but ensure: ```bash # 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** ```bash # 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:** ```bash echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.d/99-swappiness.conf ``` **Enable ZRAM (compressed RAM):** ```bash sudo pacman -S zram-generator sudo nano /etc/systemd/zram-generator.conf [zram0] zram-size = ram / 2 compression-algorithm = zstd ``` **Trim SSD weekly:** ```bash sudo systemctl enable fstrim.timer ``` --- ## **Testing Everything** **Rotation:** ```bash monitor-sensor # Rotate device, watch output ``` **Battery:** ```bash sudo tlp-stat -b # Battery stats sudo powertop # Power consumption ``` **Touch:** ```bash libinput debug-events # Watch touch events ``` **Stylus:** ```bash xsetwacom list devices # List stylus ``` **Camera:** ```bash cheese # Open camera app ``` --- ## **Alternative: KDE Plasma** If you prefer KDE over GNOME: ```bash 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:** ```bash # Update firmware sudo pacman -Syu # Check dmesg for IPU3 errors dmesg | grep -i ipu3 ``` **Stylus not detected:** ```bash sudo systemctl restart iptsd # Check if iptsd is running systemctl status iptsd ``` **Battery draining fast:** ```bash sudo powertop --auto-tune # Add to systemd service for persistence ``` **Screen rotation not working:** ```bash # Check sensor monitor-sensor # May need to install iio-sensor-proxy-git from AUR yay -S iio-sensor-proxy-git ``` --- ## **Maintenance** ```bash # 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?