OPENBOX HOME

ob   15 BEST OPENBOX PIPEMENUS   ob

root menu
Obmenu Root Menu
PipeMenu Entries in schema.pl Download from lxlinux
{pipe => ['pcmanfm-bookmarks.pl', 'Bookmarks', '']},curl -O http://lxlinux.com/pcmanfm-bookmarks.pl
{pipe => ['bl-kb-pipemenu', 'Keybinds', '']},curl -O http://lxlinux.com/keybinds-pipemenu.tar.xz
{pipe => ['dir-menu.py', 'Computer', '']},curl -O http://lxlinux.com/dir-menu.py
{pipe => ['cbpp-places-pipemenu', 'Home', '']},curl -O http://lxlinux.com/cbpp-places-pipemenu
{pipe => ['ffmpeg-pipemenu', 'Ffmpeg', '']},curl -O http://lxlinux.com/ffmpeg-pipemenu.tar.gz
{pipe => ['help-pipemenu', 'Help', '']},curl -O http://lxlinux.com/help-pipemenu
{pipe => ['imagemagick-pipemenu', 'Image Magick', '']},curl -O http://lxlinux.com/imagemagick-pipemenu
{pipe => ['impipemenu', 'Image Magick Scripts', '']},curl -O http://lxlinux.com/imagemagicpipemenu.tar.gz
{pipe => ['obdevicemenu', 'Media', '']},curl -O http://lxlinux.com/obdevicemenu.tar.xz
{pipe => ['ob-randr.py', 'Monitor Settings', '']},curl -O http://lxlinux.com/ob-randr.py
{pipe => ['ob-sysinfo.pl', 'Sys-Info', '']},curl -O http://lxlinux.com/ob-sysinfo.pl
{pipe => ['storageinfo', 'Storage', '']},curl -O http://lxlinux.com/storageinfo
{pipe => ['bash-pipemenu', 'Monitor Settings', '']},[coming in March 2018]
{pipe => ['obrecent.sh', 'Recent', '']},(everything needed given below)
{pipe => ['scrot-pipemenu', 'scrot', '']},(everything needed given below)
Needed by Most Pipemenus
config.pl     (put in /usr/lib/pipes-common)curl -O http://lxlinux.com/config.pl
pipe-include.config     (put in /usr/lib/pipes-common)curl -O http://lxlinux.com/pipe-include.config

12 of the 15 best openbox-pcmanfm pipemenu entries are pictured in an obmenu-generator-openbox-root-menu on the left and the commands (without icons being designated) that generate all 15 pipemenus are in the box on the right (or below). The first field in the schema entries inside the brackets is the code that launches it. The right side of the table with yellow background is a command to download the files for that pipemenu. If curl doesn't work, replace curl -O in these commands with wget, and retry. Of course, curl and/or wget have to be installed on your computer.

Since it is customary in Debian-based Linux distributions to put the primary pipemenu script in /opt/menu, we make it the rule, and put all the main scripts there. Then, we put /opt/menu on-the=path to reduce verbage. Putting a directory on the path can be usually accomplished by appropriately adding its path to the list in /etc/environment.

The core of several of these pipe menus was developed or improved by the people who were part of the once popular, but now defunct, Crunchbang GNU/Linux distribution. Two small files, config.pl and pipe-include.cfg, are essential in the functioning of these pipemenus. Make a directory: sudo mkdir /usr/lib/pipes-common, and put config.pl and pipe-include.config into it. Be sure that they are executable. About all that remains is to download the pipemenu files and put them in the correct directories. In what follows below we will speak to this for each pipemenu.

Not often, but occasionally, a launch script is not compatible with a computer system, especially when it comes to putting launchers on panels, desktops, keybindings, etc. There is an easy work-around that appears to work for all pipemenus. We will illustrate it here by showing how to do it for obdevicemenu.

<?xml version="1.0" encoding="UTF-8"?>
     <openbox_menu xmlns="http://openbox.org/"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://openbox.org/
     file:///usr/share/openbox/menu.xsd">
       <menu execute="obdevicemenu" id="obdevicemenu" label="Obdevicemenu"/>
       </menu>

obdevicemenu.xml
The first step is to attach an unused keybinding to the pipemenu. Being able to launch a menu with keys is useful in itself, but here it can become doubly useful in that we can use the keybind to create a script launcher as well. There are two types of action keybindings that can be used with openbox menus. There is a one to be used with a menu xml file, and there is one that can be used with a command or exec. If the command for launching a pipemenu does not work in schema.pl, then it probably won't work to launch that pipemenu using a command action keybinding. So, the more general route is to set-up a menu keybinding. First, make an xml file for obdevicenmenu by copying and pasting the contents of obdevicemenu.xml in the box on the right to a text file. Make it executable and put it in ~/.config/openbox. Now, open ~/.config/rc.xml and put into the <menu> section the line: <file>~/.config/openbox/obdevicemenu.xml</file>, and put into the <!-- Keybindings for running applications --> section the contents of "Keybinding for Obdevicemenu" in the second box on the right.
<keybind key="A-m">
   <action name="ShowMenu">
    <menu>obdevicemenu</menu>
   </action>
</keybind>

Keybinding for Obdevicemenu
#!/bin/bash
xdotool key "alt+m" &
exit

obdevicemenu2
After doing this, holding down Alt+m should launch obdevicemenu. Of course, you may assign any key combination Alt+..., Win+... or Ctl+Alt+... in place of Alt+m. Just make sure that rc.xml has not already assigned your choice.

To get a script launcher, you need to have xdotool installed. Create the shell script named obdevicemenu2 in the first box on the right. Name it obdevicemenu2, make it executable and put it in /usr/local/bin (on the path). You can give it any name, except obdevicemenu, because obdevicemenu has already been used. Your computer will rebel if you give the same name to two different executable files, both of which are on the path.

Generic App

Alternative

image viewerx-image-viewer
media playerx-media-player
terminalx-terminal-emulator
text editorx-text-editor
web browserx-www-browser

Alternatives
You now have an exec, obdevicemenu2, available to put a launcher on your panel, panel menu, desktop, etc, or even in schema.pl if just obdevicemenu did not work. So the general procedure for any pipemenu is to create an .xml file, from which you can create a keybinding, and then finish with the simple bash script launcher.

Finally, if any of the pipemenus refers to a computer application in its script, we have set-up the script in terms of generic alternatives, according to the associations listed in the table on the right. The user needs to be sure these alternatives have been established and are directed toward their own installed applications, respectively. This eliminates the need to edit each file to match the users applications. On a different note, I have maintained pcmanfm as file manager in all these pipemenu scripts. If you use a different file browser, then you will have to edit each script changing pcmanfm to the name of your file manager. There is no guarantee the pipe menu will work for other file managers.

1. Pcmanfm Bookmarks Pipemenu

The pcmanfm bookmarks pipemenu consists of one file, pcmanfm-bookmarks.pl. Put pcmanfm-bookmarks.pl into /opt/menu, and make it executable. An image of the open menu is pictured on the left. The top 2 sections are static and can be easily edited by opening pcmanfm-bookmarks.pl with a root text editor and making the desired changes. Any directory on your computer can be put in these sections or in new similar sections. I've included the primary sub-directories of my home directory, which is named "me" in the top group. In the second group is the filesystem directory and 3 fixed external drives, which are always mounted at the same place, so have a fixed address to use in the menu. You will want to edit these 2 groups to your own situation and likening. The bottom section is the dynamical bookmarks group, which you do not want to edit, because it will automatically add or remove an item as you change your pcmanfm bookmarks. A time dependent list of pcmanfm bookmarks is kept at ~/.config/gtk-3.0/bookmarks. Besides an entry in the root menu, I attach "pcmanfm-bookmarks" to the keybinding "Alt+b" as described above, and then put a launcher on a panel using pcmanfm-bookmarks2, appropriately constructed as described for obdevicemenu2 above.

pcmanfm-bookmarks
Pcmanfm Bookmarks
directories pipemenu
>
Places Pipemenu
Places (~) Pipemenu

2. Directories Pipemenu

Put dir-menu.py into /usr/local/menu, , and make it executable. This pipemenu is an edited version of the one that comes with Sparky Linux. It is formulated in terms of alternative applications. A picture is above.

3. Places Pipemenu

Put cbpp-places-pipemenu into /usr/local/menu, , and make it executable. This pipemenu is the John Crawley Crunchbang version adapted by Ben Young for Crunchbang++. It requires the installation of exo-utils and xdg-utils, and uses the x-text-editor alternative. It is programmed to show the following dot-files: .bash_history .bbtools .cache .config .conkyrc .local .themes .wine, but this list can be easily edited by the user. A picture is on the left.

4. Obdevicemenu

Extract the 6 files in obdevicemenu.tar.xz, and follow the directions in "readme-obdevicemenu.txt". A photo of Devices Pipemenu is below.
obdevicemenu

5. Obrecent Pipemenu

Obrecent.sh, on the right, was copied from the Sparky Linux distribution. Copy and paste it to a text file, make it executable and put it in /opt/menu. A picture of a "recent files" list is below. Any file on this list can be relaunched by clicking its name.
recent files
#!/bin/sh
echo "<openbox_pipe_menu>"
files=$(
cat ~/.local/share/recently-used.xbel | grep file:/// | tail -n15 | cut -d "\"" -f 2 | tac | while read line;
do
file=$(echo "$line")
name=$(echo -en "$file" | sed 's,.*/,,' | sed 's/%20/ /g')
echo "<item label=\"$name\">
       <action name=\"Execute\"><command>xdg-open $line</command>
       </action>
    </item>"
done);
echo "$files"
echo "<separator />"
echo "<item label=\"Clear Recent Documents\">
       <action name=\"Execute\">
         <command>rm ~/.local/share/recently-used.xbel</command>
       </action>
    </item>"
echo "</openbox_pipe_menu>"
obrecent.sh

6. Scrot Pipemenu

Copy and paste the text in the yellow box below to a text file, make it executable, name it "scrot-pipemenu" and put it in /usr/menu. Launching scrot with only one click from a menu like shown in the image on the right is much faster than using a clumsy, heavy GUI.
#!/bin/bash
# scrot-pipemenu

COMMON_LIBDIR='/usr/lib/pipes-common'

if ! . "$COMMON_LIBDIR/pipe-include.cfg" 2> /dev/null; then
     echo $"Error: Failed to locate include.cfg in $COMMON_LIBDIR" >&2
     exit 1
fi
menuStart
#menuSeparator 'Scrot'
menuSeparator

menuItem 'Screen' 'scrot -q 90 -e "x-image-viewer $f"'
menuItem 'In 15 Seconds' 'scrot -q 90 -d 15 -e "x-image-viewer $f"'
menuItem 'Area (drag mouse)' 'scrot -q 90 -s -e "x-image-viewer $f"'
menuItem 'Window (click win)' 'scrot -q 90 -u -e "x-image-viewer $f"'
menuItem 'Multi-Monitor' 'scrot -q 90 -m -e "x-image-viewer $f"'

menuSeparator
menuEnd
scrot
Scrot Pipemenu

7. Help Pipemenu

help pipemenu
Help Pipemenu

Edit help-pipemenu to contain the references that you use, make it executable and put it in /etc/menu. A photo of the Help Pipemenu that you downloaded is above right. The core of the script came from the Bunsenlabs Distribution.

monitor
Monitor Settings Pipemenu

8. Monitor Settings Pipemenu

Make ob-randr.py executable, and put it in /usr/local/menu. This python script was written by Seth Howard. Custom commands can be added to the menu by creating ~/.ob-randrrc, and editing it as described in the introductory part of ob-randr.py. A basic "Monitor Settings" menu is shown on the left.

9. Keybinds Pipemenu

Extract the 5 files in keybinds-pipemenu.tar.xz, and follow the directions in "readme-keybinds.txt, which is one of the files. A photo of part of a Keybinds Pipemenu is below. The script was written for BunsenLabs Linux by damo and is based upon a script by wlourf 07/03/2010.

keybinds-pipemenu
Keybinds Pipemenu

10. Ffmpeg Pipemenu

ffmpeg pipe menu

Extract the contents of ffmpeg-pipemenu.tar.gz, and follow the directions in the included readme text file.

Ffmpeg is the ultimate command-line tool for converting, editing and configuring multimedia formats. Ffmpeg-pipemenu is a tool for putting the right ffmpeg command in the terminal for about 30 of the most common multimedia tasks. The 30 tasks can be easily changed in ffmpeg-pipemenu to the user's preferences. In addition to ffmpeg, ffmpeg pipemenu requires xdotool, mplayer, vobcopy and flac be installed. Open a terminal, then open the ffmpeg menu and click the desired function. A skeleton command will automatically be typed into the terminal. Complete the command and run it.

11. Image Magic Pipemenu

imagemagick pipe

Image Magick is the ultimate command line tool for converting, combining and general editing of images. ImageMagick-pipemenu is a tool for putting a skeleton of the right command in the terminal for 13 of the most common tasks. These commands can be easily edited in imagemagick-pipemenu to the user's prefrence.

To use the Image Magick pipemenu, open a terminal, then open the Image Magic desired function. A skeleton command will automatically be typed into the terminal. Complete the command and press "enter" key to carry it out. Basic Image Magick information is available at Lxlinux

12. Image Magic Scripts Pipemenu

Image Magick Scripts Menu

These are abbreviated copies of 75 of Fred Weinhaus's terrific image magick exec scripts for running image magick edits. These include the exact commands to use and their effect on real images. The commands that launch the tools are in the im directory. The information about what each tool does with the exact commands to use to get the illustrated effect is in the imagemagick directory. These 2 directories will occupy about 52MiB on your computer. You need to put the im directory in a directory that is on the path. I put it in /usr/local, and then put /usr/local/im on the path. Be sure the files in im are executable: sudo chmod 755 /usr/local/im/*. Put the imagemagick directory in ~/bin.

To use the pipemenu, open up the menu, scroll to the item that you think might contain the photo edit that your picture needs, click on it. This will bring up an abbreviated Fred script complete with illustrative photos and exact commands. All you need to do is copy and paste the command, perhaps changing a number or two, add the name of the input photo and a different name for the edited output photo, and run it in a terminal: fredscommand imput output. If the desired end is not achieved, redo using a different set of parameters. You can redo starting with either the new (output) or original (input) image. If you do not enter a new name in the output field, the original image will be overwritten with the edited version.

13. System Information Pipemenu

14. System Storage Pipemenu

storage

Download the pipe menus for system information and system storage, put them in /opt/menu, make them executable and put the appropriate entry in schema.pl as described in the chart at the top. These are expanded and modified versions of similarly named pipe menus found on the Openbox Wiki.

15. Bash Pipemenu [coming soon]



OPENBOX HOME