28 sep. 2020
Mijn tablet-OS-ervaring verfijnen
Surface Go 2 met 4G/LTE, Debian GNU/Linux en i3wm gebruiken
Eerder dit jaar probeerde ik mijn eigen tablet-besturingssysteem te maken door Debian GNU/Linux te installeren op een Microsoft Surface Go tablet. Ik leerde veel over wat ik fijn vind aan tablets. Maar ik gaf nog steeds de voorkeur aan mijn iPad Pro, vooral vanwege de gepolijste gebruikerservaring. Deze keer ben ik begonnen mijn tablet-software te verfijnen om mijn iPad te vervangen.
Linux op (Surface) tablets
Als je erover denkt om Linux op een tablet te installeren: je bent niet de enige. Mijn eerdere bericht over het installeren van Debian GNU/Linux op Surface GO kreeg enorm veel aandacht. Blijkbaar zijn velen van jullie op zoek naar een alternatief voor de gesloten besturingssystemen die meestal op tablets zijn geĆÆnstalleerd (zoals iPadOS, Android of Windows 10S).
Microsoft Surface hardware en Linux
Zoals de geschiedenis vol zoete ironie zit, is het Microsoft die eigenlijk behoorlijk knappe hardware maakt die goed werkt met Linux. Hun Surface-lijn omvat verschillende laptops en tablets. De āSurfaceLinuxā reddit-pagina staat vol met interessante gebruikersverhalen die het bekijken waard zijn. Mensen doen dit en je zou het zelf ook kunnen doen.

Eerste poging: Surface Go (versus iPad Pro)
Na het installeren en aanpassen van Debian GNU/Linux op Surface Go, genaamd āWillem OSā, probeerde ik er mijn hoofdcomputer van te maken. Als je een frequente bezoeker van mijn blog bent, weet je dat ik al jaren iPads en tablets als hoofdcomputer gebruik. Uiteindelijk vond ik mijn eerste versie van āWillemOSā niet goed genoeg: iPad Pro was lichtjaren vooruit als het ging om een gepolijste gebruikerservaring.
Van deze eerste poging heb ik veel geleerd, het leidde tot een beter begrip van wat ik zoek in een tablet-ervaring. Ik ben op zoek naar eenvoudige, maar veelzijdige software om op mijn tablet te draaien.
Maar "eenvoudig" is eigenlijk heel moeilijk te bereiken. Om dingen echt eenvoudig te maken, moet je hardware en software naadloos integreren. Apple doet dit goed, iPad Pro biedt een geweldige gebruikerservaring omdat:
- verdergaan waar je gebleven was: het slaat alles op wanneer je hem in een tas stopt, en is (direct) klaar om verder te gaan wanneer je hem eruit haalt. Geen handmatig opslaan of (her)opstarten vereist.
- internet overal: het schakelt automatisch tussen wifi en 4G/LTE netwerken, je hoeft niets te doen, dit 'werkt gewoon'
- elke richting en positie: iPad werkt prima zonder extern toetsenbord of muis, waardoor je hem in veel verschillende scenario's kunt gebruiken (het scherm past ook automatisch de helderheid en witbalans aan aan je omgeving!)
Het blijkt dat het moeilijk is om deze dingen naadloos te laten werken met Debian GNU/Linux op Surface. Mijn eerste tablet-OS vereiste veel handmatige interactie en was daarom omslachtig in vergelijking met iPad Pro.
Tweede poging: Surface Go 2
Microsoft heeft dit jaar een nieuwe Surface Go-tablet uitgebracht, de Surface Go 2. Deze heeft een snellere processor (tot 64%!), dunnere randen en een verbeterd scherm. Het is een zeer behoorlijke upgrade die de Surface Go 2 qua hardware veel meer op gelijke voet brengt met de 11-inch iPad Pro. Voor mijn tweede poging om de ultieme tablet-ervaring te creƫren, besloot ik het topmodel Surface Go 2 te gebruiken:
- 10.5ā touchscreen (1920x1250, 220PPI), 3:2 beeldverhouding, CorningĀ® GorillaĀ® Glass 3
- Intel Core m3-processor (8e generatie)
- 8GB RAM
- Wifi 802.11a/b/g/n/ac/ax
- LTE Advanced (Qualcomm® Snapdragon⢠X16 LTE Modem)
- Bluetooth 5.0
- Intel UHD Graphics 615
- Afmetingen: 245 mm x 175 mm x 8.3 mm
- 256GB SSD
- 512GB MicroSDXC-kaart
- 1x USB-C en 1x Surface Connect-poort

Debian GNU/Linux installeren op Surface Go 2
De Surface Go 2 is erg vergelijkbaar met zijn voorganger als het gaat om het installeren van een basisinstallatie van je favoriete GNU/Linux-distributie. Ik volgde mijn eigen stappen van de originele Surface Go-installatie hier.

Kortom, je moet de volgende stappen nemen bij het installeren van Linux op je Surface:
- 1) Update Windows 10 en installeer alle firmwarepatches/updates
- 2) Maak een opstartbaar installatiemedium met je favoriete GNU/Linux-distributie
- 3) (Optioneel) sluit een bekabelde ethernetverbinding aan
- 4) Start de Surface op vanaf de USB-drive
- 5) Installeer het besturingssysteem met behulp van het installatieprogramma
- 6) Verfijn en optimaliseer de software-ervaring

De ervaring verfijnen
De laatste stap van de installatie is waar je het verschil kunt maken tussen een fantastische en een waardeloze gebruikerservaring. Om mezelf te āaanmoedigenā om bij dit experiment te blijven, besloot ik mijn iPad Pro te verkopen: de schepen verbranden (want er zou geen weg terug zijn)!

Op een klein scherm is het perfect logisch om apps op volledig scherm te draaien. Ik weet dat het conventionele pc-concept van het beheren van afzonderlijke applicatievensters niet de beste gebruikerservaring biedt op een kleine tabletcomputer. Daarom besloot ik een tiling window manager te proberen: i3wm.
Tiling window manager
Het principe van een tiling window manager is simpel: apps nemen zoveel ruimte in als er beschikbaar is. Dit betekent dat als je maar ƩƩn app draait, deze volledig scherm zal zijn. Twee apps draaien gesplitst scherm, enz. Je kunt regels definiƫren die de rangschikking van apps automatiseren. Met behulp van sneltoetsen kun je snel schakelen tussen apps. Je hebt misschien wat tijd nodig om uit te zoeken wat het beste voor jou werkt wanneer je een tiling window manager gebruikt, maar uiteindelijk kan het je veel tijd besparen!

Werkruimten
Een andere krachtige functie van i3wm is dat je verschillende 'werkruimten' kunt hebben. Ze zijn een gemakkelijke manier om groepen apps te organiseren die samen draaien. Ik gebruik verschillende werkruimten voor verschillende dingen die ik doe. Een gebruikelijke aanpak is om de webbrowser op de ene werkruimte te plaatsen, mailtoepassingen op een andere, en degene waarmee je werkt, op de derde.

Het mooie van meerdere werkruimten is dat ƩƩn app (bijv. je browser) meerdere instanties op verschillende werkruimten kan draaien. Dit maakt veel verschillende combinaties van apps mogelijk. Dit is echt waar de i3wm window manager veel beter is dan iPadOS's kijk op multitasking.
De i3wm window manager ondersteunt externe monitoren zeer goed, met hetzelfde concept van een werkruimte. Je wijst eenvoudigweg ƩƩn of meerdere werkruimten aan om weergegeven te worden op het extra/externe scherm. Dit werkt goed met de Surface Dock en USB-C-naar-HDMI-accessoires voor Surface. Multi-monitorondersteuning is echt geweldig.

Iets wat je zou moeten proberen is om fusuma te gebruiken om gebaren met drie vingers op het trackpad mogelijk te maken. Als je ooit op een MacBook hebt gewerkt, weet je dat de multi-touch trackpads nuttige gebaren mogelijk maken om van bureaublad te wisselen (of werkruimten in i3wm). Het werkt echt goed!
Opslag
Voor het beheren van mijn foto's met Shotwell wilde ik serieuze opslag op mijn tablet. Hoewel ik het topmodel Surface Go 2 heb met de 256GB SSD-schijf, heb ik de MicroSD-kaartsleuf gebruikt om mijn opslagcapaciteit met nog eens 512GB uit te breiden. De MicroSD-kaart is langzamer dan de geĆÆntegreerde SSD, maar voor bestanden die je niet elke dag/uur/minuut leest is het snel genoeg.

Mijn Debian GNU/Linux-installatie had geen problemen met het herkennen van de MicroSD-kaart. Ik heb de hele MicroSD-kaart versleuteld om te voorkomen dat mijn foto's uitlekken als ik mijn kaart ooit zou verliezen. Je moet hier (altijd) rekening mee houden, neem passende maatregelen om je gegevens te beschermen en te back-uppen!
Connectiviteit wifi/4G/LTE
Na het installeren van de 'non-free' draadloze firmware in Debian werkt de wifi goed op Surface Go 2. Het aan de praat krijgen van de LTE/4G was een stuk lastiger! Om de een of andere reden startte de WWAN-verbinding niet, ook al had ik een werkende simkaart in de Surface Go geplaatst. Om een of andere mysterieuze reden startte de modem niet correct, 4G/LTE werkte niet!

Een van de geweldige dingen van iPad is dat het de connectiviteitslogica van iPhone deelt. Het beheert automatisch verschillende draadloze netwerken en mobiele breedbandverbindingen. Ik wilde dat dit ook op mijn Linux-tablet zou werken!
Toen ik op zoek was naar een aanwijzing om 4G/LTE aan de praat te krijgen, keek ik naar rapporten over Surface Pro. De Surface Go 2 is technisch gezien erg vergelijkbaar met de grotere Pro. Ik bedacht dat ik kon leren van de inspanningen van mensen met mobiel breedband op de Surface Pro. Na vele uren zoeken en verschillende dingen proberen, vond ik deze oplossing om 4G aan de praat te krijgen op Surface:

Je kunt de Network Manager (en Modem Manager) gebruiken om connectiviteitsbeheer onder Linux te automatiseren. Standaard geeft het de voorkeur aan wifi-verbindingen boven mobiel breedband. Je kunt het automatisch laten verbinden via 4G/LTE als er geen wifi beschikbaar is. Het werkt nu erg goed in combinatie met de Surface Go 2 hardware!

Slaapstand/Sluimerstand/Hervatten
Nog iets waar een iPad-gebruiker nooit aan denkt, is hoe goed Apple dingen voor elkaar heeft gekregen als het gaat om slaapstand en hervatten. Als je een iPad hebt, kun je hem dagenlang in standby-modus laten staan, maar hij is altijd heel snel om verder te gaan waar je gebleven was als je hem weer oppakt.
Om mijn Surface met GNU/Linux hetzelfde te laten doen, had ik een manier nodig om snel in slaapstand te gaan en te hervatten. In de Linux / pc-wereld zijn er in principe vier energiemodi:
- aan: apps draaien. Systeem staat volledig aan, verbruikt veel stroom
- slaapstand (naar RAM): app-statussen worden bewaard in het RAM-geheugen. Systeem staat nog steeds aan, maar elke component wordt zo veel mogelijk uitgeschakeld, verbruikt nog steeds stroom (+/- 10% batterijverlies per uur in mijn geval met Surface Go 2)
- slaapstand (naar schijf) / sluimerstand: app-statussen worden bewaard op schijf. Systeem is uitgeschakeld en verbruikt geen stroom
- uit: apps zijn gesloten. Systeem is uitgeschakeld, er wordt geen stroom verbruikt
Om ādirect verder te gaan waar je gebleven wasā moet je app-statussen bewaren. Het snelst (en vrijwel direct) hervatten is mogelijk wanneer de app-status is opgeslagen in het RAM-geheugen. Het probleem met RAM-geheugen is dat het stroom nodig heeft om zijn waarde te behouden. Zodra de stroom uitvalt, gaan app-statussen verloren.
Het alternatief is om naar schijf te sluimeren (of in slaapstand te gaan), waarbij de status wordt opgeslagen op het permanente opslagapparaat in de computer. Hierdoor kan de computer volledig worden uitgeschakeld. Het probleem met sluimeren naar schijf is dat het hervatten langzamer is en dat je versleutelingswachtwoordzinnen opnieuw moet invoeren voor volledige schijfversleuteling.
Het goede nieuws is dat moderne GNU/Linux wordt geleverd met systemd waarmee je kunt configureren hoe de computer omgaat met slaapstand en hervatten. Je kunt je tablet zo configureren dat hij eerst naar RAM sluimert (waardoor direct hervatten mogelijk is) en vervolgens, na een bepaalde tijd, naar schijf sluimert.

Op een normale werkdag sta ik (heel) vroeg op om vanuit huis aan mijn meest uitdagende projecten te werken. Dan fiets ik naar mijn werk en werk ik daar verder. Ik heb mijn woon-werkverkeer getimed en bedacht dat als mijn tablet minstens twee uur aan zou blijven staan, ik direct mijn werk zou kunnen hervatten. Als ik binnen twee uur niet verder werk op mijn tablet, bespaart het batterijvermogen door naar schijf te sluimeren. Op deze manier heb ik de beste ervaring voor mijn specifieke situatie.

Uniform uiterlijk
In tegenstelling tot de strak gecontroleerde iPad, wordt software op GNU/Linux gemaakt met behulp van veel verschillende benaderingen van gebruikersinterfaceontwerp. Er bestaat niet zoiets als de Richtlijnen voor gebruikersinterfaces die Apple voorschrijft voor iOS en iPadOS. Dit is een probleem omdat het ertoe leidt dat software er inconsistent uitziet en aanvoelt.
Een consistent uiterlijk is belangrijk om een wrijvingsloze omgeving en gebruikerservaring mogelijk te maken. Daarom heb ik veel kleine aanpassingen gedaan aan kleur, lettertypen, pictogrammen en werkbalken om mijn apps er allemaal hetzelfde uit te laten zien en aan te laten voelen. Hoewel het niet perfect harmonieus is, voelt het niet meer alsof ik met āFrankenstein OSā werk.
Ik geef de voorkeur aan een donker thema omdat het prettiger is voor mijn ogen, maar je moet zelf beslissen. Gebruik tools zoals lxappearance om aanpassingen te maken voor meerdere apps. Maar je zult waarschijnlijk ook aanpassingen per app moeten maken. Ik gebruik het adwaita-dark thema en (monochrome) HighContrast pictogrammen, met het Open Sans Light lettertype.


Dagelijks gebruik
Het bouwen van een mooi systeem is ƩƩn ding, maar het daadwerkelijk gebruiken als dagelijkse driver is iets anders! De Surface Go is mijn dagelijkse driver en de afgelopen weken heb ik geƫxperimenteerd met verschillende dingen en instellingen. Hier zijn enkele hoogtepunten.











Conclusie
Het bouwen van mijn eigen tablet-OS is een echte uitdaging. Mijn eerste poging was niet goed genoeg om mijn iPad te vervangen. Deze tweede poging is echter anders. De tijd en moeite die ik heb gestoken in het verfijnen van de gebruikerservaring resulteert in een veel beter systeem. Ik gebruik het nu dagelijks als mijn hoofdcomputer.
Hoewel ik het werk dat Apple aan iPad heeft gedaan altijd heb gewaardeerd, blijft het beperkt door zijn gesloten software. Vooral nu, wanneer Apple heeft besloten om zijn App Store controle te verdubbelen. De enige manier om de toekomst te beheersen is door hem zelf te creƫren: ik geloof dat de tijd rijp is om kapitein op mijn eigen schip te worden!
Update januari 2021
Na maanden intensief gebruik heb ik besloten mijn eigen tablet-OS te laten varen