2021/09/21
I was compiling zathura and the mupdf backend the other day. I've been reading more ebooks and I thought it would be nice to tweak the css. The mupdf backend, despite the name, supports ebooks and even applying custom css files. Zathura doesn't have a way to load these files and pass them to mupdf. I don't think this is a widely known or used feature and the default css looks pretty good so I understand why it isn't implemented. I dove into the codebase to see if I could figure it out... I haven't, but along the way I installed a dozen or so dependencies to build these programs. This happens to me all the time. I probably have hundreds of *-dev packages installed that'll stay there until this harddrive dies. I'm fortunate to have a large harddrive so this isn't a huge issue, but whenever I run updates my system finds and updates packages I'm not even using. Package downloads Europe to Aotearoa are slow and I'm putting extra strain on void's servers for no reason.
I told my friend Henry about this and we came up with a neat idea. Create a shell script, which wraps your package manager, and allows adding a "reason" for installing certain packages. This way you could run xi alib-dev blib-dev -m
"compiling zathura" and it would store those packages and a description in a file. Later, when you're all done working on that project you can remove the libraries and tools you needed for it. While I was eating lunch Henry threw together a script to do just this. It's specific to Void Linux, but it should be easy to change to your favorite distro.