The Blog of Joshua Blais.

My Computer Setup

Cover Image for My Computer Setup
Joshua Blais
Joshua Blais

After posting my setup to r/unixporn I received many questions about my system, why I do things certain ways, and what programs I use to achieve a "Tranquil" computing environment

Questions such as:

"Why do you use that program or this program?"

"Why do you use Linux?"

"How do you actually get work done on that weird keyboard?"

Today I am going to dispell all the rumors, and get down to business about how I really use my system, the hardware I'm running, and how you can emulate what I run by simply cloning my git repos and dotfiles located here.

This is going to be a long one, so buckle up, grab a coffee, and let's get started.

This is a post inspired by Andrea Fortuna's Ultra-Geek Linux Laptop and BeGriffs OpenBSD Workstation Guide

1. Hardware

Here's the goal:

I want to be able to run every program with as little latency as possible.

Most hardware, if you run similar software and configuration to what I run, can do this.

That's because I use exceptionally memory light programs as I want all of my computer's power to be focused 100% on getting actual work done. Any 10 year old laptop will do in most cases (that's not to say you can run my video editing software, but you get the point.)

The phenomenon I'm trying to avoid is seen in lower-power hardware when you open up a dozen chrome tabs - everything slows to a crawl. I want to avoid this at all costs. My desktop hardware is ridiculous overkill. That's because I don't want to waste time on anything that I can avoid wasting time on.

I run an ITX build in a chassis that is essentially an open air test bench with it's cooling due to fan placement, the water loop, and venting on the case.

You may be saying "Josh! Why are you running ITX when you could be running a 10 foot tall tower with ample cooling?"

Legitimate argument, hypothetical person.

The cost and heartache that comes from having to plan out a small form factor build such as this is not worth the effort, especially in a niche case such as my Sliger 570. Next time, I will buy a mainstream case that supports regular hardware, and debatable on the watercooling.

Edit: I no longer run an ITX System and have moved all hardware to a 4U server chassis

I run 32gb of ram, a ryzen 5900x, a GTX 3080, and a 1tb sabrent rocket ssd. I want to go fast, I spend a lot of time at the computer, and I need that time spent wisely.

This setup can run Blender and Davinci Resolve, render a 8k video clip, compile programs, edit photos with no issue, and run virtual machine after virtual machine, SSH'd into servers all over the world. And it won't break a sweat.

I run various Thinkpads as my laptops (I have a collection of 4).

I don't edit video on them generally - or do anything too intensive - but I still run the same software so that I can have mirrors of what I work on at home as well on the go.

And no, I don't game, even with a 3080. A shame, really, but I can't be bothered anymore.

I don't store most of my files on either computer. I have a server that is hooked up to my network that has all files, books, videos, pictures, what have you on it. That way I don't have to worry about syncing computers - I do all my work off of the server by mounting it as a remote filesystem on my laptop and desktop.

I recommend everyone do this - syncing things across computers is the worst thing ever. If you need help with this, drop a comment and I will do a video/post in the future.

1.1 Peripherals

Keyboard - Ergodox EZ

If you're not aware of this one, you should be, it has effectively eliminated shoulder pain for me, allowing me to type shoulder width apart and open up my posture. This should be a standard for how keyboards are designed. I will do an expose piece on this perhaps in the future.

I have a Planck EZ for travelling, and I love that keyboard to death as well.

Mouse - MX Ergo

The Ergo is an awesome trackball. I had a finger operated trackball for about a week. I hated it. Thumb operation is better for me. The Ergo is also built very well which is expected from Logitech. Other trackballs that I've tried don't compare in build quality. I have examined the Kensington Expert and may explore it in the future.

Headphones - Sony WH 1000MX2

Really good noise cancelling headphones, easy to travel with.

Microphone and Webcam - Shure SM7B with Blue Mic Arm and Logitech Brio

Monitors - Dual Acer 4k in one landscape, one portrait orientation

Cause I write a lot of code, and it's nice to see more of it.

I am leaning toward axing the mult-monitor and going with a single 32" 4k display. Less clutter, less distraction, simpler. I value all of that nowadays.

Drawing Tablet: Wacom Intuos Pro Small

For signing stuff and creating markups for devs/employees.

2. Operating System

Linux.

In the past I cared about distribution, BSD vs Linux, etc. etc.

It's silly to evangelize an operating system (or worse these days, a distribution of an operating system). I just work on what I know works, while allowing me to run the most productive setup for me.

I like the Arch package manager and repositories, so I run a derivative of Arch (I cannot be bothered to install this by hand, I have money to make and time to save).

Manjaro, Artix, Anarchy, Garuda, Endeavor, whatever. It doesn't matter, as long as it has "Pacman -S" on it, I am happy. Contrary to this, I run Debian on the server, OpenBSD as a bastion.

Edit: I have just gone with Endeavour for all my local machines.

Linux is the best desktop Operating System if you are a programmer or care about freedom. I am both of these, and the additional ability to port my desktop wherever I go is phenomenal. Copy over the config files and away you go.

3. Software

The first thing you have to consider is use case.

I edit video in 4k a lot. I write a lot. I write a lot of code, and I have to have stable programs that allow me to keep everything for my business in order. Here's the list:

Window Manager

BSPWM. The goal is to be lightweight, KDE was the previous Display manager I used that I will likely not use anymore. I have Gnome as a backup if X breaks.

As I am getting into Emacs more, I may honestly use it for 90% of what I do on a daily basis and this is completely irrelevant. Who knows. Check back in a year.

As an update to this article, I am still using BSPWM with the following programs. I spent a lot of time on the configuration, and it works exceptionally well. I don't see myself pulling a DistroTube in the future and hopping around Window Managers. It's a waste of time, and then I have to learn Haskell or C or something.

Learning is never a waste of time, but jumping around for 1% productivity when I have optimized as far as I have seems silly

Application Launcher

Rofi with dmenu baked in.

If you're familiar with MacOS this is very similar to spotlight and just as fast. Fully configurable to search the web, launch programs, and find files.

Desktop Notifications

Dunst. Not Kirsten. Configurable and seems to just work in most instances. Looks good, too.

Text Editor and Programming

I have been using Vim (Neovim to be exact) for the past couple years. I really like it. I have been getting more into emacs as time has gone on, as I think emacs is likely the endgame of all editors, and can be used 20 years from now, just as it was used 40 years prior.

Emacs will be the future for me. I am slowly wading into it, and away from using Vim in the terminal. I will still probably use vi or a derivative of it as it's on server almost always by default and takes up like no resources.

It should be said that Vim keybindings are superior to Emacs, as I don't want carpel tunnel at the age of 28, so I use Doom Emacs, where the space bar replaces nearly all of the C-c stuff.

Another Update since Writing this Article in early 2021 - I use Emacs fulltime now, and vim on the serverside of things. I was right and will never go back to any GUI editor. Even for writing, I write everything in Emacs.

Browser

I don't like Google, so I steer clear of Chrome. I don't mind Brave, but I prefer Firefox.

I use brave for Day to Day, as it's fairly easy to configure, and Firefox for development and more "covert" browsing.

I use the Developer's Edition as it's got a couple more tools and gets updated frequently. I use these extensions (both in firefox and Brave):

  • Vimium
  • React Developer Tools
  • OneTab
  • Redux DevTools
  • Privacy Badger
  • DecentralEyes
  • HTTPS Everywhere
  • UBlock Origin
  • Cookie Auto Delete

I use Chromium for social media. Otherwise I never touch it.

Update: I use Brave and never touch Firefox anymore after their mid 2021 update.

Update 2: I use Qutebrowser as my main browser, and firefox for developement. Chromium has been dropped from my machines as I refuse to participate in social media.

Email

Thunderbird and MU4E

Again, I am learning the Emacs world and moving into that full time, so I will use MU4E a lot more, Thunderbird is a great GUI alternative, has PGP integrated seamlessly, and is easy to add all of your (way too many) Email accounts.

Terminal Emulator

Again, looking into emacs stuff. I use Termite exclusively as it's easy to configure, looks good, allows images in terminal, and that's about it.

I'm sure I use whatever the TTY is on server more than this these days.

If you don't know what a command line is, I think it's probably the most important thing you can learn right now. Go, do it.

Update: Termite is no longer being maintained, so Alacritty is the terminal of choice now. I recommend it highly.

Video Editing

I use Shotcut for lighter stuff (it's really good for an idiot proof editor) and Davinci Resolve for the heavy lifting on desktop.

I really like what BlackMagic Design is doing with their cameras, and Davinci is an extension of this ecosystem, so I figured why not get into it. The color grading is unmatched even by Premier Pro or Finalcut Pro, and the base version is free.

If you buy a BMPCC4 or 6K, you get the advanced version for free, so there's that in my potential future too.

I use ffmpeg for quick edits and changing video/audio formats etc.

For the Linux people, you have to convert your video to Prores in order to use it with Davinci, however. This can be done with ffmpeg in the following command:

ffmpeg -i input.avi -c:v prores -profile:v 3 -c:a pcm_s16le output.mov

Photo Retouching, Drawing, Photoshop

GIMP, Krita & DarkTable

All for different purposes. I use Krita not very much. I use GIMP a lot for creating assets and such, I use DarkTable for editing and retouching photos.

Chat and Messaging

It irks me to no end that people use Whatsapp, Instagram messenger, and Facebook for chatting. In my bachelor days, I pretty much had to use them, along with Snapchat...

I make everyone I know download Signal and use that to talk to me. It's dummy proof, has a package in the repo, and allows me to get that 'IMessage' vibe on computer.

Oh, and it's actually secure. Unlike every single other messaging application. I like Element as well, but that is more for groupchat Discord-like functionality.

Update: I have an XMPP server running that I believe will be endgame.

Video Recording

OBS Studio It's what the cool kids are using for streaming almost unanimously, and it's good enough for me. There's a ton of extensibility to it, I like it.

Video Playback

MPV and VLC generally. You probably used VLC back in the day as a kid. I still use it. It's good. MPV is my default.

Audio Production

Audacity. No brainer.

Update: After Audacity was purchased and included telemetry mid 2021, I have switched to a fork of it without the spooky stuff.

Audio Playback

MPV, NCMPCPP, Spotify.

I am trying my hardest to get away from streaming services and having my own music, like the dark ages.

Self reliance, and all that jazz.

Screenshots

Flameshot. Undisputed champion as you can edit the screen shot right in the shot you took, and copy paste it whereever you need it. Makes working with other people pleasant.

I have used and continue to use scrot as well, for the simple stuff.

Update: I have been using the Gnome screenshot utility.

Passwords

Pass. If you know, you know.

KeepassXC is good for most normal people, and is what I recommend for anyone that is starting to care about security.

PDF Viewer

Zathura. Sounds like Zarathustra. Has everything you might need for opening a pdf, include mudpdf as an extension. Dark mode with a press of a button, too.

Office Suite

Admittedly, I don't use this stuff almost ever now. LibreOffice for LibreOffice Calc - Excel stuff. I don't really use it much, and have been trying to find alternatives - I am working with Latex more recently, and will likely move to that full time for document creation (if you remember those things you had to read in university and highschool, that was most likely a latex document).

Calc is a good Excel alternative, and I use it the most frequently of any of the office suite. (I don't really use any of the other suite programs.)

Video Chat

If you want to video chat with me, it will be on Jitsi over Element likely.

Encryption

Veracrypt. I use this on most of my thumb drives, files that are important, and external drives. Anything that can be easily stolen can and should be encrypted.

Update: I use vanilla gpg and on occasion Tomb

File Manager

Thunar for graphical stuff. Ranger for everything else. Trying to migrate to lf when I have the time.

Sometimes you need to drag a file, that's where thunar comes in. Ranger is good for exploration and actually getting to the file, then I use a 'folder' alias to instantly open thunar, drag said file, and then exit as fast as I can.

RSS Feed

Newsboat, I am looking into Emacs alternatives.

Update: I use the Emacs extension elfeed for this now.

Update to the Update: I am back to newsboat, elfeed had too many glitches.

Easy ISO Writing

Balena Etcher. This helps a ton, and for some reason, dd doesn't work all the time. This one does.

Rendering and CAD

Blender, I am a noob, but I think there's a lot of cool applications for this. I also think that creating virtual assets is just fun. I think there are so many use cases and cool things you can do with CAD software that I have invested some time into learning it, more to come in the future.

Torrenting

Qbittorrent or transmisison - moving toward transmission.

Random stuff

Picom (jonaburg fork) for composition, Nitrogen for wallpaper management, Redshift so I don't blast my eyes, Calibre for ebook formatting, Pidgin for XMPP chats, Tor (LOL you want a link to TOR, bro?) for anonymous browsing, Postman for CRUD application testing Edit: I use Emacs Rest client now, MongoDB Compass for Database visualization, and a couple other things, but this is pretty much the list of software I use on a daily basis.

4. Workflow

I believe in a pretty much fully keyboard driven workflow. Every single time my hand comes off the keyboard to the mouse, I am looking for a solution that I can make to not ever have to do that movement again. I am in a pretty decent spot where that is almost entirely possible.

By learning to use a workflow like this, you are far more productive, you can get far more done in a day, and you can create more, worry less, and effectively create at the speed of your input - Learn how to type faster.

This concludes my computer hardware and software setup for 2023.

I am no expert at anything, most of this is based on suggestion from others and building on what works for them, bringing it into my own workflow, and seeing what sticks. r/Unixporn is a great starting point for people to see what is possible with a Unix based operating system, and to see what a computer can truly become if you invest enough time and effort into it.

Inevitably, someone will say that "Josh how many hundreds of hours have you spent on this?" to which I think you have to look at the big picture: The fact that I have an operating system completely tailored to my every need, portable across any hardware in the world, and with the fact that what I use saves me on average a couple hours per day... I would argue the investment is worth it.

What programs do you use? Have you tried Linux in the last few years? Post your comments below, or email me at josh@joshblais.com with your suggestions.

Subscribe for updates direct to your inbox.