my avatartmpod

How I use my computer

A look into my digital workspace

February 28, 2025


Hello hello again!

After reading the (somewhat) recent post1 by my fellow blogger, Daniel, I felt like writing a bit about my general workflow on the computer. You can already check out what hardware and software I use in the “What I Use” page, but in this post I’ll go over in more detail how I use said “wares”.

# Keyboard, mouse and monitors

Let’s start with the basics: how I physically interact with the computer.

I own an XMG Fusion 15 L19 (i.e. late 2019 edition) which I ordered with the UK layout. Despite being Portuguese, I’ve been using the UK layout since I inherited my brother’s old gaming PC several moons ago (was a chunky Clevo from 2012 or so), which happened not long after I rekindled my passion for programming. Like many things in life, programming is best enjoyed when you use good tools, and a US or UK layout is one indispensable “tool” for me. Won’t go deep into it, but the gist is that everything you need for your typical programming language and shell is much better placed in these two layouts than anything else I’ve seen.2 This makes sense, seeing as nearly all early programming languages (which then shaped the landscape for the future) were made with English layouts in mind, some in a time when there weren’t really many other non ASCII layouts. I can still perfectly type Portuguese diacritics (áàãéêíóôõúç) by combining AltGr, Shift and dead-key insertions, so I don’t lose anything.

As for the mouse, I have a simple Logitech G305. It’s wireless, not very large, uses a single AA battery, and has two side buttons, with the most relevant features being the first and last. Being wireless is so much better in virtually every case (it’s even good for gaming), and the side buttons are absolutely crucial for efficient navigation.
I should also mention the nice, albeit a bit small, trackpad, which has grown on me quite a lot in recent times, as it can be a very useful gesture input, and also as a way to quickly move the cursor without having to reach for the mouse. When I’m not in code-crunching mode, the trackpad offers a comfortable way to navigate anything, from web pages to code files.

Finally, I work with either one or two monitors, depending if I’m at my work desk or on the go (which includes somewhere else on the house :P). The laptop comes with a 15″ 144Hz IPS display, which of course is never going away. The external monitor (XP X24ih) has a similar panel, but in 24″ instead. I place the latter behind the laptop and high enough that it is at a comfortable angle when I’m sitting with proper posture,3 while the laptop screen is opened so it doesn’t cover the big monitor. It’s quite nice.

Here’s how it looks:

my laptop+monitor layout

# OS, terminal, web browser and other utilities

Linux4 with KDE is my OS. I refuse to use a closed operating system, one I cannot tinker with, one I cannot understand. I like it.

I will eventually write more about this, but my current terminal emulator of choice is foot, since it’s really lightweight, fast and has all the core features I want. It doesn’t have tabs, but I’ll go over why that isn’t a problem in the next section.

For the web browser, I use Firefox, as I have for over 10 years. I can also expand on this on a later post but, long story short, I don’t want to use any Chromium/Blink-powered browser out of principle, and Firefox has by far the best extensions for my use cases.

I then use a multitude of (mostly KDE) apps to do other common stuff — Dolphin (file browser), GIMP (image editor), Kdenlive (video editor), Gwenview/imv (image viewer), Okular/zathura (PDF viewer), mpv (video player), Kasts (podcast player), Neovim/Kate (text editor),5 etc.

# Workspaces? Windows? Tabs?

My window manager is KWin, KDE Plasma’s very solid X11 window manager and Wayland compositor. I don’t use a tiling WM like Sway because I find them clunky, incomplete and require a lot of effort to get working right. KDE’s experience is, in my opinion, very good for me, offering a nice balance between nice out-of-the-box behaviour and powerful configurability. You can even use scripts to turn KWin into a tiling WM!

While I’m not rocking a pure tiling setup, I do sometimes tile windows and use workspaces. In fact, I organize my windows into 6 different workspaces, organized in a vertical 3×2 grid.

my workspace layout

Here’s a breakdown of what goes where:

Since KWin has workspace wrap-around, navigating these is very easy, be it with Ctrl+Super+[arrow] or with three-finger wipes on the trackpad; every workspace is at most two clicks/swipes away. I never use the direct jump hotkeys (Ctrl+F[n] by default, I believe).

# Now, how do I organize windows in each of those workspaces?

The main windows are always the terminal and Firefox. I usually have one to three permanent foot window opened, since it doesn’t implement tabs, but I also spawn very ephemeral terminals (Super+T or Ctrl+Shift+N) to run quick commands, check the system monitor (Ctrl+B is bound to btop in fish), opening a Python REPL, etc. Quick searches are done in temporary, incognito Firefox windows, spawned with Shift+Super+F. If less strict ad-blocking, canvas, DRM or any other feature I have very limited on my main profile, I open a “Firefox Focus”7 window with Ctrl+Super+F.

Inside Firefox, I make a rather liberal use of tabs. I have the habit of doing deep dives into interesting topics, code source, and whatnot, easily reaching the hundreds of tabs. I have big clusters of related tabs when exploring, but I also have plenty of semi-permanent tabs or tabs for things that I want to get to later on, like articles, cool tools I found. You could argue that I should just be more mindful of what I really need and prune a lot of things, and your point could hold some truth, yet, after experimenting with alternatives, I keep coming back to this. For me, it’s really powerful to be able to visualize and quickly reach the entire context of whatever task I have at hand.

This means, as you may have guessed, that the default tab bar gets really limiting really fast. Fortunately, though, there are excellent extensions for tree-style tabs, and I can confidently say Sidebery is the best one I’ve seen and used. It’s well polished, has a plethora of useful features and just works. It comes with tab unloading, panels, groups, container integration, session management and more; a complete and truly essential package for me.

Here’s how it looks:

a snapshot of my current tree-style tabs in Firefox

In other software, such as Dolphin and code editors, I, too, rely on tabs for organizing my work, though to a less crazy extent. Particularly in editors, I end up more often using fuzzy file/content matching more often to jump to the files I want, instead of switching through tabs.

Perhaps curiously, a place from which I’ve recently ditched tabs is the terminal. I used Konsole and Kitty for many, many years, always enjoying the availability of tabs. However, a frustration slowly started brewing, until one day it made me look for alternatives — in short, performance. As I mentioned before, I now spawn lots of “ephemeral terminals” every day; they are quite useful when you’re working on some program other than the terminal itself. I can just hit a couple of keys and instantly have a fresh terminal window, regardless of where I was before. You just can’t do that with the other terminal emulators, but you can with foot. Sure, there are server-client modes for those slow emulators, in fact even foot has it, yet I don’t use it. Because of how those modes are implemented, if the server process crashes or stops for whatever reason, all your terminals die. This can be highly disruptive, so I prefer to pay a few more megabytes in RAM and a couple of milliseconds in startup time. Additionally, foot has a much faster VT parser than popular alternatives, meaning it can handle larger outputs without breaking a sweat and wasting less energy, which is also important for when I’m working on the go, living off the battery.8
This is why I switched emulators and likely won’t do it again for a very long time.9

# Other useful bits and bobs

# Keyboard shortcuts

I then have a bunch of random Super-based shortcuts for various idiotic short video clips, but we don’t talk about those.

# Closing remarks

Thus concludes the overview of how I use my computer, the primary tool for my education and work. I take great care with it, having dedicated a considerable amount of time into learning the ins and outs and shaping it to my needs and preferences. Much like a craftsman would do with their tools, in fact.

I will be updating this page every now and again, if I make relevant changes to my workflow, or if I remember something I should have mentioned. More significant changes may be branched out into their own posts, who knows.
I will also make a post about (neo)vim.
One day.

Keep an eye on the “Updated on” notice at the top ;)

Cheers!


PS: I may have overdone the footnotes on this one hehe