Due to feedback and to better align with our goal to provide glacier-home as a drop-in replacement for jolla home, here’s a new mockup of the home screen edit mode.
I see people asking what is Glacier on IRC so I thought I’d write up a short piece about it.
Nemo is a mobile Linux distribution. It is based on mer core and provides a UI for it.
Historical note: Until recently Nemo also provided the middleware, which is pending to be folded into Mer simplifying things.
UI can be divided into three subcategories
- The controls: buttons, sliders, menus, tabs etc etc
- The home screen: the interface you see when you light up your device, think of it as the Desktop Environment on your desktop Linux distribution, e.g. Gnome Shell
- The core apps (phone, calculator, browser etc)
Nemomobile supports themes. The default theme (think Adwaita) is Glacier. Just like Android 3.0+ has Holo as it’s main theme. We plan adding an alternative theme, Breeze, when and if there is enough interest.
Most of the controls are already completed. Some of them need polish but they are mostly usable.
Most of the nemo applications still use the old Harmattan-ish look, and some are outright missing, with the biggest absence being a modern browser. The applications need a lot of work in order to be Glacierified and some of them still need to be coded from scratch. Due to limited time and contributors this will take some time.
We are very eager however to get our work to real users as soon as possible. Doing that will also help get more contributors. Scratching an itch is the cornerstone of the OSS world and we want to give developers an itch to scratch. Since we share a lot of common code with Sailfish, the Nemo homescreen can run unmodified on top of Sailfish. Thus, our short term goal is to make Glacier Home a viable alternative to Jolla home, just like the countless android launchers that are available on Google Play.
This means you get to experience the Nemo homescreen, any Nemo apps you want, plus all your Sailfish and Android applications. Things like the missing browser are no more a showstopper for using Nemo as your day to day phone OS as you can substitute the sailfish browser or your favorite Android browser. Of course consistency takes a big hit, but it’s a fair price to pay.
The next step is to provide a compatibility layer for Sailfish applications to look native on Nemo/Glacier, and finally finishing the applications that we need to have a workable and visually consistent open source OS
For the record, I’m currently using the heavily WIP (by locusf) Glacier Home on my SbJ and here are my notes about what works and what doesn’t. We are almost there so any brave soul that wants to dive in and gain an itch to scratch, follow this guide to try out the latest nightly http://locusf.blogspot.gr/2014/03/glacier-ui-homescreen-on-jolla.html
The folder should slide down when it’s icon is tapped, pushing everything below, just like the sailfish context menu does. We might consider flying the icons from the folder icon to their positions when the folder opens, but I don’t really know if this is too much animation.
The folder icon consists of the first four folder icons, at 90% of their normal size, overlayed and semi-transparent (0.6 opacity). Their follow the pattern below
If icon 1 is at coordinates 0,0 icon 2 has coordinates 6u,-6u icon 3 has -6u,6u and icon 4 6u,6u
Most of our interactions with a computer start with a text input box. Either the start menu, Google, or the browser url bar.
The new personal assistants devised by the big software companies are robots that are created to obey our commands and do what we tell them
wasn’t the original command line exactly an attempt to do that? The 1970’s and 1980’s processing power and computer programming accumulated knowledge wasn’t enough to make this interface easily usable and the focus shifted to other things like buttons and menus. The few features of those programs made it easy to arrange a set of icons of the screen one for each function.
Once the features started to increase, deeper and deeper menus and dialogs proliferated and finding a function or option was obviously harder when digging through endless windows than searching through a text file. But searching through text files or using the command line was already deemed old-fashioned and forgotten.
Even today, when somebody sees me typing into the linux terminal I get all kinds of reactions of awe and disgust , as if I am doing something magical. Most things I do through the terminal however are really easier to do that way.
$ convert image.png image.jpg
for example, is much easier than opening the image in GIMP, waiting for it to load fonts and extensions and then hitting file > export and then OK twice
So, what is the problem?
Discoverability. It’s hard to know what command to use and what it’s syntax is. This is greatly exaggerated by the multiple developer nature of GNU/Linux as each command has it’s own syntax and there is no consistency whatsoever
Can it be fixed?
In my opinion, easily. Using standard tools like aliases to make commands have more obvious names and by taking ideas from modern IDE’s to add visible autocompletion and help messages. This needs a couple of brainstorming sessions but here’s a first idea
How this affects nemo?
Nemo’s target audience, at least for now are geeks: Geeks like telling their computers what to do and are not afraid of using the terminal. So my proposal is to modify the home-screen search box to also accept terminal commands.
The commands will have a faded autocomplete with included help, and the various autocompleted options will transform into drop down menus when clicked. All this functionality will use plain old bash autocomplete to work.
Bash autocomplete can also be used to increase the size of the keyboard’s sensitive area for letters that are more likely to be next.
More traditional commands will be executed and the output will be printed in the results space in monospaced font, along with some relevant options.
There will be a whitelist for commands that execute instantaneously and the output of those commands shall be displayed as-you-type in the space below the search box
What is needed?
Not much. Apart from some GUI work, we just need to create sane aliases and commands for most phone functionality. These commands should be a bit lax on the syntax, for example the
call command should accept
call <contact/number> [[on|at|] <numbertype>] so all of
call Eva at home,
call Eva on mobile and the more classic command-like
call Eva mobile produce valid output.
There is no need to accept
please call Eva on mobile as the goal is not to create a natural language parser but rather to be similar enough so that commands are easy to remember.
Following this post I completed the specs for the time and date picker. Here’s a sneak peek:
please comment if I missed something
This is the first draft of the homescreen. Next up is a visual guide of how everything stacks up.
We are keeping the basic layout of Harmattan with three homescreens. The events screen stays almost the same with the difference that the user can act upon the entries there (reply to a tweet etc). The app grid has the added functionality of widgets. Widgets can be tied to a specific app, or be an app by itself (i.e. an app that doesn’t have a full screen UI at all). Widgets are configurable, and can be configured by pressing the pencil button in edit mode. Pulling down beyond the first row should reveal a search box, just like on Harmattan mail application.
The multitasking view gains the possibility to pin applications to specific positions, just like the new tab page of firefox. Pinned apps should autostart at boot.
The notifications section is grouped by person instead of by app. I think this is a more natural approach, but I’d like your feedback on that.
Edit mode can be activated by long tapping on any icon. There you can change positions of apps and widgets, or throw them away by dropping them over the top area of the screen. Flicking them to that direction should also work (see android desktop for that effect).
My first thoughts about Sailfish were that it was a bit too convoluted, that they broke their own architecture of hierarchy either in app or out, at random.
I also didn’t like the new fade effect instead of harmattan’s swipe, and thought of it more as a patent avoidance issue.
Now I think I was wrong. I was trying to find an analogy to the actual world and I constructed one, then thought that some parts of the OS were breaking it. Truth is there wasn’t one.
The fade animation I mentioned above is not just a different way to handle swipes. It tells you right in your face, that there aren’t any layers. You can swipe from the same edge to toggle two views: good luck finding a structure with a physical equivalent that has this property.
iOS’ 6 skeuomorphy was a visual one. Harmattan’s was a structural one. You could always have an analogy of layers in your mind which helped you remember where you were supposed to find things. Like all other real-world analogies, they are good as long as the user is unfamiliar and hasn’t yet fully embraced technology, but after a tipping point it becomes an obstacle, and one very difficult to overcome, just because **everybody else does it that way**
For how many years have we put up with an inbox and outbox in our mail/sms software? It has clogged the internet and filled our mails with TOFU replies just because years ago we had inboxes and outboxes on our physical offices. It is obviously better to sort by conversation, we were just too blind to see it.
Files and folders in filesystems are another example. In the real world you can’t put a file, the same one (as in if you change one, changes appear in the other location too), in two places at the same time. We still keep that limitation in modern operating systems, despite being only a logical one. Hardlinks are supported by all modern filesystems, yet there is no integration in any modern OS. (On the other hand, GMail has abused IMAP folders -calls them labels- to put an email in two folders at once).
Sailfish has gotten rid of the structural skeuomorphy. And it’s beautiful. It allows gestures to be general purpose, just as software buttons are. A swipe right can mean different things, like Accept, or go to relevant information, or something else. Visual cues are there to teach you what a swipe will do at each time, you just need to erase your muscle memory and look before you swipe, just like you look at the label before you press a button. Is it slower? Maybe. But it allows for so much more functionality without adding clutter that it’s worth it. Because there are countless times where you can’t put something there just because it breaks the self-imposed structure.
This is the reason most reviews said it’s too complicated: you can’t expect things to be in a certain place neither because they are there in other platforms, nor because they follow a replica of a physical media. You have to learn where things are. But they are a few of them, they are easy to learn, and that effort is well-compensated with the ability to do more with less clutter.
I’ve got some concerns on the other hand too, however: silica is too much focused on listViews. A great bunch of content-consuming apps are really lists, but the current offering seems unable to support productive apps. What about editing a 10-page long document? Will I have to scroll to the top to access the pulley? How would a context menu on a page look like? Is it up to the developer to decide?
Even if the current component set is to be streched to it’s boundaries to support more advanced applications than your run-of-the-mill twitter client, I think that some official mockups would help a lot to establish UI practices.
Sidenote: I’d like if a swipe back from a specific view could be ‘undone’ just like forward in the browser, or like the nautilus breadcrumbs: as long as you don’t branch away from the path, the forward/deeper history remains.
This is the first of a series of controls which will use the Roller interface. More about the roller and how it works here http://play.qwazix.com/grog/?p=385
There are certainly more details missing, so please give it some thought and ask, as I can’t right now figure out what is really needed for a complete spec.