This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 1.1.2 instead.
DeXtop Mode: Samsung DeX & Android Desktop Mode on Linux
DeXtop Mode is a modern and lightweight Python GUI wrapper that launches a virtual second screen displaying your Android smartphone's desktop mode (Samsung DeX, Motorola Ready For, native Android AOSP Desktop Mode, etc.) on Linux distributions (Ubuntu, Debian, Linux Mint, Zorin OS, etc.).
It utilizes the powerful and fast engine of scrcpy in the background to handle control and video streaming.
🚀 Key Features
- Modern Control Center (GUI): A beautiful CustomTkinter desktop interface in dark mode. No terminal command writing required!
- Automated Wireless Debugging (ADB Over Wi-Fi):
- Integrated Wireless Pairing (Association) dialog with step-by-step guidance.
- Direct one-click Wi-Fi connection with smart IP & Port auto-filling.
- Display Modes & Custom DPI Scaling:
- Easily toggle between Secondary Display (DeX Mode) and Main Display Mirroring.
- Customizable desktop display density (160 DPI standard desktop, 200 DPI, 240 DPI).
- Smart Audio Redirection: Select your preferred output device (e.g. Bluetooth headphones, HDMI, internal PC speakers) dynamically from a dropdown menu using WirePlumber/PipeWire.
- Intelligent Power Management (Anti-Veille):
- Temporarily disables the smartphone's screen timeout (
screen_off_timeout) while DeXtop Mode is running, and restores it automatically when closed. - Keeps your computer from sleeping during usage via
systemd-inhibit. - Turns off the physical smartphone screen to save battery and avoid screen burn-in.
- Temporarily disables the smartphone's screen timeout (
- Automatic & Manual One UI Gesture Repair:
- Automatically refreshes and restarts the One UI Home launcher (
com.sec.android.app.launcher) upon disconnecting to prevent back gesture freezes on Samsung smartphones. - Prominent "Repair Phone Gestures (One UI)" button available on both the Connection and Settings tabs for 1-click manual repair anytime.
- Automatically refreshes and restarts the One UI Home launcher (
- Mouse & Keyboard Lock (UHID):
- Optional relative mouse capturing (UHID) for high precision control, customizable directly in the Settings tab (press
LAltorSuperto release).
- Optional relative mouse capturing (UHID) for high precision control, customizable directly in the Settings tab (press
- Stealth & Native Taskbar Integration:
- Includes
StartupWMClassmatching so the custom icon appears natively in your Linux taskbar / dock while running. - Hides background
scrcpymenu icons to keep your desktop applications clutter-free. - Automatically hides the DeXtop Mode window during the DeX session.
- Includes
🛠️ Prerequisites
- Compatible Smartphone:
- Samsung Galaxy S series (S8 to S26), Note series, or Z Fold.
- Motorola Edge or Razr series.
- Any smartphone running Android 11+ (for wireless) or Android 15+ (for native desktop mode).
- On your Phone:
- Enable Developer Options (Settings > About Phone, tap Build Number 7 times).
- Turn on USB Debugging and Wireless Debugging in Developer Options.
- On your Computer:
- A Debian/Ubuntu-based distribution (Ubuntu, Mint, Debian, Pop!_OS, Zorin OS, etc.).
📥 Installation
Choose your preferred installation method:
📦 Option 1: Debian / Ubuntu Package (.deb) — Recommended
Download the latest .deb package from GitHub Releases and install it:
sudo apt install ./dextop-mode_1.0.0_all.deb
⚡ Option 2: One-Line Installer (Terminal)
Run this single command in your terminal to automatically build & install the native .deb package:
curl -fsSL https://raw.githubusercontent.com/super-magistro/DeXtop-mode/main/install_dex.sh | bash
🐍 Option 3: PyPI / Pip
pip install dextop-mode
# or via pipx
pipx install dextop-mode
🛠️ Option 4: Build from Source
# 1. Clone this repository
git clone https://github.com/super-magistro/DeXtop-mode.git
cd DeXtop-mode
# 2. Build the .deb package
chmod +x build_deb.sh
./build_deb.sh
# 3. Install the generated package
sudo apt install ./dextop-mode_1.0.0_all.deb
💡 How to Use
- Ensure your phone and PC are on the same Wi-Fi network (or connected via USB).
- Open your system's application menu and search for DeXtop Mode.
- If using Wi-Fi for the first time:
- Click Pair a New Device.
- On your phone, inside Wireless Debugging, select Pair device with pairing code.
- Enter the IP, the pairing port, and the 6-digit code shown, then click Start Pairing.
- In the main window, type the connection port shown on the phone (or plug in USB).
- Select your preferred Audio output in the Audio tab.
- Click Start DeX.
- Your phone screen will turn off, the control GUI will hide itself, and your DeX window will pop up!
- When you close the DeX window, the control GUI will reappear.
🗑️ Uninstallation
To remove DeXtop Mode, shortcuts, configurations, and the Python virtual environment:
chmod +x uninstall.sh
./uninstall.sh
💳 Credits
- Engine: scrcpy by Genymobile.
- Wrapper & Configurator: super-magistro.
Licensed under the MIT License. See LICENSE for details.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dextop_mode-1.0.0.tar.gz.
File metadata
- Download URL: dextop_mode-1.0.0.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b4d3c4580611bee6b756de848692e0d7315ab5053fe3e964c9d2680d48e6e2a
|
|
| MD5 |
9c519ee80e400c7475c8bdac8e8728d1
|
|
| BLAKE2b-256 |
675055da77d5af0ae52dfd5ab06f0ab527ce794f5f17d16eee6c25ffdac56b76
|
Provenance
The following attestation bundles were made for dextop_mode-1.0.0.tar.gz:
Publisher:
release.yml on super-magistro/DeXtop-mode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dextop_mode-1.0.0.tar.gz -
Subject digest:
7b4d3c4580611bee6b756de848692e0d7315ab5053fe3e964c9d2680d48e6e2a - Sigstore transparency entry: 2405982418
- Sigstore integration time:
-
Permalink:
super-magistro/DeXtop-mode@e97d905f8f66615d04591501fbcebe11dfc4db05 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/super-magistro
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e97d905f8f66615d04591501fbcebe11dfc4db05 -
Trigger Event:
push
-
Statement type:
File details
Details for the file dextop_mode-1.0.0-py3-none-any.whl.
File metadata
- Download URL: dextop_mode-1.0.0-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1cd2e77ccd12bad87e42c06cc21b59a6f8a4063c9a3357dcc06102f2ed9669d
|
|
| MD5 |
ee792056e4ef13477beeb80449886e73
|
|
| BLAKE2b-256 |
3cdefe440773ef2f6cf5b7b9bf0ba7d2d9fc3ec7ab3d9998a0490add73e9b97c
|
Provenance
The following attestation bundles were made for dextop_mode-1.0.0-py3-none-any.whl:
Publisher:
release.yml on super-magistro/DeXtop-mode
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dextop_mode-1.0.0-py3-none-any.whl -
Subject digest:
d1cd2e77ccd12bad87e42c06cc21b59a6f8a4063c9a3357dcc06102f2ed9669d - Sigstore transparency entry: 2405982438
- Sigstore integration time:
-
Permalink:
super-magistro/DeXtop-mode@e97d905f8f66615d04591501fbcebe11dfc4db05 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/super-magistro
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e97d905f8f66615d04591501fbcebe11dfc4db05 -
Trigger Event:
push
-
Statement type: