Fix dumb typos, add new article, expand existing articles

This commit is contained in:
speedie 2023-07-20 04:24:06 +02:00
parent 898b5e26f8
commit 58a7c9ba1d
3 changed files with 933 additions and 27 deletions

View file

@ -1,13 +1,12 @@
Configurable keybindings # Configurable keybindings
========================
spmenu has since version 1.0 supported configuring keybinds and mouse binds spmenu has since version 1.0 supported configuring keybinds and mouse binds
through a config file. The default config file *should* have the default through a config file. The default config file *should* have the default
keybinds already. keybinds already.
### List of valid modes ## List of valid modes
**Can be used with keybinds** NOTE: Can be used with keybinds.
- `-1` - `-1`
- Any mode - Any mode
@ -16,9 +15,9 @@ keybinds already.
- `1` - `1`
- Insert mode - Insert mode
### List of valid clicks ## List of valid clicks
**Can be used with mouse binds** NOTE: Can be used with mouse binds.
- `ClickWindow` - `ClickWindow`
- Clicking on the spmenu window - Clicking on the spmenu window
@ -32,8 +31,6 @@ keybinds already.
- Clicking on the right arrow - Clicking on the right arrow
- `ClickItem` - `ClickItem`
- Clicking on the item area - Clicking on the item area
- `ClickSelItem`
- Clicking on an item, function here doesn't matter, it will always be selected
- `ClickImage` - `ClickImage`
- Clicking on an image - Clicking on an image
- `ClickNumber` - `ClickNumber`
@ -45,9 +42,9 @@ keybinds already.
- `None` - `None`
- Any click - Any click
### List of valid modifiers ## List of valid modifiers
**Can be used with keybinds** NOTE: Can be used with keybinds.
- `Ctrl` - `Ctrl`
- `Shift` - `Shift`
@ -55,11 +52,11 @@ keybinds already.
- `Alt` - `Alt`
- `None` - `None`
These can also be combined by using '+' as a separator (ie. Ctrl+Shift) These can be combined by using '+' as a separator (ie. Ctrl+Shift)
### List of valid buttons ## List of valid buttons
**Can be used with mouse binds** NOTE: Can be used with mouse binds
- Left Click - Left Click
- Middle Click - Middle Click
@ -67,58 +64,121 @@ These can also be combined by using '+' as a separator (ie. Ctrl+Shift)
- Scroll Up - Scroll Up
- Scroll Down - Scroll Down
### List of valid functions ## List of valid functions
**Can be used with keybinds and mouse binds** NOTE: Can be used with keybinds and mouse binds.
- `moveup` - `moveup`
- Move up by MAX(passed argument, 1)
- `movedown` - `movedown`
- Move down by MAX(passed argument, 1)
- `moveleft` - `moveleft`
- Move left by MAX(passed argument, 1)
- `moveright` - `moveright`
- `moveend` - Move right by MAX(passed argument, 1)
- `movestart` - `movestart`
- Move to the first item
- `moveend`
- Move to the last item
- `movenext` - `movenext`
- Move to the next page
- `moveprev` - `moveprev`
- Move to the previous page
- `moveitem` - `moveitem`
- Move to item passed argument
- `paste` - `paste`
- Paste from clipboard, 0 means clipboard selection, 1 means primary selection
- `restoresel` - `restoresel`
- Move back to the first item
- `clear` - `clear`
- Clear input
- `clearins` - `clearins`
- Clear input text and switch to insert mode
- `viewhist` - `viewhist`
- Toggle history and item buffer
- `moveword` - `moveword`
- Navigate through input text by 1 word, -1 means start, +1 means end
- `deleteword` - `deleteword`
- Delete input text by 1 word
- `movecursor` - `movecursor`
- Move cursor (caret) by MAX(passed argument, 1)
- `navhistory` - `navhistory`
- Navigate through history buffer, -1 means forward, +1 means backwards
- `backspace` - `backspace`
- Backspace 1 character from input text
- `selectitem` - `selectitem`
- Select the current selected item
- `quit` - `quit`
- Quit spmenu
- `complete` - `complete`
- Tab complete the selected item
- `setimgsize` - `setimgsize`
- `toggleimg` - Set image size to passed argument
- `defaultimg` - `defaultimg`
- `flipimg` - Reset image size to the default
- `setimgpos` - `toggleinput`
- `setimggaps` - Toggle input
- `setlines` - `togglelarrow`
- `setcolumns` - Toggle left arrow
- `togglerarrow`
- Toggle right arrow
- `toggleitem`
- Toggle items
- `toggleprompt`
- Toggle prompt
- `togglecaps`
- Toggle caps lock indicator
- `togglepowerline`
- Toggle powerlines
- `togglecaret`
- Toggle caret (cursor)
- `togglehighlight` - `togglehighlight`
- Toggle highlighting
- `togglematchcount`
- Toggle match count
- `togglemode`
- Toggle mode
- `toggleregex` - `toggleregex`
- Toggle regex mode
- `toggleimg`
- Toggle images
- `flipimg`
- Flip image, 0 means vertically, 1 means horizontally
- `setimgpos`
- Move to the next image position
- `setimggaps`
- Set image gaps to passed argument
- `setlines`
- Set lines to passed argument
- `setcolumns`
- Set columns to passed argument
- `setlineheight`
- Set line height to passed argument
- `setprofile` - `setprofile`
- Open profile menu if available
- `switchmode` - `switchmode`
- Switch between Normal mode and Insert mode
- `selecthover`
- Output the item clicked on
- `screenshot` - `screenshot`
- Take a screenshot of spmenu
# List of valid arguments ## List of valid arguments
**Can be used with both keybinds and mouse binds** NOTE: Can be used with both keybinds and mouse binds.
- `0` - `0`
- `1` through `100` - `1` through `100`
- `+1` through `+100` - `+1` through `+100`
- `-1` through `-100` - `-1` through `-100`
# List of valid keys Please note that all functions will not accept
all of these or use them properly.
See 'List of valid functions' for more information.
**Can be used with keybinds** ## List of valid keys
NOTE: Can be used with keybinds.
- `None` - `None`
- `Space` - `Space`
@ -219,3 +279,13 @@ These can also be combined by using '+' as a separator (ie. Ctrl+Shift)
- `Right` - `Right`
- `Next` - `Next`
- `Prior` - `Prior`
If the key is **not** listed here, it may still work.
If it does not, please file a bug report.
## See also
- [[spmenu.conf documentation]]
- [[binds.conf documentation]]
- spmenu(1)

View file

@ -1,3 +1,98 @@
# binds.conf documentation # binds.conf documentation
TODO. **NOTE: A list of modes, modifiers, keys, functions and what arguments
those functions expect can be found in [[Configurable keybindings]].**
The binds.conf allows key and mouse binds to be configurated outside of the
regular spmenu.conf config file.
This configuration file is primarily used by shell scripts that utilize
spmenu. This is because it allows scripts to override keybinds without
altering the user's existing configuration file or theming in any way.
The binds.conf configuration file is nearly identical to spmenu.conf
with key and mouse binds. Anything not related to input is not
recognized when using this file. Any valid binds.conf will start
with `binds = {` as opposed to `spmenu = {` or `theme = {`.
It should be noted that if the file is loaded, it will override
**all** existing binds from the user's regular configuration.
For example, if you want to have a binds.conf configuration
with the only bind being the quit bind, you could do something
like this:
```spmenu config
bind = {
keys = ( {
mode = -1;
modifier = "None";
key = "Esc";
function = "quit";
argument = "0";
},
};
```
This is the exact same format keybinds in the regular config file use.
Same goes for mouse binds. This is an example allowing clicking on items
and outputting them:
```spmenu config
bind = {
mouse = ( {
click = "ClickItem";
button = "Left Click";
function = "selecthover";
argument = "0";
},
};
```
## Supported strings
Tip: Use `Ctrl+f` to search this list, because it is quite long.
- bind.keys.modifier
- Description: Modifier that must be pressed for the function to be executed
- Type: String
- bind.keys.mode
- Description: Mode that must be in use for the function to be executed
- Type: Integer
- bind.keys.key
- Description: Key that must be pressed for the function to be executed
- Type: String
- bind.keys.function
- Description: Function to execute when the conditions are met
- Type: String
- bind.keys.argument
- Description: Argument passed to the function
- Type: String
- bind.keys.ignoreglobalkeys
- Description: Ignore hardcoded keybinds
- Type: Integer
- bind.keys.forceinsertmode
- Type: Integer
- bind.mouse.click
- Description: Area where the click must have been for the function to be executed
- Type: String
- bind.mouse.button
- Description: Mouse button that must have been used to click for the
function to be executed
- Type: String
- bind.mouse.function
- Description: Function to execute when all conditions are met
- Type: string
- bind.mouse.argument
- Description: Argument passed to the function
- Type: String
- bind.mouse.ignoreglobalmouse
- Description: Ignore hardcoded mouse binds
- Type: Integer
## See also
- [[Configuring spmenu]]
- [[Configurable keybindings]]
- [[spmenu.conf documentation]]
- [[theme.conf documentation]]

View file

@ -0,0 +1,741 @@
# spmenu.conf documentation
**NOTE: A list of modes, modifiers, keys, functions and what arguments
those functions expect can be found in [[Configurable keybindings]].**
The spmenu.conf configuration file (usually located in
~/.config/spmenu/spmenu.conf and is XDG Base Directory compliant) can
be used to configure all exposed spmenu options, including theming.
The config file is not created by default though, but a default config
file can be found in /usr/share/spmenu/spmenu.conf and copied to said
location. It will then be loaded on startup. This example config file
contains all the default options. (file a bug report if it doesn't)
spmenu.conf is rarely specified by scripts, and shouldn't ideally not
be used with scripts if possible. binds.conf and theme.conf exist for
a reason. spmenu.conf should be dedicated to options that the user has
full control over.
## Config file loading
When spmenu is loaded, it loads these files in this order:
- Built in options -> spmenu.conf -> binds.conf -> theme.conf -> .Xresources
This means if spmenu.conf does not exist the default options
will be used. If it does exist, it will be loaded. Then, if a
binds.conf exists its binds will override the ones spmenu.conf provide.
Then, if a theme exists it will override options provided by spmenu.conf
or built in options. Finally, the `xrdb` will be loaded if X11 is used and
any colors are specified.
## Syntax
NOTE: libconfig is used for the configuration file.
Any valid spmenu.conf will start with `spmenu = {` (optionally after comments).
If not, spmenu will not bother trying to load any options. The spmenu
configuration files all resemble C mixed with JSON, and are quite simple.
spmenu config files contain a setting with the value being a group.
In this case, it's named `spmenu`. It (like all settings) ends with
a semicolon.
The shell of a spmenu configuration file would look something like this:
```spmenu config
spmenu = {
};
```
The setting needs to be filled with something though, as in the above
example it's completely empty. So the setting will usually contain
another setting with the value this time being a list. The value of
the list will usually be a group. This group often (but not always)
contains settings that spmenu will load.
Below is a simple example changing the default protocol from Wayland
to X11.
```spmenu config
spmenu = {
option = ( {
option1 = 0;
option2 = 1;
option3 = "Hello world!";
} );
};
```
As you can tell, everything is built around a setting. Note that
indentation or spaces/tabs geneerally don't matter, and spmenu
can usually load it anyway, even if it's unreadable to the user.
Just like C, comments can be in `//` form or `/* */` form.
In practice, keybinds may be set like this:
```spmenu config
spmenu = {
keys = (
{
mode = <mode>;
modifier = "<modifier>";
key = "<key>";
function = "<function>";
argument = "<argument>";
},
),
};
```
Or a mouse bind:
```spmenu config
spmenu = {
mouse = (
{
click = "<click>";
button = "<button>";
function = "<function>";
argument = "<argument>";
},
};
```
## Supported strings
Tip: Use `Ctrl+f` to search this list, because it is quite long.
- **spmenu.window.position**
- Description: Position to spawn spmenu in (0: Bottom, 1: Top, 2: Center)
- Type: Integer
- **spmenu.window.monitor**
- Description: Monitor index to spawn spmenu on (-1, 0, 1, ...)
- Type: Integer
- Note: Only applies for X11
- **spmenu.window.protocol**
- Description: Protocol to try first (0: X11, 1: Wayland)
- Type: Integer
- **spmenu.window.border**
- Description: Window border size (in pixels)
- Type: Integer
- Note: Only applies for X11
- **spmenu.window.margin-vertical**
- Description: Inner vertical padding (in pixels)
- Type: Integer
- **spmenu.window.margin-horizontal**
- Description: Inner horizontal padding (in pixels)
- Type: Integer
- **spmenu.window.padding-vertical**
- Description: Outer vertical padding (in pixels)
- Type: Integer
- Note: Only applies for X11
- **spmenu.window.padding-horizontal**
- Description: Outer horizontal padding (in pixels)
- Type: Integer
- Note: Only applies for X11
- **spmenu.window.width**
- Description: spmenu window width (in pixels)
- Type: Integer
- Note: Only applied when the spmenu window position isn't center
- **spmenu.window.managed**
- Description: Allow the window manager to manage spmenu as a window (0/1)
- Type: Integer
- Note: Only applies for X11
- **spmenu.window.alpha**
- Description: Enable alpha (transparency) for spmenu
- Type: Integer
- **spmenu.window.x**
- Description: X position offset (in pixels)
- Type: Integer
- Note: Only applies for X11
- **spmenu.window.y**
- Description: Y position offset (in pixels)
- Type: Integer
- Note: Only applies for X11
- **spmenu.properties.class**
- Description: \_WM_CLASS property
- Type: String
- Note: Only applies for X11
- **spmenu.properties.dock**
- Description: Set \_WM_NET_WINDOW_TYPE_DOCK (0/1)
- Type: Integer
- Note: Only applies for X11
- **spmenu.text.font**
- Description: Primary font to use when drawing text
- Type: String
- **spmenu.text.padding**
- Description: Horizontal padding around all text (in pixels)
- Type: Integer
- **spmenu.text.normitempadding**
- Description: Horizontal padding around normal items (in pixels)
- Type: Integer
- **spmenu.text.selitempadding**
- Description: Horizontal padding around selected items (in pixels)
- Type: Integer
- **spmenu.text.priitempadding**
- Description: Horizontal padding around high priority items (in pixels)
- Type: Integer
- **spmenu.text.leftarrow**
- Description: Character/text to draw when drawing the left arrow
- Type: String
- **spmenu.text.rightarrow**
- Description: Character/text to draw when drawing the right arrow
- Type: String
- **spmenu.text.password**
- Description: Character to draw for each hidden character in the input when -P
- Type: String
- **spmenu.text.prompt**
- Description: Prompt to display when one was not specified
- Type: String
- **spmenu.text.input**
- Description: Input to start spmenu with
- Type: String
- **spmenu.text.normal**
- Description: Text to display when in Normal mode
- Type: String
- **spmenu.text.insert**
- Description: Text to display when in Insert mode
- Type: String
- **spmenu.text.regex**
- Description: Text to display when regex matching is enabled
- Type: String
- **spmenu.text.capslockon**
- Description: Text to display when Caps Lock is on
- Type: String
- **spmenu.text.capslockoff**
- Description: Text to display when Caps Lock is off
- Type: String
- **spmenu.color.itemnormfg**
- Description: Normal item foreground color (#RRGGBB)
- Type: String
- **spmenu.color.itemnormbg**
- Description: Normal item background color (#RRGGBB)
- Type: String
- **spmenu.color.itemnormfg2**
- Description: Normal next item foreground color (#RRGGBB)
- Type: String
- **spmenu.color.itemnormbg2**
- Description: Normal next item background color (#RRGGBB)
- Type: String
- **spmenu.color.itemselfg**
- Description: Selected item foreground color (#RRGGBB)
- Type: String
- **spmenu.color.itemselbg**
- Description: Selected item background color (#RRGGBB)
- Type: String
- **spmenu.color.itemmarkedfg**
- Description: Marked item foreground color (#RRGGBB)
- Type: String
- **spmenu.color.itemmarkedbg**
- Description: Marked item background color (#RRGGBB)
- Type: String
- **spmenu.color.itemnormprifg**
- Description: Normal priority item foreground color (#RRGGBB)
- Type: String
- **spmenu.color.itemnormpribg**
- Description: Normal priority item background color (#RRGGBB)
- Type: String
- **spmenu.color.itemselprifg**
- Description: Selected priority item foreground color (#RRGGBB)
- Type: String
- **spmenu.color.itemselpribg**
- Description: Selected priority item background color (#RRGGBB)
- Type: String
- **spmenu.color.inputfg**
- Description: Input foreground color (#RRGGBB)
- Type: String
- **spmenu.color.inputbg**
- Description: Input background color (#RRGGBB)
- Type: String
- **spmenu.color.menu**
- Description: Menu color (#RRGGBB)
- Type: String
- **spmenu.color.promptfg**
- Description: Prompt foreground color (#RRGGBB)
- Type: String
- **spmenu.color.promptbg**
- Description: Prompt background color (#RRGGBB)
- Type: String
- **spmenu.color.larrowfg**
- Description: Left arrow foreground color (#RRGGBB)
- Type: String
- **spmenu.color.larrowbg**
- Description: Left arrow background color (#RRGGBB)
- Type: String
- **spmenu.color.rarrowfg**
- Description: Right arrow foreground color (#RRGGBB)
- Type: String
- **spmenu.color.rarrowbg**
- Description: Right arrow background color (#RRGGBB)
- Type: String
- **spmenu.color.hlnormfg**
- Description: Normal highlight foreground color (#RRGGBB)
- Type: String
- **spmenu.color.hlnormbg**
- Description: Normal highlight background color (#RRGGBB)
- Type: String
- **spmenu.color.hlselfg**
- Description: Selected highlight foreground color (#RRGGBB)
- Type: String
- **spmenu.color.hlselbg**
- Description: Selected highlight background color (#RRGGBB)
- Type: String
- **spmenu.color.numfg**
- Description: Match count foreground color (#RRGGBB)
- Type: String
- **spmenu.color.numbg**
- Description: Match count background color (#RRGGBB)
- Type: String
- **spmenu.color.modefg**
- Description: Mode indicator foreground color (#RRGGBB)
- Type: String
- **spmenu.color.modebg**
- Description: Mode indicator background color (#RRGGBB)
- Type: String
- **spmenu.color.capsfg**
- Description: Caps Lock foreground color (#RRGGBB)
- Type: String
- **spmenu.color.capsbg**
- Description: Caps Lock background color (#RRGGBB)
- Type: String
- **spmenu.color.border**
- Description: Border color (#RRGGBB)
- Type: String
- Note: Only applies for X11
- **spmenu.color.caretfg**
- Description: Caret foreground color (#RRGGBB)
- Type: String
- **spmenu.color.caretbg**
- Description: Caret background color (#RRGGBB)
- Type: String
- **spmenu.color.sgr0**
- Description: SGR 0 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr1**
- Description: SGR 1 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr2**
- Description: SGR 2 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr3**
- Description: SGR 3 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr4**
- Description: SGR 4 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr5**
- Description: SGR 5 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr6**
- Description: SGR 6 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr7**
- Description: SGR 7 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr8**
- Description: SGR 8 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr9**
- Description: SGR 9 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr10**
- Description: SGR 10 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr11**
- Description: SGR 11 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr12**
- Description: SGR 12 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr13**
- Description: SGR 13 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr14**
- Description: SGR 14 color (#RRGGBB)
- Type: String
- **spmenu.color.sgr15**
- Description: SGR 15 color (#RRGGBB)
- Type: String
- **spmenu.color.coloritems**
- Description: Color the selected items (0/1)
- Type: Integer
- **spmenu.color.sgr**
- Description: Interpret SGR sequences (0/1)
- Type: Integer
- **spmenu.alpha.itemnormfg**
- Description: Normal item foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.itemnormbg**
- Description: Normal item background alpha (0-255)
- Type: Integer
- **spmenu.alpha.itemnormfg2**
- Description: Normal next item foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.itemnormbg2**
- Description: Normal next item background alpha (0-255)
- Type: Integer
- **spmenu.alpha.itemselfg**
- Description: Selected item foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.itemselbg**
- Description: Selected item background alpha (0-255)
- Type: Integer
- **spmenu.alpha.itemmarkedfg**
- Description: Marked item foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.itemmarkedbg**
- Description: Marked item background alpha (0-255)
- Type: Integer
- **spmenu.alpha.itemnormprifg**
- Description: Normal priority item foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.itemnormpribg**
- Description: Normal priority item background alpha (0-255)
- Type: Integer
- **spmenu.alpha.itemselprifg**
- Description: Selected priority item foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.itemselpribg**
- Description: Selected priority item background alpha (0-255)
- Type: Integer
- **spmenu.alpha.inputfg**
- Description: Input foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.inputbg**
- Description: Input background alpha (0-255)
- Type: Integer
- **spmenu.alpha.menu**
- Description: Menu alpha (0-255)
- Type: Integer
- **spmenu.alpha.promptfg**
- Description: Prompt foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.promptbg**
- Description: Prompt background alpha (0-255)
- Type: Integer
- **spmenu.alpha.larrowfg**
- Description: Left arrow foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.larrowbg**
- Description: Left arrow background alpha (0-255)
- Type: Integer
- **spmenu.alpha.rarrowfg**
- Description: Right arrow foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.rarrowbg**
- Description: Right arrow background alpha (0-255)
- Type: Integer
- **spmenu.alpha.hlnormfg**
- Description: Normal highlight foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.hlnormbg**
- Description: Normal highlight background alpha (0-255)
- Type: Integer
- **spmenu.alpha.hlselfg**
- Description: Selected highlight foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.hlselbg**
- Description: Selected highlight background alpha (0-255)
- Type: Integer
- **spmenu.alpha.numfg**
- Description: Match count foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.numbg**
- Description: Match count background alpha (0-255)
- Type: Integer
- **spmenu.alpha.modefg**
- Description: Mode indicator foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.modebg**
- Description: Mode indicator background alpha (0-255)
- Type: Integer
- **spmenu.alpha.capsfg**
- Description: Caps Lock foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.capsbg**
- Description: Caps Lock background alpha (0-255)
- Type: Integer
- **spmenu.alpha.border**
- Description: Border alpha (0-255)
- Type: Integer
- Note: Only applies for X11
- **spmenu.alpha.caretfg**
- Description: Caret foreground alpha (0-255)
- Type: Integer
- **spmenu.alpha.caretbg**
- Description: Caret background alpha (0-255)
- Type: Integer
- **spmenu.powerline.promptstyle**
- Description: Prompt powerline style (0: >, 1: \, 2: ))
- Type: Integer
- **spmenu.powerline.matchcountstyle**
- Description: Match count powerline style (0: >, 1: \, 2: ))
- Type: Integer
- **spmenu.powerline.modestyle**
- Description: Mode indicator powerline style (0: >, 1: \, 2: ))
- Type: Integer
- **spmenu.powerline.capsstyle**
- Description: Caps Lock indicator powerline style (0: >, 1: \, 2: ))
- Type: Integer
- **spmenu.powerline.itemstyle**
- Description: Item powerline style (0: >, 1: \, 2: ))
- Type: Integer
- **spmenu.powerline.prompt**
- Description: Enable prompt powerline (0/1)
- Type: Integer
- **spmenu.powerline.matchcount**
- Description: Enable match count powerline (0/1)
- Type: Integer
- **spmenu.powerline.mode**
- Description: Enable mode indicator powerline (0/1)
- Type: Integer
- **spmenu.powerline.caps**
- Description: Enable caps lock indicator powerline (0/1)
- Type: Integer
- **spmenu.powerline.item**
- Description: Enable item powerline (0/1)
- Type: Integer
- **spmenu.hide.input**
- Description: Hide input (0/1)
- Type: Integer
- **spmenu.hide.larrow**
- Description: Hide left arrow (0/1)
- Type: Integer
- **spmenu.hide.rarrow**
- Description: Hide right arrow (0/1)
- Type: Integer
- **spmenu.hide.items**
- Description: Hide items (0/1)
- Type: Integer
- **spmenu.hide.prompt**
- Description: Hide prompt (0/1)
- Type: Integer
- **spmenu.hide.powerline**
- Description: Hide powerline (0/1)
- Type: Integer
- **spmenu.hide.caret**
- Description: Hide caret (0/1)
- Type: Integer
- **spmenu.hide.highlight**
- Description: Hide highlighting (0/1)
- Type: Integer
- **spmenu.hide.matchcount**
- Description: Hide match count (0/1)
- Type: Integer
- **spmenu.hide.mode**
- Description: Hide mode indicator (0/1)
- Type: Integer
- **spmenu.hide.caps**
- Description: Hide caps lock indicator (0/1)
- Type: Integer
- **spmenu.hide.image**
- Description: Hide images (0/1)
- Type: Integer
- **spmenu.match.sort**
- Description: Sort items when matching (0/1)
- Type: Integer
- **spmenu.match.casesensitive**
- Description: Enable case sensitivity when matching (0/1)
- Type: Integer
- **spmenu.match.fuzzy**
- Description: Enable fuzzy finding by default (0/1)
- Type: Integer
- **spmenu.match.regex**
- Description: Enable regex matching by default (0/1)
- Type: Integer
- **spmenu.match.preselected**
- Description: Preselect an item, 0 is the first item (number)
- Type: Integer
- **spmenu.match.mark**
- Description: Allow marking/selecting multiple items (0/1)
- Type: Integer
- **spmenu.match.delimiters**
- Description: Work delimiter(s), used to delete words
- Type: String
- **spmenu.match.listfile**
- Description: File to read entries from. NULL means stdin will be read
- Type: String
- **spmenu.line.height**
- Description: Height of each line (in pixels)
- Type: Integer
- **spmenu.line.lines**
- Description: Number of lines (number)
- Type: Integer
- **spmenu.line.columns**
- Description: Number of columns (number)
- Type: Integer
- **spmenu.line.overridelines**
- Description: Allow overriding lines using keybinds (0/1)
- Type: Integer
- **spmenu.line.overridecolumns**
- Description: Allow overriding columns using keybinds (0/1)
- Type: Integer
- **spmenu.line.indentitems**
- Description: Indent item X position to prompt width (0/1)
- Type: Integer
- **spmenu.history.max**
- Description: Max number of history entries the history buffer can contain (number)
- Type: Integer
- **spmenu.history.duplicate**
- Description: Save duplicate entries to the file (0/1)
- Type: Integer
- **spmenu.center.width**
- Description: Menu width when centered (in pixels)
- Type: Integer
- **spmenu.image.width**
- Description: Default image width (in pixels)
- Type: Integer
- **spmenu.image.height**
- Description: Default image height (in pixels)
- Type: Integer
- **spmenu.image.gaps**
- Description: Image gaps (in pixels)
- Type: Integer
- **spmenu.image.resize**
- Description: Allow spmenu to resize itself to fit the image (0/1)
- Type: Integer
- **spmenu.image.position**
- Description: Image position (0: Top, 1: Bottom, 2: Center, 3: Top center)
- Type: Integer
- **spmenu.image.type**
- Description: Image type (0: Icon, 1: Image)
- Type: Integer
- **spmenu.image.cache**
- Description: Enable caching of images (0/1)
- Type: Integer
- **spmenu.image.maxcache**
- Description: Max image size to cache (in pixels)
- Type: Integer
- **spmenu.image.cachedir**
- Description: Cache directory
- Type: String
- **spmenu.file.xresources**
- Description: Load .Xresources colors on startup (0/1)
- Type: Integer
- **spmenu.file.global**
- Description: Load \*.color\* colors on startup (0/1)
- Type: Integer
- **spmenu.file.theme**
- Description: Load theme file on runtime (0/1)
- Type: Integer
- **spmenu.file.binds**
- Description: Load binds file on runtime (0/1)
- Type: Integer
- **spmenu.file.themefile**
- Description: Path to the theme file to load on runtime. NULL means default
- Type: String
- **spmenu.file.bindsfile**
- Description: Path to the binds file to load on runtime. NULL means default
- Type: String
- **spmenu.file.screenshotfile**
- Description: Screenshot file path. NULL means default
- Type: String
- **spmenu.file.screenshotname**
- Description: Screenshot file name. NULL means default
- Type: String
- **spmenu.file.screenshotdir**
- Description: Screenshot file directory. NULL means default
- Type: String
- **spmenu.input.fast**
- Description: Grab keyboard before reading entries (0/1)
- Type: Integer
- Note: Only applies for X11
- **spmenu.input.type**
- Description: Allow typing (0/1)
- Type: Integer
- **spmenu.input.password**
- Description: Replace all characters with the password character (0/1)
- Type: Integer
- **spmenu.caret.width**
- Description: Caret width, 0 means default (in pixels)
- Type: Integer
- **spmenu.caret.height**
- Description: Caret height, 0 means default (in pixels)
- Type: Integer
- **spmenu.caret.padding**
- Description: Caret padding (in pixels)
- Type: Integer
- **spmenu.output.printindex**
- Description: Print index instead of output text (0/1)
- Type: Integer
- **spmenu.output.incremental**
- Description: Print input text on every keypress (0/1)
- Type: Integer
- **spmenu.mode.default**
- Description: Mode to start spmenu in (0: Normal mode, 1: Insert mode)
- Type: Integer
- **spmenu.pango.item**
- Description: Interpret Pango markup for items (0/1)
- Type: Integer
- **spmenu.pango.prompt**
- Description: Interpret Pango markup for the prompt (0/1)
- Type: Integer
- **spmenu.pango.input**
- Description: Interpret Pango markup for the input (0/1)
- Type: Integer
- **spmenu.pango.leftarrow**
- Description: Interpret Pango markup for the left arrow (0/1)
- Type: Integer
- **spmenu.pango.rightarrow**
- Description: Interpret Pango markup for the right arrow (0/1)
- Type: Integer
- **spmenu.pango.numbers**
- Description: Interpret Pango markup for the match count (0/1)
- Type: Integer
- **spmenu.pango.mode**
- Description: Interpret Pango markup for the mode indicator (0/1)
- Type: Integer
- **spmenu.pango.caps**
- Description: Interpret Pango markup for the caps lock indicator (0/1)
- Type: Integer
- **spmenu.pango.password**
- Description: Interpret Pango markup for the password input (0/1)
- Type: Integer
- **spmenu.keys.modifier**
- Description: Modifier that must be pressed for the function to be executed
- Type: String
- **spmenu.keys.mode**
- Description: Mode that must be in use for the function to be executed
- Type: Integer
- **spmenu.keys.key**
- Description: Key that must be pressed for the function to be executed
- Type: String
- **spmenu.keys.function**
- Description: Function to execute when the conditions are met
- Type: String
- **spmenu.keys.argument**
- Description: Argument passed to the function
- Type: String
- **spmenu.keys.ignoreglobalkeys**
- Description: Ignore hardcoded keybinds
- Type: Integer
- **spmenu.keys.forceinsertmode**
- Type: Integer
- **spmenu.mouse.click**
- Description: Area where the click must have been for the function to be executed
- Type: String
- **spmenu.mouse.button**
- Description: Mouse button that must have been used to click for the
function to be executed
- Type: String
- **spmenu.mouse.function**
- Description: Function to execute when all conditions are met
- Type: string
- **spmenu.mouse.argument**
- Description: Argument passed to the function
- Type: String
- **spmenu.mouse.ignoreglobalmouse**
- Description: Ignore hardcoded mouse binds
- Type: Integer
## See also
- [[Configuring spmenu]]
- [[Configurable keybindings]]
- [[binds.conf documentation]]
- [[theme.conf documentation]]
- [libconfig documentation](https://hyperrealm.github.io/libconfig/libconfig_manual.pdf)