-
9 votes
-
Writing the same CLI application twice using Go and Rust: a personal experience
7 votes -
What are your favorite CLI tools/applications?
While I've been teaching myself my first programming language (Python), I've been getting more into using the terminal as much as possible to build familiarity and get comfortable. This has opened...
While I've been teaching myself my first programming language (Python), I've been getting more into using the terminal as much as possible to build familiarity and get comfortable. This has opened my eyes to so many useful utilities and makes me curious as to what there is out there that I haven't heard of yet.
My favorites so far:
exa - A modern version of "ls"
youtube-dl - Download videos from youtube.com or other video platforms with various options
hledger - Plain text double-entry accounting software based on ledger written in Haskell
thefuck - App that corrects a spelling mistake in the previous command by typing "fuck"
spicetify-cli - Customizes the Spotify client with themes and extensions
spotifyd - Lightweight Spotify daemon
spotify-tui - Control Spotify in the terminal
neofetch - Launch tool that can display ASCII art or pictures and general system information
I'm on macOS but I'm almost certain all of these are cross-platform.
What are your favorite or "must-have" CLI packages?
40 votes -
The growth of command line options, 1979 - present
8 votes -
…and in the end there will be the command line.
18 votes -
Share your useful shell scripts!
Disclaimer: Don't run scripts offered to you by randos unless you trust them or review it yourself I use this constantly, it just plays music by file name, specifically matching *NAME* with...
Disclaimer: Don't run scripts offered to you by randos unless you trust them or review it yourself
I use this constantly, it just plays music by file name, specifically matching
*NAME*
with case-insensitivity. Requires bash 4.something.# play -ln SONGS ... # -l don't shuffle # -n dry run mpv_args="--no-audio-display --no-resume-playback \ --msg-level=all=status --term-osd-bar" shopt -s globstar nullglob nocaseglob shuffle=true dry=false while [[ "$1" == -* ]]; do if [[ "$1" == "-l" ]]; then shuffle=false elif [[ "$1" == "-n" ]]; then dry=true fi shift 1 done if [[ "$shuffle" == true ]]; then mpv_args="--shuffle $mpv_args" fi songs=() while [[ "$#" != 0 ]]; do songs+=( ~/music/**/**/*"$1"*.* ) # change this to match your music directory layout shift 1 # could probably use find instead done if [[ "$dry" == true ]]; then if [[ "$shuffle" == true ]]; then printf "Shuffle mode is on\n" fi for song in "${songs[@]}"; do printf "$song\n" done exit fi if [[ ${#songs[@]} != 0 ]]; then mpv $mpv_args "${songs[@]}" fi
I make no claims to the quality of this but it works!
36 votes -
News Desk Updated!
A few weeks ago I posted a project I was working on to read news from the command line. I incorporated the suggestions given in that thread (license, requirements.txt, etc), incorporated...
A few weeks ago I posted a project I was working on to read news from the command line. I incorporated the suggestions given in that thread (license, requirements.txt, etc), incorporated suggestions I've received elsewhere, and added a few features.
Here's the updated link: News Desk
Any feedback would be much appreciated!
Edit: And a specific point for feedback. I store the user's API key in
~/.nd_config/key
which I think is a step up from requiring the user to set their key as an environment variable (which is how I had it originally). Still though, is there some way I can not store the key in plaintext and still have it in a format that is readable by the computer and can be used to verify API access?7 votes