Blame
|
1 | # Zumi's Tool Recommendation List |
||||||
| 2 | ||||||||
| 3 | Random assortment of tools that Zumi uses and recommends trying out. |
|||||||
| 4 | ||||||||
| 5 | ## Command line stuff |
|||||||
| 6 | ||||||||
| 7 | ### Shells |
|||||||
| 8 | ||||||||
| 9 | - [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. |
|||||||
| 10 | Some fish plugins that I use: |
|||||||
| 11 | - [tide](https://github.com/IlanCosman/tide): beautiful status prompt (click to see) |
|||||||
| 12 | - [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...) |
|||||||
| 13 | - [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`. |
|||||||
| 14 | - [gum](https://github.com/charmbracelet/gum): simple CLI to create CLI scripts! Gives some simple way to create beautiful prompts, selects, table formatting... |
|||||||
| 15 | ||||||||
| 16 | ### Dev tools |
|||||||
| 17 | ||||||||
| 18 | - [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` |
|||||||
| 19 | - [gron](https://github.com/tomnomnom/gron): Turns JSON into a line-based syntax that you can `grep` (and turn back into JSON) |
|||||||
| 20 | - [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]`. |
|||||||
|
21 | - [Serie](https://github.com/lusingander/serie) is an interactive `git log --graph` viewer. |
||||||
|
22 | |||||||
| 23 | #### Special: useful `git` options |
|||||||
| 24 | ||||||||
| 25 | Put these in your `git config`. |
|||||||
| 26 | ||||||||
| 27 | - `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. |
|||||||
| 28 | - `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`) |
|||||||
| 29 | ``` |
|||||||
| 30 | >>>>> code at commit A |
|||||||
| 31 | .... |
|||||||
|
32 | ===== code before commit B |
||||||
|
33 | .... |
||||||
| 34 | ===== code at commit B |
|||||||
| 35 | .... |
|||||||
| 36 | <<<<< |
|||||||
| 37 | ``` |
|||||||
| 38 | You can see easily what changed in A (look middle -> top) and what changed in B (look middle -> bottom). |
|||||||
| 39 | ||||||||
| 40 | - Set up [delta](https://github.com/dandavison/delta), gives you `git diff` with syntax highlighting and line numbers etc. |
|||||||
| 41 | ||||||||
| 42 | ### Life in the terminal |
|||||||
| 43 | ||||||||
| 44 | - [glow](https://github.com/charmbracelet/glow): simple CLI markdown viewer. Supports a lot of extensions, comes with syntax highlighting etc. |
|||||||
| 45 | - [broot](https://github.com/Canop/broot): interactive version of `tree`. View the file list in a (collapsible) tree form, perform fuzzy search, etc. |
|||||||
| 46 | ||||||||
| 47 | #### Terminal Emulator |
|||||||
| 48 | ||||||||
| 49 | I use kitty and ghostty. |
|||||||
| 50 | ||||||||
| 51 | - [ghostty](https://ghostty.org/): yummy fast emulator. Quite simple configuration, it's also super fast. |
|||||||
| 52 | - [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. |
|||||||
| 53 | ||||||||
| 54 | #### Basic tool replacements |
|||||||
| 55 | ||||||||
| 56 | - [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`. |
|||||||
| 57 | Some useful flags to memorize: `-i` for case-insensitive, `-F` for "no-regex, match-string-literally mode" |
|||||||
| 58 | - [sd](https://github.com/chmln/sd): extremely simple replacement of `sed`. |
|||||||
| 59 | `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`. |
|||||||
| 60 | - [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. |
|||||||
| 61 | - [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`. |
|||||||
| 62 | ||||||||
| 63 | ## GUI Stuff |
|||||||
| 64 | ||||||||
| 65 | Mostly Linux stuff here. Windows shoo |
|||||||
| 66 | ||||||||
| 67 | ### Audio |
|||||||
| 68 | ||||||||
| 69 | - [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, ... |
|||||||
| 70 | ||||||||
| 71 | ### Internet |
|||||||
| 72 | ||||||||
| 73 | - [Zen Browser](https://zen-browser.app/): beautiful fork of Firefox with vertical tabs. |
|||||||
| 74 | - [deluge](https://deluge-torrent.org/): torrent client that can run as a system service with a web server that you can remote control. |
|||||||
