Repository navigation
Changelog
Phone-facing behaviour: desks that do something, the phone's own screen on the desk, search that opens on the phone, and a pass over how surfaces open.
- The desk search opens in the phone's browser, as a desk window on the results page, rather than in the browser on the computer. It needs a browser the app list carries; with none, the desk says so.
- Phone Mirror streams the phone's own screen into the phone-shaped frame, view only. It follows the phone when it rotates, and states plainly what it is doing when it has no picture: connecting, or the reason it stopped with a retry.
- Windows move between desks. Move to desk n in the title-bar menu for each desk a window is not on, Ctrl+Alt+Left and Ctrl+Alt+Right to step between desks, and the desk names the one you land on for a moment.
- App icons arrive as the app's own artwork. They are read from each app's resources before the launcher's themed drawable, so phones that hand out pre-cut circles no longer flatten every icon into a white disc.
- Everything that opens now opens: the launcher, the modals, the control centre, the notification centre, the mirror and the companion view fade and rise into place. Closing stays instant, so a dismiss never lags the key.
- The launcher lists app names, not package names; system apps keep a small System tag.
- The tray clock is a readout again. The status cluster is the one door to the control centre, and it and the bell ring while their panel is open.
- Settings fill their card, and the companion view is its own phone frame naming the computer the phone is linked to and how long it has been.
- One icon scale across every surface, replacing the nine sizes that had accumulated.
Desktop shell improvements. Keyboard, launcher and window management.
- Keyboard shortcuts are defined once and documented by construction. Ctrl+/,
F1, or
?opens a cheat sheet listing every accelerator, rendered from the same list the dispatcher walks, so it cannot drift out of date. - Launcher search ranks by match quality rather than the alphabet: literal prefix, then initials, then word start, substring and scattered letters. Initials mean "wa" finds WhatsApp, which a substring search cannot — the letters are not adjacent in the name.
- Search results weight by launch frequency and recency, so the drawer learns which apps are actually used. Habit reorders matches but never promotes something the query did not match.
- Search results are a ranked list with a selected row. Up and Down move it, Enter opens it, and typing returns to the top.
- Right-click an app to pin it above the rest. Pins survive restart.
- Right-click a window title bar for snapping to halves and quarters, Maximise/Restore, Minimise, Fullscreen, Close and Close others.
- Applications reopen where they were left, at the size they were, maximised if they were. Placements are clamped so a window saved on a larger monitor cannot restore beyond the edge of a smaller one.
- Empty, loading, error, no-match, results and pinned states of the launcher all carry golden coverage.
- Fixed: the auto-connect retry cancelled the window-move flush timer, a latent fault that would have shown up as a dragged window forgetting its position once the two paths could overlap.
- Appearance settings: choose an accent colour from six swatches, turn the frosted panels off for a flatter and cheaper desk, and reduce motion beyond whatever the system already asks for. Each section of Settings can be reset on its own.
-
Ctrl+Shift+Popens a command palette: launch an app, switch to a window, or reach any shell surface by name. - Fullscreen now says how to leave it, and keeps an exit control a
pointer-move away. Previously
EscandF11both worked and neither was discoverable. - Dragging a snapped window off its edge restores the size it had before it snapped, instead of sliding around the desk at half-screen size.
-
Ctrl+Shift+Doffers Copy diagnostics: a paste-ready report of build, phone, latency, throughput and per-window frame rate, carrying no device serial. - Settings and the shortcut sheet show which build is running, including when it was built, so a fresh install can be told from a stale one.
- Fixed: a window-management helper allocated seven geometry objects per window per frame over the live video texture, which cost playback smoothness.
- Every corner radius is back on the token scale; several were one or two pixels off it, which is what made edges read as unfinished.
- Every failure now says what to do about it. Twelve error codes existed and none of them was explained: a phone waiting for you to tap Allow, two phones connected at once and a version mismatch all arrived as one sentence and a code name. Wireless failures get more specific advice again, because a refused pairing code and a phone that was never reached need opposite answers.
- A failed start no longer shows the raw adb transcript. It can carry a device serial, a network address or a local path, so it is now copied deliberately rather than put on screen, with a reminder to read it before sharing.
- A failed start also offers to choose a different phone. Retrying is not the answer when the problem is that two are connected.
- A notification group folds after three, with a count on the sender. One chatty app no longer pushes every other sender off the screen.
- Alt+Shift+Tab steps backwards through open windows. The switcher also holds its order while open — during streaming the list could reorder underneath the highlight, so releasing Alt could focus a window you never picked.
- Turn a window portrait or landscape from its title bar.
- Taps land where you point them. Pointer input ignored the letterbox, so whenever the video and the window disagreed on shape every tap was offset, and a tap on a black bar landed in the middle of the app.
- A short first-run tour points out the launcher, window snapping, the taskbar and the tray, once.
Experimental Linux/Android preview. These changes are not in beta.1 downloads.
- One connection screen with local nearby-phone discovery, QR pairing, manual pairing, separate pairing/connection ports, and specific inline failures.
- Clipboard sharing defaults to off per connection. Unsupported access has a persistent explanation; runtime failures pause sharing and offer Retry.
- Companion startup tolerates Android reporting that its service is already stopped and avoids reinstalling an identical APK.
- Android setup separates connection notifications from optional notification access, refreshes Settings results, and explains restricted settings safely.
- Linux defaults to the tested direct streaming path; the legacy recording path remains an explicit fallback. Telemetry distinguishes decoded frames from frames presented. FFmpeg builds enable x86-64 assembly; the direct decoder checks compiled hardware support before selecting VA-API.
Performance work remains open: 60 FPS has not been restored. Physical Wi-Fi/QR and the complete distribution/device matrix remain unverified. Read the release notes for the checks performed and remaining limitations.
First public Linux/Android experimental preview. No stable release is available yet.
- DroidPier product identity and DroidPier Companion setup application.
- Signed companion release payload shared by desktop packages.
- Authenticated, user-requested disconnect without automatic session recovery.
- Linux packaging, release integrity checks, and public contribution documentation.
Windows/macOS remain in development. Desktop audio forwarding is unavailable. Only mark a package released after its acceptance checklist passes.
DroidPier source and downloads · Your Android. A bigger workspace.