commandline

github.com

Also available [here](https://hub.docker.com/r/defnotgustavom/lowfi). (Docker image)

17
0

[stmps](https://github.com/spezifisch/stmps) is a fork of stmp, under active development and with several additional features. (*) items are PRs which also been accepted by the stmp project. - mpris support (*) - improved help text - improved playlist handling, including concurrent loading in the background - improved browser behavior, e.g. add all songs by an artist - global, server-side search - artist search in the browser (*) - TUI-less server information query - queue reordering - queue shuffling - randomly add songs to the queue - randomly add *similar* songs to the queue, using the Subsonic "get similar songs" feature It's fast, keyboard driven, and a single executable; it is regularly tested against Navidrome and Gonic. [stmps](https://github.com/spezifisch/stmps) can be installed by a simple `go install` command, and it's also in AUR as `stmps`. I'm not the author, but am one of the active contributors.

9
0
https://sr.ht/~ser/rook/

Rook provides a secret service a-la secret-tool, keyring, or pass/gopass, except backed by a Keepass v2 kdbx file. The problem Rook solves is mainly in script automation, where you have aerc, offlineimap, isync, vdirsyncer, msmtp, restic, or any other cron jobs that need passwords and which are often configured to fetch these passwords from a secret service with a CLI tool. Unlike existing solutions, Rook is headless, and does not have a bespoke secrets database full of passwords that must be manually synchronized with Keepass; instead, it uses a Keepass db directly. Rook is in the AUR; binaries are available from the project page. From the changelog, since the last Lemmy release announcement (v0.0.9): ## [v0.1.3] Mon May 20 17:12:25 2024 -0500 ### Added - status command, a more lightweight way of testing if a DB is open. Using this instead of `info` in e.g. statusbar scripts greatly reduces CPU load. - case-insensitive search. ### Changed - removing some nil panics that could occur when DB is closed while a client call is being processed. ### Fixed - a hidden bug in the OTP pin code. - some errors being ignored (and therefore not logged) - TOTP attributes getting missed by otp generator check ### [v0.1.2] Fri Apr 26 15:13:55 2024 -0500 #### Added - one-time pin soft locking - installation instructions for distributions that have rook in a repository - more of the special autotype {} commands are supported (backspace, space, esc) #### Changed - getAttr adds a little delay before typing, allowing initiator tools (like rofi) to close windows before text is output - cleans up code per golint/gochk #### Fixed - an autotype bug in outputting literals ## [v0.1.1] Sun Mar 17 13:44:54 2024 -0500 ### Added - the original source rook.svg - ability to start the rook server passing in the password via stdin pipe. ### Changed - assets moved to directory - documentation referenced Keepass v4; there's no such thing, it's v2. - license, was missing (c) from original - stop trying to remove the version number from build assets - documentation to clarify when the master password exists as plain text, in response to questions from @d3Xt3r@lemmy.nz ## [v0.1.0] Fri Mar 15 14:03:25 2024 -0500 ### Added - nfpm file - logo ### Changed - clears out the password so it's not being held in plain text by the flags library. - some of the documentation, and fixes the duplicated v0.0.9 entry in the changelog. - CI build targets are more limited, but also include some distro packages - better README documentation ### Removed - the monitor attribute was taken out, as rook no longer busy-polls the DB

8
0

cross-posted from: https://programming.dev/post/15162087 > so, about a month ago i stumbled upon the duckduckgo ai chat feature and wrote [an article](https://blek.codes/blog/duckduckgo-ai-chat) about how private their APIs are, and a few weeks after, [a CLI client](https://git.blek.codes/blek/hey). > > the thing is in a pretty mature stage now (its not like there is a lot of work to be done there tbh) > > its not super private, but it is "private enough". the only thing duckduckgo has is your IP, which is usually not much unless you are on a residential connection with a dedicated IP

6
0
github.com

I use this tool instead of `dig` and `kdig`.

25
1
dev.to

A blog post shows an example usage of hyperfine CLI tool to measure and plot time of startup and shutdown of several code interpreters.

10
2

[https://gitlab.com/christosangel/tui-battleship](https://gitlab.com/christosangel/tui-battleship) This is a tui implementation of the popular **classic naval battle game**, written in Bash. The objective of the game is to **destroy the computer's fleet**, before the computer achieves the same against you. You take turns with the computer, hitting squares in each other's grids. You have to guess the position of the enemy ships on the computer's 10x10 grid, in order to win. ![win](https://gitlab.com/christosangel/tui-battleship/-/raw/main/screenshots/win.png) You lose if the computer achieves sinking your ships first. ![lose](https://gitlab.com/christosangel/tui-battleship/-/raw/main/screenshots/lose.png)

30
0

I just noticed that [`eza`](https://github.com/eza-community/eza) can now display total disk space used by directories! I think this is pretty cool. I wanted it for a long time. There are other ways to get the information of course. But having it integrated with all the other options for listing directories is fab. `eza` has features like `--git`-awareness, `--tree` display, clickable `--hyperlink`, filetype `--icons` and other display, permissions, dates, ownerships, and other stuff. being able to mash everything together in any arbitrary way which is useful is handy. And of course you can `--sort=size` [docs](https://github.com/eza-community/eza/blob/main/man/eza.1.md): ``` --total-size show the size of a directory as the size of all files and directories inside (unix only) ``` It also (optionally) color codes the information. Values measures in kb, mb, and gb are clear. Here is a screenshot to show that: ```sh eza --long -h --total-size --sort=oldest --no-permissions --no-user ``` ![](https://discuss.tchncs.de/pictrs/image/127ed8de-0b18-47ea-a5f7-386324c8d11f.png) Of course it take a little while to load large directories so you will not want to use by default. Looks like it was first implemented Oct 2023 with some fixes since then. ([Changelog](https://github.com/eza-community/eza/blob/main/CHANGELOG.md)). [PR #533 - feat: added recursive directory parser with \`--total-size\` flag by Xemptuous](https://github.com/eza-community/eza/pull/533)

34
7

[https://gitlab.com/christosangel/tui-mines](https://gitlab.com/christosangel/tui-mines) **tui mines** is evidently a text-based user interface implimentation of the classic mine sweeping puzzle game. The user has to clear a board, square by square, flagging the squares suspected to hide mines on the way. If the user opens a mine square, things go **KABOOM!** and the game is lost. ![kaboom!](https://gitlab.com/christosangel/tui-mines/-/raw/main/screenshots/kaboom.png) The user uses hints from the numbered squares. This numbers how many bombs are touching that square in every direction ( 8 in total). Through **logic**, and a bit of **luck**, the player ends up clearing all the squares, while flagging all the mines.

32
2
https://youtu.be/bOE8tFm7gP0

https://github.com/dislux-hapfyl/pynksh Writing functional shell snake code to improve my sanity.

10
3
https://sr.ht/~ser/rook

Howdy Lemmy, I'm announcing Rook v0.0.9, software that provides a secret service a-la secret-tool, keyring, or pass/gopass, except backed by a Keepass 4.x kdbx file. The problem Rook solves is mainly in script automation, where you have aerc, offlineimap, isync, vdirsyncer, msmtp, restic, or any other cron jobs that need passwords and which are often configured to fetch these passwords from a secret service with a CLI tool. Unlike existing solutions, Rook is headless and does not have a bespoke secrets database, full of passwords that must be manually synchronized with Keepass; instead, it uses a Keepass db directly. While the readme goes into more detail, I will say the motivation for Rook evolved from a desire to use a Keepass db in a GUI-less environment and finding no existing solutions. KeepassXC provides a secret service, but is not headless; it also provides a CLI tool, but this requires the db credentials on every call. kpmenu exists, but is designed specifically to require human interaction and is unsuitable for cron environment scripting. Every other solution maintains its own DB back end, incompatible with Keepass. Rook also benefits from minimal external dependencies, and at 1kloc is auditable by developers - I believe even by ones who do not know Go (the language of implementation). Being able to verify for yourself that there's no malicious code is a critical trait for a tool with which you're trusting secrets. Rook is fit for purpose, and signed binaries are provided as well as build-from-source instructions (for auditors). The project contains work in progress: credentials are limited to simple password-locked kdbx, and so doesn't yet support key files. Bash scripts that provide autotyping and attribute/secret selection via rofi, fzf, and xdotool are provided, for GUI environments; these have known bugs. Rook has not been tested on BSD, Darwin, or any other system than Linux, but may well work; the main sticking point is the use of a local file socket for client/server communication, so POSIX systems should be fine, but still, YMMV. As a final caveat: up until v0.0.9 I've been compressing with brotli, which is very nice yet somewhat obscure. With the next release, everything will be gzipped. Also included in the next release will be packages for various distributions.

13
6
https://darkhz.github.io/invidtui/

Hello Lemmy, invidtui is a TUI-based Invidious client, which can: - Search for and browse videos, playlists and channels - Play audio or video from any instance - View, open, edit and save m3u8 playlists - Download video/audio in any format - Authenticate with the preferred instance, and show user feed, playlists and subscriptions This release contains the following new features/fixes: *** **Embedded Recommendations tab** Recommendations for the video that is currently being played is now shown in a separate tab within the queue. A demo and instructions are posted [here](https://github.com/darkhz/invidtui/issues/38) *** **YouTube timestamps** Timestamps found within Youtube URIs are now seeked to on playback. A demo and instructions are posted [here](https://github.com/darkhz/invidtui/issues/39) *** **Custom seeking** A separate modal is shown to modify the playback position. Positions can be seeked to relatively/absolutely. A demo and instructions are posted [here](https://github.com/darkhz/invidtui/issues/36) *** I hope you enjoy this release, and any feedback is appreciated.

22
0
github.com

After an unexpected need to reset my work machine 😓, and needing to set up my development environment again by hand 🛠️, I decided to create a solution to quickly restore my local git repositories (and associated folder structure) 🔄. I took this opportunity to write two bash scripts that **clone and update all repositories on GitHub belonging to either a user or an organization** 📦. This means that, for example, **with a single command** ⌨️, you can clone **hundreds or thousands of repositories**, with high levels of concurrency (_50 clones in parallel is doable_ 💨). The scripts allow for a configurable clone depth, a limit for the number of repositories cloned, and a level of concurrency that decides how many clones are run in parallel 📈. By running the following command: ``` git-clone-all --owner f3rno64 --limit 200 --jobs 40 --dir ./f3rno64 ``` I was able to clone all **174** personal repositories 📚, with full commit histories and all tags & branches, in **58** seconds ⏱️. I wrote a blog post describing this in more detail [here](https://f3rno64.io/how-i-streamlined-my-github-backup-process) 📝, check it out for a breakdown of the arguments and examples of usage. The GitHub repository is [f3rno64/mass-git-scripts](https://github.com/f3rno64/mass-git-scripts) and the **README** also includes examples and general usage instructions 🗂️. Please check it out and let me know what you think! 💬 I hope you find it useful, and any feedback or suggestions for improvement would be greatly appreciated! 🙏

13
5
github.com

Hello! This is not my project, I just found it today. Making verbose things more concise and readable makes a big difference to me, and this could be *excellent* for me when dealing with HTML/XML. Just piping those formats through `xmq` yields a beautiful and clear rendering of the data. And as a NestedText enthusiast, I can now (using additional existing tooling): - transform HTML -> JSON -> NestedText - edit NestedText - transform NestedText -> JSON -> HTML

6
0

I have a list containing a set of tags, and would like to exclude one tag, unless another tag exists in the line. Say I have the following list, and want to exclude `B`, unless `A` is present. ``` [A,B] [A,C] [B,C] [A] [B] ``` I can reverse grep for `B`: ``` > grep --invert-match "B" [A,C] [A] ``` How can I find the previous list, but also the item containing `[A,B]`?

16
4

Smassh is a TUI based typing test application inspired by MonkeyType -- A very popular online web-based typing application Smassh tries to be a full fledged typing test experience but not missing out on looks and feel! There is a lot of room for improvements/additions and I am open to contributions and suggestions! Github: https://github.com/kraanzu/smassh Thank you! <3

14
0
https://crates.io/crates/kdotool

kdotool uses KWin's scripting API to control windows. In each invocation, it generates a KWin script on-the-fly, loads it into KWin, runs it, and then deletes it, using KWin's DBus interface. This program should work with both KDE 5 and the upcoming KDE 6.

9
0
https://darkhz.github.io/invidtui/

Hello Lemmy, invidtui is a TUI-based Invidious client, which can: - Search for and browse videos, playlists and channels - Play audio or video from any instance - View, open, edit and save m3u8 playlists - Download video/audio in any format - Authenticate with the preferred instance, and show user feed, playlists and subscriptions This release contains the following new features/fixes: *** **Dynamic theming** Themes can now be applied from theme files dynamically within the application as well as from command-line and configuration options. A demo and instructions are posted [here](https://github.com/darkhz/invidtui/tree/theme) *** **Channel 'Releases' tab** A new 'releases' tab is added to the channel page, to show new content from channel authors. *** **Enhanced configuration handling** Configuration handling is now done in the most cross-platform way as possible. *** I hope you enjoy this release, and any feedback is appreciated.

8
0
github.com

I created a very simple script that shows the history usage of your shell. Should work with bash and fish shells. This basically goes through the history and counts the command names. So all of `git push`, `git pull`, etc will count as just `git`. Example output: ``` 847 pacman 296 cd 206 git 203 time 180 vim 172 awk 166 aur 142 strace 141 cat 125 ls Total commands: 7008 Unique commands: 753 ```

5
0
terminaltrove.com

Terminal Trove showcases the best of the terminal, Discover a collection of CLI, TUI, and more developer tools at Terminal Trove.

49
1
https://darkhz.github.io/invidtui/

Hello Lemmy, invidtui is a TUI-based Invidious client, which can: - Search for and browse videos, playlists and channels - Play audio or video from any instance - View, open, edit and save m3u8 playlists - Download video/audio in any format - Authenticate with the preferred instance, and show user feed, playlists and subscriptions This release contains the following new features/fixes: *** - Playlists are downloadable as well, with progress display in the "Downloads" page. Deleted/private videos are stored separately from the public ones. To use this feature: - Select a playlist with the `i` key, wait for the playlist to load - Press `Ctrl+S` to initialize the download - To view the progress of the download, press `Y` *** - Optimizations to the playlist file loading and queue rendering (reduced CPU usage) - Updating the queue only for new/updated items - Rate limiting the calls to MPV - Cancellable loading of playlist entries - Open the queue and press `x` to cancel loading the playlist entries. *** - An "Initializing" indicator is shown when the player is hidden and about to start playing a file *** I hope you enjoy this release, and any feedback is appreciated.

13
1

[https://gitlab.com/christosangel/turnip-tv](https://gitlab.com/christosangel/turnip-tv) **turnip-tv** is a customizable tui _iptv_ client, written in Bash. The user can (among other customizations) choose input program between - read ![1read.png](https://gitlab.com/christosangel/turnip-tv/-/raw/main/screenshots/1read.png) - fzf ![1fzf.png](https://gitlab.com/christosangel/turnip-tv/-/raw/main/screenshots/1fzf.png) - rofi ![1rofi.png](https://gitlab.com/christosangel/turnip-tv/-/raw/main/screenshots/1rofi.png) - dmenu ![1dmenu.png](https://gitlab.com/christosangel/turnip-tv/-/raw/main/screenshots/1dmenu.png) --- This script was inspired by and is _almost identical_ with another project called [radion](https://gitlab.com/christosangel/radion), which is a _tui internet radio client_. The channel list was found [here](https://raw.githubusercontent.com/Free-TV/IPTV/master/playlist.m3u8), and was modified to fit the script's functionality.

31
3
raku.land

Note: [Raku programming language](https://www.raku-lang.ir/en/downloads/) and a module manager([zef](https://www.raku-lang.ir/en/downloads/#Ecosystem)) are required.

10
1
https://darkhz.github.io/bluetuith

Hello Lemmy, Bluetuith is a TUI based bluetooth manager for Linux, that aims to be an alternative to most bluetooth managers, and can perform bluetooth based operations like: - Connection to and general management of bluetooth devices, with device information like battery percentage, RSSI etc. displayed, if the information is available. More detailed information about a device can be viewed by selecting the 'Info' option in the menu or by clicking the 'i' key. - Bluetooth adapter management, with toggleable power, discoverability, pairablilty and scanning modes. - Transfer and receive files via the OBEX protocol, with an interactive file picker to choose and select multiple files. - Handle both PANU and DUN based networking for each bluetooth device - Control media playback on the currently connected device, with a media player popup that displays playback information and controls. This release contains the following new features: - New command-line options `--adapter-states` to set adapter properties and `--connect-bdaddr` to connect to a device on initialization - Block/unblock devices - Indefinite passkey/pincode display - Modifiable navigation keys - Display the 'Bonded' property for a device I hope you enjoy this release, and any feedback is appreciated.

14
0

cross-posted from: https://lemmy.world/post/7130937 **radion** is an internet radio CLI client, written in Bash. [https://gitlab.com/christosangel/radion](https://gitlab.com/christosangel/radion) Radion can be costumized as far as the station selecting program is concerned. The user can choose between: - **read** ![read](https://lemmy.world/pictrs/image/b699fe14-25ef-43b6-930a-4fcc866a057a.png) - **fzf** ![fzf](https://lemmy.world/pictrs/image/745a1d39-c955-46b6-85c6-546a9b1dc4b0.png) - **rofi** ![rofi](https://lemmy.world/pictrs/image/493c68ed-b9fd-40fe-a4d5-3385c16bfc9e.png) - **dmenu** ![dmenu](https://lemmy.world/pictrs/image/4ac6b6d2-1110-4e79-8c2d-7d0ff97cf85d.png) --- **Update**: Introduced new feature: costumizing prompt text for fzf dmenu and rofi. **Update**: **Recording functionality added**, with the use of another (you guessed it) bash script ![icy](https://lemmy.world/pictrs/image/ebf36614-2a43-4604-a247-74455c3d7370.png) Also options in `read` as Preferred selector are also case insensitive. Any feedback is appreciated!

63
12
https://www.nushell.sh/blog/2023-10-17-nushell_0_86.html

Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your command line. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful command line pipelines. Today, we're releasing version 0.86 of Nu. This release adds fish-like directory completions, type system improvements, our first officially supported uutils command, and much more

8
0
https://pastebin.com/gjrGDakR

Nothing too shabby honestly. But there you have it nonetheless. And yep, I used AI for a l"head start". :p

1
0

[https://gitlab.com/christosangel/ladder](https://gitlab.com/christosangel/ladder) **Ladder** is a word puzzle, played in a terminal window. Your starting point is an **initial four-letter word**. Your goal is to **transform this word, one letter at a time**, through other valid words, and end up with the **target word.** The tricky part is that on each entry, you can change **ONLY ONE LETTER**.

2
0