2013-08-24
My personal view of Fedora versus Ubuntu on the desktop
It all started with a series of tweets (1, 2) where I wound up saying:
I have a lot of history with [Fedora on my desktop] and it still seems to be the best of a bad lot of choices. Ubuntu makes me even more unhappy.
This made me really think about what I felt about Ubuntu and Fedora. The following are my own views about my personal usage and I don't expect anyone else to agree with them. They are also more than a little bit inflammatory, but I don't feel like lying about my views.
I run Fedora on my desktop and am unlikely to ever run Ubuntu for several major reasons:
- Having worked with both, I feel that RPMs are a better packaging
format in practice than Debian .debs for both source and binary
packages. (Yes, I care about this a fair bit.)
- Ubuntu is not meaningfully a community distribution. Regardless of the official stance, it is really Canonical's distribution (Canonical's attempts to fool people about this leave a bad taste in my mouth, but that's a side issue).
- I don't believe in the direction that Canonical is taking Ubuntu's user interface and design. I don't believe that it's possible to have a single interface that is good for tablets, phones, and regular desktops with keyboards and mice and (multiple) monitors, and Canonical is clearly focusing on tablets and phones, not desktop computers.
I've said plenty of bad things about Gnome 3 in Fedora and the direction the Gnome standard desktop is going, but at least the current Gnome philosophy is not the official viewpoint of the distribution and there are plenty of real alternatives (I'm running one on my laptop). Unity is the official 'this is the way it is going to be' interface of Canonical. Everything else is at best a second class citizen.
Oh, Canonical may not admit that or say it outright but come on, everyone knows what the score is. Canonical doesn't give a rat's rear end for anything except Canonical's priorities. This handily brings me to a final issue:
- I no longer trust Canonical itself to have any real care for my interests or the interests of open source and Linux in general. What made this crystal clear to me was Canonical deciding to ship user desktop searches off to Amazon for affiliate revenue and never mind any of the many, many problems with this.
(I'm aware that I'm late to the party on this one.)
If Fedora screws something up, I have confidence that it is going to be inadvertent and that there are real people there who care. Canonical? No. If I put Ubuntu on my desktop I'd be just as much at the mercy of an uncaring corporation as if I used OS X or Windows. And that corporation has demonstrated that its priorities and interests are very divergent from mine.
So the short version: Canonical is going to do whatever it feels like, it's going to periodically do bad things to me, and it's not even going to produce a desktop that I like. And there is no chance that Canonical is going to listen to me, either individually or en masse. Canonical has a goal and I am just a bystander (since I use a desktop machine, an unimportant one).
(We continue to use Ubuntu for servers on an LTS release to LTS release basis. It remains the best Linux server distribution I know of for our purposes, which require a blend of long support, reasonably frequent releases with current packages on release, and a wide package selection.)
Sidebar: smaller reasons
- Fedora is better than Debian at moving forward. Sometimes this
is not a great thing and I've heard rumbles that Fedora is slipping,
but on the whole I like the results.
- relatedly, I think that Fedora is generally making good technical
choices when it moves forward. Debian has visibly fumbled several
important issues that Fedora has gotten right (cf).
- Ubuntu is worse than Debian at making good technical choices, as
hard as that is to believe. Especially, Canonical seems to have a
terrible case of Not Invented Here syndrome, which is deadly in the
open source Linux world. Exhibit one of this for me is their grim
insistence on sticking with
upstartfor their init system. - I don't think that Canonical is really committed to open source in their heart. Instead open source is a strategic choice for them, one I expect them to abandon when and where it is convenient. I can't imagine Fedora or Debian doing this; both are really committed to the spirit of open source, not just its legalities.
Debian people will be unhappy with me for saying this, but in general I've wound up feeling that Fedora gets stuff done and Debian doesn't. And yes, I've heard rumbles that Fedora has its share of real internal problems and things are more precarious and problematic than they look from the outside.
(I compare Fedora to Debian since Ubuntu inherits a significant number of things from Debian. Or at least I perceive it as doing so.)
(See also.)
2013-08-08
My Cinnamon desktop customizations
As I mentioned in the previous entry on my laptop environment, I'm now using a lightly customized Cinnamon desktop on Fedora 19. The major customizations have been to get back something equivalent to sshmenu and the Gnome 2 mini-commander applet. The results have been quite good; I feel as productive with my Cinnamon setup as I did with Gnome 2 on Fedora 14 (and many more things work on Fedora 19).
My mini-command replacement is that Cinnamon lets you add custom
keyboard shortcuts so I have F5 set to run a version of my custom
dmenu setup. This gives me convenient access
to ssh to other hosts (what I really care about)
as well as a bunch of other things. F5 is the same key as I use for this
on my desktop, although it is somewhat less convenient on the laptop
keyboard (time may change that).
To get an equivalent of sshmenu I use this launcher applet in the Cinnamon
panel. The launcher doesn't directly do SSH and it doesn't have submenus
(as far as I know), but you can create menu entries and specify the
command that they run and I already have a script to run SSH to a
host inside an xterm. It's not as nice as
sshmenu but it'll do.
(There is a Cinnamon SSH applet but it didn't install when I tried it and it's not usefully customizable from what I understand. Sshmenu itself is unsuitable for a number of reasons, including that it appears to have been abandoned and doesn't actually work with Ruby 2.0.)
I've done some other less important Cinnamon customizations:
- F4 starts a (local)
xterm, partly because I haven't changed the Cinnamon panel's 'terminal' launcher away from running gnome-terminal. - I'm using this Shutdown menu applet because I
find it more convenient than trying to find everything I want in
the main Cinnamon menu (and I don't like to be prompted).
- I have a shell script I run on session startup to do things like
set X resources for
xterm.
(As far as I can tell, Cinnamon is essentially a variant of Gnome 3 and so inherits a lot of the same pieces and settings as the latter. For example, Cinnamon applets are JavaScript snippets that run inside the Cinnamon shell-equivalent, not standalone programs.)
I prefer xterm to gnome-terminal in general, but the one nice feature
g-t has (in a constrained laptop environment) is that it has a direct
way to open URLs in text. My current experiment with doing this with
xterm is to have F6 run a command that pulls out the current selection
and starts a browser on it if it looks URL-like (and otherwise just
start a browser on nothing in particular). This still leaves me actually
selecting the URL, which is more work on a laptop trackpad than it is on
my desktop.
(I would like to find a better replacement for xterm someday but it's
hard. Everyone either adds features I don't care about instead of the
ones that I really would like or gets important things wrong. Often
it's both. Note that I'm very picky about how a terminal program should
behave and there are very few new features I actually want.)
Hopefully Cinnamon will stay stable for a few years so that I don't have to revisit this process for a while. Although I suppose I'm now basically okay as long as whatever desktop I settle in allows me to run a command in response to a function key, since dmenu is really what makes the environment work.
Sidebar: disabling cursor blinking in gnome-terminal
Since the last time I wrote about it Gnome has switched to a fourth way of doing this, covered very thoroughly in this highly useful reference:
gsettings set org.gnome.desktop.interface cursor-blink false
This probably has some global effect but I don't care any more.
(It also looks like gnome-terminal may still respect old settings stuffed in various corners, although who knows how and how you set which ones of them now on a new machine.)
While I'm writing this stuff down, the gsettings schema for what the standard terminal program is is org.gnome.desktop.default-applications.terminal. Your guess is as good as mine as to what programs respect this.
2013-08-02
I'm giving up on a custom laptop environment for Fedora 19
Despite what I wrote before and even yesterday, I've now completely given up on my cheerful plans for a fully custom laptop environment. The short version of why is in my tweet:
I surrender to the forces of the modern monolithic Linux desktop w/o applet programs. I'm now using a hacked Cinnamon + dmenu on my laptop.
(I'm not really happy about giving up this way but I'm pretty sure it's the least bad alternative.)
A usable laptop environment needs any number of applets (in the broad sense). Beyond networking, there's power management and battery monitoring, screen brightness, sound volume if you care about sound at all, and several others I'm not thinking of. For at least power management the information display is just the tip of the functionality iceberg.
In the Gnome 2 days all of these applets were provided by actual programs and they embedded themselves into the 'system tray' using a common protocol. Every desktop environment generally rolled its own set of them but that was just because of look and feel and library issues, not because they were incompatible with each other. And it was easy to run the applets yourself with a suitable system tray (which you want for other reasons too). That's all changed now. Modern Linux desktops have become monolithic, where the desktop 'shell' has swallowed all or almost all of those applets; this is the case for both Gnome 3 and Cinnamon and perhaps for KDE as well (I haven't looked closely at it). Sometimes the desktop shell handles everything internally and sometimes part of the job has been handed off to other programs.
In other words, running a custom desktop on a laptop is no longer just a matter of finding all of the applet binaries and running them yourself. Now you need additional information displays at least and possibly programs that actively manage things. Just how many bits and pieces I was going to have to assemble only became obvious to me when I brought my fvwm-based environment up on my actual laptop and started trying to add power status handling, a screen brightness control, and so on and so forth.
(It didn't help that various other bits broke on the actual laptop, like the trackpad's configuration. Attempts to fix this were creating a increasingly frankestein'd setup, with bits bashed in from all over and interacting badly.)
People run non-mainline desktop environments on laptops so all of this is a solved problem. But it's not a cleanly and quickly solved problem, neatly bundled up in the form of one or more obvious programs; instead it was clear to me that it was going to be a do-it-yourself project. Such a project would be justifiable on a machine that I use a lot, where a custom environment would be a lot better (once I had a good one), but my laptop is not such a machine. It sees only occasional use (although enough to make it a machine I want to be productive on). Spending days and a lot of frustration on this is not a sensible use of my time, however much part of me wishes otherwise.
Cinnamon is not my ideal environment but it is much better than Gnome 3 (for a start, it believes in multiple copies of an application at once), and using a mainline environment like Cinnamon means that someone else has worried about all of these integration issues. It also turns out that I can customize it into an acceptably decent simulation of the important productive bits of my old Gnome 14 environment.
(I'm not sure why I settled on Cinnamon instead of, say, XFCE. I think it just looked better when I took a superficial look at all of them. It's been my default tolerable Fedora environment on my test Fedora VMs for a while, although that has its drawbacks.)