- C 84.7%
- Roff 9.2%
- Makefile 4.2%
- Nix 1.4%
- Shell 0.5%
dmenu - dynamic menu (Patched by Yehoslav)
dmenu is an efficient dynamic menu for X. But I still missed some features, which luckily are available through patches. I manually applied (since some of them were broken when I let nixos apply them) the following pathces:
- dmenu-fuzzy(match|highlight);
- dmenu-grid(nav)+;
- dmenu-password;
- dmenu-center;
- and dmenu-dracula;
Requirements
In order to build dmenu you need the Xlib header files.
Installation
Edit config.mk to match your local setup (dmenu is installed into the /usr/local namespace by default).
Afterwards enter the following command to build and install dmenu (if necessary as root):
make clean install
Nix (TODO: add how to install using nixpkg)
Since I use nix I created a derivation to build dmenu just by running nix build. And than
I can test the build using the binary from ./result/bin/.
I am new to nix, so it's mostly a hack I found through trial and error :D
NixOS
One can override the dmenu attributes when installing to NixOS (in home.nix in my case) like so:
(dmenu.overrideAttrs (oldAttrs: rec {
src = fetchGit {
url = "https://codeberg.org/Yehoslav/dmenu";
rev = "436e20a9dbc56b2418e1263004ba518a2d7718fb";
narHash = "sha256-gw5l+pLqOn6T1AgVhf2UacANFQ7V27KrcBLQawy9NN0=";
};
}))
where rev represents the hash of the desired commit, and narHash is a unique
key generated from the contents of the repository which you can get from the
terminal when rebuilding NixOS (this key is a security measure to guarantee that
the contents are the same, if without changing the revision the rebuild process
complains that sha256 doesn't match than the contents were corrupted).
Running dmenu
See the man page for details.