last commits
f8c09ab - Bharatvaj Hemanth2025-02-21 23:48
Use execvp() in place of system() for better performance
0ea885d - Bharatvaj Hemanth2025-02-18 18:00
Allow capture groups substitution with %1-%9
more
chndlr ====== chndlr is a simple, fast, and suckless replacement for xdg-open. It determines the appropriate application to open a file or URL based on user-defined rules in config.h. Features -------- * Minimal and fast * No unnecessary dependencies * Proven config.h configuration * Works on UNIX-like systems Installation ------------ $ make $ sudo make install Usage ----- $ chndlr music.mp3 $ chndlr https://www.youtube.com/watch?v=dQw4w9WgXcQ config.h -------- chndlr uses config.h for configuration, Entries to `pairs` can be added with easy to use macros P and WEB_PREFIX, static const Pair pairs[] = { P( "\\.mp3", "st", "-e", "mplayer", "%s"); P( WEB_PREFIX("github.com") "/([^/]+)/([^/]+)/actions", "gh run list --repo %1/%2/%3" ) ... }; For the input, $ chndlr 'https://www.github.com/bharatvaj/chndlr' We get, %1 - https://www.github.com %2 - bharatvaj %3 - chndlr %s - https://www.github.com/bharatvaj/chndlr %0-%9 and %s are available for substituion. To know more the about capture group sytax, see regex(7). chndlr uses 'execvp()' instead of 'system()' to speed up launching processes. This means that the following would NOT work. /* config.h */ P( "\\.gif$", "wget", "-O", "/tmp/tmp.gif %s && gifview -a /tmp/tmp_gifview.gif") Credits ------- Forked from soap. https://github.com/FRIGN/soap