Also I use dmenu and a script for using aliases in dmenu, and I create aliases for popping them out in new terminals. Really fast workflow.
If you're using a lot of tui stuff changing workflow from double click to launch really makes the whole experience smoother, much smoother than GUI stuff.
[0] https://github.com/lpsantil/slmenu
1. You're limited to binaries and executable scripts in your $PATH
2. Many commands do not have bash-completion support.
vi mode for bash, bash-completion are both innovations trying to tackle this optimization of workflow. I see tools like dmenu and slmenu as better ways to give richer UI and create/reuse workflows. GP's request for `allows fuzzy search of program names, tags and a short description` is highly doable in dmenu/slmenu if not already done [0]. Not so much with bash, vi mode for bash, bash-completion.
May also use i3-dmenu with fzf:
urxvt -title "fzf-menu" -e bash -c 'i3-dmenu-desktop --dmenu=fzf'Coincidental - I just reinstalled my machine and this is the first site I came to. I keep all the applications I installed in a 'packages.new' file, and do
apt-get install -y `cat packages.new`
when I get a new machine.Properly taken notes are much more than a memory aide.
Hey, I didn't claim it was exhaustively complete :-)
I have not used any appimages or flatpaks much. If I am using a program and it is not available on my new install, I'll remember to install it when I look for it.
For source compilation, it's frequently for a once-off use (maybe the repo software is too old, so I compile the latest). Mostly, when I move to a new version I don't need to recompile from source.
If you don't want a package cluttering up your system, but also don't want to forget about its existence you can just comment it out.
A usual line for an install is the package name, the package type (flatpak, appimage, tarball, AUR, deb, etc) and a description of what the package is. Not much longer than the command I typed in to install.
I also keep notes on changes to the system, services created, paths changed, firewall rules, detailed notes on big things and stuff like that. Any time I run into something weird I reference it and make sure it's not something I did before I go hunting for a solution.
> I'm in the habit of keeping a text file with all software I've installed and updating it immediately.
I'll share mine if you share yours. Mine is mostly geared towards Python and PHP development. $ apropos -a data term
fidentify (8) - Determine file type using PhotoRec database
Pod::Text::Termcap (3perl) - Convert POD data to ASCII text with format escapes
sql (1) - execute a command on a database determined by a dburl
termcap (5) - terminal capability database
terminfo (5) - terminal capability data base
tput (1) - initialize a terminal or query terminfo database
vd (1) - a terminal utility for exploring and arranging tabular data
visidata (1) - a terminal utility for exploring and arranging tabular dataWhat’s the problem with writing a .desktop file for a TUI app? Make the exec line open a terminal and run the app in it. If you want to open the app in place you could probably have the exec line determine the focused terminal and send a command to it to have it run the app.
In practice, I find that there are a handful of various "swiss army knives" I return to again and again. Some of the new tools are indeed impressive, but an be implemented or offer features available in other utilities.
For myself, "apropos foo", "apt search foo", and the DDG bang "!dpkg foo" are almost always excellent starting points. Debian packages somewhere north of 70,000 individual software packages these days, and will almost always have a tool to do a specific job if not the tool you're looking for.
And yeah, the kids these days are using flatpacks and pip and nodejs and rpm (not to be confused with RPM), etc., though back in the day we had CPAN to deal with. (It still exists, of course, it's just less significant.)
A launcher could also be a "standard" middle layer that defines common key bindings for tasks that people prefer different TUI applications for (e.g. "m" --> mail - whether it's "mutt" or "mail" or "sup-mail" or "pine" behind it).
I don't use one at present, but took the short cut to define 1-letter shell aliases for some of the more common ones:
e: _e_dit <file> (Sublime)
n: _n_ote taking (own system)
m: new e-_m_ail (sup-mail)
p: show processes (htop)
I've been looking for GUI launcher/software-catalog solution for Windows with those characteristics.
Still haven't found any.
Sometimes it's useful to have a subset, which is what a menu does.
Is there such a thing as a TUI launcher out there? Something that allows fuzzy search of program names, tags and a short description (using something akin to .desktop files for the application metadata). Then, when I suddenly need a program for a certain task, I don't have to hope I memorized the correct command. I just open my TUI launcher, type something related to my task and get a list of some TUIs that could help.