hdmenu
is a small wrapper around dmenu—it can't do very much, though I
guess that's the point. It might be most notable for being a discount
yeganesh
.
- Display commands in order of usage and, optionally, apply a frequency decay every time an item is selected.
- Specify extra files to consider, which will be opened by a program of your choice (e.g.,
xdg-open
). - Open certain executables inside of your terminal.
Hdmenu is configured using a TOML file inside the $XDG_CONFIG_HOME/hdmenu
directory (probably ~/.config/hdmenu
).
See example.toml
for an example configuration.
Note that, while having a config file is optional,
the $XDG_CONFIG_HOME/hdmenu
directory will be created in either case,
in order to store the history file there.
The configuration file takes the following arguments:
-
open
: A custom opening script (default:xdg-open
). -
files
: Files one wishes to edit; they will be opened according toopen
. This can also take directoriesfiles = [ "~/.config/emacs/" ]
in which case all files in that directory will be added to the list of files that
hdmenu
cares about. Directories can also be traversed recursively:# Files from `~/.config/emacs/' and all of its subdirectories. files = [ "~/.config/emacs/" ]
-
executable
: Custom dmenu executable (default:dmenu
). -
terminal
: A terminal emulator (default:xterm
). -
tty-programs
: A list of programs to be opened in the above terminal emulator. For example, specifyingtty-programs = [ "htop" ]
will effectively enable one to start
htop
directly from dmenu without having to open an extraneous terminal. -
decay
: A frequency decay; all non-selected items will be multiplied by this number (default:1
). A good value may be something like0.997
-
--histFile
- Short:
-f
- Description: Path to the history file to use.
- Short:
-
--files-only
- Short:
-o
- Description: Whether to only show the user-specified files.
- Short:
-
--decay
- Short:
-d
- Description: A frequency decay; all non-selected items will be multiplied by this
- Short:
All options after --
will be directly forwarded to dmenu
, so you may
specify options in the following way:
hdmenu -f /path/to/file -- -i -f -nb '#282A36' -nf '#BBBBBB' -sb '#8BE9FD' -sf '#000000' -fn 'Inconsolata Regular-10'
Build with stack build
, then copy the executable to a convenient
location (or just use stack install
, to copy the executable to the
local-bin-path).
Build with cabal install
.