-
Notifications
You must be signed in to change notification settings - Fork 1
Earnestly/taverner
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
taverner <https://raw.github.com/Earnestly/taverner> INTRODUCTION taverner is a tool designed to generate and maintain a bunch of game launchers (or anything else really). It uses a modified dmenu for creating list of entries along with a nice cover image and an accompanying tool to make creating these entries a bit more convenient. Screenshot: <https://raw.github.com/Earnestly/taverner/master/scrot.png> REQUIRES - bash - curl - imagemagick - gawk - sort (-z) - dmenu-pango-imlib <https://github.com/Cloudef/dmenu-pango-imlib> INSTALL make install WHAT & HOW Briefly, a typical session may look like this % taverner -h usage: taverner [-h] [-e editor] menu [-h] [--] [arguments]... taverner [-h] [-e editor] add [-h] [-c cover] [-t template] [-n title] entry taverner [-h] [-e editor] edit [-ht] [-c cover] [-n title] entry taverner [-h] [-e editor] ls [-ht0] taverner [-h] [-e editor] rm [-h] entry... options -e editor specify editor to use instead of EDITOR (default: vi) examples create an entry called wipeout3 with a psx template using emacs as the editor: taverner -e emacs add -t psx -c ~/wipeout-3.jpg -n 'Wipeout 3 (PSX 1999)' wipeout-3 removes both wipeout-3 and crash-bandicoot launchers along with their metadata (cover and title): taverner rm wipeout-3 crash-bandicoot sub-commands menu usage: menu [-h] [--] [arguments]... description generate a menu, provide a prompt and execute selections options -h this help menu arguments the arguments specified after -- are passed to each selected entry add usage: add [-h] [-c cover] [-t template] [-n title] entry description create a new menu entry options -h this help menu -t template select a template to base the new entry on -c cover path or url to a cover image -n title media title to display entry the name for the new launcher script edit usage: edit [-c cover] [-n title] entry edit [-t] [-n title] entry edit [-n title] entry description edit the selected entry options -c cover path or url to cover for the entry -n title specify the title for the entry title -t assumes entry refers to a template entry attempts to open the entry with EDITOR (default: vi) ls usage: ls [-ht0] description list entries and templates options -h this help menu -t list templates instead of entries -0 use NUL instead of a <newline> between items rm usage: rm [-h] entry... description remove selected entries and corresponding covers options -h this help menu entry the chosen entry to remove % taverner ls -t ppsspp wine % taverner add -t ppsspp -c ~/wipeout-pulse-cover.jpg -n 'Wipeout Pulse (PSP 2005)' wipeout-pulse At this point you'll be prompted with your editor to make any changes to the template such as specifying what to execute, and where the data files are located. E.g.: #!/bin/bash -- exec ppsspp --fullscreen "${XDG_DATA_HOME:-$HOME/.local/share}"/games/psp/wipeout_pure.iso After editing the template the title can be selected via dmenu using the menu sub-command: % taverner menu WHY I wanted to turn an old machine into a game box that could play various emulated games on the SNES, PSX, PSP and some older ones via WINE while unifying the UI. Many existing solutions were quite sophisticated, beautiful but complex graphical frontends, usually existing to serve a specific set of emulators. Since the machine I was planning to use is quite limited in terms of hardware I wanted something simple (and not very clever) which did as little as possible and with enough flexibility for anything I might conceivably throw at it. As Cloudef <https://github.com/Cloudef> had been working on providing extra functionality for dmenu which allows me to embed images based on the entry selected, I decided that would be perfect to list a bunch of games including any cover art. Initially I simply wrote a few lines of shell that passed a handwritten list to dmenu which launched a second script that contained all the logic necessary for starting the program. Eventually this manual insertion and deletion of list entries became inconvenient which resulted in the creation of the `taverner` script that generates menus on the fly. Now that was reasonably well solved, I still had the issue of manually writing the launcher scripts and setting up the cover image along with other potential tweaks. This is where `barkeep` comes in, it exists simply to aid me in creating the launchers, copying over templates and letting me just add any necessary tweaks. Eventually the functionality of taverner was subsumed into barkeep and barkeep was renamed as taverner.
About
menu management for games (or anything) using dmenu-pango-imlib
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published