Add your own title and intro here (Change this under Settings -> General -> Tagline)

Category: Inquiry

This is the category to apply to your Inquiry posts.

CLI Tools: TMUX – Terminal Multiplexer

As a programmer, it is expected to spend a significant time using UNIX shells. However out of the box the vanilla UNIX experience can be clunky and inefficient. There are many terminal based tools (CLI tools) that address this issue, one being Tmux. I have been using Tmux for only a few weeks, but its been so useful that I have already integrated it into my workflow. In this post I will go over what I personally have found useful about Tmux, and why its worth considering if you use the terminal frequently.

“(tmux — terminal multiplexer) tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached”. – TMUX man(1) page

The main benefit of Tmux is that it minimizes cognitive overhead by containerizing terminal sessions, to illustrate this, consider an example: You’re working on 3 programming projects and for each of those projects you’re actively working on 3 files, plus a shell for testing/running code. That’s already potentially 12 windows that you would have to manage on a daily basis if you were not using Tmux. Not only would you have to manage these windows on the screen but you would also have to navigate to that location everyday, this would be tedious and a waste of time.

Here is the Tmux indicator, showing that I am connected to the session “mysession” and there are three windows numbered 1,2,3. 1:nvim is indicating that window 1 has nvim open.

Now, consider the same example but with using Tmux. You can create a Tmux session for each of the projects you’re working on. After creating a session for each project, the current state of each session is saved, even after reboot. This saves time and frustration by: not having to think about what you were working on over a long period of time (potentially months working on a software project), not having to repetitively navigate to what you were working on, and acts as a safe guard against unexpected reboots like a power outage.

Consider the following two videos. The first is a workflow without using Tmux, the second is one using Tmux.

This is the manual way of “cd’ing” into a directory, without Tmux. Very repetitive and wastes time.
Using Tmux simple as running tmux attach -> C-a + o -> select session -> returns to what I was working on.

The way that I have been using Tmux, is to have a session for each of my classes. This allows me to work on muliple written assignments at once without having to remember exactly what I was working on, I can just attach to the session and continue working. This will be a game changer for me, because I was wasting a lot of time before just using cd and lf to navigate files.

The following posts will explore more CLI tools, and a deep dive into NeoVim. Thanks for stopping by!

Resources:

https://github.com/omerxx/dotfiles/tree/master/tmux

https://upload.wikimedia.org/wikipedia/commons/e/e4/Tmux_logo.svg

Digital Literacy Inquiry

Assignment 1: Deeper Dive Inquiry process posts and summary posts will be shared using the category “Inquiry,” as this post does. As you can see, it is set up to pull these posts into the Inquiry menu on your blog.

© 2025 PM Blog

Theme by Anders NorenUp ↑