Most Powerful Open Source ERP

Using an /e/ phone as a desktop or laptop

Not so much work remains to be done to turn /e/ into a desktop operating system. Using an /e/ smartphone as a desktop PC with an external screen, keyboard and mouse is already possible with good usability. Using an /e/ smartphone as a laptop is also possible with scrcpy although some minor improvements are still required for usability.
  • Last Update:2020-02-01
  • Version:001
  • Language:en

/e/ is a smartphone operating system derived from Android Open Source Project (AOSP) and LineageOS with two key differences:

  • privacy;
  • usability.

/e/ has modified the source code of various parts of AOSP to stop informing Google (and the NSA as a consequence of CLOUD Act) of user activity. It relies on a fork of the Bromite web browser, itself a fork of Chromium with ad blocking and privacy enhancements.

/e/ has added to AOSP various online services (search engine, storage, etc.) that are based on open source software only and that can be self-hosted. /e/ also provides an AppStore with privacy ranking of every app. It also provides a map and navigation service with better privacy. Overall, an /e/ phone is usable enough to be considered as a possible replacement to a standard Android phone with the full Google suite.

In a sense, /e/ is what Huawei is trying to do with HMS, but it has already been released since 2018 and, unlike Huawei (or Google Play), it is open source and thus exempt by design of backdoors.

Until now, Nexedi has been maintaining a derivative of ChromiumOS with some extra features: NayuOS. However, the gap between ChromiumOS and its proprietary counterpart ChromeOS has increased so much that we see no possibility to maintain a usable NayuOS in the long term. Nexedi has thus decided to support the /e/ foundation and its sister corporation, with the hope that /e/ would some day become a usable OS for desktop or laptop.

/e/ has already released an alpha version of its operating system for Pinebook and Teres laptops. However, porting effort is huge and it takes a long time. Pinebook hardware is no longer available. The newer version (Pinebook Pro) does not support /e/ yet.

We have thus decided to try another approach: use a plain /e/ phone, purchased directly from /e/, as a desktop or as a laptop.

Using an /e/ phone as a desktop

We thus purchased a Samsung Galaxy S9 phone from the e.store. After receiving it, we combined it with:

  • a Bluetooth keyboard (Logitech K480);
  • a USB-C hub with HDMI and USB-3 connectors;
  • a USB-2 mouse;
  • an HDMI LCD HD screen.

We plugged all device and everything worked, including text selection with mouse, copy-paste with crtl-C and ctrl-V and progressive web apps (PWA) provided by OfficeJS.

/e/ as a Desktop PC with OfficeJS Web Text Editor

However,

  • the home page is not satisfactory (Task Bar app solves this but Task Bar has other issues such as not displaying PWA icons or listing PWA apps);
  • fonts are too big;
  • icons are too big;
  • there are big horizontal bars at the top (notification, window) or bottom (buttons) that take space for nothing;
  • not all the screen is used with black horizontal areas at the top and bottom.

The good news is that we found a solution to this. We remotely logged into the phone in developer mode using the ADB over TCP/IP and changed the screen settings:

adb shell wm size 1080x1960
adb shell wm density 216

This solved the problem of font and icon size. It also removed the unused zones at the top and bottom of the LCD screen.

We then tried to remove the big horizontal bars at the top and at the bottom. For this purpose, we enabled the "Free Form" mode in Android (which brought the possibility of having windows). We also discovered an interesting feature in /e/ (which incidentally we could not find for example in recent Huawei phones): expanded desktops. With expanded desktop set to "hide both" for Chromium browser, Web navigation became full screen, hiding any buttons (bottom) or notification (top) which is sometimes nice.

Finally, all screen could be used for browsing the Web without anything else to interfere, just like with ChromeOS.

Turning a laptop into a remote display

Working with a /e/ phone on the desktop is possible with an external screen, keyboard and mouse. However, it is not convenient when travelling. Products such as Mirabook would be marvellous, if only they were available (3 years after their launch, it is still not possible to get one). Equivalent products such as NexDock or Superbook are not available yet either.

But, since there are cheap laptops such as Pinebook or open source laptops such a Teres by Olimex, we could actually try to make our own "smartphone lapdock".

The good news is that it is actually quite easy to achieve thanks to an open source software called scrcpy. By running a basic Ubuntu distribution, adding scrcpy as a snap package and connecting to the smartphone via ABD (either through USB or through the phone's Wifi), one can turn a laptop into a remote keyboard and display.

The result is impressive thanks to very low latency between the laptop display and the smartphone.

/e/ as a laptop with scrcpy

Only two problems remain though:

  • text selection with mouse does not work;
  • ctrl-C and ctrl-V can not be used for copy and paste.

Both problems should be fixable, since they do not exist with a real USB-mouse. Maybe, scrcpy needs to provide some kind of mouse emulation instead of touch-screen emulation.

An XFCE desktop on /e/

We also experimented with UserLAnd and ran a full GNU/Linux desktop with our /e/ smartphone. Thanks to PRoot technology, UserLAnd can provide a kind of user space chroot based on strace technology.

As long as XServer XSDL is installed, it is possible with UserLAnd to run all sorts of legacy X11 applications on /e/ or even turn /e/ smartphone into a full GNU/Linux desktop. UserLAnd is also a quite efficient way to run a complete Debian or Ubuntu server inside a smartphone and turn the smartphone into a development workstation (the other solution is Termux). PRoot technology is not as efficient as kernel namespaces but is fast enough to be usable.

XFCE on /e/ with UserLAnd

Next steps

Overall, not so much work remains to be done to turn /e/ into a desktop operating system:

  • there is a need for a good home page, a bit like Task Bar but with good support of PWA;
  • changing screen geometry should be made easy (instead of having to use ABD);
  • remote access through USB with scrcpy should emulate mouse rather than touch screen (and plugging USB cable should propose to connect through ADB);
  • XServer XSDL should be added to /e/ appstore.

That is probably all for a start.

Later, it would be nice for professional use to provide a way to use /e/ in a mode similar to ChromeOS's "guest mode" so that no data would be persisted after a smartphone reboots. For sensitive data, non-persistent user data is probably the best approach to cross a border now that legislations require to reveal the phone's password to border police. And it would be also good in a business context to lock the phone to prevent installing apps: in most cases Progressive Web Apps are enough for business anyway.

It would also be nice if /e/ could enable Linux kernel namespaces (and provide its linux.h configuration to chroot containers) to improve the stability of running chroot on /e/ smartphones with applications such as UserLAnd.

If all this can be achieved, then /e/ can become a competitive alternative to ChromeOS for desktop and laptops.

References