Favorite Terminal Applications - BSD

Users browsing this thread: 25 Guest(s)
fre d die
Members
awesome! i'm using cmus at the moment but was thinking of just using mpg123 as all of my folders are formatted in artist/album/song so the directory is very easy to navigate to play songs without an ncurses client. i also make a bit of music and was wondering if you have experimentedd with sox in editing and/or processing the audio?
z3bra
Grey Hair Nixers
(14-07-2020, 08:02 AM)phillbush Wrote:
(14-07-2020, 07:53 AM)z3bra Wrote: I'm curious to know why you consider "nq" as a mail client ? It's more of a tool like at(1) or crond(8), than an MUA.

Damn, I mixed my bookmarks up.
I intended to link to mblaze, another project of Leah's.

Ah, that's what I though :) I use mblaze for cleaning my inbox, but still use mutt to manage and read mails, this is much more convenient. Threading is a bit complex to do, for example to bring the full thread back in your inbox when you receive a new message. Here's my digthread script for it for example:

Code:
#!/bin/sh

# maildir location
md=$HOME/.cache/mail

# Bring back to inbox all mails in a given thread (except sent ones)
box=${1:-inbox}
mlist $md/$box \
                | mthread -v $(mdirs $md|sed 's/^/-S /') 2>/dev/null \
                | grep -vE "$md/($box|sent)/" \
                | grep -vE '^\s*<'
                | mrefile $md/$box

A bit complex, but it works :) And at list, you can do it. It is much more simple to do with mu though:

Code:
mu find -t m:/inbox

My main issue with "mu" is its query system which I could never get right on first try. Plus the escaping is odd… I prefer mblaze regarding that, and I'm slowly switching away from mu. All that remains is my "mailsearch" script, which symlinks the result of the search is a directory, so you can browse the result within mutt. I couldn't replicate this with mblaze yet, as it usually works in a pipeline, and require different tools/mutliple piping to find your result.
z3bra
Grey Hair Nixers
(15-07-2020, 08:44 AM)fre d die Wrote: awesome! i'm using cmus at the moment but was thinking of just using mpg123 as all of my folders are formatted in artist/album/song so the directory is very easy to navigate to play songs without an ncurses client. i also make a bit of music and was wondering if you have experimentedd with sox in editing and/or processing the audio?

I don't have much XP with making music. I mostly use sox to convert file formats and play songs. You might be interrested in ncmixer though :)
fre d die
Members
(15-07-2020, 09:14 AM)z3bra Wrote:
(15-07-2020, 08:44 AM)fre d die Wrote: awesome! i'm using cmus at the moment but was thinking of just using mpg123 as all of my folders are formatted in artist/album/song so the directory is very easy to navigate to play songs without an ncurses client. i also make a bit of music and was wondering if you have experimentedd with sox in editing and/or processing the audio?

I don't have much XP with making music. I mostly use sox to convert file formats and play songs. You might be interrested in ncmixer though :)
Looks intresting! dont think it would work on my system unfortunatly as i dont have sndio
pfr
Nixers
updated && bumped..
_____________________________________________________________________________________________
“Maybe you have some bird ideas... Maybe that's the best you can do.” - Terry A. Davis (R.I.P Terry & Percival)
pfr
Nixers
os: NetBSD
wm: sdorfehs
~
spotify: ncspot
music: mpd+fmui
radio: aNONradio / somafm / tera
video: mpv / yt-dlp
youtube: ytfzf
file manager: coreutils / shfm
irc client: senpai
terminal emulator: xst
shell: ksh
system monitor: top / nmon
editor: nextvi
writer: groff
pdf viewer: zathura
screenshot: xwd / ffmpeg
torrent client: rtorrent
image viewer: nsxiv
wallpaper: xsetroot / hsetroot / feh
mail client: heirloom-mailx
multiplexer: none
compositor: none
passwords: pass + passmenu + pinentry-dmenu
web: firefox
gopher: phetch
gemini: amfora
usenet client: slrn
other/fun: pkgsrc ;)
_____________________________________________________________________________________________
“Maybe you have some bird ideas... Maybe that's the best you can do.” - Terry A. Davis (R.I.P Terry & Percival)
seninha
Long time nixers
Mine has not changed too much from last year:

os: OpenBSD
wm: shod
~
music: mpv + mpc + xprompt
video: mpv + youtube-dl
file manager: lf + coreutils + tree + fmutils
irc client: hexchat
terminal emulator: xterm
shell: ksh
system monitor: some scripts with xnotify
editor: vim
writer: heirloom troff
pdf viewer: zathura
screenshot: maim
image viewer: sxiv (I want to fork sxiv and make it into a file browser with thumbnails)
wallpaper: feh
mail client: mutt
compositor: none
web: firefox/dillo
other/fun: newsboat
pfr
Nixers
(10-03-2021, 10:49 AM)phillbush Wrote: image viewer: sxiv (I want to fork sxiv and make it into a file browser with thumbnails)

That would be awesome!
_____________________________________________________________________________________________
“Maybe you have some bird ideas... Maybe that's the best you can do.” - Terry A. Davis (R.I.P Terry & Percival)
freem
Nixers
(10-03-2021, 07:50 PM)Ramiferous Wrote:
(10-03-2021, 10:49 AM)phillbush Wrote: image viewer: sxiv (I want to fork sxiv and make it into a file browser with thumbnails)

That would be awesome!

Then, please, also add it webp format. That would be nice, considering the performances of that format.
jkl
Long time nixers
Update 2021 - something old, something new - and I stopped using e-mails and managing files on the terminal.

music: mpd
video: mpv
terminal emulator: st
text editor: ed, emacs
gopher: phetch
image viewer: feh
P2P file sharing: amule
screenshot: scrot
system monitor: whatever comes with the system
multiplexer: tmux
shell: tcsh

--
<mort> choosing a terrible license just to be spiteful towards others is possibly the most tux0r thing I've ever seen
opfez
Members
I'm much more comfortable with Linux and tools now, so I guess I'll update my list.
os: Arch Linux
wm: XFCE on desktop, dwm on laptop
music and video: mpv
file manager: coreutils + thunar (if i need drag+drop)
irc client: irssi
terminal emulator: xfce4-terminal/alacritty
shell: zsh
editor: emacs (converted from vim (sorry))
pdf viewer: zathura
screenshot: xfce-screenshot/scrot
image viewer: sxiv
mail client: thunderbird
compositor: picom
web: ungoogled-chromium

Overall, emacs has replaced a lot of my programming tools. In a way, this is nice because I get a more cohesive experience, but I do recognize the fact that it is less UNIX-y.
ckester
Nixers
(10-03-2021, 10:18 PM)freem Wrote:
(10-03-2021, 07:50 PM)Ramiferous Wrote:
(10-03-2021, 10:49 AM)phillbush Wrote: image viewer: sxiv (I want to fork sxiv and make it into a file browser with thumbnails)

That would be awesome!

Then, please, also add it webp format. That would be nice, considering the performances of that format.

sxiv uses Imlib2, so that's probably where you'll need to add support for webp.
pfr
Nixers
(11-03-2021, 12:33 PM)opFez Wrote: editor: emacs

never heard of it..
_____________________________________________________________________________________________
“Maybe you have some bird ideas... Maybe that's the best you can do.” - Terry A. Davis (R.I.P Terry & Percival)
tool
Registered
OS: OpenBSD
wm: i3
terminal emulator: st
shell: ksh
wallpaper: -
file manager: -
system monitor: systat, top
editor: vi, vim
music: aqualung
video: mpv, youtube-dl
mail client: mutt
usenet client: slrn
irc client: irssi
web: firefox, lynx
XMPP client: profanity
pdf viewer: xpdf
screenshot: scrot
image viewer: feh
backup: $ ssh user@server "cd / && doas tar -cpvz -f - /" > backup.tar.gz
other/ fun: libreoffice, prosody (XMPP server), nextcloud
pyratebeard
Long time nixers
- os: arch
- wm: 2bwm
- shell: zsh
- terminal: rxvt-unicode, tmux
- music: cmus
- video: mpv
- image: sxiv, feh
- email: mutt, offlineimap
- wallpaper: hashwall
- editor: vim
- pdf: zathura
- screenshot: scrot
- irc: irssi
- web: lynx, "curl | pandoc | man" (gui: qutebrowser, firefox)
- gopher: sacc
- password: pass
- bookmarks: buku
- rss: newsboat
- reddit: tuir
- torrents: rtorrent
- monitoring: atop, glances
- other: mosh, drist, dtach, at
yakumo.izuru
Members
chat: profanity (jabber) weechat (irc)
multimedia: mpv (audio/video)
mail: fdm(1) + mblaze(7) + msmtp(1)
terminal emulator: foot
text editor: emacs, vim
file manager: lf, the shell itself
torrent client: rtorrent
screenshot: scrot

i think that's pretty much it

update 2022-04-28: added emacs and lf (the former is because I was tempted to try it for no explicable reason anyway)

update 2022-06-18: no longer on wayland nor using micro, either
Code:
_                _            ,                                
(_|   |_/o       | |          /|   |                      o    
  |   |      __  | |  _ _|_    |___|  _   ,_    _  _  _     _|_
  |   |  |  /  \_|/  |/  |     |   |\|/  /  |  / |/ |/ |  |  |  
   \_/   |_/\__/ |__/|__/|_/   |   |/|__/   |_/  |  |  |_/|_/|_/
~Izuru Yakumo
josuah
Long time nixers
I kind of like the daemon command from FreeBSD.

It is a nice intermediate between a system service manager (like rc, s6, openrc and the controversial systemd), and running a command in the background in the shell (with
Code:
&
after the command).

The standard output and standard error goes onto a syslog.

For instance, I use it on my .xinitrc for starting a notification manager, a "new mail" watchdog program...
Seirdy
Members
Here's mine. I've recently started to reduce my use of TUIs in favor of CLIs, as they tend to be more screen reader friendly.

Environment:
  • OS: Fedora 36, OpenBSD, sometimes HardenedBSD
  • Wayland compositor: Sway
  • Shell: zsh
  • Terminal Emulator: foot. Sometimes gnome-terminal when I'm using a screen reader.

Basic utilities:
  • $EDITOR: Neovim
  • Coreutils alternatives: ripgrep
  • Music player: mpd, along with my mpd scripts
  • Video player: three builds of mpv, two with a PGO run on different types of video (anime and live-action-with-filmgrain). Often paired with yt-dlp and mpv_sponsorblock
  • Image viewer: mpv (one less program to keep track of), swayimg. Both support AVIF and JPEG-XL now.
  • Session manager: tmux (I don't use it for tiling, Sway handles that)
  • IRC client: weechat. Might switch to senpai eventually.
  • News: Newsboat. Thinking of switching to an RSS/Atom-to-IMAP or Maildir thingy eventually so I can get sync and use mblaze, and replace a TUI with a CLI. Ideally something that supports WebSub.

Mail:
  • Mail fetcher: mbsync
  • SMTP client: msmtp
  • routine tasks, viewing/filtering latest messages: mblaze
  • MUA: both neomutt and aerc
  • Viewing HTML mail: w3m-sandbox or edbrowse.

Other tools:
Tools I don't use or avoid using:
  • system monitoring TUIs: I just run the command to view the resource I need to know about
  • File managers: fzf-completion and preview windows are much better IMO
ckester
Nixers
I like TUIs for tasks where awareness of context helps guide or inform a sequence of actions. A text editor is the classic example. File managers are also helpful for those of us who tend to lose our place when navigating around the filesystem.

I'm currently working on yet another redesign of my TUI frontend for mpg123, which I use for interactive transformations of a playlist while it's being played. I find it useful to be able to see the whole playlist in order to rearrange, add, or delete songs to my liking.

But I agree, a TUI for a simple one-shot information request or action seems unnecessary. Mike Gancarz aptly called them "captive interfaces" in his book Linux and the Unix Philosophy, and I don't want to be held captive unless I've decided to be working in their context for a while.

So, like you, I go to commandline interface programs as my first choice. TUIs second, and GUIs as a last resort if nothing else is suitable.

(My project list includes plans to reimplement things like gpodder as TUIs. My mpg123 frontend is mostly a way to learn how to write such things. I've looked at the code for a lot of existing TUIs and it's amazing how many different approaches there are! I've learned from them how to hack out something that works but I'm still looking for the cleanest, most elegant design. In C, because I'm old-school. )
ckester
Nixers
Here's something I posted years ago on reddit, where I went under the nickname "CorkyAgain". It's pertinent to the discussion in this thread and I'd like to get the nixers' thoughts about these criteria and any others they might suggest.

Quote:http://github.com/agarrharr/awesome-cli-apps
https://github.com/alebcay/awesome-shell
http://robot.unipv.it/toolleeo/contrib/cli-apps.html
http://github.com/k4m4/terminals-are-sexy
https://github.com/topics/ncurses?o=desc&s=updated
http://tim.thechases.com/posts/cli/softw...ine-world/
https://github.com/dbohdan/structured-text-tools
https://kkovacs.eu/cool-but-obscure-unix-tools
https://www.linux.com/news/top-10-linux-...plications

Rather than build yet another list, perhaps we can discuss the criteria we use for selecting our favorites from among the many apps available?

To get things started, here are a few of my criteria, off the top of my head and in no particular order:

Fitness to task. Can it do what I need done?

Small. How big is the footprint, both on disk and in memory once loaded and running? This includes any shared libraries used.

Minimal dependencies. This follows from the previous item.

Fast. Relative to other programs in the same niche.

Hackable. How clean/understandable is the code? Important if I need to debug it or add a feature.

Adherence to Unix philosophy, especially:

Coherence: Does one thing and does it well. One way to measure this is to look at the number of commandline options or the length of the manpage.

Composability: if it's a CLI rather than a TUI it should accept input on stdin and its output should support piping to another program. The latter requirement implies that there is no unnecessary output on stdout, only the generated or transformed data. If it's a TUI does it support the use of user-specified external programs to achieve some tasks -- as with vi(m)'s "!" command -- or does it restrict the user to its own implementation?

Vi(m)-style keyboard commands. (If a TUI.)

It often isn't possible to find an app that satisfies all of these criteria. For example, ffmpeg fails the suggested coherence test with its numerous commandline switches and lengthy manpage, but it's indispensible nonetheless. There are things it can do that no other app seems able to (criterion #1).

For example, is the license or programming language an important criterion for you?
venam
Administrators
(23-08-2022, 04:12 AM)ckester Wrote: For example, is the license or programming language an important criterion for you?
The license for me is a bonus factor, as long as I can read the code and that it's respectful I often won't have an issue. Legalities vary a lot from one jurisdiction to another, so what's written in a license might be useless in another, or even thing that are not written explicitly can apply too.

As for the language, I often avoid installing applications that require a specific language I haven't configured on my machine. Sometimes I feel it's ironic to setup a 100+MB environment for a scripts of a few hundreds lines.
ckester
Nixers
(11-03-2021, 05:56 PM)ckester Wrote:
(10-03-2021, 10:18 PM)freem Wrote:
(10-03-2021, 07:50 PM)Ramiferous Wrote:
(10-03-2021, 10:49 AM)phillbush Wrote: image viewer: sxiv (I want to fork sxiv and make it into a file browser with thumbnails)

That would be awesome!

Then, please, also add it webp format. That would be nice, considering the performances of that format.

sxiv uses Imlib2, so that's probably where you'll need to add support for webp.

FYI, with Imlib2 version 1.7.1 or later, both sxiv and nsxiv support webp. Fitness to task, check. Joy!
ckester
Nixers
(23-08-2022, 05:11 AM)venam Wrote: As for the language, I often avoid installing applications that require a specific language I haven't configured on my machine. Sometimes I feel it's ironic to setup a 100+MB environment for a scripts of a few hundreds lines.

Yep. That's my criteria #2 and #3.

I have similar feelings about shared libraries -- many of which aren't truly "shared" but are used only by the program that installed them (I call those "vanity libs"), or never by two or more programs that run simultaneously (which, except for plugins, is the only thing that justifies the overhead of dynamic linking).

So you can add static-linked to my list of criteria, for many reasons beside my distaste for shared libraries. For example, I like to compile and link C programs with --gc-sections, etc. to omit unused code, including any unused code from the libraries (which I've also compiled to support this).
x0ba
Members
music: mpd+ncmpcpp
file manager: lf
irc client: irssi
terminal emulator: wezterm
system monitor: btop
text editor: neovim
mail client: aerc
TMUX
Dworin
Members
(23-08-2022, 05:11 AM)venam Wrote: As for the language, I often avoid installing applications that require a specific language I haven't configured on my machine. Sometimes I feel it's ironic to setup a 100+MB environment for a scripts of a few hundreds lines.

I very, very infrequently use pandoc and I really dislike how it pulls in a hundred haskell packages that I have totally no other use for. About time I kick it from my machines again, I think.
tabako
Registered
music: cmus
video: mpv
terminal emulator: tty
text editor: ed
gopher: clagrange
image viewer: fbv
screenshot: fbgrab
system monitor: top
multiplexer: screen
shell: ash