Skip to content

Phone Integration

Scrimas edited this page Sep 15, 2026 · 3 revisions

Phone Integration

Your phone and your desktop stop being strangers. ii-p3drovfx builds a full phone companion into the shell — a dedicated Phone tab in the left sidebar that combines KDE Connect, scrcpy screen mirroring (including per-app windows), your phone as a webcam or microphone, and your contacts — plus file sharing woven into the Dynamic Island and desktop widgets.

Most features need the KDE Connect app on the phone, adb (with USB debugging enabled) for the scrcpy family, and droidcam on both ends for camera/mic. The Phone tab includes an install guide popup for the phone-side pieces.


Getting connected

  1. On the phone: install the KDE Connect app (Play Store or F-Droid) and put the phone on the same network as your desktop.
  2. On the desktop: open the left sidebar (Super + B) and switch to the Phone tab — it's enabled by default. Pair the phone when it appears. From here you already get battery, notifications, ping, Find my phone, file sending and filesystem browsing.
  3. For screen mirroring / App Mode: enable Developer options → USB debugging on the phone, install adb + scrcpy on the desktop, and connect over USB once (wireless ADB can take over afterward — the shell resolves the phone's IP through KDE Connect automatically).
  4. For webcam / microphone: install the DroidCam app on the phone and droidcam on the desktop, then flip the toggle on the matching feature page.

The Phone tab's install guide popup walks through the phone-side pieces if you'd rather be led.


The Phone tab

The left sidebar's phone hub: a header with your device's status, an actions row, navigation cards for each feature page, and optional peripheral cards (battery levels for paired earbuds — Galaxy Buds and Soundcore are both supported by dedicated services). If you don't see the tab, it's toggled in Settings → Sidebars → Sidebar Policies Visibility.

KDE Connect

The classic phone bridge, driven entirely from the shell:

  • Device state — connection, battery, and synced phone notifications (fetched into the shell's own UI)
  • Actions — ping, Find my phone (make it ring), share a URL or text to the phone, send files, and browse the phone's filesystem (SFTP mount)
  • File drops — the Dynamic Island and the At a Glance widget accept drag-and-dropped files and send them via KDE Connect (or LocalSend); the island shows transfer state
  • Desktop widgets — a Mobile Battery widget keeps your phone's charge on the wallpaper, and At a Glance surfaces the phone context when its battery runs low
  • Quick toggle — KDE Connect has a Dashboard tile showing the connected device and its battery, with a dialog behind it
  • Your phone's name — KDE Connect only reports the marketing model, so the shell reads the name you gave the phone over ADB and uses it everywhere the device is labelled, falling back to the KDE Connect string when ADB is unreachable

Screen mirroring (scrcpy)

The Scrcpy page manages full-device mirroring with a serious options panel: stay-awake, screen-off, show-touches, fullscreen, always-on-top, max FPS, bitrate, max size, video buffer — tuned defaults included (the comments in the config read like lab notes: screen-off costs touch latency on Samsung, extra buffering adds visible delay, so both default off).

Wireless ADB is first-class: enable wireless mode and the shell can resolve the phone's IP live from KDE Connect instead of a hardcoded address, surviving IP and port changes between sessions.

App Mode

The standout: instead of mirroring the whole phone, App Mode launches a single Android app in its own desktop window, on a virtual display with configurable resolution and density. The app list is pulled from the phone, complete with real launcher icons fetched over adb, favorites, and a flexible display option that adapts the virtual screen to the window. Your banking app as just another tile on workspace 3.

The icons are cut to a launcher shape of your choosing (under the KDE Connect settings): Samsung One UI (the default), Pixel, iOS, and the stock Android squircle, rounded square, square, sharp square, teardrop and cylinder.

Phone as webcam

Via DroidCam: front or back camera, resolution up to 1080p, FPS and bitrate control, horizontal mirroring, rotation, and Wi-Fi or USB connection. The result is a regular V4L2 camera any app can use.

Phone as microphone

Also via droidcam-cli's audio mode — but with proper audio plumbing: the stream lands in a dedicated PipeWire null sink (DroidCam-Mic) whose monitor becomes a virtual microphone source, optionally set as the system default. Noise suppression, echo cancellation, auto-gain and gain control are built in. Your phone's mic is usually better than your laptop's — now it's one toggle away.

Contacts

The Contacts page lists your phone's address book in the shell, with avatars, favorites, and first/last-name sorting. One thoughtful default: Android exports every raw contact from every sync adapter (SIM imports, spam lists…), so unnamed number-only entries are hidden by default — toggle hideUnnamed off if you really want all 1000 of them.


Configuration

Everything lives in Settings → Devices & Phone (and the sidebar policies for the tab itself), persisted under Config.options.phone. KDE Connect can be disabled independently, and each feature (webcam, mic, contacts, app mode) has its own enable switch.

Under the hood

Piece Role
services/KdeConnectService.qml Device discovery/state, battery, notifications, ping/find/share/browse/send, wireless-ADB IP resolution
services/PhoneScrcpyService.qml Mirroring + App Mode lifecycle, virtual display management
services/PhoneAppIconService.qml Pulls app launcher icons off the phone over adb
services/PhoneCameraService.qml DroidCam webcam control
services/PhoneMicService.qml droidcam-cli audio → PipeWire null-sink → virtual mic routing
services/PhoneContactsService.qml Contact fetching and filtering
modules/ii/sidebarPolicies/phone/ The Phone tab UI: feature pages, actions, install guide
scripts/kdeconnect/, scripts/phone/ The adb/kdeconnect helper scripts

Dependencies by feature: KDE Connect (desktop + phone app), adb + scrcpy for mirroring/App Mode, droidcam/droidcam-cli for webcam & mic, PipeWire for the audio routing.


Related pages

← Back to Home

Clone this wiki locally