Sailfish OS update from Jolla
It has been a while since we last covered our documentation platform in the newsletter. It was actually in Sailfish Community News, 5th May, Documenting Sailfish - at that time it was mentioned that our target is to make the platform “more useful and attractive for general users”. Since that time we have seen dozens of help articles appearing on the site. This has been the result of a massive effort, mostly done by two sailors, jovirkku and jpwalden.
I discussed this with jovirkku, who kindly provided me with some background information about what has been happening:
Jolla customer support has had the so-called help articles in the Zendesk tool. There must be hundreds of articles from the past years of Jolla, many of which have been archived already. The articles contain practical tips and help with problem-solving. Some of them are tutorials on complex functions like installing the OS on an Xperia phone. Previously, we used to translate the articles into Finnish and Chinese, too, but this turned out to consume resources too much.
What are you doing now?
We are moving the help articles to docs.sailfishos.org, i.e., to the same website containing technical information on Sailfish OS. In their new location, the help articles are located in Sailfish OS · GitHub along with other Sailfish OS git repositories.
What are the benefits of moving to this git-based documentation platform?
This enforces version control and peer reviews which should result in better quality. The style of the documents remains consistent thanks to documentation platform requiring the minimalistic markdown notation. Bringing the end-user documents to the same website with the developer documentation makes it easier to find all relevant information on Sailfish OS. Lastly, this makes it easier to more people to contribute to writing the documents.
How much work is there still left?
We have reviewed more than one hundred articles and updated them to Sailfish 4.5.0, resulting in about 70 new documents. There are a dozen candidates remaining, many of which imply working on the command line. Not all of them will qualify to become updated and published. There may be some areas or functions that need writing new documents from scratch.
If community members have improvement ideas about the articles, what’s the best way to act on those?
At the bottom of each page on the documentation site, there is the link which allows you to edit the page. The changes don’t go directly to the site, but instead the system allows you to create a PR (pull request) for the changes. PRs are always welcome.
What if a community member isn’t comfortable in writing articles? Is there some other way to provide ideas or feedback?
There are some ways to provide feedback. On the documentation repository, we have enabled the issues tab. You can describe your ideas in an issue there. Or you can write about your idea in the forum.
There is a new repository, mysteriously called
sailfish-labs that appeared last week but is currently empty. One can try to guess what it could be used for. I’m starting the game, guessing that it may store some QML components, like the Qt labs platform ? Besides, there were less visible pull requests this fortnight, but it’s worth mentioning the huge work on IPv6 stack to allow access with IPv4 networks.
The network stack
tayga, an out-of-kernel stateless NAT64 implementation for Linux, this repository is newly imported into SailfishOS. dsuni created the packaging for it.
connman, the connection manager, LaakkonenJussi started working on adding VPN support with CLAT. Wikipedia has a page explaining the transition tools used for IPv6. The work also continues in the main pull request on CLAT support.
amber-mpris, QML bindings for remote control of music players, pvuorela hid the
MprisClientobject since it’s an internal implementation detail that should not be exposed in QML.
mkcal, storage backend using SQLite for calendar entries, dcaliste changed the loading mechanism to ensure that it’s not possible to populate the memory representation of the database with orphaned exceptions or recurring incidences with missing exceptions. pvuorela quickly patched also the mkcal tool used for alarms to avoid the deprecation warning. dcaliste and pvuorela started a large code cleaning, suppressing unused methods inherited from the slit of KCal into KCalendarCore and mKCal. This work includes the removal of specific load methods, the removal of a journal specific routine but is also proposing to remove the deprecated support of non standard timezone in the database. Additionnaly, dcaliste submitted a patch to add a search method through out the database.
nemo-qml-plugin-calendar, the QML bindings for calendar events, dcaliste propagated some changes on how incidence are loaded from their UID. pvuorela removed some depecated usage of
KCalendarCore::IncidenceBase::setHasGeo(). dcaliste started to work on a new QML model to expose results of a search query in the database.
buteo-sync-plugins-social, several sync plugins for Google, Facebook and other proprietary protocols, as for the CalDAV plugin, dcaliste propagated some changes on how incidence are loaded from their UID.
buteo-sync-plugin-caldav, the synchronisation framework plugin for CalDAV content, pvuorela removed some depecated usage of
KCalendarCore::IncidenceBase::setHasGeo(). Then dcaliste completely removed the tests of IncidenceHandler, since the purpose of their tests were not in use anymore in the synchronisation plugin. On pvuorela’s advice, dcaliste also added an XML file to run the full tests automatically on the test farm.
nemo-qml-plugin-dbus, the QML bindings for DBus, attah is proposing to add support for array of string-variant key-value pairs. This data type is used in the standard FreeDesktop DBus methods for launching applications, so it enables apps to call those methods from QML.
One use could be in his SeaPrint application in the share plugin so it may open the application while allowing it to maintain a single instance.
Low level libraries
sensorfw, sensor framework, gber got his patch merged. It allows to build with the autohybris config and its also addressing linking issues.
mce, mode control entity, spiiroin made it simpler to reset values on command-line by using the specific argument
--set-ffo=parameter switch. spiiroin is proposing to add a new command for display off that is only blanking the screen without locking the device.
SDK and developer tools
sdk-build-tools, a package of scripts used to build the Sailfish SDK, martyone added the documentation for Bluez module of KDE Framework. vigejolla changed the subnet address of the build host to be
10.0.0.20. vigejolla is also proposing to use LiteHTML as default viewer backend. He added a patch to fix build on MacOS because of a missing include.
sdk-setup, part of the Sailfish SDK, Thaodan submitted a pull request to ensure that
mb2 applywill work when there are tabs in the spec file.
Sailfish OS website
martyone cleaned up the installation page for the SDK, see Installation | Sailfish OS Documentation.
jpwalden created a page for the note application, see Notes | Sailfish OS Documentation.
martyone announced the SDK release 3.10 for all, see Sailfish SDK | Sailfish OS Documentation.
rainemak updated the user-agent of the browser.
jovirkku replaced the ZenDesk links with internal ones when possible.
jovirkku updated the device lock page to add the alphanumeric code handling, see Device Lock and Security Code | Sailfish OS Documentation.
vigejolla updated the list harbour restriction list for 4.5.0.
martyone created a page explaining guidelines to document API, see API Docs Contribution | Sailfish OS Documentation
jovirkku updated the page on the Camera application, see Camera | Sailfish OS Documentation
vigejolla changed the Platform SDK installation page to use
.mersdk.profile, see Installation | Sailfish OS Documentation
martyone removed the notice telling that a snapshot is used in the Platform SDK. Since snapshots are hidden by default, he also removed them from the listing examples.
The-Unsticker proposed to changed the initial phrasing about the SDK to emphase that it is running in a virtual machine. martyone commented that the idea should be the opposite.
jovirkku complemented the media application article with a section on adding a playlist for Internet streaming.
jovirkku prepared a page explaining how to use VNC.
An important part of the appeal of using Sailfish OS is its beautiful Silica user interface. For many that’s a good enough reason to use it in its own right, but for others having access to a genuine Linux terminal straight from the phone’s screen is also an important part of the appeal. Sailfish OS brings you the benefits of both.
In practice, only developers are expected to need access to the terminal, which is why Jolla’s default terminal emulator application, Fingerterm is installed automatically only once you’ve activated developer mode on your device.
In this app roundup we’ll take a look at various console emulator applications, including Fingerterm, but also some of the alternatives. Perhaps you have a favourite Sailfish OS terminal emulator? If so, let us know in the comments.
So is it worth replacing Fingerterm with one of its competitors? Let’s find out.
Fingerterm is the default terminal emulator for Sailfish OS, and as such it’s the app that all other terminal emulators must be compared against.
Originally developed by Heikki Holstila for the N9, the app has since been adopted by Jolla, and if you activate developer mode you’ll find it’s the default terminal application that gets installed on your device.
Of the official Jolla applications its slightly unusual, in that it doesn’t use Silica or conform to the Sailfish OS style guidelines. There have been various attempts to address this over the years, but none that has made it out onto devices.
The app has quite a utilitarian look and feel, with the majority of the display available for terminal output, as it should be. There’s a flat black background — there’s no contribution from the ambience here — and a burger menu at the top right of the screen that hides the settings. Depending on how you have the app configured, you may also see the virtual keyboard taking up the bottom third of the display (at least on the Xperia 10 variants’ 21:9 ratio screens).
Even the keyboard is unusual: rather than use the standard Sailfish keyboard it has its own in-built version. This offers some advantages: keys that are useful — arguably essential — in a terminal, but which don’t find wide application elsewhere, can be surfaces more easily. Things like pipe, tab, alt and the arrow keys.
Opening the menu allows for some useful capabilities: copying portions of the terminal output, scrolling back through the buffer, changing the keyboard behaviour. There’s even a URL grabber for easy capture of links shown in the terminal output.
In use, the app has been improved in recent years with input from the likes of Damien Caliste, so that terminal emulation and use of colour are now better than they were in the past. As the default terminal emulator app, it’s a solid contender, and for most people, especially if you find you only need to visit the terminal occasionally, this will be all you’ll ever need.
ToeTerm from Matti Viljanen (direc85) is one of several forks of the Fingerterm codebase. Amongst those that are out there, this was the one I found to be the best, with changes going well-beyond just improved terminal emulation.
In fact, calling ToeTerm a fork of Fingerterm is rather understating it’s life journey. Prior to direc85 picking it up it was being developed by r033, who forked ThumbTerm (hopefully you’re getting the naming pattern by now) from Olli Vanhoja (hbp) who forked it from Fingerterm. It feels like it’s just one more fork away from becoming NoseTerm.
But all this forking has resulted in some nice improvements. The most obvious being how much better the app conforms to the Sailfish styling. The background picks up the ambience, and while the keyboard is still bespoke it nevertheless feels much closer to the standard Sailfish OS keyboard, without losing access to those extra terminal-required keys.
There are some really nice touches as well. While the keyboard drops to the background when not in use, several of the keys (enter, backspace, cursors) remain highlighted, making it easier to immediately perform common tasks even when the keyboard is hidden.
The menu, which still slides in from the right, is now full screen. It contains similar options to Fingerterm, with the addition of some theming options and a better collection of keyboard layouts.
When I started using ToeTerm I was impressed by how considerate and relevant the improvements were for a Sailfish device. Of those available, this would be my preferred terminal on Sailfish OS.
The latest ToeTerm, version 1.9.14, is available from OpenRepos.
Literm from Kabouik is another fork of Fingerterm, but remains much closer to the original design, focusing on improvements to terminal emulation itself. Many of the changes were made by Robin Burchell (w00t), and most recently some of these have been focused on its use in a desktop environment, and which are therefore less relevant for Sailfish OS use.
Amongst the relevant changes are a rewritten rendering engine to improve performance and better colour and text style support.
It’s latest release wasn’t so long ago, but sadly there’s only a 32-bit ARM version available from OpenRepos. Happily Kabouik has expressed interest in making 64-bit builds available via Chum. It would be great to see this happen alongside all of the great console apps (lynx, 6cord, gnuplot, SC-IM,…) that Kabouik has packaged up to run on it as well.
Besides the rendering improvements, the look and feel are almost identical to Fingerterm, so if you’re looking for something familiar, then this might be the way to go. However, it’s worth mentioning that Fingerterm itself has received some updates since Literm was forked from it, so the improvements are not as dramatic as they were when Literm was first released.
My own feeling is that while Literm provides some genuine and nice improvements, the benefits of these over Fingerterm are not enough to justify an install, given its uncertain development future.
Literm is available in 32-bit binary format from OpenRepos.
ShellEx from Asser Lähdemäki (Acce) isn’t really a terminal emulator, but it shares many similar characteristics. It allows you to run terminal commands after all, and to view the results. But instead of have you type in each command individually, ShellEx allows you to pre-configure a set of fixed commands that you can then run by hitting a button.
Given the breadth of command-line utilities available, it’s a surprisingly flexible tool. In essence, anything you can achieve with a shell script, you can configure to trigger with a finger press in ShellEx.
A particularly nice touch is the fact you can add dynamic parameters into commands, provided through user selection via a Combobox, slider or text field. This means you can build up a skeleton command with placeholders for extra values, and just select the values when you want to run the command. Super-flexible!
There are a few improvements I’d love to see. For example, currently only pure text output is supported in the app, so no colours or formatting (although you can also trigger commands to run externally in Fingerterm). And while I can understand why the pulley menu has been hidden behind a “Show options” button, this approach doesn’t feel very Sailfishy.
Unfortunately the biggest problem for potential ShellEx users is that it’s currently only available on OpenRepos in a 32-bit ARM variant. Building it for 64-bit ARM was straightforward, so I’ll put a copy up on Chum so others can install it too.
ShellEx is available in 32-bit binary format from OpenRepos.
Please feed us your news
Thanks for reading, please don’t forget that we need your support in providing you with this newsletter. All feedback, be it updates, corrections or ideas about what to write about in future newsletter are welcome. Please use the comment section below.
You are also more than welcome to write articles yourself, if that’s what you are interested in - don’t hesitate to contact us! Writing these newsletters is teamwork. We already have some recurring parts of the newsletter coming from different writers: dcaliste provides us with the repository roundup and our former editor-in-chief flypig writes the app roundup. But it would be lovely to see the viewpoint of a community member also in the articles sometimes.