One Frickin' User Interface for Linux (2003)
cs.anu.edu.au
cs.anu.edu.au
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.
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.
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.
So we have our long-term-stable ABI for Linux. It's just that it's called Win32. An ABI that will survive Microsoft.
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.
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).
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.
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.
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.
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!
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.
http://en.wikipedia.org/wiki/Inter-Client_Communication_Conv...
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.
Gnome 3 OTOH is as you describe: giant touch-friendly menus, swipe to unlock (with a mouse), etc.
Your position seems a little alarmist. How does systemd mean you need to stop using Linux? I'm sure XFCE will continue to work.
"In July 2012, at OSCON, Shuttleworth explained some of the historical reasoning behind Unity's development. The initial decision to develop a new interface in 2008 was driven by a desire to innovate and to pass Microsoft and Apple in user experience. This meant a family of unified interfaces that could be used across many device form factors, including desktop, laptop, tablet, smart phones and TV. Shuttleworth said "‘The old desktop would force your tablet or your phone into all kinds of crazy of funny postures. So we said: Screw it. We’re going to move the desktop to where it needs to be for the future. [This] turned out to be a deeply unpopular process.”"
In answer to your question, systemd is in an excellent position to inject non-determinism into the functioning of the OS at all kinds of levels. I've got a hair-trigger response to things breaking and fixing themselves randomly, courtesy of a couple of years working with Windows. systemd has already demonstrated this behaviour, and I feel fairly safe in predicting that this will increase as systemd gains in complexity. Never to the point of being a major problem, just enough to be a persistent annoyance.
Major point being, however, that if it does turn out as I expect, there's going to be no avoiding it while still using the mainstream Linux distros.
Before systemd::
* is it checkconfig, configtest, etc to test this service config?
* Why the are you storing logs in /var/log/messages, /var/log/syslog, and your own logs?!
New features::
* Dependancies, systemd handles these nicely.
* Different types of services, from simple to one-shot (which is where your startup scripts are meant to go! The devs have thought of this!)
* We can do away with GRUB menus if you only have one OS (systemctl set-default rescue.target) - you can also set it in your boot parameters.
* journalctl - well, at least it's all going to one place now....
checkconfig and configtest were just initscript arguments that exec()ed the relevant program's own sanity checking facilities. I don't see how this is relevant.
Why the are you storing logs in /var/log/messages, /var/log/syslog, and your own logs?!
Solved much more elegantly by the likes of daemontools and derivatives (s6, runit, etc.), many years before systemd.
Dependancies, systemd handles these nicely.
Hardly "new". Dependency systems in init daemons and service managers have been rolled many times, from the primitive need(8) facility to the LSB initscript headers (which almost all SysV-based distros had adopted) to OpenRC, Solaris SMF and so forth.
systemd's model is far more involved. It's also far more prone to races and dependency loops.
Different types of services, from simple to one-shot (which is where your startup scripts are meant to go! The devs have thought of this!)
The semantics for managing long-running services and doing one-shot scripts are different. You can use standard tools from util-linux to craft much of the execution environment that systemd gives you through its unit options, and then time these either through at or cron. Nothing compelling here.
We can do away with GRUB menus if you only have one OS (systemctl set-default rescue.target) - you can also set it in your boot parameters.
Um... have you actually read what the systemd rescue shell does?
It boils down to this:
plymouth quit
echo "Friendly message here."
sulogin; systemctl default
Where systemctl default is like going to a multi-user runlevel or whatever other overlay/synchronization point/service group/milestone/term used in other systems.Yeah, it's totally worth switching over because of this.
journalctl - well, at least it's all going to one place now....
See comment above about daemontools' solution.
There's also a ton of log indexers specifically tailored to high configurability.
Then why is no one using them?
> Hardly "new". Dependency systems in init daemons and service managers have been rolled many times, from the primitive need(8) facility to the LSB initscript headers (which almost all SysV-based distros had adopted) to OpenRC, Solaris SMF and so forth.
Exactly. Isn't the point of systemd to bring the ideas from launchd (and SMF) to Linux?
Trying to impose an ad-hoc diktat in the Linux community where you insist that X shall be the one true DE, Y shall be the single package manager and Z the service manager, does nothing but piss off people who actually care about Linux, and will do nothing to bring about the Year of the Linux Desktop, because most end users simply take whatever OEMs ship.
But there's a more destructive thing. By doing this, you're sending out a message: "Fuck experimentation. Fuck academic research. There is only one path and one dogma."
Now, if it was just about having de facto defaults, that's tolerable. The issue is that deep-seated standards and dependency chains are being created in the process, where someone who researches and implements a formidable alternative to a piece of system software will have to go through a ton of unnecessary and superfluous hoops just to stand a fighting chance, all because of the narcissism and egos of a bunch of people who thought that they could reinvent the world, and this time they'd get it right, dammit.
(Re: systemd though I don't dislike it as long as I can choose to remove it, I don't really care about it)
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...
> 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.
objc_msgSend(objc_getClass("NSView"), sel_registerName("alloc")) ...
:)
Only masochists use COM from C.
"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.
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.
Does that mean it wins?
- http://google.com/design/spec/material-design/introduction.h...
Personally I would like to see 1FUI as an intra-BSD desktop environment for all the BSD operating systems, most notably OpenBSD.
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.
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.
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.
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.
For instance, I use this layout: https://www.kinesis-ergo.com/shop/images/1463/advantage-blac...
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.
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?
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.
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.
I agree in basically every other context that it is annoying/useless, but for smallish laptop screens it's still not bad.
I'm not sure what you want in the way of unified startbutton API. Even within KDE itself it has Lancelot, Kickoff, and Homerun, all providing a sliding scale of classical start menu to Unity / Gnome / Windows 8 style dash. That is one domain that has demonstrably not one ultimate answer, and I'm a big fan of the KDE attitude of making multiple choices available with the default being moderate (search by default, tabs for programs / recents / power / etc).
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.
I don't agree with this article. Have alternatives is good.
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?
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.