Commit 0368e4
2026-02-13 17:45:32 Zumi Zoom: mkpage| /dev/null .. tech/linux/zumi's tool recommendation list.md | |
| @@ 0,0 1,73 @@ | |
| + | # Zumi's Tool Recommendation List |
| + | |
| + | Random assortment of tools that Zumi uses and recommends trying out. |
| + | |
| + | ## Command line stuff |
| + | |
| + | ### Shells |
| + | |
| + | - [fish](https://fishshell.com/): this one is a no-brainer. Colorful prompt, history search built-in, very extensive auto-complete support for arguments and flags, legible shell scripting language. I use it on all my computers. Bash is so 70s, welcome to 2000s. |
| + | Some fish plugins that I use: |
| + | - [tide](https://github.com/IlanCosman/tide): beautiful status prompt (click to see) |
| + | - [fzf.fish](https://github.com/PatrickF1/fzf.fish): Fish has `fzf` integration built-in for paths, but this plugin extends it with various stuff (search by file content, search history, file previews...) |
| + | - [Nu](https://www.nushell.sh/): not as a daily use shell, but Nu is a very nice shell scripting language for data processing. Need to do some JSON processing? `file read a.json | filter (.name == "Lux") | to json`. |
| + | - [gum](https://github.com/charmbracelet/gum): simple CLI to create CLI scripts! Gives some simple way to create beautiful prompts, selects, table formatting... |
| + | |
| + | ### Dev tools |
| + | |
| + | - [fx](https://fx.wtf/): very cool interactive JSON viewer. Has tree folding, searching, copy subpart etc. You can just pipe any JSON output into it like `curl https://a.com/b.json | fx` |
| + | - [gron](https://github.com/tomnomnom/gron): Turns JSON into a line-based syntax that you can `grep` (and turn back into JSON) |
| + | - [Github CLI](https://cli.github.com/), [Gitlab CLI](https://docs.gitlab.com/cli/), [Gitea/Forgejo CLI](https://codeberg.org/forgejo-contrib/forgejo-cli): manage repos, issues, PRs from the command line. Most useful commands to me are `gh pr list` and `gh pr checkout [pr-id]`. |
| + | |
| + | #### Special: useful `git` options |
| + | |
| + | Put these in your `git config`. |
| + | |
| + | - `diff.verbose = true` : this makes `git commit` displays the diff of all things you staged below the commit message box. Very useful to have a final look before hitting that commit button. |
| + | - `merge.conflictstyle = "zdiff3"` : usually conflicts look stupid. This would make conflicts show up like this (when you try to merge commit `A` into commit `B`) |
| + | ``` |
| + | >>>>> code at commit A |
| + | .... |
| + | ===== code before commit A & B |
| + | .... |
| + | ===== code at commit B |
| + | .... |
| + | <<<<< |
| + | ``` |
| + | You can see easily what changed in A (look middle -> top) and what changed in B (look middle -> bottom). |
| + | |
| + | - Set up [delta](https://github.com/dandavison/delta), gives you `git diff` with syntax highlighting and line numbers etc. |
| + | |
| + | ### Life in the terminal |
| + | |
| + | - [glow](https://github.com/charmbracelet/glow): simple CLI markdown viewer. Supports a lot of extensions, comes with syntax highlighting etc. |
| + | - [broot](https://github.com/Canop/broot): interactive version of `tree`. View the file list in a (collapsible) tree form, perform fuzzy search, etc. |
| + | |
| + | #### Terminal Emulator |
| + | |
| + | I use kitty and ghostty. |
| + | |
| + | - [ghostty](https://ghostty.org/): yummy fast emulator. Quite simple configuration, it's also super fast. |
| + | - [kitty](https://sw.kovidgoyal.net/kitty/): super feature-rich emulator. Has lots of configuration. Not as fast as ghostty but still should beat all default ones. |
| + | |
| + | #### Basic tool replacements |
| + | |
| + | - [ripgrep / rg](https://github.com/BurntSushi/ripgrep): ultra-fast version of `grep` that also does "mostly the right thing" with no arguments. By default `rg [pattern]` would grep all lines matching the pattern from all files in the current directory -- excluding files ignored by `git`. |
| + | Some useful flags to memorize: `-i` for case-insensitive, `-F` for "no-regex, match-string-literally mode" |
| + | - [sd](https://github.com/chmln/sd): extremely simple replacement of `sed`. |
| + | `sd [pattern] [replacement] [files...]` will replace all instances of `pattern` with `replacement` in given files. Regex is supported of course (`-F` is a thing too). Also works as a pipe: `cat a.txt | sd x y`. No more fiddling with `sed`. |
| + | - [ouch](https://github.com/ouch-org/ouch): universal command-line tool for all archives. `ouch d [file]` will decompress a file, no matter whether it's `zip`, `rar`, `tar.gz` etc. |
| + | - [bat](https://github.com/sharkdp/bat): `cat` with syntax highlighting. Automatically disable all fancy stuff if you use it has a pipe, so usually I just alias `cat` to it: `alias cat=bat`. |
| + | |
| + | ## GUI Stuff |
| + | |
| + | Mostly Linux stuff here. Windows shoo |
| + | |
| + | ### Audio |
| + | |
| + | - [qpwgraph](https://github.com/rncbc/qpwgraph): GUI for the Pipewire system. Lets you mix and re-route audio from app to app, from app to specific speakers, from specific microphone to specific app, ... |
| + | |
| + | ### Internet |
| + | |
| + | - [Zen Browser](https://zen-browser.app/): beautiful fork of Firefox with vertical tabs. |
| + | - [deluge](https://deluge-torrent.org/): torrent client that can run as a system service with a web server that you can remote control. |
