Repository navigation
Portal v2.8.0
Hardware video arrives. On Snapdragon tablets, Linux apps now decode video on the device's video chip, and 4K60 playback takes about half the CPU it used to. This release also adds drag-and-drop file transfers, a new floating control pill, a desktop keyboard and built-in problem reports.
All measurements: OnePlus Pad 3.
Hardware video
Video in Linux apps now runs through Android's own decoders, with no setup.
| 4K60 playback | Software (cores) | Hardware (cores) | CPU saved |
|---|---|---|---|
| AV1 | 1.79 | 0.79 | 56% |
| HEVC | 1.87 | 0.87 | 53% |
| H.264 | 1.64 | 0.88 | 46% |
| VP9 | 1.48 | 0.81 | 45% |
Real-time decode of a high-bitrate test clip, averaged over 2 runs: CPU across the player, Android's media service and Portal's decoder.
- Apps: Firefox, Chromium, mpv, Celluloid, VLC, Haruna, GStreamer apps such as Videos, and Flatpak apps with GPU access.
- Decode: H.264, HEVC, VP9 and AV1, where the chip supports them.
- Encode: H.264, HEVC and VP9 through VA-API, for example
ffmpeg -c:v h264_vaapi. - 4K YouTube: a 26 Mbps VP9 stream plays at 59.4–59.9 fps in Firefox.
- Accuracy: output matches software decoding bit for bit across the test clips.
- Install: the driver downloads during setup, or in the background on the first launch after this update. Video decodes in software until then and on other GPUs.
- Turn it off: write
offto Portal'sfiles/hw-video-decodeand restart Portal. - Credit: built on lfdevs' termux-va and Mesa for Android containers, with Portal's fixes on top. termux-va's daemon derives from droidspaces-media-decode.
File transfers
file-dragging.mp4
New Files card beside Apps on the veil.
- Drag and drop: drag from a compatible Android app, for example in split screen, onto Portal. Files opens by itself.
- Add files: Android's picker copies one file or a batch into Linux Downloads.
- Save files: pick files in a compact desktop chooser, then Android asks where to save them.
- Keeps running: transfers continue when you lift the veil or switch apps. Details shows progress, cancel and retry.
- Safe copies: originals stay in place, existing files are never replaced, and duplicate names get a number.
Performance
| Touch and scrolling (scrollbar drag) | Before | Now |
|---|---|---|
| LibreOffice Writer, finger | 25 fps | 29 fps |
| LibreOffice Writer, mouse | 9 fps | 29 fps |
| Kate, finger | 55 fps | 63 fps |
| Dolphin, finger | 30 fps | 38 fps |
| Heat and battery | Before | Now |
|---|---|---|
| 24 fps video, frames presented per second | 89 | 24 |
| Firefox, 24 fps video on a 144 Hz panel | 69% | 48% |
| KWin during that video | 27% | 13% |
| SurfaceFlinger during that video | 25% | 15% |
CPU figures are percent of one core.
- Input compression: Qt 6 apps on Wayland now combine fast touch and mouse input the way Qt already does on X11. This used to be a LibreOffice-only workaround. Apps that need every sample, such as drawing apps, can still ask for it.
- Idle refresh: Portal releases its 144 Hz request when idle. After 3 s without input, the idle rate is capped at half the panel (144→72, 120→60), and a touch restores full rate at once.
- Fewer wakeups: the clipboard, input and guest command services now wait for events instead of polling.
- Disk: leftover guest
/tmpfiles are cleared at launch, about 2 GB on the test device.
Portal controls
- Floating pill: opens Report, Files, Apps, the desktop keyboard and, during games, Game settings. It suggests what you need, coasts when dragged, settles at an edge and remembers its place.
- Desktop keyboard: sends real Linux keys, with ABC, symbol and number-pad layers, plus F1–F12, navigation, system keys and shortcuts. Modifiers arm, lock or hold. It moves, follows rotation and keeps the desktop usable around it.
- Ctrl+Alt+P: opens the veil from anywhere.
- Background session: a quiet "Your desktop is running" notification keeps Linux alive while Portal is in the background.
- Veil: fits small screens, and its panels and tips animate smoothly.
- Update checks: if the last check is over 30 minutes old, Portal checks for app and driver updates as soon as the desktop appears, so they show while the veil is still up. Debian's package lists still wait 90 s.
Reporting problems
- Report: in the pill, and on the recovery and failed-setup screens. Portal opens a prefilled GitHub form in your browser and uploads nothing itself.
- Two forms: Report a bug, and Share what works for app compatibility.
- Save logs: writes a zip to
Download/Portal, with file paths, web, email, IP and MAC addresses removed wherever Portal can spot them.
Apps
- Portable apps: Open With → Open with Portal in Dolphin, or
portal-run <path>. Runs AppImages without FUSE, native bundles, Java, .NET and Windows programs, and names any missing runtime. - LibreOffice: runs at true fractional scale like any other Qt app, with no launcher workarounds.
- Qt: Qt/X11 apps reach the Android keyboard. Qt 5/6 Wayland, SVG and image plugins are now installed, including on existing installs.
- Keyboards: physical keyboard keys skip Gboard's autocorrect.
- Chromium: keeps its sandbox under tawcroot.
- Flatpak: GPU support adds the 26.08 runtime, and bubblewrap run as root works.
- Launchers: Portal no longer forces Wayland flags on Electron apps or a scale on Steam. Launchers you edited stay as they are.
- KWallet: first-login setup no longer depends on a package that older images install later.
- Ubisoft games under Proton: the overlay and its prompt stay off.
Fixes
- Stalled videos: videos no longer freeze until you leave and re-enter Portal. The audio sink now recovers when PipeWire misses a cycle.
- Adreno 740 (Galaxy Z Fold5): fixes panel flicker, dotted shadows and icons, and white squares in Firefox.
- App updates: Android relaunching Portal during an update no longer leaves a frozen logo or a black screen.
Known issues
- OnePlus Pad 3 at 50 Hz: OxygenOS drops the screen to 50 Hz after a few seconds without touch, even during video, so 60 fps video stutters in Portal and Android browsers alike. Portal can't override it. Touching the screen restores the full rate.
- Game mode on OnePlus: with Game Space holding 144 Hz, 60 fps video in Firefox presents at about 55–72 fps when idle and drops some frames.
- DRM video: sites that need Widevine, such as Vimeo, won't play. ARM64 Linux has no Widevine.
- SDL2 apps: some open the Android keyboard at startup with no text field.
Files
Portal-2.8.0.apk: the app (install this one)Portal-2.8.0-debug.apk: debuggable build, for troubleshooting only