Useful applications and tools for GNU/Linux in a broad sense
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.pngyou 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 fileK 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=ImmediateCompletiondolphin
It's the default file manager, and it's convenient for opening directories from the terminal.
dolphin .
# or
dolphin dirnameI 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.pngYou 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/ | html2textGitHub - 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.