Useful applications and tools for GNU/Linux in a broad sense

9 min

language: ja bn en es hi pt ru zh-cn zh-tw

Hello, I'm Munou.

I've been using a GNU/Linux environment as my primary desktop for several years, so I'll compile a memo of things I find useful.
I generally prefer using default tools, so there might not be many. I don't like cluttering my system with too many installations.

Desktop Environment

It's a KDE environment.

spectacle

You can also process things like mosaics with this.
You can take a region-selected screenshot with Win + Shift + S. I use it often.
And, even from the CLI,

spectacle -E example.png

you can edit existing images.

$ spectacle -h
Usage: spectacle [options]
KDE Screenshot Utility

Options:
  -h, --help                              Displays help on commandline options.
  --help-all                              Displays help, including generic Qt
                                          options.
  -v, --version                           Displays version information.
  --author                                Displays author information.
  --license                               Displays license information.
  --desktopfile <filename>                   Base filename of this application's desktop entry.
  -f, --fullscreen                        Take a screenshot of the entire desktop (default)
  -m, --current                           Take a screenshot of the current monitor
  -a, --activewindow                      Take a screenshot of the active window
  -u, --windowundercursor                 Take a screenshot of the window currently under the cursor
                                          (including parent of popup menus)
  -t, --transientonly                     Take a screenshot of the window currently under the cursor
                                          (excluding parent of popup menus)
  -r, --region                            Take a screenshot of a rectangular region of the screen
  -R, --record <mode>                     Record the screen using the selected mode. Modes:
                                          -r, region
                                          -s, screen
                                          -w, window
  -l, --launchonly                        Launch Spectacle without taking a screenshot
  -g, --gui                               Start in GUI mode (default)
  -b, --background                        Take a new screenshot and exit without showing the GUI
  -s, --dbus                              Start in D-Bus activation mode
  -n, --nonotify                          In background mode, do not pop up a notification when a screenshot is taken
  -o, --output <fileName>                 In background mode, save the image to the specified file
  -d, --delay <delayMsec>                 In background mode, delay before taking the screenshot (in milliseconds)
  -c, --copy-image                        In background mode, copy the screenshot to the clipboard when option -o
                                          is not used
  -C, --copy-path                         In background mode, copy the screenshot path to the clipboard
  -w, --onclick                           Wait for a click before taking the screenshot. Delay is disabled
  -i, --new-instance                      Start a new Spectacle GUI instance without registering with D-Bus
                                          
  -p, --pointer                           In background mode, include the pointer in the screenshot
  -e, --no-decoration                     In background mode, do not include window decorations in the screenshot
  -S, --no-shadow                         In background mode, do not include window shadows in the screenshot
  -E, --edit-existing <existingFileName>  Open and edit an existing screenshot file

K Runner

It's a launcher.
You can launch it with Alt + Space. Of course, you can also open existing windows.
It becomes even more convenient if you enable history completion in the settings.

$ cat ~/.config/krunnerrc 
[General]
historyBehavior=ImmediateCompletion

dolphin

It's the default file manager, and it's convenient for opening directories from the terminal.

dolphin .
# or
dolphin dirname

I guess that's about it, as I mostly just switch between the terminal and the browser. By the way, the virtual terminal is the default konsole. At this point, I can't tell the difference between any of them.

CLI

ncdu

It's a TUI-based du.
Highly recommended because it's very easy to read.

For some reason, it's also quite useful for investigating when disk space is tight.

GitHub - rofl0r/ncdu: inofficial fork of "NCurses Disk Usage" · GitHub

bash-completion

This package adds various completions for bash.
It also includes things like git-completion, so git subcommands are easily completed with tab. It's also available via brew, so it's highly recommended.

GitHub - scop/bash-completion: Programmable completion functions for bash · GitHub

tokei

It's a Rust-based tool that can count lines of source code.

$ tokei . --exclude node_modules
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 Language              Files        Lines         Code     Comments       Blanks
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 CSS                      13         3963         3345           41          577
 Dockerfile                1           18           17            0            1
 Go                       34         8123         7393            2          728
 HTML                      1           12           12            0            0
 JSON                      9         6906         6906            0            0
 SVG                       2           50           50            0            0
 TSX                      19         3987         3865            1          121
 TypeScript               13         1129         1033            1           95
 YAML                      1           57           54            0            3
─────────────────────────────────────────────────────────────────────────────────
 Markdown                  3          459            0          370           89
 |- BASH                   1            3            3            0            0
 (Total)                              462            3          370           89
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 Total                    96        24707        22678          415         1614
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

It's displayed like this.

GitHub - XAMPPRocky/tokei: Count your code, quickly. · GitHub

chafa

You can display images directly in the terminal.

chafa example.png

You can display it with this. It's recommended because you can easily view images on an SSH server when you think, "Oh, I want to see an image..."

GitHub - hpjansson/chafa: 📺🗿 Terminal graphics for the 21st century. · GitHub

html2text

It's a command originally created by the late Aaron Swartz to convert html to markdown.
Is it probably maintained by someone else now?

curl https://soulminingrig.com/ | html2text

GitHub - Alir3z4/html2text: Convert HTML to Markdown-formatted text. · GitHub

fail2ban

I hesitated whether to include this, but it can read from log files and block targets at Layer 3. It's quite flexible in its configuration.

GitHub - fail2ban/fail2ban: Daemon to ban hosts that cause multiple authentication errors · GitHub

I also thought about including iperf3, but it's not something I use regularly, only when I'm curious, so I guess this is enough...
This is what came to mind and what I gathered from a quick look at my history, but I'm sure there are many more things I use daily that I couldn't recall, so please bear with me. That's all for now.

Related Posts