
One Frickin' User Interface for Linux (2003) - networked
http://cs.anu.edu.au/~Hugh.Fisher/writing/1fui.html
======
bakhy
Some time ago I read something that seemed a much stronger case against the
Year of the Desktop Linux - lack of binary compatibility. It is hard to
develop commercial software for Linux, when it means building your software
for every distribution and supporting all of them. Anyone buying a piece of
software would probably have to stop upgrading their system if they want to
keep using the software. Different desktops add to this pain, but not as much.

Of course, Linux is not about buying software, so I guess not many people
care. But the availability of a certain, professional piece of software (aka
"killer app"?) is often what eliminates Linux as a choice for many people, in
my experience. (That is, now that there are good graphics drivers available
and you can watch bloody YouTube.) Ultimately, in a very ironic twist, this
makes Linux most suitable for people who do not know anything about computers.
I install them Ubuntu, they don't touch anything except updates, and
everybody's happy.

~~~
zokier
Of course there is a twist to the binary compatibility story. Namely Linux
(the kernel) works very hard to maintain userspace binary compatibility. Afaik
you should be able to run some random 20 year old executable as long as you
got the right libraries or have it statically compiled. Also considering that
X11 (the protocol) is backwards compatible for quite some time, I'd say that
cross-distro binaries in Linux is definitiely achievable thing if the
application developer puts the effort into it. What is missing most is
documentation and tooling to support such efforts.

In near-future I also see containers as a possible cross-distro packaging
solution, but that also needs some tooling to make the process more pleasant.
Also container-supporting kernels need to get more prevalent for containers to
be truly a solution.

~~~
bakhy
I did not know that, thank you. I guess the key is in the phrase "as long as
you got the right libraries"? Kernel+X alone is not enough... There should be
some simpler solution to this than deploying your app in a container, but I
really don't know enough to even dare guess.

~~~
zokier
You can bundle .so's with the application (this is how many humblebundle/steam
linux games work) or you can statically link those libaries.

~~~
pjc50
Steam is probably the best shot in a decade at selling consumer software for
use on Linux. It'll be interesting to see if it takes off.

~~~
zokier
It could have been but right now, 1.5 years after launch, Steam on Linux feels
quite half-hearted. Steam Machines which were supposed to bring SteamOS (and
Linux) to the masses have failed to materialize. Looking at the Linux game
releases it seems like Valve is not providing enough developer support to make
high-quality releases. Instead what I have seen, the games have been quite
inconsistent from techincal point of view. Maybe half of the games (or less)
in my library work at all on my Arch Linux systems, even after some minor
tweaking. I wonder what they intend to do in couple of years when now-current
Ubuntu becomes so outdated that nobody runs it anymore. I wouldn't be
surprised if they end up shipping some sort of Ubuntu environment to run the
games in.

~~~
sparkie
The purpose of Steam on linux was never "to bring linux to the masses", and
you're a fool if you honestly believed this story. It should've been obvious
the moment they created SteamOS, rather than the first plan, to ship as an
application on Ubuntu - it's because the purpose of SteamOS is, and always
was, for Steam to liberate themselves from greedy platform providers. They're
not about to divorce Microsoft only to jump in bed with Canonical.

The purpose of SteamOS is to power the eventual Steam pseudo-console, and to
sit Steam at the centre of game distribution, rather than Microsoft - or
rather, put Steam on par with Sony and Microsoft, instead of being a mere
middle man.

SteamOS, for all that matters, might as well be a proprietary platform on top
of Linux, much like Android is. Its users won't even know it is running linux,
nor will they have root access by default - they'll be given an interface
which is the primary portal to games (and "Apps") distributed by Steam

Anything "useful" for the rest of linux that comes out of Steam is only likely
to be kernel additions, drivers, and other low level stuff that is merely
incidental - required by the GPL of Steam, but nothing is going to solve the
"problem" of cross-distro packaging, for instance - Steam will only distribute
for SteamOS - it makes zero economic sense for them to do anything otherwise.

------
JelteF
What the author somehow doesn't get is that you shouldn't see Linux as a
whole. You should look at different distributions like you look at Windows vs
OSX. Different distributions are totally different to end users, although they
share a lot of the core system utilities. Ubuntu or Linux Mint could be picked
by a large corporation and everybody in that corporation would have the exact
same interface. Normal people don't choose Linux, they choose a distribution.

This way, the normal people have the hard choices made for them and the crazy
hackers like myself can do it all themselves on their Gentoo machine.

~~~
reidrac
I don't agree. Desktops matter. I use the same XFCE version in Ubuntu and
Fedora, and they look/behave the same. You need to get to install software to
find differences.

I guess Unity is only available in Ubuntu, but that's just because not enough
people want to use it in other distros.

Just one anecdote: my sister used to run FreeBSD in her computer and she
always thought/referred to it as Linux. She was using Gnome 2, and it was
indeed the same experience (not completely true, compiled packages were
faster, kind of Gentoo result).

~~~
JelteF
Of course Desktop environments matter, that's why there are so many of them. I
would be able to use Ubuntu almost like my own machine if I would install my
window manger and utilities on it. What I meant however is that the defaults
of a normal user friendly distro are good enough for those users. There is no
need for them to tweak stuff because their LibreOffice and Chrome/Firefox just
work with those defaults. The choices are only there if you look for them and
at that point you are not a normal user any more.

------
SwellJoe
The desktop is no longer the battle that matters (more mobile devices are in
use today than desktops and laptops, and the gap is widening). Linux has won
the mobile market...and I guess one could argue it did so with one frickin'
user interface (Android, though that's somewhat fragmented by the often-
horrible, always-stupid, vendor customizations, like HTC Sense).

We will, I guess, get to see what happens when Firefox OS comes along. Then,
again it's so very different from Android (and Android is so far from a
traditional Linux distro), that I don't know if the OFUI theory will really be
tested in that case, since there are so many other variables.

Generally, the "OFUI" idea is good as long as it's the OFUI that _I_ like. I
happen to really like Gnome 3, so I'm fine with it being the One True UI of my
preferred Linux distro (Fedora). If I hated Gnome 3 (and I understand why
people do...it had a rough and very buggy and very restrictive breaking in
period that lasted a lot longer than it should have), I'd be pissed off at the
suggestion that KDE (or LXDE or XFCE or whatever) should be removed
completely.

Anyway, I don't find myself agonizing over how Linux (or any open system, as
that's what I _really_ care about; it wouldn't need to be Linux for me to be
happy, as long as it's Open Source) can win the desktop anymore. Partly
because open is winning on mobile (at least, in terms of the OS, though there
are many dangerously proprietary parts of the mobile industry, including on
Android devices), and that's an even bigger market. But, also partly because
many of the reasons I needed Linux to win was because I wanted to use Linux
for everything, and there needed to be a critical mass of users for hardware,
software, etc. to be good on Linux. These days I rarely think about hardware,
as it Just Works. And, I rarely worry about software, as there's tons of
amazing stuff to choose from. Even games are pretty good on Linux, which is a
relatively new change.

So, I want more Linux more of the time. But, I don't know if it has to "win"
for all of us Linux users to win.

~~~
pjmlp
Have you ever used the NDK?

It is quite limited in the set of official APIs and POSIX support.

Google could change Android's kernel for something else UNIX like and almost
no one would notice.

~~~
zanny
They'd notice the lack of device drivers.

~~~
mohanmcgeek
Android is installed by the device manufacturer. You don't attach any
peripherals to your phone. Even when you connect your phone via USB, it's the
computer that does the read. So, I doubt the user will notice the lack of
device drivers.

~~~
zanny
Device drivers are not just peripheral drivers. The baseband driver, the wifi
driver, the kernel display adapter driver, the touch driver, the drivers to
handle the hardware buttons, the PCH and FSB controller hubs, bluetooth
drivers, bluetooth device drivers, and NFC drivers, at the least. You may also
be missing accelerometer and thermometer drivers.

------
digi_owl
No Fucking Way. This kind of mentality is what is resulting in systemd being
foisted down everyones throat.

Multiple parts doing single tasks with loose couplings. That is what i came to
Linux for.

If i wanted some kind of "One True Way"-ism i would have stayed with Windows
or bought a Mac.

~~~
diltonm
First, I don't grok the vocal minority's vehement opposition to systemd.

Second, loose couplings are great for those who want to tweak to their heart's
content, people who know what they're doing. I used to tweak the heck out of
Gnome 2. I grew tired of it and appreciate the simplicity and elegance of
Unity and dislike the "we know what's best for you" attitude that Gnome 3
conveys to me. Unity just needs to have 3 sane defaults reverted that I've
mentioned in other comments.

Third, you can still tweak Linux to use whatever desktop you want. Back when I
was on Windows I even hacked the registry to make the DOS command prompt my UI
as a joke and it worked. Booted, no explorer running at all. Just the Windows
XP kernel, few processes it started and DOS CLI that was it. It taught me that
most of the stuff users interacted with on XP was actually started by and run
by explorer which explained why the system grew so unstable when it crashed
and I had to restart explorer.exe from the Task Manager by hitting
Ctrl_Alt_Delete IIRC.

Having a common UI/UX is great for a lot of people out there including those
of us who know all about loose coupling and tweaking things but usually just
want to do what we want to do without all of that tweaking. Except on those
weird days on the week-end when we try new stuff out like a checking out how
KDE is coming along. Still too complex for my tastes but it looks great!

~~~
badsock
Loose coupling allows the "shiny thing of the week" folk to not wreak havoc on
the "good engineering" folk.

When DEs like Unity followed Microsoft down the disastrous blind alley of
"desktops should act like tablets", that was OK because the loose coupling
allowed by defined protocols like ICCCM meant that I could wait it out in
XFCE.

The fact that practically every distro has gone with systemd, and that the
couplings are tight, means that I have to leave Linux entirely to wait out
this disaster.

~~~
diltonm
Agreed, the designers of X made some truly brilliant decisions.

[http://en.wikipedia.org/wiki/Inter-
Client_Communication_Conv...](http://en.wikipedia.org/wiki/Inter-
Client_Communication_Conventions_Manual)

Edit: I don't have a dog in the hunt on systemd but if it really is tight
coupling then history might prove it was a bad decision. There was a lot of
let's say strong opinions against Pulse Audio on Linux but I find (once we got
through the growing pains) that it's a blessing. It's far superior to Windows
7's basic audio management in my opinion. I've no idea about Windows 8.

~~~
nitrogen
Everything PulseAudio does should have been implemented as part of ALSA
though, not as another layer that only exposes a fraction of the libalsa
functionality.

~~~
Shish2k
Wouldn't that imply putting a network-accessible server in the kernel? That
seems a fair bit more risky than non-root userspace...

~~~
nitrogen
No, alsa actually does its most interesting stuff in userland.

------
oelmekki
And the missing introductory question is : "why should linux aims on world
domination ?".

~~~
RadioactiveMan
I too wonder why, as a linux user, I should care how many other people use the
system. It seems to me that we have a really good community going and if more
people join in, good for them, but Linux isn't in any danger of fading into
obscurity at this time.

~~~
nhaehnle
You should care because a certain critical mass is needed to have a decent
choice of properly supported hardware and software. There's no immediate need
for worry on that front today, since we are well above this critical mass.
However, the original article was written in 2003, more than 10 years ago,
when things looked rather different.

~~~
clarry
> You should care because a certain critical mass is needed to have a decent
> choice of properly supported hardware and software

Except that if they achieve this by hoisting "one true UI" and one true
whatever on you, you might find yourself having less and less choice...

------
valleyer
> The core API for both Windows and Macintosh is procedural C language.

> The core API has to be a C language binding.

> A disadvantage is that the core API is in Objective C which is unfamiliar to
> most developers, but a straight C API could be generated, as Apple have
> demonstrated with MacOS X.

The core API for the OS X UI is definitely not in C. There is only an
Objective-C API, and it is not a shim over anything. (It uses the Quartz
windowing system, but that does not provide things like button widgets, etc.)
There is no C equivalent of NSView, for example.

~~~
GuiA
> There is no C equivalent of NSView, for example

objc_msgSend(objc_getClass("NSView"), sel_registerName("alloc")) ...

:)

~~~
valleyer
Haha, ok sure. :)

------
sampo
_" Gnome 2 is the 1FUI for Linux"_

 _" A major company needs to act as champion and enforcer of the 1FUI by
bringing out a distribution that runs only Gnome apps."_

I think starting from 2004–2006, with Canonical and Ubuntu, Gnome 2 was indeed
on a good path to become the dominating UI for Linux. But then in 2010–2011
Ubuntu and Gnome parted ways, and the leading position of Gnome 2 was split
into Gnome 3 and Unity, with some refugees going to Cinnamon and Xfce. And KDE
is still going strong, too.

~~~
diltonm
Canonical really messed up there. I can understand the maverick attitude but
not when it trumps common sense. Gnome 3 was a mistake too and that was a
major mess on the part of the Gnome people.

~~~
masida
I've been using GNOME 3 on Debian Jessie for about a year now on my main work
machine and I have to say that I'm very happy with it. I switched to it after
having used a XMonad desktop for about a year, I think that says a lot.

What I like is the fact that everything just works (tm). Just as it used to be
on Mac OS X. No need to fiddle with 10 volume control applets on your minimal
tiling WM, none of them works well with PulseAudio. Same for the battery
indicators, manually loading your desktop background, setxkbmap etcetera in
your .xinitrc. You're basically forced to mix-and-match your whole desktop.

GNOME 3 comes with batteries included. Everything works out-of-the-box. Yes,
the eye candy is a bit too much, but I think the Activities menu is very
useful and productive. I can just use my computer, like I did on Mac OS X
before. But now I the Linux desktop also gives me much better performance,
package management and stability.

Only thing I miss on GNOME 3 is a XMonad's tiling system and keybindings. It's
a shame they lost the ability to swap the window manager for your own.

------
namanbharadwaj
Having one UI would be the death of Linux. I would guess that the vast
majority of Linux users today (including myself) use Linux _because_ of choice
(i.e. I use i3, and I can't live without it), and removing that choice would
essentially be abandoning those users.

------
hiphopyo
I reckon Quantum OS, the Linux distro based on Google's Material Design
guidelines, is trying to achieve something similar:

\- [http://quantum-os.github.io](http://quantum-os.github.io)

\- [http://google.com/design/spec/material-
design/introduction.h...](http://google.com/design/spec/material-
design/introduction.html)

Personally I would like to see 1FUI as an intra-BSD desktop environment for
all the BSD operating systems, most notably OpenBSD.

~~~
diltonm
The site reads in my mind like Andy Warhol on computer UI/UX design.

I think Canonical has a clean design with Unity, just fix some simple things
as default:

1) Menus should be per application to reduce user mouse movements. 2) All
menus and buttons should have icons on again, these provide valuable visual
cues and reduce eyestrain. 3) Return scrollbars to the normal ones seen on
other desktops, remove the scrollbar overlays, they are confounding and
confusing.

------
svalorzen
If I didn't have a choice, I'd have probably abandoned the Linux ship long
ago, frustrated with Unity and GNOME 3. Instead, I had one, and I am sincerely
happy of that.

This article makes it seem like people developing GUIs are at war just
because, rather than they stick on (and _work_ on) projects because they like
them and want them. If you want something you should make it, right?

In addition, it's not like this is a huge problem, given that most people are
going to abandon desktops soon anyway.

~~~
diltonm
>> In addition, it's not like this is a huge problem, given that most people
are going to abandon desktops soon anyway.

I don't see that happening at all really. The desktop is a theme that fits
very well with a lot of computing needs. I don't see that ever changing.

------
mmphosis
What works is consistency between UIs. The QWERTY keyboard has won, for
example.

Having used the Mac for so long, I am trained to use my thumb for cut, copy,
paste -- command X C V. Using my pinky finger in place of my thumb is a
painful amount of gymnastics for me using ctrl X C V on Windows/Linux. At the
end of the day I need to use Windows and Linux (and Mac.) Maybe I fiddle with
keyboard setting files in Linux or install that old key swapper program that
came with Win95, but the reality is I am going to have to use ctrl X C V, even
if they conflict with the control key on the command line.

It's like driving different cars. Most things are the same, but you get used
to certain things even if they are somewhat awkward, and new interfaces are
usually annoying. Driverless cars can solve this. And the same is true for
user interfaces. The best UI is no UI at all.

~~~
jsprogrammer
Keyboards are completely pluggable though. It's just a character/text
interface into the system, so the physical layout can be anything you desire.

For instance, I use this layout: [https://www.kinesis-
ergo.com/shop/images/1463/advantage-blac...](https://www.kinesis-
ergo.com/shop/images/1463/advantage-black.jpg)

Cut/Copy/Paste is the same CTRL+X/C/V combination that you are using, but the
fingers I use are my thumb and one of the three fingers to its immediate left.

With this particular keyboard, every key can be remapped on the hardware
itself (no config files), and the physical keys can be removed and placed
(almost) anywhere else on the board.

For full disclosure though, the primary reason I use this keyboard is that it
allows a much more natural separation between my hands (8-10 inches), which
allows my shoulders to rest in a more natural position. It's not perfect, but
definitely an improvement over the "cram it all into a tiny rectangle"
approach that most other boards use.

------
Touche
These types of posts are super silly. What he's proposing is literally
impossible given free licenses. You cannot stop someone from forking your
project and you cannot stop users from using the forks. All discussion of how
nice it would be if there were no forks is irrelevant.

------
sauere
We HAVE a standard user interface.

It consists of some sort of Taskbar, some sort of Launcher/Startbutton and
some application windows.

KDE, GNOME2, XFCE, Windows 95 up to Windows 7 all use this. OSX to some
degree. It is all the same.

Am i asking to much if i belive every (non-technical) user should be able to
wrap their head around this and get comfortable with this within a few weeks?

~~~
feld
The user isn't the problem it's that fact that they all work differently.
There's no unified API for launcher/startbutton, or task tray, etc etc.

~~~
mkr-hn
Isn't it great?

I tried getting used to the new Ubuntu way of doing things, which I've heard
is based on the Apple way of doing things. I didn't care for it.

~~~
diltonm
This irks me about Unity. I have to run several gsettings commands after a new
install to get rid of those dumb overlay scrollbars and to return the menu to
the window that owns it. I leave the control buttons on the upper left, I kind
of like them there but I can't stand overlay scrollbars and really dislike
having to move the mouse all the way to the top just to work with the menu for
an application which is why I do the gsettings thing. It's also what turns me
off about the Mac, one menu at the top shared for the active app.

Edit: I also run some gsettings commands to turn menu icons back on. Also, you
can return menus to the owning application in the Unity UI, right-click the
Desktop, Change Desktop Background, select Behavior tab and it's there.

~~~
tehwalrus
Unity worked fantastically when it was called Ubuntu Netbook Remix, and it was
run on an 800x600px display, as everything is maximised like a phone because
there isn't any other space.

I agree in basically every other context that it is annoying/useless, but for
smallish laptop screens it's still not bad.

------
noobermin
This issue can be helped if we stop referring to low level parts as an "OS"
like Linux or even GNU tools but refer to individual distros as OS'es, like
Ubuntu or ElementaryOS, etc. This at least creates the impression of
unification under one banner, which I think is what the article is asking for.

------
zelos
It's called Android.

~~~
diltonm
It's ironic that Android isn't on the desktop, given how much greater access
they would have to expand their brand.

If they made a single touch/click that pulls the top menu _all_ the way down,
then it would be easier to use on the phone and on the desktop.

------
kylec
I suspect that the lack of 1FUI is also part of why high DPI support is
lagging pretty badly on Linux. In some window managers/distros you can get
something that sort of/mostly works for built-in stuff, but once you launch a
third party application like Firefox it usually doesn't end well. I'm sure the
Firefox devs would gladly support high DPI screens on Linux if there were a
single standard way to do so. There isn't, though, and there probably won't be
one anytime soon due to the fragmentation of the platform.

~~~
Leszek
Well, high DPI support isn't something to rave about on Windows, although that
may be for similar reasons (WinForms vs WPF vs whatever)

------
spirit1988
XFCE for the win.

I don't agree with this article. Have alternatives is good.

------
Patrick_Devine
You could argue that the OP's preferred choice, NeXTStep, did win, and the
loser was Linux.

I haven't used Linux on the desktop for years, but have recently been thinking
about going back as Apple seems to be abandoning all of the things which got
me to switch. Is it really so hard to make a stylish upgradable/serviceable
laptop with a matte screen? That, and maintain the OpenSource packages that
you (used to) ship like X11 and OpenSSL?

------
brimstedt
I think having choice of desktop environment is a good thing. However, I do
think he has some point on interoperability.

Copy/paste for example, works differently in desktop apps vs terminals, etc.

File selectors is another thing. I like the KDE one and the file selector is
the reason I ditch gnome altogether, but best would be if KDE programs used
gnome file dialog when running gnome, and if gtk programmes used KDE for
dialogue of user ran KDE.

------
kazinator
The author has this backwards. If you want "one single whatever for everyone",
you _first_ need world domination. You need world domination because in order
to have "one single whatever for everyone", you have to be able to control
everyone in the world, so that you can prevent the situation that multiple
creative people work independently on similar competing things.

------
yew
Where did the idea of a "year of the Linux desktop" originally come from,
anyway? I often see people joking about it or advocating it (Linus, even!),
but I've never seen any sort of foundational essay or manifesto - does
something like that exist?

~~~
sparkie
It was always a joke, and the joke is on people like the author of this post,
who treat linux as a tribe rather than as a useful tool to get your operating
system of choice to interact with your hardware of choice.

------
makecheck
I would start small; for instance, can you get _every_ API to use the same
foundation types (similar to Core Foundation on Mac OS X)? These kinds of
changes would help programmers a lot and pave the way for more complex
standards.

------
likeclockwork
Sure, as long as it's exactly what I prefer at the present time.

