*nix Guide


June 29th 2015
I just want it to work

Mint is a distro based on Ubuntu. You can pick between the Cinnamon, MATE, XFCE, and KDE editions. The KDE edition is still on version 4 though so you won't get that sick Plasma 5 desktop. It comes with the codecs you want already to play your chinese cartoon OP/EDs so you don't have to install them yourself.
Ubuntu is the mainstream distro. It had a problem with putting Amazon search results in when you searched for something on your system. You can turn it off but I think it's still on by default. If you like Unity though this is what you're going to have to use.
Xubuntu is the XFCE version of Ubuntu. You'll probably want this if you have a sort of old machine and you don't want to go with Mint XFCE edition. Doesn't have the Amazon search results at all.
Lubuntu is for computers that are on really limited resources, but the user still wants a GUI which is provided by LXDE.
Fedora is basically the community/free edition of Red Hat Linux. Where as other distributions will be a bit behind, Fedora grabs from upstream as soon as possible. Fedora 22 changed the package manager from yum to dnf. Uses GNOME3 by default which some won't like.
Debian is what Ubuntu is based off of. There's 3 release channels: Stable, where you'll have a stable system but likely way outdated software; Testing, where you'll get a little more up to date software; and Unstable, where you'll get the latest they can bring you.
Overall just pick the one that suits you best after checking out their websites, and if need be on the amount of resources you have on your system.

I want a lot of system control

Arch Linux is a minimal distro that doesn't have an installer (just a set of scripts to help). After installing the base system with pacstrap you're given a working system that can boot to a TTY. From that point on the user has to build their own system out of the applications they want. The ArchWiki will help you a lot so be sure to read the Beginner's Guide there and look at the List of Applications entry. Arch Linux by default uses binary packages in the repos, however the Arch Build System (ABS) can be used if you want to compile something and install it yourself. The Arch User Repository (AUR) is also notable for the amount of extra software available there (which is built from PKGBUILDs). You can use Antergos to have Arch Linux without the pain of a lot of configuration, or you can use the Evolution Installer.
Gentoo is another minimal distro where basically everything is compiled by the user. It uses a ports like system to manage software unlike most linux distros that distribute binaries in their repos. The Gentoo Wiki is pretty good and if your system would be slow to compile on look into DistroCC to distribute compilation to another computer on the network.

What about the other distros?

Check out Distrowatch for all the latest news on distros!

Desktop Environments and Window Managers

June 29th 2015
Desktop Environments

GNOME is one of the more popular environments along with KDE. Version 3 of GNOME initally wasn't very well received (and still to this day garners some hate). If you like the traditional desktop, GNOME3 probably isn't for you. GNOME supports Wayland though and overall looks decent. gnome-tweak-tool is essential though to "fix" some of the default settings.
KDE is the other popular environment. Unlike a lot of desktops that are based on GTK+, KDE is instead based on Qt. With version 5, KDE released the Plasma desktop which looks pretty nice, though make sure you have a decent computer for running it. According to one anon, Dolphin (the file manager) is excellent. KDE has Wayland support.
Cinnamon was originally a fork of just the GNOME shell, but has since become a full fork of GNOME 3. Unlike GNOME 3, Cinnamon retains the traditional desktop metaphor. Cinnamon also has Wayland support.
MATE was a fork off of GNOME 2 that started from the backlash of GNOME 3. MATE is still stuck on GTK+ 2, but plans to support GTK+ 3 very soon.
Xfce is a lightweight DE based on GTK+ 2. If you have a computer that's light on resources but still want something that looks great this is what you want.
LXDE is another lightweight DE (even lighter than Xfce) based on GTK+ 2. It's what's used on Raspbian and you should use it if your computer has minimal resources or you just don't like anything heavy but still want a full DE. There is also a Qt port called LXQt.

Window Managers

i3 is a tiling and floating WM. According to anons it's the one people use when they actually want to get work done. Out of the box it's pretty usable already (though a bit plain). It's best combined with Compton for those transparency and shadow effects. Compton itself is pretty lightweight too if you're worried about that. Unfortunately if you're looking for scripting, i3 won't give it to you, just plain config files. Hold $mod+click and drag floating windows to reposition them! Want gaps like all the ricers in the desktop threads? Use i3-gaps.
Awesome is a fork of dwm. It adds LUA scripting to configure it and the options that are available are vast. If you have the time definitely check it out.
*box includes WMs like Openbox, Fluxbox, Blackbox etc. They're floating WMs (like the ones found almost everywhere), but are light on resources (Fluxbox especially).
WindowMaker You love the 90s and NEXTSTeP. This is your wet dream.

Linux Audio

June 29th 2015

ALSA or Advanced Linux Sound Architecture is the successor to OSSv3 (Open Sound System). It's the layer that's going to be detecting your sound hardware and ultimately talking to it most of the time. ALSA along with its CLI tools (like alsamixer) can prove to be enough for the regular user if you don't want/like/need PulseAudio.
PulseAudio is a sound server that sits on top of ALSA. Instead of applications talking to ALSA, PulseAudio will instead take application audio, mix it, and send it off to ALSA instead. PulseAudio comes on most mainstream distros so if you have a DE installed it's likely that you're already running PulseAudio. PulseAudio will also provide the ability to transfer audio over a network.
JACK and JACK2 In summary if you're using a multicore processor you should be using JACK2. Putting versions aside, JACK is more for the pro audio people who have separate USB/Firewire soundcards rather than people just trying to get sound out of their computer. It talks direct to the hardware with minimal latency (which is important when recording instruments). With applications like Catia/Patchage you can connect JACK/ALSA applications together however you want. For a full GUI JACK helper, look at using Cadence. If you use a USB card, as long as it is standards compliant it should work no problem. If you use a Firewire card check out the FFADO project and see if your card is supported and also make sure you're running a Texas Instruments XIO based Firewire PCIe card (other cards will likely not work). If you need to bridge ALSA applications to JACK use a2jbridge. JACK2Dbus has excellent integration with PulseAudio by allowing PulseAudio to automatically sink all of your application audio to a stereo out which you can connect to wherever in Catia. You can also source by hooking your soundcard inputs to the PulseAudio source, just make sure that PulseAudio isn't holding your card at all or it will not work.

Linux Graphics

July 1st 2nd 2015
Open Source Drivers

The open source video drivers are generally more useful for day to day applications. You won't likely have trouble with them if you decide to upgrade your Xorg server or anything. If you installed a mainstream distro, you likely have the open source drivers already running on your system. In the case of Nvidia graphics, this is the Nouveau driver; for ATI/AMD graphics, it's the Radeon drivers. If you have an newer card, the open source drivers might not support it or have significantly worse performance and in that case the proprietary driver should be used. If you don't have discrete graphics or you don't want acceleration for some reason then the VESA driver is what you'll be using. The Nouveau driver was made through reverse engineering and can't match the performance of the proprietary driver if you're going to be doing something like gaming. The Radeon drivers were made from the documentation supplied by AMD and are on par or better with older cards, but likely not as good as the proprietary driver on newer cards. AMD also just released their AMDGPU kernel driver for their newer cards which will be the backend for the open and closed drivers in the future (official rollout in kernel 4.2).

Proprietary Drivers

The proprietary/closed source/binary drivers are more useful for newer cards if you're going to be gaming. You should be careful however when upgrading your Xorg server or kernel, and check beforehand if the proprietary driver will support the new configuration. For Nvidia graphics you'll be using their GeForce driver, and for ATI/AMD you'll be using their Catalyst (fglrx) driver. One thing to note here is that the GeForce driver also supports Solaris and FreeBSD, whereas the Catalyst driver doesn't.

Open Vs Closed

If you have a recent card and/or really want the extra performance then your choice would be the closed drivers. However, since the closed drivers are binary blobs some people don't like the idea of having that on their system. If either Nvidia or AMD decide to drop something in their drivers there is nothing that the community can really do about it. The same situation occurs if there is a bug in the driver, but the vendor doesn't consider it something that needs to be fixed right now. This situation can keep you from upgrading to a new kernel version (if that's what you want to do), or from upgrading your Xorg server until the vendor gets around to supporting the configuration you want. That usually occurs a bit after the open driver has had support so if you want to run the latest stuff then the open driver might be where you want to be. This is especially the case with the Radeon driver since AMD gives the documentation to their cards to the community to help develop the open driver which eventually comes to match or exceed the closed driver with time. Since Nvidia provides no such documentation, the open driver is usually below the performance of the closed driver and will likely stay that way so you can't give a little performance now and gain later, you'll have to wait until Nvidia supports what you want.


If you're running a laptop with Nvidia Optimus switchable graphics on it there's good news and bad news. The good news is that Nvidia probably supports your discrete card just fine and you'll have better performance than the open source driver (as long as your kernel and Xorg are supported of course). The bad news is that the GeForce driver will not implement switchable graphics so you'll probably end up with worse battery life. On the other hand, if you have a laptop with discrete graphics you probably didn't buy it for the battery life anyway. The Nouveau driver will support switchable graphics, but the performance on the discrete GPU will be worse. In addition the closed source driver might actually end up more buggy than the open source driver, but there have been reports in the threads of the Nvidia driver working fine.

Check your driver

If you want to check your current driver run "lspci -knn | grep -A2 VGA" (without quotes)