hdmenu
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.
Features
- 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.
Configuration
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.
Configuration option
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 to
open. This can also take directoriesfiles = [ "~/.config/emacs/" ]
in which case all files in that directory will be added to the list of files that
hdmenucares 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
htopdirectly 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
Command line options
-
--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'
Installation
Stack
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).
Cabal
Build with cabal install.