| Title: Port of the week: pmenu | |
| Author: Solène | |
| Date: 12 March 2021 | |
| Tags: openbsd | |
| Description: | |
| # Introduction | |
| This Port of the week will introduce you to a Pie-menu for X11, | |
| available on OpenBSD since 6.9 (not released yet). A pie menu is a | |
| circle with items spread in the circle, allowing to open other circle | |
| with other items in it. I find it very effective for me because I am | |
| more comfortable with information spatially organized (my memory is | |
| based on spatialization). I think pmenu was designed for a tablet | |
| input device using a pen to trigger pmenu. | |
| Pmenu github page | |
| # Installation | |
| On OpenBSD, a pkg_add pmenu is enough, but on other systems you should | |
| be able to compile it out of the box with a C compiler and the X | |
| headers. | |
| # Configuration | |
| This part is a bit tricky because the configuration is not obvious. | |
| Pmenu takes its configuration on the standard input and then must be | |
| piped to a shell. | |
| My configuration file looks like this: | |
| ```pmenu configuration file | |
| #!/bin/sh | |
| cat <<ENDOFFILE | pmenu | sh & | |
| IMG:/usr/local/share/icons/Adwaita/48x48/legacy/utilities-terminal.png s… | |
| IMG:/usr/local/share/icons/Adwaita/48x48/legacy/applets-screenshooter.png … | |
| Apps | |
| IMG:/usr/local/share/icons/hicolor/48x48/apps/gimp.png gimp | |
| IMG:/home/solene/dev/pmenu/claws-mail.png claws-mail | |
| IMG:/usr/local/share/pixmaps/firefox.png firefox | |
| IMG:/usr/local/share/icons/hicolor/256x256/apps/keepassxc.png ke… | |
| IMG:/usr/local/share/icons/hicolor/48x48/apps/chrome.png chrome | |
| IMG:/usr/local/share/icons/hicolor/128x128/apps/rclone-browser.png … | |
| Games | |
| IMG:/home/jeux/slay_the_spire/sts.png cd /home/jeux/slay_the_spi… | |
| IMG:/home/jeux/Delver/unjar/a/Delver-Logo.png cd /home/jeux/Delv… | |
| IMG:/home/jeux/Dead_Cells/deadcells.png cd /home/jeux/Dead_Cells… | |
| IMG:/home/jeux/brutal_doom/Doom-The-Ultimate-1-icon.png cd /home… | |
| Volume | |
| 0% sndioctl output.level=0 | |
| 10% sndioctl output.level=0.1 | |
| 20% sndioctl output.level=0.2 | |
| 30% sndioctl output.level=0.3 | |
| 40% sndioctl output.level=0.4 | |
| ENDOFFILE | |
| ``` | |
| The configuration supports levels, like "Apps" or "Games" in this | |
| example, that will allow a second level of shortcuts. A text could be | |
| used like in Volume, but you can also use images like in other | |
| categories. Every blank appearing in the configuration are tabs. | |
| The pmenu itself can be customized by using X attributes, you can learn | |
| more about this on the official project page. | |
| # Video | |
| I made a short video to show how it looks with the configuration shown | |
| here. | |
| Note that pmenu is entirely browseable with the keyboard by using tab / | |
| enter / escape to switch to next / validate / exit. | |
| Video demonstrating pmenu in action |