Using Sarab
Windows and your desktop
How Android's windows fit your desktop, and how the clipboard, notifications, launcher entries and dark mode connect.
One window per app
Each Android app opens in a window of its own, with the app id waydroid.<package>, for example waydroid.org.fdroid.fdroid. Your compositor treats it like any other window: move it, switch to it, close it.
Only one Android app is on screen at a time. Opening another app, from the launcher or with sarab app launch, brings that one up. Dialogs an app opens, such as a permission prompt or a share sheet, appear inside the app’s window; an activity of another app opens a window of its own.
Size
The window is phone-shaped and fixed in size. When Android starts, Sarab asks your compositor for the size of your screens and picks one that fits the shortest: 92% of its height, and at most 480 by 1000 logical pixels. On a screen 960 logical pixels tall that is 422 by 882. Android’s density follows your screen’s scale, so its text and controls come out the size of your desktop’s.
Windows cannot be resized yet. If your screen changes, the next app you open while Android is idle restarts it at the new size; a window already open keeps its size until it closes.
Tiling compositors
A fixed-size window is one that Hyprland and sway float by themselves, centred, at its size. Other tiling compositors may tile it instead; give them a rule that floats windows whose app id starts with waydroid.. In niri, for example:
window-rule {
match app-id=r#"^waydroid\."#
open-floating true
}
GNOME
Android’s windows have no title bar on GNOME, because GNOME does not draw one for windows that do not draw their own. Move a window with Super+drag, close it with Alt+F4, and minimise it with Super+H. KDE has not been tested.
Clipboard
Copy in Android, paste on your desktop, and the other way round. Text only: an image on the desktop’s clipboard reaches Android as an empty clipboard, never as stale text.
Sarab speaks the wlr-data-control protocol that Hyprland, sway and the other wlroots compositors offer. Without it, it uses wl-copy and wl-paste from wl-clipboard. On GNOME, which has neither by default, a shared clipboard has not been confirmed yet.
Notifications
Android’s notifications are shown by your desktop’s notification daemon, with the app’s name and icon. Their buttons work, and clicking one opens the right app in its window, even while Android is paused. A notification Android repeats without change pops up only once.
Launcher entries
The apps you install get desktop entries in ~/.local/share/applications, named sarab.<package>.desktop, with icons in ~/.local/share/sarab/icons. Sarab keeps them in step with Android at every boot and whenever an app is installed or removed. It rewrites the entries it owns, so edits you make to them do not last.
Some apps, mostly Android’s own, ship only vector icons that Sarab cannot extract yet; they get an entry without an icon.
Dark mode
Android follows your desktop’s colour scheme, as the XDG desktop portal reports it, and changes when you change it. Android goes dark only when your desktop explicitly prefers dark; GNOME’s “default” is light, so Android is light too. A change you make inside Android lasts until the desktop’s setting changes again or Android restarts.