XServer XSDL

1.43K reviews
Content rating
Screenshot image
Screenshot image
Screenshot image
Screenshot image

About this app

X Window System / X11 server for Android, complete and fully functional, with PulseAudio server included.
You may use it to stream applications from your Linux PC, or to launch Linux installed on your Android (installing Linux is done via separate app).

3D acceleration and OpenGL are not supported. If you're launching X clients from PC, you can install VirtualGL to use OpenGL.

Touch screen with two fingers to send right mouse button click, with three fingers to send middle button click. You can also press button on your stylus, or use Bluetooth mouse.
Swipe with two fingers to scroll documents.
Finger hover is supported on select devices. If you have Galaxy S4/Note 3 device, enable AirView in system settings to use it.

To invoke keyboard, press Back key. Non-English text input is not supported in terminal, but it works in GUI applications.

If you don't see Back key, swipe up from the bottom of the screen.

If you have hardware Menu key, it will send Ctrl-Z (Undo in most apps).

You can disable gyroscope in Mouse emulationAdvancedGyroscope.

You can enable portrait screen orientation and 24bpp color depth in Change device configVideo.

To set custom display number, go to Change device configCommand line parameters → change parameters to XSDL :123, press OK, where 123 is your display number. XSDL will listen on TCP port 6123. You may also pass other parameters to X server using this dialog.

To connect to the display manager on your PC, add parameter -query your.PC.IP.address to the Xserver command line, then configure your display manager.

If you have XDM, you will need to remove a line starting with :0 from /etc/X11/xdm/Xservers , add * to /etc/X11/xdm/Xaccess , and set DisplayManager*authorize: false in /etc/X11/xdm/xdm-config , to disable local X server and allow connections from external IP addresses.

If you want SHM extension to work in Linux chroot - download file libandroid-shmem.so from here:
copy it to chroot, set executable flag, and execute this in chroot before other commands:
export LD_PRELOAD=/path/to/libandroid-shmem.so

.APK file for side-loading and old versions:
Updated on
Mar 12, 2021

Data safety

Developers can show information here about how their app collects and uses your data. Learn more about data safety
No information available
1.43K reviews
Jeremy L
December 17, 2021
It seems to work ok on Android 12. The UX is a bit rough on a cellphone. But I think it might get easier with usage. Connection over ssh with termux was a bit slow, but that might be due to termux or Android. With a cellphone, It definitely works for simple stuff. Using a tablet and a physical keyboard would be even better.
45 people found this review helpful
Did you find this helpful?
September 6, 2020
A bit clunky to get started up with, but works great for remote server maintenance. I have a wireguard server set up to my server at home, I set a few environment variables and it works most of the time. Super helpful. With Samsung DeX it adds another layer entirely, making it possible to have fullscreen apps on a monitor with zero issues.
58 people found this review helpful
Did you find this helpful?
A Google user
November 16, 2018
Anything less than 5 starts is an insult. Very well done, nice configuration engine too. Top quality and stability, no ads. Have two questions, how get something done as soon as the server starts..(want do a rcmd alike To run my software on host). Second... How can I map two taps to a command.... Like the mouse gesture.. Want to map the double tap to a letter. Thank you very much for this port and your additions. Very well done, have my respect.
58 people found this review helpful
Did you find this helpful?
December 11, 2018
You cannot remap double-tap. You can bind custom keypress to two-finger action such as pinch-zoom in 'Change device config' menu during app startup.

What's new

Fixed mouse wheel
Option to disable PulseAudio server