This app was mentioned in 53 comments, with an average of 1.64 upvotes
Sad to see the practice of using a VNC server is still common... there's a native Android X11 app now, having your chroot Linux install target it should give a much smoother experience. VNC's really made for remote desktop connections, it's not at all suited for this use case and why chrooted linux on Android devices typically feels laggy.
Edit: The developer even offers a pre-packaged version of Debian that doesn't require root should you not know how to set it up or don't want to put in the effort to get this running. I'd avoid it if you're running Kitkat or lower since there's a bug that prevents it from being reinstalled if it's uninstalled, but otherwise it's pretty good.
It's a Termux Arch ARM P-Root (https://github.com/termux/proot-distro) with XFCE installed! I forward the X server to an android app (https://play.google.com/store/apps/details?id=x.org.server) and it runs like a charm. Touch support is meh but with a stylus or trackball it's great.
https://play.google.com/store/apps/details?id=x.org.server&hl=en_US&gl=US
Then in a terminal on your phone execute what they posted above. Followed by an x app that you'd like to have appear on the phone. (Xeyes is already my default tester)
You should be able to also run a dwm that way as well.
If you don't have a compatible Samsung phone, you can set up an Arch chroot
in Termux via this script. With this setup on my Google Pixel, I've had luck running LXDE with XServer XSDL as the X server.
The chroot can have xorg and use drivers to talk to the display (only on some old devices, like the galaxy s2, you can have some decent acceleration going on). Audio depends on the kernel/device. Tegra devices are godtier and you can run whatever on them with full acceleration, as shown by Ubuntu devs with Unity long before ubuntu phone was even a thing. Vesa works with most devices.
I prefer to direct the chrooted Xorg into a localhost and set up an android X server to receive the display. Sadly, newer adreno gpus such as the one on the nexus 5 don't even expose a usable framebuffer, so I have to use that. Upside, you are running android at the same time. Downside, no gnome or anything overly graphics intensive.
Old pic taken in my nexus 5, swiping down from the top would un-fullscreen this app.
I used this to have octave, r, and some other software in my phone, which is pretty convinient. That linux-android kernels are weird as fuck doesn't stop you from running xorg and listening to things.
Debian has a guide on how to completely replace android with linux, hijacking the init system to launch debian's initscripts. It's doable, but I prefer modern software, and systemd is not friendly to that kind of init savagery. Didn't investigate it further though.
You could try XServer XSDL but it's not designed for gaming, it allows you to run desktop applications on your tablet using your PC as the server. You don't need any aditional software on your PC, just set the DISPLAY variable to the tablet's IP to start the program on the remote display.
I personally go Debian and install as I need.
I use this as my X Server; https://play.google.com/store/apps/details?id=x.org.server and set it up so it matches my phone's native resolution and X0.5 for zoom (make it all even).
In a base Debian install (without any additional packages expect base)..
apt-get update && apt-get install xfce4* gimp
And voilà. GIMP. I wouldn't hold my breath so much for blender, it may be possible, but, there is no 3D acceleration in Termux.
Not the best thing, but I have tried to use a Samsung Tab A with pen. I use termux to install arch in chroot, launch a X server app and run xournal. It is surprisingly usable. Though I don't usually jot notes so I can't comment on the experience of day to day use. You can tried that if you have a spare Android tablet.
Here is doc for the setup, you can find more if you google. https://wiki.termux.com/wiki/Graphical_Environment
LineageOS + Magisk + Termux is the shit. If you want, you can run literal Linux desktop on it with some tinkering, but i have no use for it.
The only difference is that Android uses its own graphics stack. But there are X servers on Android that should allow running desktop applications (for example).
You're welcome. If the VNC apps don't give you a good time then do try Termux's own X/Wayland implementations and/or the X Server XDSL app (you can combine these with the VNC apps without them running the display if necessary).
Download this app
Install linux distribution in termux using proot-distro
Open Xserver XSDL and wait for it to start. Next go to termux and paste command (inside installed linux).Command should copy itself automatically.
Enter the command that will run the selected application that you download earlier.
Go back to XSDL. After few seconds apps start.
I prefer to use window manager e.g. Openbox to can close and resize windows.
I hope I explained it well :)
There's no codec/libraries in that browser
There is one solution to combat this problem
(Note: Step 1, 3, 5 and 11 will have to it all the time when you do this)
I do enjoy Andronix as well, but I use XServerXSDL. It is X11 server for Android. I find it a bit more performant and it has better mouse support, it has things like mouse wheel scroll, cursors.
If it has its own Linux kernel with own configuration, its a Linux distro. That means its an UNIX-Like operating system, so you can run X11, i ran it using X Server XSDL from Google Play, but I want to run it over the Android display server or stop the server to run X11 server.
I also recommend to use xsdl server app from google play store. https://play.google.com/store/apps/details?id=x.org.server
In running termux linux session you need to type this: export DISPLAY=127.0.0.1:0 && bash ~/.vnc/xstartup &
it's much faster than regular vnc. You can even easily watch fhd youtube and movies without stuttering.
You'd need to start the VNC server to create an X session. You'd then add startxfce4&
to ~/.vnc/xstartup
and connect to it via a VNC client.
You can alternatively use XSDL to view your X session.
I will be trying X at some point, but will instead use XSDL as the 'host' can't talk to guest, but guest can talk to host. Will also provide pulseaudio out of the box.
Well yes, but actually no. Xorg supports displaying over the network. You can spin up an Xorg server and display programs on it (or even a whole DE). You can even send your display to an android phone with the help of XServer XDSL.
You can use XServer XSDL instead of VNC. Follow this guide from Andronix.
I use this; https://play.google.com/store/apps/details?id=x.org.server it has a Pulse audio server built in. In proot, install pulseaudio, set the environment variable;
export PULSE_SERVER=127.0.0.1:4713
and use pulse output for your proot applications.
You can to a point make graphical games, but you wont get any hardware acceleration from your devices GPU.
Install x11-repo and get a basic X setup;
pkg i x11-repo pkg i xfce4
Install XSDL and configure Termux environment to use the XSDL server (also supports pulse audio). Launch your X session and run any games you've made.
A trick for XSDL, it can be a little quirky to set, but make the resolution native to your device and the font point size 0.2 (makes things small, but everything fits nicely).
pkg install libcaca
restart w3m, you'll get ASCII generated images. Or, better yet, install
https://play.google.com/store/apps/details?id=x.org.server
and install Termux Xorg (Xterm), setup the X server IP:port in Termux env and xterm -e w3m somesite.com
Termux is just a terminal. And it runs everything in a container-like sandboxed environment. So I'm guessing one would need to open termux and start xfce.
I'm not sure where it would render it though. I'd wager on something like this.
Another thing that I've been using is XServer XSDL to send X11 programs from a deck to an android phone in a "walmart-brand VR headset (phone not included)", but you'd need a program that doesn't try to use OpenGL and uses X11... so, this is only useful if you're using hackvr in splitscreen mode.
You should have access to /dev
which includes your block devices, graphics nodes, device tree, etc. But I don't know if that's what you're looking for here.
You may want to try XServer XSDL which includes support for 3D acceleration. In my experience, its a bit faster than VNC.
EDIT: It's worth noting that using X11 forwarding like this likely won't work with KDE, as it lacks GLX / OpenGL since it's not technically a "display". With VNC it creates a virtual framebuffer with virtual GLX extensions, which is why compositors work. But you can try and see.
VNC server would technically be slower. Run the XServer XSDL you can run a considerable amount more (video with audio, for example).
You can also do VirtualGL but would require running a VNC on a system with 3D hardware (not the phone).
Or install this; https://play.google.com/store/apps/details?id=x.org.server install PulseAudio
pkg install pulseaudio
(or use pulse server offered by above) add this to scripts
export DISPLAY=127.0.0.1:0
And whalla.
You are welcome. So linux via userland or andronix will run natively on the phone, what I mean is there is no emulation, the code in linux runs straight via the android kernel & cpu. That way you get full performance from your device.
The alternative to vnc is using this: https://play.google.com/store/apps/details?id=x.org.server&hl=en
PS. there's no way to use the GPU on our phones as of yet. That's perhaps is the biggest drawback.
With some tinkerig and this script I managed to install libreoffice (running with Xserver XDSL) and VSCode. Be aware that not every arch package will run bc. of lack of some needed components on android.
Edit: I host and use Nextcloud and don't like the android client so i use rclone to sync my folders.
Should ultimately have no issue with sound. Should be able to use an X-Server but honestly not going to be necessary.
You run X Applications and they forward to Wayland on ChromeOS.
Physical drivers on the ChromeOS side are mapped to a virtual driver on the VM side.
There are some advantageous to using the ChromeOS desktop instead of a X Windows Manager.
BTW, if you want you can use an X Server now. Just use XSDL Android App. You can now and then use GNURoot which uses a fake chroot. Just somethings do not work in GNURoot.
https://play.google.com/store/apps/details?id=x.org.server&hl=en_US
Like /u/takethispie said: Where do you interact with the kernel on Windows?
And while glibc is the default on nearly any Linux distribution there are also other alternatives (like ulibc). Would you a distribution which shippes ulibc as default not Linux (you can use ulibc for example when using Gentoo)?
Actually Android of course uses a standard library which is POSIX compatible for a large part (see wikipedia for example).
And even on unrooted Android you can still use the terminal which runs a shell like a "normal" Linux (even though I don't know what "normal" here should be).
And what do you exactly mean by "linux weight"?
Edit: There is a X server for android.
It depends how you think about it. An android system boot very similar to a "normal" linux distro;
So what I did was to install all debian files onto a partition on the sd card, and then put them in my path. CLI works quite good from this stage on. To get a GUI interface I used an X server running in the android system, although it "should" be possible to bypass the whole android system with some display driver hacking.
Anyway, since it's installed "under" the java vm system I wouldn't say it's installed on top of android. Although it's certainly possible to run some emulator on top of android as well of course, with performance loss.
"now for reddit" is a fancy Android app, got a little lost browsing it :P
I don't have an sailfish device either. Ports to Android devices where promised, but so far I didn't see any.. No xwayland is a bummer, but X is about to die and applications are moving to wayland right now.
As for X applications on mobiles:
For Android there's a X server that works pretty well. You can run a full blown desktop through it, but to make actual use of it you'd need a tablet at least https://play.google.com/store/apps/details?id=x.org.server
Graphical applications on the desktop use frameworks like gtk and qt. As long as the frameworks get ported (which is the case for gtk and qt) the apps run on wayland just fine. Therefore the whole Gnome desktop (nautilus, eog, web, evince, gedit etc) is running natively on wayland just fine thanks to gtk. For KDE the same goes with qt (as far as I've heard)
As long as you have a Linux kernel and drivers you can also fire up an instance of your favourite graphics renderer and use that for your applications. This is what I did here with X on Android: https://www.youtube.com/watch?v=ACsprB0r1pA And yes: Desktop apps on a phone are hardly useable as a daily driver, but for tablets I'm sure it would work out.
Two questions:
If you configure your RPi as a wifi access point, you can hit it with ssh from any Android device easily. I haven't personally tried any X server stuff for Android but it should work.
i like termux, but i dunno about using it for linux GUI programs... i use it for CLI things (vim, python, sql, etc). you should be able to do R dev there.
you could also use XSDL app and GnuRoot to run Debian with X11 apps.
...of course, these are via the android runtime, i don't know if your chromebook supports that.
Or you can use this for free if you run Linux.
Instead of VNC, there is also the option of Xserver with this app
You can read a bit more here:
I use this one and it doesn't show statusbar, i don't know about navigation bar since is use gestures https://play.google.com/store/apps/details?id=x.org.server
Its so great with Xserver xsdl https://play.google.com/store/apps/details?id=x.org.server
This might work. It makes more sense to install Ubuntu, just for consistent file system/tools layout.
pkg i x11-repo pkg i xfce4* thunar netsurf
And use either VNC server in Termux, or use XSDL to render X from.
I run my X through XSDL and most content plays just fine.
XServer XSDL is enough too.
Have you tried XSDL on your phone as an X Server? Or using VNC to provide a GUI environment?
My setup:
Quest & hand tracking + Logitech K380 BT keyboard - The hand tracking lets me avoid switching between controllers and the keyboard. A full-size keyboard is important since you'll be blindly typing. It's possible to peek through the nose gap on the Quest, but I find that not seeing the keyboard in my peripheral vision causes problems when writing code. It is hard to hit all the special characters like (){}{}|
without a reference to my keyboard. A more extreme option would be to cut away part or most of the headset to increase situational awareness.
XSDL and GUI apps - I don't recommend using a GUI like this, and I only ran XSDL for this demo. The mouse emulator is glitchy so you'll be stuck with a tiling WM for any real work. And since the set of GUI apps is limited in Termux, it's not that useful. But you can use a VNC client for remoting out of the headset. There are many GUI apps compatible with Termux, but I was just using a minimal setup with Termux's x11-repo, ST, VNC, and i3. libx11-dev
isn't available in the Termux repo, so you can't directly compile GUI apps, but you can cross-compile from ARM if you want more apps. There is no GUI browser for Termux and switching away from XSDL to use the Oculus browser will kill your session unless you are using a local VNC server. To launch an app on XSDL via Termux, you'll need to run something like export DISPLAY=0:0; while true; do i3; sleep 1; done
so that Termux runs in the background and launches a GUI app on XSDL as soon as XSDL is active.
Audio - I used cmus, cava, & pulseaudio to play some appropriate background music while going through this demo. cmus is also useful if you just want background music on your headset while using some other app.
feh
to view the resulting image. Smallpt is a good multithreaded microbenchmark if you want to compare vastly different hardware which is why I used it in this demo. You can also install node, python, scheme or a bunch of other languages if you want.Other useful bits of info:
Disclaimer: while I work for Oculus, sideloading apps like this isn't supported on the Quest, and this workflow might break at any time in the future.
I don't know. Maybe. I'd try to use this app: https://play.google.com/store/apps/details?id=x.org.server If you start it, it has some instructions on the screen.