PMENU(1)
pmenu(1) โ General Commands Manual โจ okay bestie, this is the pie menu utility for X thatโs about to make your menus feel very main character ๐
๐ฅง NAME
pmenu โ pie menu utility for X
๐ธ SYNOPSIS
pmenu [-ew] [-d diameter] [-N name] [-x mod-button]
โจ DESCRIPTION
pmenu is a pie menu for X11, fr fr. It reads a list of newline-separated items from standard input, shows a pie menu so the user can select one of the items, and writes the selected item into standard output. The pie menu contains one slice for each item. Iconic behavior, no cap.
๐ The options are as follows:
-d diameterโ specify the diameter in pixels of the pie menu. Big pie energy ๐ฅง-eโ run the output string on shell rather than writing it into standard output.-N -nameโ specify theres_namemember of theXClassHint(3)property.nameis used to retrieve resources. If not specified, defaults to the value of theRESOURCES_NAMEenvironment variable, or (if that variable is not set) to the name of the commandpmenuwas invoked as (that is, thebasename(3)of itsargv[0]). Yes,-namestays exactly like that bestie ๐ซถ-wโ disable pointer warping when a new submenu spawns. This option is useful when usingpmenuwith a Wacom tablet.-x mod-buttonโ this option requires an argument of the formmod-buttonorbutton; wheremodisMod1toMod5, orAlt(equivalent toMod1), orSuper(equivalent toMod 4); andbuttonis the number of a mouse button. When this option is used,pmenulistens to button presses on the root window, and shows the pie menu when the given button is pressed, together with the given modifier, on the root window. For example, invokingpmenuwith the option-x Super-3makes a menu open when clicking with the third mouse button on the root window, or when clicking with the third mouse button together with theSuper(Mod4) modifier on any window. This option makespmenurun continuously; so it should be used whenpmenuis invoked in background on a X11 startup file (like~/.xinitrc).
lowkey important:-xmakespmenukeep running continuously, so itโs the one you want in your X11 startup file situation ๐
Each item read from standard input has the following format:
ITEM := [TABS] [IMAGE TAB] LABEL [TAB OUTPUT] NEWLINE
That means that each item is composed by tabs, followed by an image specification, followed by a tab and a label, followed by a tab and an output string, and ended by a newline. Brackets group optional elements.
- The initial tabs indicate the menu hierarchy: items indented with a tab are shown in a submenu of the preceding item not indented. An item without initial tabs is a top-level item.
- The image is a string of the form
"IMG:/path/to/image.png". It specifies the path to an image file to be shown as icon in the slice. If the path does not begin with"/","./", or"../", the file is searched on the paths specified in theICONPATHenvironment variable. - The label is the string that will be shown as an item in the menu. If the item includes an icon, then no label is shown on the menu; however, a tooltip with the label pops up when hovering the icon.
- The output string is the string that will be output after selecting the item. If an item does not have an output string, its label is used as its output string. If the output string begins with the
"$"character, then this string represents a command that will be run bypmenuusingpopen(3)and whose output will be used to generate a submenu. - The newline terminates the item specification.
๐ฎ USAGE
pmenu is controlled by the mouse, but can also be controlled by the keyboard. Pie slices can be selected using Tab (with and without Shift), Enter and Esc. Keyboard girlies are so valid ๐ธ
- Tab โ cycle through the slices in the clockwise direction.
- Shift-Tab โ cycle through the slices in the counterclockwise direction.
- Enter โ select the highlighted item.
- Esc โ close a menu.
๐จ RESOURCES
pmenu understands the following X resources. They must be prefixed with either the "PMenu" class or the name given with the -N command-line option, followed by a period. Resource-core, honestly ๐
activeBackgroundโ background color for selected slices.activeForegroundโ text color for selected slices.backgroundโ background color.borderColorโ color of the border around pie menus.borderWidthโ size in pixels of the border around pie menus.diameterWidthโ the size in pixels of the pie menu.faceNameโ font for drawing text. If the value is prefixed with"xft:"(case insensitive), thenpmenuuses theXft(3)library for drawing text; and fallback fonts can be specified by delimiting the fonts with commas. If the value is prefixed with"x:"or"x11:"(case insensitive), thenpmenuuses the X11 library for drawing text; if only one font is specified, regular X11 fonts are used; if two or more fonts are specified (delimited with commas), aXFontSetis used (but that is not reliable, and depends on the locale, so it is better to not use more than one X11 font).faceSizeโ the size, in points, of the font. This only affects Xft fonts.foregroundโ text color.
The resources below can be used to implement a motif/3D look. Very retro-chic ๐
shadowThicknessโ size in pixels of the 3D border.topShadowColor,bottomShadowColor,middleShadowColorโ colors for a Motif-like (3D) pie menu.topShadowColoris the light, top color of the border;bottomShadowColoris the dark, bottom color of the border; andmiddleShadowColoris the background color.
๐ฟ ENVIRONMENT
The following environment variables affect the execution of pmenu.
DISPLAYโ the display to startpmenuon.ICONPATHโ a colon-separated list of directories used to search for the location of image files.
๐ EXAMPLES
The following script illustrates the use of pmenu. The output is redirected to sh(1), creating a command to be run by the shell.
#!/bin/sh
<<EOF pmenu | sh &
Apps
Firefox firefox
Chrome chromium
Vivaldi vivaldi
Gimp gimp
Terms
xterm xterm
urxvt urxvt
st st
Halt poweroff
Reboot reboot
EOF
For example, by selecting โAppsโ, a new menu appears. Selecting โFirefoxโ in the new menu opens Firefox. Submenu inception, slay ๐ฆ
๐ SEE ALSO
thatโs the whole page, bestie โ source/version vibes: Debian, May 20, 2023, PMENU(1). go slay your menus ๐
๐ซถ
๐ฆ where this page comes from
- nixos 26.05: pmenu 3.1.1
- nixpkgs unstable: pmenu 3.1.1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms