A detailed explanation of my system

This was inspired by this thread over at r/unixporn.

Firmware

Just plain UEFI. I would use BIOS legacy, but this machine started when I didn’t know the ups and downs of the two (Man, Ubuntu is a great distro), and now I have a GPT partition table.

Bootloader

I use GNU GRUB2. I used to use systemd-boot on Arch Linux, but I eventually developed a hate for systemd. I do not use grub-mkconfig as I don’t find it useful. It generates configurations that work but are overcomplicated.

Kernel

I run a vanilla Linux kernel straight from kernel.org, and I tend to add some name to the end of it every time I compile. I used to use linux-ck, and then linux-pf, but I eventually just found that they really weren’t doing anything for the tasks I perform.

I also do not use an initramfs. An initramfs is just something which I see as unneeded for most systems, but also present on most systems. I just never had a need.

My kernel is slimmed down enough that GRUB to tty1 usually only takes around 1–2 seconds. Not the best I could do, but respectable.

Filesystems

I use ext4. I’d rather not use an experimental filesystem like btrfs due to the fact that I’m putting my files in trust of the filesystem. I also just haven’t had a need for anything else. Btrfs is not quite ready for primetime yet. When it matures, I’ll try it, yeah, but not quite yet.

Distro

I use CRUX currently. I’ve previously used Ubuntu, Arch, Gentoo, Debian, and Void. The reasons why I like CRUX over those are:

  1. CRUX is systemd-free. Ubuntu (as of 15.04) and Arch use systemd. I don’t like systemd for the sole reason in that it does a lot of things which I just won’t find myself using, and that makes me worried about how the developers manage all those. It makes me begin to think whether they’re doing them halfassedly or not.
  2. CRUX’s package management is similar to BSD’s ports, and CRUX’s init system is similar to BSD’s. I love BSD and want to use it, but my laptop’s wireless card is not supported on BSD (at least OpenBSD), so I don’t. While Arch has a ports system, it’s not primary. While Gentoo has a ports system, it’s a very different beast from CRUX’s.
  3. CRUX’s base doesn’t contain things I deem unnecessary for most systems.

Init

I use sysvinit with CRUX’s rc scripts, merely because I never found a reason for needing anything else.

Package Management

I use pkgutils most of the time, and use prt-get for system upgrades. I tend to avoid prt-get as oftentimes I don’t agree with the decisions made for some packages, so I tweak the compile options in the Pkgfile. prt-get unfortunately doesn’t have an “Edit Pkgfile?” type thing (a la most AUR helpers), so I just avoid it. This also lets me keep dependencies which I don’t want out of my userland.

Permissions

Again, I don’t use a ton of things which I don’t think I need. Namely:

  • polkit
  • ConsoleKit/systemd-logind
  • LDAP
  • PAM

These aren’t bad pieces of software (well, except maybe ConsoleKit). I just don’t need them, so I don’t use them.

Login

I just use a tty with getty. I can fuck around in the shell if I feel like doing some l33t h4xx0r work in front of people IRL, or just type startx and do actual shit.

Shell

I’m currently using fish. However, I’m constantly tempted to go back to mksh, but I love fish’s scripting syntax. Yes, it’s not POSIX. However, it’s a lot cleaner than POSIX scripts. The syntax highlighting and removal of pointless aliases (in favor of functions) is also nice.

Graphical server

I run Xorg. I’m interested to see how Wayland matures, but it’s just not there yet; it puts far too much power into the compositor. That’s a whole other story, though. Not much to say here.

Window manager

I use Openbox. I used to use wmutils and loved it, but lack of ICCCM and EWMH compliance killed it for me. Openbox works fine for my needs.

Other things I use for more complex window management are:

  • lemonbar
  • compton (because it looks purty)
  • wmctrl
  • A whole lot of scripts
  • boxcutter (Because WHY ON EARTH does Openbox use XML for its configuration file?)
  • A basic notification system using lemonbar
  • PyTyle

Application launching

I just use dmenu2 for some commands, and for more simple tasks I put my most used applications in my right-click menu. I also have Super+Enter binded to open termite, mainly because CLI applications are what I use most of the time.

Other stuff

Text editor: vim

Browser: firefox

System monitor: htop

Terminal: termite

IRC: WeeChat

IM: Telegram

Torrent: rtorrent

Video: MPV

Music: mpd and ncmpcpp, as well as some keys

Pics or it didn’t happen

Yeah, those are kinda important, right?

Like what you read? Give arc a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.