
Ultimate Linux on the Desktop - uggedal
https://blog.jessfraz.com/post/ultimate-linux-on-the-desktop/
======
Ezhik
That's... About the opposite of what I expect to see when I hear people talk
about Linux on the desktop. It's definitely interesting though.

But... Where's the GUI love? :(

I know it's all about the terminal, but god damn it, I'm trying to drop OS X,
and just because I can use bash doesn't mean I dislike having nice things like
desktop transition effects or transparency or auto-mounting USB drives. I
swear, if I have to read another Arch Linux forums post about how things
Windows 98 could do out of the box are bloat...

~~~
rebeccaskinner
I don't think any of the mainstream Desktop Environments (Unity, KDE/Plasma,
Gnome3) or even some of the second-tier DEs (MATE, xfce, lxde) on Linux these
days are that far off.

The GUI experience on Linux suffers mostly from inconsistency when using
applications written with different toolkits, awful font rendering, and a
general sense of being in the uncanny valley if you're used to other desktops
environments.

My first computer in the mid 90's was running Linux on the desktop, and aside
from a smattering of Windows here and there for games throughout the years,
I've mostly stuck with it. Using Windows and OSX isn't some revelation in
usability these days. OSX is more aesthetically pleasing, and a bit more
consistent I think, but otherwise I don't find it profoundly better than the
Linux options. I don't think it's more discoverable, and certainly hasn't been
more stable in my experience- and there are definitely features I miss going
from Linux to OSX on the desktop.

~~~
fsloth
"The GUI experience on Linux suffers mostly from inconsistency when using
applications written with different toolkits"

I have never understood the claim different software should be stuffed into
the same user interface paradigm. Mainly it's an artifact of the encumbrance
the software stack we use to compose user interfaces imposes on us.

OS level components should have the same look and feel.

Otherwise I see it as a bonus that different applications look and behave
differently. I see no added value for the user if, say, Spotify and Word used
the same toolkit.

~~~
cookiecaper
Yes. I have never got that insistence on UI nativity. Is there _any_ OS where
it's actually practical to only use programs that conform exactly to the
vendor's UI style? All the major desktop OSes depend on tons of "non-native"
programs to actually do work. Android usually requires some, and I'm not sure
about iOS as I've never seriously used it, but I would guess the case is
similar there.

It seems like "must be UI native" is a way for Mac fanboys to try to enforce
their preferred design paradigm on otherwise-uninterested people.

~~~
fsloth
To give credit - Apples human interface guidelines for the original Macintosh
were wonderfull in giving guidance where the UI as a concept was bound to be
foreign to most. Also, the first commodity GUIs were on resource strained
hardware so they could not do everything effectively.

I think we are now at a point where the glowing animated screen is far more
familiar to most people and the raw power available on most devices is such
the only rational constraint for UI design is that use experience must be
understandable to most and that the underlying system must play nicely with
rest of the device.

------
tinco
If you're willing to learn some things and jump through some hoops to get the
ultimate Linux setup on your desktop/laptop, you should check out NixOS. It's
fundamentally designed to solve some of the problems I think the author of
this post aimed to solve, and you can set it up without forking other
operating systems.

The main downside for NixOS from my perspective is that its configuration
language is just a small jump away from being trivial, and some things don't
feel very polished. That said I do run it on my desktop, and setting it up was
less work than for example setting up an ArchLinux machine (although setting
up an ArchLinux machine is a bit more fun as you get to learn all these low
level things)

~~~
darklajid
I tried doing that in the past and went back to Arch instead.

My problems (2-3 years ago, I think?) were mostly due to laptop related stuff
that wasn't packaged (i.e.: A lot more work to get started) and important (for
me) packages being seriously outdated: Again work to get my system up and
running.

So it boiled down to a huge amount of package maintenance and felt like that'd
be something I'd need to continue doing for as long as I'm using NixOS vs just
updating my distro of choice.

I'd try NixOS again for a server. I wouldn't recommend it for a desktop/laptop
though.

~~~
clappski
I can second that, I think switching from Arch -> NixOS was far too much
complexity at once. I've been considering using Guix as a package manager on
Arch, but it would require a fresh install to avoid conflicts.

~~~
Nullabillity
> but it would require a fresh install to avoid conflicts.

Not really! Nix basically only touches /nix/..., which Pacman doesn't mess
around with, so there are no file conflicts.

Nix packages are generally hard-coded to use the specific libraries/external
tools that they are built again, so Arch packages won't interfere with Nix
packages.

Nix also doesn't expose dynamic libraries or executables from dependencies, so
the only vector for conflict in the other direction is if you have your Nix
profile before /bin in $PATH, you have installed the same executable with both
package managers, and some Arch program doesn't work with the executable from
the Nix version.

------
ohstopitu
Docker apps is a thing I've been dreaming of for a while.

When I was in university, I used to love testing new software but I hated the
fact that it left stuff behind after un-installs.

So I was on the other extreme and tried to only install stuff I always used
and the rest was always inside docker containers. Infact that's exactly how I
develop too (I run a PHP container for work related stuff, and a nodeJS
container for my side projects).

I've always been meaning to try launching GUI apps via docker - it's one of
the few things that has stopped me from getting into other languages like C/Go
etc - because IDEs generally require the complier and other stuff to be
installed on your host system (or a plethora of hacks to get it to on remote
properly).

~~~
PuffinBlue
I've only looked very briefly at this in the past, but isn't this what Ubuntu
(via snapcraft.io[0]) is trying to do with Snaps?

I might have misread it with only a cursory glance but it looks similar.

[0] [http://snapcraft.io/](http://snapcraft.io/)

~~~
ohstopitu
Snap has had some weird issues in the past! and it does leave behind files
every now and then (especially if you look into your .config folder I think).

------
oelmekki
Thanks for the experimentation and report, would love to have more details.

I've been wondering myself about using docker for user stuff, and not just
developer stuff, like I do currently.

Biggest problems I've figured:

* the memory usage must be very high, unless you have a hybrid system where only some apps run in container and smaller ones do not

* programs basically can't operate with each others, like accessing ssh agent or using dbus for ipc

* finding files using locate now requires a script that will run locate in each container

Are those things you already addressed, or at least you have ideas how you
could address them? Or maybe, once used to a docker based system, they're not
that a big deal?

~~~
Daviey
I'm not convinced the memory usage would be _very_ high.. but doing some
measurements would be interesting.

Avoiding network namespace and by using --net=host should allow dbus to run.

Allowing updatedb to look in /var/lib/docker/ (and any attached volumes)
should mean that the host mlocate can see all the files within the container.

~~~
oelmekki
Awesome, thanks Daviey.

So it seems to me that, while there's indeed some heavy coding to do for
things like keeping apps up to date, containerizing what haven't been yet and
managing data containers / mounted volumes, there's nothing preventing such
setup to be viable, with hard work. There probably should be some grouping
done at some point I guess, to work around apps that expect to live in the
same place to work together, but that's still doable.

Do you see any big blocker?

------
xaduha
I used to do that, as in using a minimal linux distro as a sort of hypervisor.
CoreOS (when it was CoreOS), Rancher OS, TinuCoreLinux with modified kernel
and running everything with rkt.

But then I stopped, because I was reinventing something badly for which there
was already a solution.

I switched to NixOS and never looked back.

~~~
davexunit
I switched to GuixSD for the same reason.

------
sedatk
The Ultimate Linux Desktop will not need a blog post to configure, someday.

~~~
bostand
Why that attitude?

Someone sets up her machine to her (very odd) liking, what is wrong with that?
If you don't want to go that route there is always Ubuntu & co that "just
work"...

edit: Jess, sorry for calling you a guy.

~~~
FeepingCreature
Just a question of labelling.

------
anotherevan
I wonder if Qubes OS[1] would be a contender.

[1] [https://www.qubes-os.org/intro/](https://www.qubes-os.org/intro/)

~~~
brennen
It's an interesting design with some real potential, and may have improved
since I last used it, but at least 6 months ago it was a bit too sluggish for
real-world use on mid-tier laptop hardware.

------
Quequau
I've had this thought myself. I've also considered that perhaps it might be
useful to push some of those containers off the desktop system to some other
box on the local network.

I use an old workstation and having too many apps running at once does cause
problems. Perhaps running some of the worst offenders (Browsers, Word
Processors, CAD) on some other CPU, which isn't driving my desktop experience,
would work out well.

I already do most of my software development tasks in containers and just not
having their environmental requirements conflict with each other was well
worth the effort of setup.

------
Perceptes
Hacking CoreOS to work on a desktop is pretty cool, just for the nerd factor.
I wanted to run CoreOS on my Raspberry Pi, but they don't have a build for ARM
at this point, and I know nowhere near enough about Linux to work on it myself
in the way Jessie did.

~~~
bostand
you can run Ubuntu core the pi, which is kinda similar to coreos.

------
lovelearning
I had the impression that something like LXD containers - complete linux
systems in a container - is better for this kind of containerized desktop than
multiple singe application Docker containers. Can somebody here who's more
familiar with container tech than me explain how and when Docker might be
better for a containerized desktop?

~~~
jdub
Because each container image has only that app, and only what it requires
(libraries, etc.), and each container instance runs only that app's process,
and only with the very specific hardware/filesytem access that it requires.

------
caetergate
How about a screenshot, few configs, anything?

~~~
kasabali
check the first link in the post

------
venamresm__
You should take a look at what the guys on /r/unixporn do.

~~~
mhd
Edit their window manager configs, play some music, use IRC and their browser,
show their anime desktop image?

The percentage of actual "this is the desktop I use to earn money" shots is
minute.

~~~
exDM69
> The percentage of actual "this is the desktop I use to earn money" shots is
> minute.

Fwiw. the desktop I use to earn money looks something out of /r/unixporn,
except that it's ugly (no background, etc). Tiling window manager, a few pixel
wide borders, firefox (without toolbar, scrollbars, menubar) and a whole lot
of xterms with tmux and my favorite 16 colors.

I don't have a pretty background picture, fancy IRC setup or a desktop bar
with the song that's playing so it's not worth posting screenshots, but it
gets the job done and it's very easy to replicate when I get a new computer
(ie. just copy dotfiles over, no need to poke around in config menus of a
bunch of applications).

~~~
mikekchar
I really need to checkout /r/unixporn because what you describe is _exactly_
what I have on my machine. One day I started thinking about what I started
with as a professional programmer (back in the 80s). 80x25 terminal. I was
happy with it. What was the new stuff giving me? Eyestrain.

I've got tmux with a 25 point font and 16 colours now :-) Happy as a clam.
Would be nice to have a browser that I could bend to my will... Some people
will never get it, but this is a very nice setup if you know how to use it.

(but as someone else mentioned, I run compton because I like stupid effects
and drop shadows... crazy, right?)

------
disease
Like a few others here I've always thought that running all your apps on the
OS in containers could be cool. It's my impression that Chrome OS already kind
of works like this - with each app in it's own sandbox.

Are there any inherent limitations on doing things this way? Because it seems
to me that the benefits gained in security, convenience and ease of
installation would out-weight any downsides here. Downsides being: more RAM
required, less "bare metal" access, more hard drive space required. I am NOT a
systems engineer but running all apps in their own containers seems to make a
lot of sense at an intuitive level.

------
jeena
Nice and catchy headline but I was hoping to be able to read how she does
that, perhaps I'd need to read her other blog posts.

------
blacktulip
OK, how is this ultimate? Did I miss something?

------
suhith
Maybe I'm missing something, but any changes you made to the application would
not be saved, correct?

For example in Chrome assuming you downloaded something, you would have to
specify the target location as your native filesystem, not the overlay
filesystem in the docker container. Is it possible to do that?

~~~
bench_soup
You can bind mount folders between the host and container. (--volume option
with docker for example) So that when you write in container's Download folder
it would also actually be in your host's filesystem.

------
pvinis
Interesting. I have thought that it would be cool to run all terminal commands
either in a linux vm when I'm on macos, or even better in container(s). I
don't know if there is anything like that already, or if it's even useful.
What do hn people think?

~~~
floatboth
On my Windows desktop, I work in a FreeBSD VM. With an X11 terminal (st)
forwarded to VcXsrv via putty. GUI apps work seamlessly. I wrote a tiny
PowerShell script to manage that stuff
[https://github.com/myfreeweb/xvmmgr](https://github.com/myfreeweb/xvmmgr)

------
dr1337
I wonder how much time he spends configuring his system as opposed to using
it?

~~~
r3bl
Well, I don't know about her, but I'm spending a considerable amount of time
of making my system usable as a two-in-one device (Lenovo Yoga).

Still beats the hell out of using Windows, because I can actually _fix_ things
that I don't like instead of accepting them.

~~~
oblio
Windows is quite configurable if you put the time and effort into it. Not as
configurable as Linux, but it can get to about 80% of the way there (to get to
100% you need serious COM/Win32 chops).

~~~
karrotwaltz
Windows having forced updates you can't schedule and can discard all your
unsaved work (long live Sublime Text) is enough for me to want to drop it
completely...

Too bad there are still so many apps I need that can only run on Windows.

~~~
dcdevito
"Windows having forced updates you can't schedule"

Are people that inept at using Windows? I'm not trolling you, I'm serious. In
Windows 10 I configured my active hours and set a scheduled reboot time if
necessary, why is this so hard?? Seriously...

~~~
to3m
When you get the little popup, your options appear to be: "ok, update now" and
"ok, update at 3am". That stops a mid-day reboot, but it's useless if you want
to leave your computer overnight so that it's where you left it the next day.
Just because I'm not active, that doesn't mean I want my computer to restart,
losing me my place! But MS doesn't seem to have realised this, doesn't let you
set 24 active hours in a day, and doesn't let you defer the reboot past the
next set of inactive hours.

You can try putting it into sleep mode when you leave, but... surprise!
Windows seems to be able to reboot your PC in sleep mode too (don't ask me how
- every Windows 10 owner I've spoken to has had this happen to them at least
once though).

The only solution I've found is to hibernate at the end of each day, and then
restart. Windows can't do its 3am reboot if the PC is off. (You don't need to
physically unplug it.)

This has worked for me on most projects, because all I want is to get back in
the next day with all my windows where I left them - but I've worked on some
projects where you want to leave the computer running overnight, because you
need to run a long job, or you want to soak test something, or whatever.

What then? There appears to be no way to disable this stuff without some good
degree of Windows IT Person skill. There appear to be multiple recommended
methods, all of which seem not to work for at least some people, and all of
which get undone for at least some people by at least some future updates. So
this is all fine if you work a company that has a Windows IT person to look
after this stuff for you, while you do your actual job - but not so much fun
if you're trying to do it yourself. (And it's a total shit to test, because
upgrades that need reboots don't happen every week.)

My "most hated Windows 10 features" isn't a very long list, but the enforced
reboots is definitely #1.

~~~
cube2222
Windows recently added the possibility to suspend updates for up to 45 (or
something like that) days.

~~~
to3m
Thanks for the note. I'll (try to remember to!) take a closer look at the
popup next time it pops up.

I know I'll be up to date with the revelant updates, because I've had no damn
option ;)

------
corybrown
This is quite the setup. How does the clipboard work?

------
guifortaine
[https://pagure.io/atomic-ws](https://pagure.io/atomic-ws)

------
valarauca1
So the ultimately Linux Desktop starts with _Installing Gentoo_? Am I on
4chan.org/g

~~~
fizixer
how so? Are Gentoo apps containerized or isolated from each other in some way?

As someone seriously dissatisfied with my existing setup (6 year old Ubuntu
install that is now a complete mess), I'm shopping for an insanity-free way of
managing my desktop. Currently looking into:

\- Minimal host with containerized apps (this post).

\- Nix or Guix (need to read up on this)

\- Some arch-based setup

\- Gentoo

\- Very ambitious that I don't have time for: my own setup of some kind (based
on LFS as a starting point).

------
aidenn0
Does anybody know if the author has a public portage overlay for her setup?

------
buzzybee
The post seems abruptly cut-off. It talks a lot about containers and not about
applications. Does this person only write code and start servers?

~~~
oddmunds
She has a repository of Dockerfiles, so you can see for yourself the type of
thing she does in containers:
[https://github.com/jessfraz/dockerfiles](https://github.com/jessfraz/dockerfiles)

~~~
jacobush
Spotify being one. I see this as a testament to how far we have come when a
"non kernel" coder can throw together a system such as this where each
(dockered) process is heavily sandboxed.

------
dcdevito
This is a joke, right? If this is the "ultimate" Linux desktop then Desktop
Linux has already died. I get what the author is trying to do, but it (along
with WMs like i3) to me feels like we regressed 25 years of desktop computing.

I mean, if you're going to do this, then why not just do what I do and run
Windows 10 with a bunch of Linux VMs for development? I run a bunch in VMWare
7 in Unity mode and it all works great, all the while I still have a modern
and fast OS on top. Put your MSFT hate aside for 10 minutes and see what I'm
saying.

The Linux Honeymoon won't last very long, all these macOS users jumping ship
will return to the motherland soon enough, most Mac users I know WOULD NEVER
have the patience or desire to do all this work, hence why they started using
Macs in the first place.

Regards, A former Mac user running Windows 10

~~~
bostand
I am not surprised that a Docker core dev wants to run everything in
containers, just for the heck of it.

What does surprise me is the increasing number of hack-haters on the hackers
news.

~~~
chris_wot
Agreed. What the author is doing is really very cool, and I just can't see
anyone running Windows 10 ever doing anything similar.

~~~
dcdevito
Cool? Absolutely. Time consuming? Probably. Worth it? Well....

~~~
dang
'Just because' is reason enough, especially here.

