duckland.org

TUI Challenge: Day 7

Day 7: System Monitoring

Today’s task was around system monitoring which is something I have used before as I do not have any GUI system monitoring apps installed.

clockwise, top left: glances, trippy, btm, btop clockwise, top left: glances, trippy, bottom, btop

Most of the time, when you laptop/server is running great, you do not worry about what is running or how much CPU/RAM is being consumed. But, then you notice that program start-up seemed awfully slow or that remote site was a bit slow or did not respond at all. What now? Monitoring tools to the rescue!

glances

I just found this tool recently. It gives a great overview of not just what process are running, but how your network interfaces are doing, disk i/o as well as filesystem usage, and an overview of the IRQ in use. Truly, your system at a glance. The only metric it is missing for me is temperature of the CPU and drives.

trippy

Trippy is another new find for me. It is traceroute, but all TUI up. It is easy to read, has a stop-light icon on the far right to let you know the status of each hop. Nice.

bottom

Bottom is another system resource monitor, but instead of just columns of numbers, you get a real-time chart of CPU, RAM, and network usage, along with an overview of system tempatures, disk usage (but not disk I/O), and a process overview. This is a great tool to leave up running while you are trying to track down some issue as you can see the historical trends.

btop

btop is my go-to top replacement. I even have a bash alias for top calling btop: alias top=btop and a key sequence for my tmux config to call it up: bind '~' split-window "exec btop". btop shows the same types of information as bottom, but goes into more details. Disk display, for example, has not just space used but disk I/O as well. It offers a lot of configuration options. For example, in the above picture, it is using the catppuccin_mocha theme to match the rest of my desktop, both GUI and TUI apps. Nice.

Challenge

The challenge today was to use the tools at least twice and note an observation. In the above picture, I was just starting a NixOS update and rebuild, so you can see the CPU, RAM, and network starting to get used more.

Daily totals

Yesterday left me with 155 points. Today’s basic challenge was worth 10 points, with a bonus of 5 points for customizing the display of the tool (btop’s theme). I did not do the other bonus of scripting alerts as I already have another system for that. So, 15 points today, brings the total to 170.

Challenge Bonus points

There is a bonus 30 points up for grabs if I use a terminal multiplexer. As seen in the picture above, that is tmux with the first pane split into four to show the tools off, but I also have panes for my email, RSS reader, mastodon client, and ssh shells on a couple other machines.

And for added geek points:

[don@loki:~] $ tmux list-sessions
chat: 2 windows (created Sat Jun 14 22:34:14 2025)
duckland: 3 windows (created Sat Jun 14 22:44:28 2025) (attached)
loki: 5 windows (created Sat Jun 14 22:29:16 2025)
nixos: 2 windows (created Sat Jun 14 22:29:49 2025)

Which brings my grand total to 200!

TUI Challenge: Day 6

Day 6: Task Management

Another fairly easy day for me as I already mainly use TUI and CLI for task and calendar management.

Task management

                                Monthly Burndown
250 |
    |
    |           .
    |  .        .
    |  .  .  .  .           .  .
    |  .  .  .  .  .  .  .  .  .  .  .  .                              . Done
    |  .  .  .  .  .  .  .  .  .  .  .  .                              + Started
125 |  .  .  .  .  .  .  .  .  .  .  .  .                              X Pending
    |  .  .  .  .  .  .  .  .  .  .  X  .        .  .  .
    |  .  .  .  .  .  X  X  X  .  .  X  .  .  .  .  .  .  .  .
    |  X  X  X  X  X  X  X  X  X  X  X  .  X  X  X  X  X  .  .  .  .
    |  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  .  X  X  X
    |  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X
    |  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X
    |  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X  X
  0 +---------------------------------------------------------------
      10 11 12 01 02 03 04 05 06 07 08 09 10 11 12 01 02 03 04 05 06
      2023     2024                                2025

   Net Fix Rate:         1.8/d
   Estimated completion: 2025-08-03 (7w)

I have been using taskwarrior for years now. It is a simple command line tool for maintaining your task list. It stores its data in simple text files so backing it up is easy. I use a simple TUI called vit for viewing and interacting with my tasks.

I use taskwarrior for a mix of things I have to do for the family and work, and as a reminder system for websites, projects, and/or media I want to visit but I do not have time for. I even wrote a script to convert emails from neomutt or news articles from newsboat, a TUI RSS reader, to tasks:

#!/usr/bin/env bash
set -o nounset                              # Treat unset variables as an error

tmpfile=$(mktemp)
cat /dev/stdin > "${tmpfile}"

subj=$(grep -E ^'(Subject|Title)': "${tmpfile}" | sed  -e 's/^Subject: //' -e 's/^Title: //')

id=$(task add pri:H due:2d +email "${subj}" | grep ^Created | sed 's/^Created task \(.*\)./\1/')
cat "${tmpfile}" | onenote "${id}" -
echo "${id}"
rm -f "${tmpfile}"

I also have a daily report sent to me in email with my current top tasks, any due today or overdue, as well as my schedule over the next three days.

To keep all my tasks together, I use taskd which I run in a container..

Calendar

For managing my calendar, I use khal for my text based calendar. For the above mentioned reporting, I use khal to list my events. When I need a TUI, I use ikhal which is part of the khal package. This is a nice TUI with vim keys for navigation and gives me a great overview of my events.

I sync this using vdirsyncer to sync my calendars (and address book) with my NextCloud server. I use a custom vdirsyncer profile to sync NextCloud with Google for the shared family calendars.

Daily totals

After yesterday I have accrued 120 points. How does today help that score? Well, completion of task management and calendars nets 20 points, with 5 bonus points for syncing and 10 bonus points for scripting reports using these tools, for a total of 35 points today, and a running total of 155 points.

TUI Challenge: Day 5

Day 5: File management.

‘Wait!’ you say ‘You live at the terminal, what is wrong with ls, cp, or mv?’ Well, most of the time, that is fine, but there are times when I need to rename a bunch of files (cleaning up my MP3 collection) or quickly review some source files. In those cases, what do I use?

vifm

vifm is a ‘file manager with curses interface, which provides Vim-like environment for managing objects within file systems, extended with some useful ideas from mutt.’ When you start it up, you are great with a split window with directory listing on both side. Using the normal vi keys moving around. You can select multiple files, and then do things like mass rename or move the file to the other pane. Very quick and easy. I have used this to bulk rename mp3s in a directory to my new naming standard. I could write a script, but I have messed that up in the past, and part of why I need this type of tool to clean up.

ranger

ranger is a ‘VIM-inspired filemanager for the console’. This is a tri-pane arrangement Contents of the parent directory, current directory, details of what you are looking at. This last part is the useful part. If you have selected a directory, it will show the contents of the directory. If you are looking at a text file, it will show the contents of the file. The lets you review many files without using a pager or an editor to review the contents.

Daily totals

Score time! Yesterday left us with 105 points. On the score. Using a tui filemanager, 10 points. 5 points for the bulk renaming. I have done any scripting with these type of tools, so no more points there. Total today, 15 points, and a grand running total is now 120.