DexOnLinux is a tool that allows you to stream Samsung DeX from your Samsung device to your Linux PC, controlling it with your mouse and keyboard, and interacting with it as if it were a native application on your desktop.
Project description
DexOnLinux
DexOnLinux streams Samsung DeX to a Linux desktop and lets you control it with your mouse and keyboard through scrcpy.
The package is available on PyPI:
pip install dexonlinux
Requirements
DexOnLinux needs:
- Python 3.9 or newer
- Miraclecast (
miracle-wifid,miracle-sinkctl) - scrcpy
- adb
- a Wi-Fi adapter with P2P support
- sudo access, because the CLI temporarily stops NetworkManager and wpa_supplicant while the DeX session is running
The project is currently tested on Ubuntu 24.04.
Installation
Ubuntu 24.04
The helper script installs the system dependencies used by DexOnLinux and installs the dexonlinux package from PyPI. It uses uv when available and falls back to pip.
Do not run the script with sudo; it will ask for sudo only when system packages need to be installed.
git clone https://github.com/gabdevele/DexOnLinux.git
cd DexOnLinux
chmod +x ./scripts/install.sh
./scripts/install.sh
source .venv/bin/activate
dexonlinux
Other Linux distributions
Install Miraclecast and scrcpy using your distribution packages or their upstream instructions:
Then install DexOnLinux from PyPI:
python3 -m venv .venv
source .venv/bin/activate
pip install dexonlinux
dexonlinux
If you use uv:
uv venv
uv pip install dexonlinux
source .venv/bin/activate
dexonlinux
Usage
Run:
dexonlinux
Useful options (these are not required, DexOnLinux works with no arguments):
dexonlinux --help
dexonlinux --interface wlan0 --device R5CN1234567
dexonlinux --fullscreen
dexonlinux --display-id 2
dexonlinux --debug --log-file dexonlinux.log
dexonlinux --no-banner --no-color
DexOnLinux checks dependencies, Wi-Fi P2P support, sudo, and adb before disabling network services. Unless --yes is passed, it asks for confirmation before stopping NetworkManager and wpa_supplicant.
On exit, Ctrl+C, or startup failure, DexOnLinux attempts to stop the Miraclecast processes it started and restore network services.
How it works
DexOnLinux uses:
- Miraclecast for the Wi-Fi Direct sink
- scrcpy for display and input control
- adb to select the Android device
- miracle-sinkctl output to detect DeX connection, disconnection, and stream resolution
Development setup
If you want to contribute or run the latest code, clone the repository and install the dependencies with uv:
git clone https://github.com/gabdevele/DexOnLinux.git
cd DexOnLinux
uv sync --group dev --locked
uv run dexonlinux --help
Bugs and feature requests
Please report any bugs or feature requests on the GitHub issue tracker.
Project details
Release history Release notifications | RSS feed
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 dexonlinux-1.0.2.tar.gz.
File metadata
- Download URL: dexonlinux-1.0.2.tar.gz
- Upload date:
- Size: 556.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ac475150d37229e10a6105bb932e5e6ff53000481fcff73cefb0a5dc06fbbd6
|
|
| MD5 |
eebd2964493762517faf0520080b5b6c
|
|
| BLAKE2b-256 |
5603cb4f6e62cf70d203d24463e025cb324498dd9026e745176b8970dfb3d07e
|
Provenance
The following attestation bundles were made for dexonlinux-1.0.2.tar.gz:
Publisher:
publish.yml on gabdevele/DexOnLinux
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexonlinux-1.0.2.tar.gz -
Subject digest:
3ac475150d37229e10a6105bb932e5e6ff53000481fcff73cefb0a5dc06fbbd6 - Sigstore transparency entry: 1750454880
- Sigstore integration time:
-
Permalink:
gabdevele/DexOnLinux@84687ad12b7735fdbd23e96769c0828e27e1bc5f -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/gabdevele
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@84687ad12b7735fdbd23e96769c0828e27e1bc5f -
Trigger Event:
release
-
Statement type:
File details
Details for the file dexonlinux-1.0.2-py3-none-any.whl.
File metadata
- Download URL: dexonlinux-1.0.2-py3-none-any.whl
- Upload date:
- Size: 555.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7628e9976ce9555096eef6f154623cb5df15f372c9a6ea4e5d19674a299b8767
|
|
| MD5 |
5a67e34578cfb70dc4522ca4acd64068
|
|
| BLAKE2b-256 |
a838c5cec0c30c90af99a58cd70ce347899829a07079ff690e4d2a9e100b375a
|
Provenance
The following attestation bundles were made for dexonlinux-1.0.2-py3-none-any.whl:
Publisher:
publish.yml on gabdevele/DexOnLinux
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dexonlinux-1.0.2-py3-none-any.whl -
Subject digest:
7628e9976ce9555096eef6f154623cb5df15f372c9a6ea4e5d19674a299b8767 - Sigstore transparency entry: 1750454924
- Sigstore integration time:
-
Permalink:
gabdevele/DexOnLinux@84687ad12b7735fdbd23e96769c0828e27e1bc5f -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/gabdevele
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@84687ad12b7735fdbd23e96769c0828e27e1bc5f -
Trigger Event:
release
-
Statement type: