added first true commit
This commit is contained in:
Executable
+381
@@ -0,0 +1,381 @@
|
||||
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?
|
||||
Reference in New Issue
Block a user