F(x)tec Pro¹

Droidian on Pro¹ showing Waydroid and the Shadow cloud computing application (with a bug)

A quick video showing Waydroid in Droidian on the pro¹. Video decoding works, which makes it possible to use applications such as Shadow.tech's for cloud computing. Unfortunately, while the Android GUI works fine in this application, the coordinates of the cursor in the remote computer seem off on the x-axis, as shown in the video.

Ubuntu Touch vs SailfishOS side-by-side on the F(x)tec Pro1 keyboard slider phone

An overview of both OSes on the F(x)tec Pro1, and some discussion about how the hardware keyboard compares with other keyboard phones.

The video may give a false impression: I do not dislike Planet Computers devices at all. In fact, I am really happy that they are on the market and even though their offering would not be my first choice because of the keyboard, hinge and SOC, it is great that they are contributing to the love for keyboard phones. Now with them, Unihertz and F(x)tec, we can finally choose.

Debian + i3 inside Sailfish OS, F(x)tec Pro¹ slider phone

Thanks to Illyria's work on developing sailfish-containers (https://github.com/sailfish-containers) to make use of LXC on SFOS and make GUI frontend for it, SFOS users can now run full-fledged desktop distributions on their phone, and X works great on Debian. The app has not been released yet, but word is it should be out in a few days. Keep an eye on the Github repository and the SFOS community app store (https://openrepos.net/users/sailfishcontainers) somewhere next week.

The demo video shows Debian with i3wm, polybar and a bit of ricing running as a LXC container within SailfishOS on the F(x)tec Pro¹. Hopefully the video shows that it is very usable in real world with the keyboard of the Pro¹, not just a proof of concept. For those who don't like tiling WMs, XFCE4 also works perfectly fine.

The Pro¹ doesn't have stellar specs (it shines in other aspects), but SFOS is very light and performance is really good. Battery life is about the same as without a container running, you can go through the day with normal use. Multitasking works great, and since the container just behaves as another SailfishOS app, all features of SailfishOS as still there without the need for multiboot. In other words, you can have a full-featured Linux desktop distribution in your pocket together with all mobile and telephony features of SailfishOS. CPU usually sits at about 5 to 6%; the video shows higher values but that is mostly because apps are starting.

Video content:
00:10 Starting the Debian container from SFOS
00:26 nmail email client
00:46 SFOS multitasking with the container running as an app
00:57 Firefox (with some CSS tweaks to adapt the UI to my liking), showing various websites in Desktop view, Discord web app, tab switching
01:46 Stream a video URL in mpv, and show mpv as a floating window in i3
02:11 cmus, the best music player ever
02:54 nnn file browser, showing contexts (similar to tabs), and live previews in Kitty terminal (including images)
03:12 Epub reading with mupdf
03:44 Text editing with kakoune, showing markdown-pdf live conversion (note that a markdown-docx conversion was automated at the same time using pandoc, with no performance issue) and live-previews in mupdf
04:25 rofi app launcher (there are other rofi modis that I didn't show)
04:30 Libreoffice Writer to edit the freshly converted .docx file
04:56 i3lock feature
05:15 i3expo (i.e., an exploded view of all current workspaces, similar to Alt+Tab previews in other WMs)

Useful links:

Desktop Linux & WM on Pro1 qwerty slider without sacrificing telephony: LXC containers in SailfishOS

Aplogies for the annoying accent. This is an overview of full desktop Linux distributions running as LXC containers in SailfishOS, on a F(x)tec Pro1 qwerty slider phone. Jump to 06'23" for Kali XFCE (fresh install) or 08'40" for Debian i3-gaps (configured install).

I am not affiliated to SailfishOS or F(x)tec, and am merely a community member using sailfish-containers since a few months. This application is being developed by r3vn (https://github.com/sailfish-containers) and is inspired by previous work by elros34 and Preflex on chroot solutions and Xwayland.

Battery use is similar with and without containers running, one can go through the day with a full charge and light to normal use. The Pro¹ does not have a bleeding edge SOC, but the performance is good enough for what I use it for, and using this SOC may actually be an advantage for overall Linux support (drivers, mainlining task).

It is possible to use the us-intl layout and deadkeys on the hardware keyboard, this is how I use it. There is also support for external keyboard and mouse, meaning we're only missing hw-decoding and, most importantly video-out through the USB-C port, for ultimate "Convergence" where we'd get a full desktop experience and not a mobile OS with an external display. Hopefully someone will find a way to make video-out work on Sailfish so we can get the perfect Linux travel companion.

00:00 Introduction to Sailfish on the Pro¹
00:44 Sailfish multitasking view
01:11 Hardware keyboard support in SailfishOS
02:31 Application to install/manage Linux containers
04:14 Foreword on the known limitations
05:43 Kali XFCE (fresh install)
08:40 Debian i3-gaps (configured install)
08:58 Darktable
09:17 Short demo of i3wm for those not familiar with tiling WMs
11:23 Firefox desktop
12:10 Quick peek at the similarity of my desktop environments on a full size computer and on the smartphone
12:49 Keybindings in Firefox
13:25 Video playback performance and multitasking
14:28 Document editing with Libreoffice
16:12 Multitasking example
16:45 Gimp
17:30 nnn terminal file manager and Nautilus
18:41 Using Onboard virtual keyboard on touch-only devices
20:47 Conclusion and some words about device compatibility, performance and battery use

sailfish-containers repository, https://github.com/sailfish-containers

F(x)tec Pro¹ running Sailfish OS and Chromium in Ubuntu chroot

Simple video showing the community port of SFOS on the F(x)tec Pro¹, and specifically Ubu chroot Chromium in its own window, or within the xfce4 DE.

Please excuse the overexposure of white web pages. I lowered the brightness of the phone and adjusted the camera settings to underexpose, but not enough.

The video shows:
00:14 Sneak peek working when the proximity sensor is unobstructed
00:21 CLACK
00:24 Chromium browser from Ubuntu chroot, ran in its own SFOS window: some keybindings, switching tabs, moving tabs, closing tabs, new tabs, some extensions in action (Tampermonkey, Stylus). Hard to read, but at 02:24, I show in the address field that dead keys do not work when Chromium is launched this way, but they work within xfce4
03:18 Ubuntu chroot xfce4 DE, and Chromium launched from it. Some other keybindings (split screen, snap windows to sides, maximize, resize, move, app switcher in chroot (there is also an app switcher for SFOS using another keybiding), etc.), xfce4 panels, and dead key do work (05:00). However, the level 3 chooser (r_alt) still doesn't work in chroot yet. It works in SFOS.

Whether launched in its own window or together with xfce4, the SFOS cover (multitasking view) shows the actual content of the window, so it is almost the same when launched from xfce4, and you get working dead keys, DPI adjusted to your liking, and the advantages of Ubuntu muultitasking, at the cost of some screen real estate lost for xfce4 panels. Responsiveness is good even with xfce4 running.

Typing test on handheld Pro1 (no desk support)

Without the camera keeping me further from the phone, my score was 60 wpm/252 cpm/100%.

Typing test on handheld Pro1 without the hardware keyboard; apologies

Not a very fair comparison because I am not used to typing on Onboard, plus I configured it to a relatively small size, but there is no way I will ever do 250 characters per minute with a touch keyboard.

Ambiences in SailfishOS

Sailfish ambiences allow to quickly change background, system and application colors, as well as sound profiles like ringtones or silent mode at any moment, without any installation or restart. Very useful for switching between dark and light themes for instance.

Deeper control can be achieved using the Situations app, which allows changing pretty much all settings (GPS, BT, WLAN, Brightness, Volume, executing custom scripts, etc.) with AND/OR conditions based on different factors such as WLAN networks, charging status, location, headphone jack status, time, etc.

Debian + i3-gaps in a LXC container run in SailfishOS: works for touch-only devices too

Third Onboard test for using sailfish-containers on touch-only devices: shows onboard open/close from touch icons, and Onboard docked and visible on all i3 workspaces.

Xephyr test with -softCursor in LXC, SFOS

Better solution with no drawbacks now, thanks to Qt5 plugin and Silica patch from elros34: https://github.com/sailfish-on-fxtecpro1/droid-config-t5/issues/41#issuecomment-680788660

Old description: Sadly coordinates are only updated when a click event occurs, so I had to hold right click to make the cursor move in real time. Else, it just jumps at each new click.

Cyberpunk on Pro1 with Shadow

External USB mouse working on Shadow cloud computing from F(x)tec Pro¹

Requires Zerotier for local network between the Pro¹ and the Shadow VM, and Virtualhere to share the mouse as a USB device. Else, the USB mouse works, but is limited to Android capabilities: left and right buttons are both used for left click, and for right click when long pressed; no scroll wheel. With Zerotier + Virtualhere, the mouse works as you would expect with all buttons.

It is necessary to enable cursor trail in W10 mouse options, I assume the Android app shows only the local cursor when moving and the distant cursor when clicking. This works fine on PC but I had issues with the apk app. Without trails, you would only see the cursor when clicking. Trails are not a perfect workaround, but better than nothing.

Microsoft Flight Simulator 2020 on F(x)tec Pro1 using Shadow cloud computing

I still need to set up a dedicated keyboard configuration in FS2020, and fix a mouse click issue.