Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
102 lines (97 sloc) 5.79 KB
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Building X11 on iOS</title>
<meta name="description" content="Instructions for building X11 and Xorg on jailbroken iOS. ">
<meta name="keywords" content="Max,Leiter,Max Leiter, X11, iOS, Linux, Xorg, Cydia, jailbreak, projects">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../css/normalize.min.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="X11.css">
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<script>window.html5 || document.write('<script src="js/vendor/html5shiv.js"><\/script>')</script>
<![endif]-->
</head>
<body>
<div class="main-container">
<aside class="contents">
<p class="contents-title" style="text-align: center;">
<b> Table of Contents </b>
</p>
<ol style="margin-left: 20%;">
<li> <a href="#intro">Introduction</a></li>
<li> <a href="#how">How it works</a> </li>
<li> <a href="#why">Why</a> </li>
<li> <a href="#features">Features</a> </li>
<li> <a href="#roadmap">Roadmap</a> </li>
<li> <a href="#contribute">Want to contribute?</a> </li>
<li> <a href="#instructions">Building instructions</a> </li>
<li> <a href="#tips">Tips, bugs, etc.</a> </li>
</ol>
</aside>
<div class="blog main wrapper clearfix">
<h1>X11 on iOS</h1>
<hr>
<h3 class="header" id="intro"> Introduction </h3>
<p>
I'm excited to announce that X11 is coming soon to iOS. Most (see below) packages and dependencies for a fully functioning X11 desktop system have been compiled and are available on Cydia for iOS 11+. All packages have been compiled for arm64 and have been tested on iOS 12.4 and iOS 13.1. This requires a jailbroken device.
</p>
<p>
This site will serve largely as documentation for building yourself. You can add the Cydia repo below for the deb packages. Please let me know if you run across any issues with the debs; it's likely I messed up including a library or something like that. <i> (These aren't done just yet.) </i>
<br>
<br>
<a style="opacity: 1;" href="cydia://url/https://cydia.saurik.com/api/share#?source=https://maxleiter.com/cydia"><button>Add to Cydia</button></a>
</p>
<img src="./front.png" alt="X11 on iOS with a desktop, text editor, and OpenGL demo">
<i>Above: adie (text editor), glxgears (GL demo), xterm (terminal emulator), fluxbox (window manager), compton (compositor), PathFinder (files). <a href="./onipad.jpg"><br>Image of programs running on device</a></i>
<h3 class="header" id="how"> How it works </h3>
<p>
At the moment, a virtual screen is accessed via a VNC client to an Xvnc <sup><a href="#1" id="1src">[1]</a></sup>instance running on the iDevice. If you're unfamiliar, Xvnc is an X server with a virtual screen that can be accessed via VNC. The best part of this is no drivers are required: it's all handled by Xvnc.
</p>
<p>
</p>
<h3 class="header" id="why"> Why </h3>
<p>
I want to turn my iPad into a proper development environment, and a windowing system helps with that. It's a powerful machine with a Unix-like OS, so X11 seemed like a reasonable project. X11 allows running arbirtary applications like browsers and IDEs, assuming you can make them compile.
</p>
<h3 class="header" id="features"> Current Features </h3>
<ul>
<li>X11 on iOS via Xvnc </li>
<li>Working window managers (<a href="https://joewing.net/projects/jwm/">jwm</a> / <a href="https://github.com/freedesktop/twm">twm</a> / <a href="http://fluxbox.org/">fluxbox</a>) </li>
<li>Text editor (<a href="http://www.fox-toolkit.org/adie.html">adie</a>)</li>
<li>Image editor (<a href="https://github.com/Symbian9/azpainter">azpainter</a>)</li>
<li>OpenGL (via Mesa)</li>
<li> <a href="https://github.com/MaxLeiter/cydia/tree/master/debs">Loads</a> of other libraries, tools, and applications. </li>
<li> All available in a <a href="https://maxleiter.com/cydia">Cydia repo</a></li>
</ul>
<h3 class="header" id="roadmap"> What's next? </h3>
<ul>
<li> <strike>Fix modern versions of fontconfig (> 2.8.0)</strike> &mdash; <i>this has been addressed.</i></li>
<li> Desktop enviroments like XFCE, GNOME, and KDE</li>
<ul>
<li> requires GTK or QT </li>
</ul>
<li><strike>Experiment with Wayland via wayvnc</strike> &mdash; <i> not feasible on iOS</i></li>
</ul>
<h3 class="header" id="contribute"> Want to contribute? </h3>
If you're interested in using X11 now, or helping make it available sooner, feel free to <a href="mailto:maxwell.leiter@gmail.com">email me</a> or find me on IRC as MaxLeiter in #X11iOS on Freenode. More information on contributing is in the works.
<h3 class="header" id="instructions"> Building instructions </h3>
<a href="./instructions.html">On a separate page</a>
<h3 class="header" id="tips"> Tips, bugs, etc. </h3>
<ul>
<li>Getting <code>checking build system type... Invalid configuration `arm64-apple-darwin19.0.0': machine `arm64-apple' not recognized</code>? Run <code>echo 'echo arm-apple-darwin' > config.sub</code></li>
<li>Once I finish this it should be a little easier porting libraries and apps</li>
</ul>
<hr>
<a class="footnote" id="1" href="#1src">[1] https://tigervnc.org/doc/Xvnc.html </a> <br>
</div>
</div>
<footer class="blog main wrapper" style="display: flex; justify-content: space-between;">
<span> By <a href="https://maxleiter.com">Max Leiter</a> </span>
<a href="https://github.com/MaxLeiter/maxleiter.github.io/blob/master/X11/index.html" id="source">This page on GitHub</a>
</footer>
</body>
</html>
You can’t perform that action at this time.