Openbox:Pipemenus
From Openbox
Spoiledbroth (Talk | contribs) m (fixes reference to dynamic menus) |
Spoiledbroth (Talk | contribs) m |
||
(23 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
− | Pipe menus are generated at run time (on-the-fly) based on output of scripts. These are also called "dynamic menus". A number of scripts | + | [[File:Ob-chromium-scrot.png|thumb|320px|right|Example of a pipe menu in action.]] |
+ | Pipe menus are generated at run time (on-the-fly) based on output of scripts. These are also called "dynamic menus," and are often used to provide added functionality to Openbox or integration with other software on the system. A number of scripts for generating pipe menus have been collected on this page. Please note many of these scripts have not been reviewed, and were not written by people directly involved with the project. | ||
− | See the [[Help:Menus#Pipe_menus|menu documentation]] for how to use pipe menus in your Openbox | + | See the [[Help:Menus#Pipe_menus|menu documentation]] for how to use pipe menus in your Openbox installation. |
+ | |||
+ | == Application Menus == | ||
− | |||
{| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | {| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | ||
|- style="padding: 1px;" | |- style="padding: 1px;" | ||
Line 9: | Line 11: | ||
|width="10%" valign="middle"|'''Implementation''' | |width="10%" valign="middle"|'''Implementation''' | ||
|width="*%" valign="middle"|'''Description''' | |width="*%" valign="middle"|'''Description''' | ||
− | |||
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
− | '''[ | + | '''[https://launchpad.net/openbox-xdgmenu/+download openbox-xdgmenu]''' |
|valign="middle"| | |valign="middle"| | ||
C | C | ||
|valign="middle"| | |valign="middle"| | ||
− | '' | + | ''Create an XDG menu'' |
− | + | ||
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
− | |valign="middle"|'''[ | + | |valign="middle"| |
− | |valign="middle"| | + | '''[[Openbox:Pipemenus:obam|Openbox Application Menu]]''' |
− | + | |valign="middle"| | |
− | | | + | Perl |
− | + | |valign="middle"| | |
− | + | ''Reads .desktop files from multiple directories to construct a flat menu. Useful if your system doesn't have working XDG or Debian menus.'' | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
− | '''[http:// | + | '''[http://rmoe.anukis.de/obamenu.html obamenu]''' |
|valign="middle"| | |valign="middle"| | ||
− | + | Python | |
|valign="middle"| | |valign="middle"| | ||
− | ''Openbox | + | ''Automagically creates Openbox application menus by analyzing xdg information provided by desktop files.'' |
|} | |} | ||
− | |||
== Desktop Environment Integration == | == Desktop Environment Integration == | ||
+ | |||
{| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | {| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | ||
|- style="padding: 1px;" | |- style="padding: 1px;" | ||
Line 47: | Line 41: | ||
|width="10%" valign="middle"|'''Implementation''' | |width="10%" valign="middle"|'''Implementation''' | ||
|width="*%" valign="middle"|'''Description''' | |width="*%" valign="middle"|'''Description''' | ||
+ | |- style="background: #eee; padding: 1px;" | ||
+ | |valign="middle"| | ||
+ | '''[[Openbox:Pipemenus:gtk-bookmarks|gtk-bookmarks]]''' | ||
+ | |valign="middle"| | ||
+ | Bash | ||
+ | |valign="middle"| | ||
+ | ''Simple bash script to create a pipe menu from ~/.gtk-bookmarks by Mulberry'' | ||
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
Line 65: | Line 66: | ||
'''[[Openbox:Pipemenus:recentfilesxbel|recentfilesxbel]]''' | '''[[Openbox:Pipemenus:recentfilesxbel|recentfilesxbel]]''' | ||
|valign="middle"| | |valign="middle"| | ||
− | + | UNIX sh | |
|valign="middle"| | |valign="middle"| | ||
''Shows your recent documents using the newer xbel format. by [[User:davidbarr|davidbarr]]'' | ''Shows your recent documents using the newer xbel format. by [[User:davidbarr|davidbarr]]'' | ||
Line 75: | Line 76: | ||
|valign="middle"| | |valign="middle"| | ||
''Pipes the rox-filer bookmarks from ~/.config/rox..../bookmarks.xml into the Openbox menu. Running one opens the bookmark in rox-filer.'' | ''Pipes the rox-filer bookmarks from ~/.config/rox..../bookmarks.xml into the Openbox menu. Running one opens the bookmark in rox-filer.'' | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
− | + | ===Personalisation=== | |
− | == | + | <span id="Background_Management"></span> |
{| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | {| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | ||
|- style="padding: 1px;" | |- style="padding: 1px;" | ||
Line 91: | Line 85: | ||
|width="10%" valign="middle"|'''Implementation''' | |width="10%" valign="middle"|'''Implementation''' | ||
|width="*%" valign="middle"|'''Description''' | |width="*%" valign="middle"|'''Description''' | ||
+ | <!-- here is an example entry for a pipemenu. please maintain the style --> | ||
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
− | '''[ | + | '''[http://www.gozer.org/my_stuff/c/c/ob3_theme.c ob3_theme]''' |
|valign="middle"| | |valign="middle"| | ||
C | C | ||
|valign="middle"| | |valign="middle"| | ||
− | '' | + | ''Openbox 3 theme changer by Mike Hokenson'' |
+ | <!-- END OF EXAMPLE --> | ||
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
− | '''[ | + | '''[http://www.gozer.org/programs/c/c/ob3_wall.c ob3_wall]''' |
|valign="middle"| | |valign="middle"| | ||
− | + | C | |
|valign="middle"| | |valign="middle"| | ||
− | '' | + | ''Openbox 3 desktop wallpaper changer by Mike Hokenson'' |
+ | |- style="background: #eee; padding: 1px;" | ||
+ | |valign="middle"|'''[https://github.com/vapniks/ob-pipe-menus show_ob_keybindings]''' | ||
+ | |valign="middle"|Python | ||
+ | |valign="middle"|''View/edit keybindings by Joe Bloggs'' | ||
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
− | '''[ | + | '''[[Openbox:Pipemenus:bmenu-1.0|bmenu-1.0]]''' |
|valign="middle"| | |valign="middle"| | ||
Python | Python | ||
|valign="middle"| | |valign="middle"| | ||
− | '' | + | ''A pipe menu which uses Feh to select the wallpaper from the chosen directory by Mulberry'' |
|} | |} | ||
+ | == Media & Games == | ||
− | |||
{| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | {| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | ||
|- style="padding: 1px;" | |- style="padding: 1px;" | ||
Line 123: | Line 123: | ||
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
− | '''[ | + | '''[https://github.com/Eli2/xmms2-OpenboxMenu xmms2-OpenboxMenu]''' |
+ | |valign="middle"| | ||
+ | Python | ||
+ | |valign="middle"| | ||
+ | ''xmms2 Pipe menu client'' | ||
+ | |- style="background: #eee; padding: 1px;" | ||
+ | |valign="middle"| | ||
+ | '''[[Openbox:Pipemenus:AudaciousControl|Audacious Control]]''' | ||
+ | |valign="middle"| | ||
+ | Bash | ||
+ | |valign="middle"| | ||
+ | ''Controls Audacious from a pipe menu by Matsuda Shinpei'' | ||
+ | |- style="background: #eee; padding: 1px;" | ||
+ | |valign="middle"| | ||
+ | '''[[Openbox:Pipemenus:Audacious_control_alternative|Audacious Control (alternative)]] ''' | ||
|valign="middle"| | |valign="middle"| | ||
Perl | Perl | ||
|valign="middle"| | |valign="middle"| | ||
− | '' | + | ''A menu to control Audacious. Uses a builtin client for Audacious and depends on wmctrl. By [[User:AaylaSecura|AaylaSecura]]'' |
+ | |- style="background: #eee; padding: 1px;" | ||
+ | |valign="middle"| | ||
+ | '''[[Openbox:Pipemenus:MPD_control|MPD/MPC Control]]''' | ||
+ | |valign="middle"| | ||
+ | Perl | ||
+ | |valign="middle"| | ||
+ | ''Control MPD/MPC from a pipe menu. Depends on MPC and one of gtkdialog/matedialog/zenity. By [[User:AaylaSecura|AaylaSecura]]'' | ||
+ | |- style="background: #eee; padding: 1px;" | ||
+ | |valign="middle"| | ||
+ | '''[http://www.gozer.org/programs/c/files/my_q3stat.c my_q3stat]''' | ||
+ | |valign="middle"| | ||
+ | C | ||
+ | |valign="middle"| | ||
+ | ''A script to query Quake 3 servers by Mike Hokenson'' | ||
|} | |} | ||
+ | == System Integration == | ||
− | |||
{| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | {| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | ||
|- style="padding: 1px;" | |- style="padding: 1px;" | ||
Line 155: | Line 183: | ||
'''[[Openbox:Pipemenus:Date_Menu|date-menu]]''' | '''[[Openbox:Pipemenus:Date_Menu|date-menu]]''' | ||
|valign="middle"| | |valign="middle"| | ||
− | + | UNIX sh | |
|valign="middle"| | |valign="middle"| | ||
''A simple date, time, and calendar.'' | ''A simple date, time, and calendar.'' | ||
Line 174: | Line 202: | ||
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
− | '''[[Openbox:Pipemenus: | + | '''[[Openbox:Pipemenus:processes-python|processes]]''' |
|valign="middle"| | |valign="middle"| | ||
− | + | Python | |
|valign="middle"| | |valign="middle"| | ||
− | '' | + | ''Reads out info from /proc and pipes it to a menu. Renice, kill or restart apps through the menu. Has a filter, so not all apps/daemons are shown in the menu. By Vlad George.'' |
+ | |- style="background: #eee; padding: 1px;" | ||
+ | |valign="middle"| | ||
+ | '''[https://github.com/whiteinge/ob-randr ob-randr]''' | ||
+ | |valign="middle"| | ||
+ | Python | ||
+ | |valign="middle"| | ||
+ | ''Easily change resolution, rotation, scaling, panning, and other xrandr operations as well as quickly see the capabilities of connected displays.'' | ||
|} | |} | ||
− | + | === Devices & Files === | |
− | == | + | |
{| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | {| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | ||
|- style="padding: 1px;" | |- style="padding: 1px;" | ||
Line 190: | Line 224: | ||
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
− | '''[ | + | '''[[Openbox:Pipemenus:mntmenu|mntmenu]]''' |
|valign="middle"| | |valign="middle"| | ||
− | + | Perl | |
|valign="middle"| | |valign="middle"| | ||
− | '' | + | ''Pipe menu that parses /etc/fstab for user mountable filesystems and allows the user to mount them. By Matthew Fitzgibbons.'' |
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
− | '''[[Openbox:Pipemenus: | + | '''[[Openbox:Pipemenus:obdevicemenu|obdevicemenu]]''' |
|valign="middle"| | |valign="middle"| | ||
Bash | Bash | ||
|valign="middle"| | |valign="middle"| | ||
− | '' | + | ''Uses udisks to easily mount, unmount or eject removable devices. Extensive configuration allows notifications about success or failure of operation, & modification of several other options. By Jamie Nguyen.'' |
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
− | '''[[Openbox:Pipemenus: | + | '''[[Openbox:Pipemenus:Dirsmenu|Directory Menu]]''' |
|valign="middle"| | |valign="middle"| | ||
Perl | Perl | ||
|valign="middle"| | |valign="middle"| | ||
− | '' | + | ''Pipe menu for recursive directory listings.'' |
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
− | '''[ | + | '''[https://xyne.archlinux.ca/projects/obfilebrowser/ obfilebrowser]''' |
|valign="middle"| | |valign="middle"| | ||
− | + | Python | |
|valign="middle"| | |valign="middle"| | ||
− | '' | + | ''Display files and directories and generates submenus with commands to open files with their associated applications. By Xyne'' |
|} | |} | ||
+ | == Miscellaneous == | ||
− | == | + | === Internet === |
{| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | {| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | ||
|- style="padding: 1px;" | |- style="padding: 1px;" | ||
Line 225: | Line 260: | ||
|width="10%" valign="middle"|'''Implementation''' | |width="10%" valign="middle"|'''Implementation''' | ||
|width="*%" valign="middle"|'''Description''' | |width="*%" valign="middle"|'''Description''' | ||
− | |||
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
− | '''[ | + | '''[[User:Spoiledbroth/ob-chromium|Chromium bookmarks]]''' |
|valign="middle"| | |valign="middle"| | ||
− | + | Perl | |
|valign="middle"| | |valign="middle"| | ||
− | '' | + | ''Create a pipemenu of chromium/google-chrome bookmarks by [[User:Spoiledbroth|Spoiledbroth]]'' |
− | + | |- style="background: #eee; padding: 1px;" | |
+ | |valign="middle"| | ||
+ | '''[[Openbox:Pipemenus:obm-mozilla|Firefox bookmarks]]''' | ||
+ | |valign="middle"| | ||
+ | Python | ||
+ | |valign="middle"| | ||
+ | ''Create a pipemenu of Firefox bookmarks by Manuel Colmenero.'' | ||
+ | |- style="background: #eee; padding: 1px;" | ||
+ | |valign="middle"| | ||
+ | '''[[Openbox:Pipemenus:feeder-python|feeder]]''' | ||
+ | |valign="middle"| | ||
+ | Python | ||
+ | |valign="middle"| | ||
+ | ''A script to pipe RSS and Podcast feeds into the Openbox menu by Vlad George'' | ||
+ | |- style="background: #eee; padding: 1px;" | ||
+ | |valign="middle"| | ||
+ | '''[https://bbs.archlinux.org/viewtopic.php?id=43432 Weather Pipe Menu]''' | ||
+ | |valign="middle"| | ||
+ | Python | ||
+ | |valign="middle"| | ||
+ | ''Shows the weather forecast of the city passed as argument.'' | ||
|} | |} | ||
− | + | === Utilities === | |
− | == | + | |
{| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | {| border="0" width="100%" cellspacing="1" cellpadding="5" align="left" | ||
|- style="padding: 1px;" | |- style="padding: 1px;" | ||
Line 243: | Line 296: | ||
|width="10%" valign="middle"|'''Implementation''' | |width="10%" valign="middle"|'''Implementation''' | ||
|width="*%" valign="middle"|'''Description''' | |width="*%" valign="middle"|'''Description''' | ||
− | |||
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
− | '''[https:// | + | '''[https://github.com/vapniks/ob-pipe-menus/tree/master/clipboard_manager clipboard_menu]''' |
|valign="middle"| | |valign="middle"| | ||
Python | Python | ||
|valign="middle"| | |valign="middle"| | ||
− | '' | + | ''Menu of recently copied text clips, selecting an item pastes it (requires parcellite or clipit) by Joe Bloggs'' |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
|- style="background: #eee; padding: 1px;" | |- style="background: #eee; padding: 1px;" | ||
|valign="middle"| | |valign="middle"| | ||
Line 267: | Line 311: | ||
''A simple task list in the form of a pipe menu. Simple features are supported for the time being. Adding tasks. Clicking on a task renders it completed and is therefore removed from the list.'' | ''A simple task list in the form of a pipe menu. Simple features are supported for the time being. Adding tasks. Clicking on a task renders it completed and is therefore removed from the list.'' | ||
|} | |} | ||
− | |||
== Script collections == | == Script collections == | ||
Line 275: | Line 318: | ||
=== External links === | === External links === | ||
+ | * [https://wiki.archlinux.org/index.php/Openbox#Pipes ArchWiki Openbox Pipes] | ||
+ | * [https://bbs.archlinux.org/search.php?action=search&keywords=openbox+pipe+menu&author=&forums=27&search_in=0&sort_by=0&sort_dir=DESC&show_as=topics Arch Linux Forums pipe menus] | ||
* [http://zhar.net/projects/openbox/ zhar.net Openbox stuff] | * [http://zhar.net/projects/openbox/ zhar.net Openbox stuff] | ||
− | * | + | * [http://web.archive.org/web/20150215210422/http://david.chalkskeletons.com/scripts/ Mulberry's Openbox Pipe menu scripts] |
* [http://obmenu.sourceforge.net/ Manuel Colmenero's Openbox Menu Editor] | * [http://obmenu.sourceforge.net/ Manuel Colmenero's Openbox Menu Editor] | ||
− | |||
* [https://github.com/BunsenLabs/bunsen-pipemenus BunsenLabs Pipe menus repository] | * [https://github.com/BunsenLabs/bunsen-pipemenus BunsenLabs Pipe menus repository] | ||
− | |||
* [https://github.com/antonio-malcolm/corgi-scripts Antonio Malcolm's Corgi Scripts repository] | * [https://github.com/antonio-malcolm/corgi-scripts Antonio Malcolm's Corgi Scripts repository] | ||
− | |||
* [http://dev.yeuxdelibad.net/coolrepo/Scripts/Openbox/ yeuxdelibad.net Openbox repo] | * [http://dev.yeuxdelibad.net/coolrepo/Scripts/Openbox/ yeuxdelibad.net Openbox repo] | ||
− | |||
* [http://www.murga-linux.com/puppy/viewtopic.php?t=87588 Nathan F's obpipes] | * [http://www.murga-linux.com/puppy/viewtopic.php?t=87588 Nathan F's obpipes] | ||
− |
Latest revision as of 13:28, 24 March 2018
Pipe menus are generated at run time (on-the-fly) based on output of scripts. These are also called "dynamic menus," and are often used to provide added functionality to Openbox or integration with other software on the system. A number of scripts for generating pipe menus have been collected on this page. Please note many of these scripts have not been reviewed, and were not written by people directly involved with the project.
See the menu documentation for how to use pipe menus in your Openbox installation.
Contents |
[edit] Application Menus
Script | Implementation | Description |
C |
Create an XDG menu | |
Perl |
Reads .desktop files from multiple directories to construct a flat menu. Useful if your system doesn't have working XDG or Debian menus. | |
Python |
Automagically creates Openbox application menus by analyzing xdg information provided by desktop files. |
[edit] Desktop Environment Integration
Script | Implementation | Description |
Bash |
Simple bash script to create a pipe menu from ~/.gtk-bookmarks by Mulberry | |
Perl |
A pipe menu that duplicates ~/.gtk-bookmarks (Nautilus, PCManFM, Thunar), by dbbolton | |
Perl |
A pipe menu that duplicates user-places.xbel (Dolphin, etc) by dbbolton | |
UNIX sh |
Shows your recent documents using the newer xbel format. by davidbarr | |
Python |
Pipes the rox-filer bookmarks from ~/.config/rox..../bookmarks.xml into the Openbox menu. Running one opens the bookmark in rox-filer. |
[edit] Personalisation
Script | Implementation | Description |
C |
Openbox 3 theme changer by Mike Hokenson | |
C |
Openbox 3 desktop wallpaper changer by Mike Hokenson | |
show_ob_keybindings | Python | View/edit keybindings by Joe Bloggs |
Python |
A pipe menu which uses Feh to select the wallpaper from the chosen directory by Mulberry |
[edit] Media & Games
Script | Implementation | Description |
Python |
xmms2 Pipe menu client | |
Bash |
Controls Audacious from a pipe menu by Matsuda Shinpei | |
Perl |
A menu to control Audacious. Uses a builtin client for Audacious and depends on wmctrl. By AaylaSecura | |
Perl |
Control MPD/MPC from a pipe menu. Depends on MPC and one of gtkdialog/matedialog/zenity. By AaylaSecura | |
C |
A script to query Quake 3 servers by Mike Hokenson |
[edit] System Integration
Script | Implementation | Description |
Python |
See your CPU frequency by John McKnight | |
Perl |
A similar system information script written in Perl and easy to modify/extend by dbbolton | |
UNIX sh |
A simple date, time, and calendar. | |
Perl |
Allows you to reboot to the any of the options in your grub.conf. | |
Bash |
A simple script to show acpi settings battery and temperature. | |
Python |
Reads out info from /proc and pipes it to a menu. Renice, kill or restart apps through the menu. Has a filter, so not all apps/daemons are shown in the menu. By Vlad George. | |
Python |
Easily change resolution, rotation, scaling, panning, and other xrandr operations as well as quickly see the capabilities of connected displays. |
[edit] Devices & Files
Script | Implementation | Description |
Perl |
Pipe menu that parses /etc/fstab for user mountable filesystems and allows the user to mount them. By Matthew Fitzgibbons. | |
Bash |
Uses udisks to easily mount, unmount or eject removable devices. Extensive configuration allows notifications about success or failure of operation, & modification of several other options. By Jamie Nguyen. | |
Perl |
Pipe menu for recursive directory listings. | |
Python |
Display files and directories and generates submenus with commands to open files with their associated applications. By Xyne |
[edit] Miscellaneous
[edit] Internet
Script | Implementation | Description |
Perl |
Create a pipemenu of chromium/google-chrome bookmarks by Spoiledbroth | |
Python |
Create a pipemenu of Firefox bookmarks by Manuel Colmenero. | |
Python |
A script to pipe RSS and Podcast feeds into the Openbox menu by Vlad George | |
Python |
Shows the weather forecast of the city passed as argument. |
[edit] Utilities
Script | Implementation | Description |
Python |
Menu of recently copied text clips, selecting an item pastes it (requires parcellite or clipit) by Joe Bloggs | |
Python |
A simple task list in the form of a pipe menu. Simple features are supported for the time being. Adding tasks. Clicking on a task renders it completed and is therefore removed from the list. |