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...
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.
She has been annoyed many times by the way her Mac is running. One day she lost all her books because of a new version if iPhoto which suddenly requires you to have a kind of remote on Apple servers, the spreadsheet/writer tool is really bad at opening Excel and Word documents, the email client has very small fonts, etc...
For basic day-to-day usage, we found that Windows/Gnome/Macos are basically at the same level of consistency/quality. You can complain against some stuff on each side, they have inconsistencies on each side, but at the end of the day, one is not any more really better than the other, but she hates the fact that she has no ideas why sometimes on the Mac it does not work.
This is true, however Windows suffers from the same problem (and OSX too, however in a minor degree).
> awful font rendering
Only by default maybe. I did tweak my fontconfig (just some symlinks available in /etc/fonts/conf.avail) and IMO the font rendering in my Linux systems are better than my Windows systems (even after tweaking Windows ClearType).
There is the fact that some applications does not support fontconfig, however I can't think anyone that I use daily at least.
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.
This is the first time in years of experimenting with desktop/laptop linux where I've been able to say that it's close enough to gain mainstream popularity.
I do wish it was based on a more sane (for my tastes) distro like Slackware or Gentoo, but that probably wouldn't work given how much it depends on the Ubuntu/Debian way of doing things under the hood. The fact that it has made me give up Slackware on the desktop still surprises me; I'd been using Slackware almost daily since about 2001 but the last few releases have felt trapped in the past while struggling to catch up to every other distro feature-wise. Maybe that's due to their insistence on remaining systemd-free (something I am proud of them for) but whatever the reason, I now only use Slackware on servers and really old hardware, and only use Elementary on the desktop. Anything else in either setting just doesn't compare.
I was going to put it on my Chromebook as my main OS, but theres a silly bug with the legacy BIOS for specifically my chromebook (Toshiba Chromebook 2 2015) that makes installing any Ubuntu flavor, or ElementaryOS, just not work.
I ended up putting Mint on it, since the OS installer would actually render.
Still want to try ElementaryOS someday.
It looks really good though, and the community behind it seems to be growing, so I'm hoping to become active contributor.
While transition effects are pretty, I personally do dislike them: if it's not instantaneous, it's too slow.
If you're using a DE (like Gnome) they bring it by default. If not, well, you can choice any of the multiple window compositors out there. However if you're using something lightweight enough to not bring a compositor by default, well, you probably asked for it.
Compton is a lightweight alternative BTW.
> or auto-mounting USB drives.
This isn't really a problem since systemd-logind. Just make sure that you're starting X.org in the same TTY that you logged in, or at least make sure you're using a Display Manager. After that, any File Manager that supports auto mounting will work, even without running a DE like Gnome.
Last time I setup my i3-wm workspace it was simply a matter of cloning my configuration from GitHub. Everything DBus related (including auto mounting) worked. Never more I needed to do insane things like:
$ ck-launch-session dbus-launch i3 # or it was dbus-launch ck-launch-session?
I think compton is the only choice, isn't it? As far as I know, xcompmgr and cairo both are not being developed anymore. And even compton is an unhealthy project, see https://github.com/chjj/compton/issues/352.
Arch-Wiki article: https://wiki.archlinux.org/index.php/Compton
It's the attitude that annoys me, I guess. A lot of OSS stuff doesn't feel like it's made for "real" people - sane defaults and such. With i3wm specifically it's just more obvious because it's minimalist-to-a-fault, but there are little things I find counter-intuitive even in something like GNOME.
And while I do appreciate modularity of a light WM, and being able to fine-tune things to my liking, I'd like to see more projects like elementaryOS, regardless of how many times people say it's all "bloat" or "botnet".
I used to run XFCE + compiz, which you configure using a program called ccsm. It's not hard, either use apt-get or click on the "software" icon from the start page. Install compiz (and maybe compiz-extras or whatever), and ccsm (again, times may have changed so it might be called something else).
That will get you a 3D accelerated desktop. You can let your desktop be a rotatable cube, rubbery wobbly windows, real opacity/transparency, and an accelerated magnifying glass/zoom effect which I used quite a bit (hold down windows key and the mouse wheel zooms you in/out). It also supports inotify, so its windows-like when you put a USB in you'll get the little dialog box saying "USB stick inserted". Highly recommend you give it a spin.
Over time, I got over the coolness of it, and just switched over to xmonad so I dont even need the mouse (much) anymore.
Thats only true if you want it to be. I would recommend to look into gnome shell. And maybe KDE
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)
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.
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).
I might have misread it with only a cursory glance but it looks similar.
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?
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.
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?
* Thats entire the point. Only programs that you WANT to operate with each other can. This may be inconvenient, you may need to set up a socket or something for ssh-agent to handle and then programs that need the agent would have to hook into it.
* Any files in the container should 100% be program data. Any persistent/user data should be volumized to the host. Which means you can just find files on the volumes rather than in the containers. This may make files MORE centralized (if you use some sort of convention for /volumes/<program> or something)
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.
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.
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.
I would love to see a version of authors desktop built with Ubuntu Core instead.
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).
I'm using the same combo right now, but /r/unixporn just isn't as exciting to me as it was maybe a year ago. Everything posted there seems to follow one specific path nowadays.
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.
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?
Most of my terminal usage (like moving things around on the hard drive, updating the system, managing Docker containers and editing config files) would have no sense to do in a virtual machine.
Still beats the hell out of using Windows, because I can actually fix things that I don't like instead of accepting them.
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).
It seems to be an exercise in overengineering.
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
What does surprise me is the increasing number of hack-haters on the hackers news.
maybe in this case it was not so much directed towards the hack itself, which sure is cool and, erm, hacky, but more towards the clickbaity title announcing something 'ultimate desktop' which indeed isn't what most might consider 'ultimate'