mirror of
https://github.com/davatorium/rofi.git
synced 2024-11-18 13:54:36 -05:00
Proof read manpages (#645)
* Proof read rofi.1.markdown Fix typos. Fix American English consistency. Fix "command line", "pop up" etc. - separate as nouns and hyphenated as compound adjectives. Finish at line 169. * Further proofreading Same as before. Additionally, fix one line of whitespace above and below a heading. up to line 400 * More proof reads up to line 592 * Finish proofreading * Minor fixes * Start proofreading rofi.theme.5.markdown Fix American spelling. Make sure **rofi** is bolded. up to line 16 * Continue proofreading rofi-theme.5.markdown up to line 452 * Replace latinisms with English phrases e.g. > for example i.e. > that is They slow down the reader, and not everyone knows the correct English equivalent. * Finish proofreading rofi-theme.5.markdown * Fix dmenu official/unofficial website info * Minor fixes * Minor fixes
This commit is contained in:
parent
96c70813ca
commit
bb61970627
2 changed files with 246 additions and 261 deletions
|
@ -8,10 +8,10 @@
|
||||||
|
|
||||||
The need for a new theme format was motivated by the fact that the way rofi handled widgets has changed. From a very
|
The need for a new theme format was motivated by the fact that the way rofi handled widgets has changed. From a very
|
||||||
static drawing of lines and text to a nice structured form of packing widgets. This change made it possible to provide a
|
static drawing of lines and text to a nice structured form of packing widgets. This change made it possible to provide a
|
||||||
more flexible theme framework. The old theme format and config file is not flexible enough to expose these options in a
|
more flexible theme framework. The old theme format and config file are not flexible enough to expose these options in a
|
||||||
user-friendly way. Therefor a new file format has been created, replacing the old one. The new format is loosely based
|
user-friendly way. Therefor, a new file format has been created, replacing the old one. The new format is loosely based
|
||||||
on [css](https://en.wikipedia.org/wiki/Cascading_Style_Sheets), a format widely known, which allows e.g. web developers
|
on [CSS](https://en.wikipedia.org/wiki/Cascading_Style_Sheets), a widely known format, which allows web developers
|
||||||
to create their own rofi themes without the need to learn a new markup language.
|
for example to create their own **rofi** themes without the need to learn a new markup language.
|
||||||
|
|
||||||
|
|
||||||
## FORMAT SPECIFICATION
|
## FORMAT SPECIFICATION
|
||||||
|
@ -23,7 +23,7 @@ preferred.
|
||||||
|
|
||||||
## Comments
|
## Comments
|
||||||
|
|
||||||
C and C++ file comments are support.
|
C and C++ file comments are supported.
|
||||||
|
|
||||||
* Anything after `// ` and before a newline is considered a comment.
|
* Anything after `// ` and before a newline is considered a comment.
|
||||||
* Everything between `/*` and `*/` is a comment.
|
* Everything between `/*` and `*/` is a comment.
|
||||||
|
@ -37,7 +37,7 @@ The following is valid:
|
||||||
property: /* comment */ value;
|
property: /* comment */ value;
|
||||||
```
|
```
|
||||||
|
|
||||||
However this is not:
|
However, this is not:
|
||||||
|
|
||||||
```
|
```
|
||||||
prop/*comment*/erty: value;
|
prop/*comment*/erty: value;
|
||||||
|
@ -96,8 +96,8 @@ parsed entry kept.
|
||||||
|
|
||||||
## Global properties section
|
## Global properties section
|
||||||
|
|
||||||
A theme can have one or more global properties sections (If there is more than one
|
A theme can have one or more global properties sections. If there is more than one,
|
||||||
they will be merged)
|
they will be merged.
|
||||||
|
|
||||||
The global properties section denotes the defaults for each element.
|
The global properties section denotes the defaults for each element.
|
||||||
Each property of this section can be referenced with `@{identifier}`
|
Each property of this section can be referenced with `@{identifier}`
|
||||||
|
@ -110,7 +110,7 @@ A global properties section is indicated with a `*` as element path.
|
||||||
A theme can have multiple element theme sections.
|
A theme can have multiple element theme sections.
|
||||||
|
|
||||||
The element path can consist of multiple names separated by whitespace or dots.
|
The element path can consist of multiple names separated by whitespace or dots.
|
||||||
Each element may contain any number of letters, numbers and `-`.
|
Each element may contain any number of letters, numbers and `-`'s.
|
||||||
The first element in the element path should always start with a `#`.
|
The first element in the element path should always start with a `#`.
|
||||||
|
|
||||||
This is a valid element name:
|
This is a valid element name:
|
||||||
|
@ -171,24 +171,24 @@ The `identifier` names the specified property. Identifiers can consist of any
|
||||||
combination of numbers, letters and '-'. It must not contain any whitespace.
|
combination of numbers, letters and '-'. It must not contain any whitespace.
|
||||||
The structure of the `value` defines the type of the property. The current
|
The structure of the `value` defines the type of the property. The current
|
||||||
parser does not define or enforce a certain type of a particular `identifier`.
|
parser does not define or enforce a certain type of a particular `identifier`.
|
||||||
When used, values with the wrong type that cannot be converted, are ignored.
|
When used, values with the wrong type that cannot be converted are ignored.
|
||||||
|
|
||||||
The current theme format support different type:
|
The current theme format supports different types:
|
||||||
|
|
||||||
* a string.
|
* a string
|
||||||
* an integer number.
|
* an integer number
|
||||||
* a fractional number.
|
* a fractional number
|
||||||
* a boolean value.
|
* a boolean value
|
||||||
* a color.
|
* a color
|
||||||
* text style.
|
* text style
|
||||||
* line style.
|
* line style
|
||||||
* a distance.
|
* a distance
|
||||||
* a padding.
|
* a padding
|
||||||
* a border.
|
* a border
|
||||||
* a position.
|
* a position
|
||||||
* a reference.
|
* a reference
|
||||||
* an orientation.
|
* an orientation
|
||||||
* a list of keywords.
|
* a list of keywords
|
||||||
|
|
||||||
Some of these types are a combination of other types.
|
Some of these types are a combination of other types.
|
||||||
|
|
||||||
|
@ -196,7 +196,7 @@ Some of these types are a combination of other types.
|
||||||
|
|
||||||
* Format: `"[:print:]+"`
|
* Format: `"[:print:]+"`
|
||||||
|
|
||||||
A string is always surrounded by quotes ('"'), between the quotes it can have any printable character.
|
A string is always surrounded by double quotes (`"`). Between the quotes there can be any printable character.
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
|
@ -204,7 +204,7 @@ For example:
|
||||||
font: "Awasome 12";
|
font: "Awasome 12";
|
||||||
```
|
```
|
||||||
|
|
||||||
The string must be valid utf-8.
|
The string must be valid UTF-8.
|
||||||
|
|
||||||
## Integer
|
## Integer
|
||||||
|
|
||||||
|
@ -260,15 +260,15 @@ dynamic: false;
|
||||||
* Format: `cmyk( {PERCENTAGE}, {PERCENTAGE}, {PERCENTAGE}, {PERCENTAGE} [, {PERCENTAGE} ])`
|
* Format: `cmyk( {PERCENTAGE}, {PERCENTAGE}, {PERCENTAGE}, {PERCENTAGE} [, {PERCENTAGE} ])`
|
||||||
* Format: `{named-color} [ / {PERCENTAGE} ]`
|
* Format: `{named-color} [ / {PERCENTAGE} ]`
|
||||||
|
|
||||||
The in CSS 4 proposed white-space format is also supported.
|
The white-space format proposed in CSS4 is also supported.
|
||||||
|
|
||||||
The different values are:
|
The different values are:
|
||||||
|
|
||||||
* `{HEX}` is a hexidecimal number ('0-9a-f' case insensitive).
|
* `{HEX}` is a hexidecimal number ('0-9a-f' case insensitive).
|
||||||
* `{INTEGER}` value can be between 0 and 255 or 0-100 when representing percentage.
|
* `{INTEGER}` value can be between 0 and 255 or 0-100 when representing percentage.
|
||||||
* `{ANGLE}` Angle on the color wheel, can be in `deg`, `rad`, `grad` or `turn`. When no unit is specified, degrees is assumed.
|
* `{ANGLE}` is the angle on the color wheel, can be in `deg`, `rad`, `grad` or `turn`. When no unit is specified, degrees is assumed.
|
||||||
* `{PERCENTAGE}` Can be between 0-1.0, or 0%-100%
|
* `{PERCENTAGE}` can be between 0-1.0, or 0%-100%
|
||||||
* `{named-color}` Is one of the following colors:
|
* `{named-color}` is one of the following colors:
|
||||||
|
|
||||||
AliceBlue, AntiqueWhite, Aqua, Aquamarine, Azure, Beige, Bisque, Black, BlanchedAlmond, Blue, BlueViolet, Brown,
|
AliceBlue, AntiqueWhite, Aqua, Aquamarine, Azure, Beige, Bisque, Black, BlanchedAlmond, Blue, BlueViolet, Brown,
|
||||||
BurlyWood, CadetBlue, Chartreuse, Chocolate, Coral, CornflowerBlue, Cornsilk, Crimson, Cyan, DarkBlue, DarkCyan,
|
BurlyWood, CadetBlue, Chartreuse, Chocolate, Coral, CornflowerBlue, Cornsilk, Crimson, Cyan, DarkBlue, DarkCyan,
|
||||||
|
@ -298,7 +298,7 @@ text: SeaGreen;
|
||||||
|
|
||||||
* Format: `(bold|italic|underline|strikethrough|none)`
|
* Format: `(bold|italic|underline|strikethrough|none)`
|
||||||
|
|
||||||
Text style indicates how the highlighted text is emphasised. None indicates no emphasis
|
Text style indicates how the highlighted text is emphasized. `None` indicates that no emphasis
|
||||||
should be applied.
|
should be applied.
|
||||||
|
|
||||||
* `bold`: make the text thicker then the surrounding text.
|
* `bold`: make the text thicker then the surrounding text.
|
||||||
|
@ -307,7 +307,7 @@ should be applied.
|
||||||
* `strikethrough`: put a line through the highlighted text.
|
* `strikethrough`: put a line through the highlighted text.
|
||||||
* `small caps`: emphasise the text using capitalization.
|
* `small caps`: emphasise the text using capitalization.
|
||||||
|
|
||||||
> For some reason `small caps` is not working on some systems.
|
> For some reason `small caps` does not work on some systems.
|
||||||
|
|
||||||
## Line style
|
## Line style
|
||||||
|
|
||||||
|
@ -315,8 +315,8 @@ should be applied.
|
||||||
|
|
||||||
Indicates how a line should be drawn.
|
Indicates how a line should be drawn.
|
||||||
It currently supports:
|
It currently supports:
|
||||||
* `dash`: A dashed line. Where the gap is the same width as the dash.
|
* `dash`: a dashed line, where the gap is the same width as the dash
|
||||||
* `solid`: A solid line.
|
* `solid`: a solid line
|
||||||
|
|
||||||
## Distance
|
## Distance
|
||||||
|
|
||||||
|
@ -337,7 +337,7 @@ For example:
|
||||||
```
|
```
|
||||||
padding: 10%;
|
padding: 10%;
|
||||||
```
|
```
|
||||||
On a full-hd (1920x1080) monitor defines a padding of 192 pixels on the left
|
On a full-HD (1920x1080) monitor, it defines a padding of 192 pixels on the left
|
||||||
and right side and 108 pixels on the top and bottom.
|
and right side and 108 pixels on the top and bottom.
|
||||||
|
|
||||||
## Padding
|
## Padding
|
||||||
|
@ -348,7 +348,7 @@ and right side and 108 pixels on the top and bottom.
|
||||||
* Format: `{Distance} {Distance} {Distance}`
|
* Format: `{Distance} {Distance} {Distance}`
|
||||||
* Format: `{Distance} {Distance} {Distance} {Distance}`
|
* Format: `{Distance} {Distance} {Distance} {Distance}`
|
||||||
|
|
||||||
If no unit is set, pixels are used.
|
If no unit is specified, pixels are used.
|
||||||
|
|
||||||
The different number of fields in the formats are parsed like:
|
The different number of fields in the formats are parsed like:
|
||||||
|
|
||||||
|
@ -370,7 +370,7 @@ The different number of fields in the formats are parsed like:
|
||||||
* Format: `{Distance} {Line style} {Distance} {Line style} {Distance} {Line style}`
|
* Format: `{Distance} {Line style} {Distance} {Line style} {Distance} {Line style}`
|
||||||
* Format: `{Distance} {Line style} {Distance} {Line style} {Distance} {Line style} {Distance} {Line style}`
|
* Format: `{Distance} {Line style} {Distance} {Line style} {Distance} {Line style} {Distance} {Line style}`
|
||||||
|
|
||||||
Border are identical to padding, except that each distance field has a line
|
Borders are identical to padding, except that each distance field has a line
|
||||||
style property.
|
style property.
|
||||||
|
|
||||||
## Position
|
## Position
|
||||||
|
@ -392,9 +392,9 @@ south west | south | south east
|
||||||
|
|
||||||
* Format: `@{PROPERTY NAME}`
|
* Format: `@{PROPERTY NAME}`
|
||||||
|
|
||||||
A reference can point to another reference. Currently the maximum number of redirects is 20.
|
A reference can point to another reference. Currently, the maximum number of redirects is 20.
|
||||||
A property always refers to another property. It cannot be used for a subpart of the property.
|
A property always refers to another property. It cannot be used for a subpart of the property.
|
||||||
e.g. this is not valid:
|
For example, this is not valid:
|
||||||
|
|
||||||
```
|
```
|
||||||
highlight: bold @pink;
|
highlight: bold @pink;
|
||||||
|
@ -416,13 +416,13 @@ But this is:
|
||||||
|
|
||||||
* Format: `(horizontal|vertical)`
|
* Format: `(horizontal|vertical)`
|
||||||
|
|
||||||
Specify an orientation of the widget.
|
Specify the orientation of the widget.
|
||||||
|
|
||||||
## List of keywords
|
## List of keywords
|
||||||
|
|
||||||
* Format: `[ keyword, keyword ]`
|
* Format: `[ keyword, keyword ]`
|
||||||
|
|
||||||
A list starts with a '[' and ends with a ']'. The entries in the list are comma separated.
|
A list starts with a '[' and ends with a ']'. The entries in the list are comma-separated.
|
||||||
The `keyword` in the list refers to an widget name.
|
The `keyword` in the list refers to an widget name.
|
||||||
|
|
||||||
## ELEMENTS PATHS
|
## ELEMENTS PATHS
|
||||||
|
@ -454,30 +454,30 @@ The difference between dots and spaces is purely cosmetic. These are all the sam
|
||||||
|
|
||||||
## Name
|
## Name
|
||||||
|
|
||||||
The current widgets exist in **rofi**:
|
The current widgets available in **rofi**:
|
||||||
|
|
||||||
* `#window`
|
* `#window`
|
||||||
* `#window.box`: The container holding the window.
|
* `#window.box`: the container holding the window
|
||||||
* `#window.overlay`: The overlay widget.
|
* `#window.overlay`: the overlay widget
|
||||||
* `#window.mainbox`
|
* `#window.mainbox`
|
||||||
* `#window.mainbox.box`: The main vertical @box
|
* `#window.mainbox.box`: the main vertical @box
|
||||||
* `#window.mainbox.inputbar`
|
* `#window.mainbox.inputbar`
|
||||||
* `#window.mainbox.inputbar.box`: The horizontal @box packing the widgets.
|
* `#window.mainbox.inputbar.box`: the horizontal @box packing the widgets
|
||||||
* `#window.mainbox.inputbar.case-indicator`: The case/sort indicator @textbox
|
* `#window.mainbox.inputbar.case-indicator`: the case/sort indicator @textbox
|
||||||
* `#window.mainbox.inputbar.prompt`: The prompt @textbox
|
* `#window.mainbox.inputbar.prompt`: the prompt @textbox
|
||||||
* `#window.mainbox.inputbar.entry`: The main entry @textbox
|
* `#window.mainbox.inputbar.entry`: the main entry @textbox
|
||||||
* `#window.mainbox.listview`
|
* `#window.mainbox.listview`
|
||||||
* `#window.mainbox.listview.box`: The listview container.
|
* `#window.mainbox.listview.box`: the listview container
|
||||||
* `#window.mainbox.listview.scrollbar`: The listview scrollbar
|
* `#window.mainbox.listview.scrollbar`: the listview scrollbar
|
||||||
* `#window.mainbox.listview.element`: The entries in the listview
|
* `#window.mainbox.listview.element`: the entries in the listview
|
||||||
* `#window.mainbox.sidebar`
|
* `#window.mainbox.sidebar`
|
||||||
* `#window.mainbox.sidebar.box`: The main horizontal @box packing the buttons.
|
* `#window.mainbox.sidebar.box`: the main horizontal @box packing the buttons
|
||||||
* `#window.mainbox.sidebar.button`: The buttons @textbox for each mode.
|
* `#window.mainbox.sidebar.button`: the buttons @textbox for each mode
|
||||||
* `#window.mainbox.message`
|
* `#window.mainbox.message`
|
||||||
* `#window.mainbox.message.textbox`: The message textbox.
|
* `#window.mainbox.message.textbox`: the message textbox
|
||||||
* `#window.mainbox.message.box`: The box containing the message.
|
* `#window.mainbox.message.box`: the box containing the message
|
||||||
|
|
||||||
Note that these paths names match the default theme. Themes that provide a custom layout will have different
|
Note that these path names match the default theme. Themes that provide a custom layout will have different
|
||||||
element paths.
|
element paths.
|
||||||
|
|
||||||
|
|
||||||
|
@ -502,14 +502,14 @@ Currently only the entrybox and scrollbar have states:
|
||||||
`{visible modifier}.{state}`
|
`{visible modifier}.{state}`
|
||||||
|
|
||||||
Where `visible modifier` can be:
|
Where `visible modifier` can be:
|
||||||
* normal: No modification.
|
* normal: no modification
|
||||||
* selected: The entry is selected/highlighted by user.
|
* selected: the entry is selected/highlighted by user
|
||||||
* alternate: The entry is at an alternating row. (uneven row)
|
* alternate: the entry is at an alternating row (uneven row)
|
||||||
|
|
||||||
Where `state` is:
|
Where `state` is:
|
||||||
* normal: No modification.
|
* normal: no modification
|
||||||
* urgent: This entry is marked urgent.
|
* urgent: this entry is marked urgent
|
||||||
* active: This entry is marked active.
|
* active: this entry is marked active
|
||||||
|
|
||||||
These can be mixed.
|
These can be mixed.
|
||||||
|
|
||||||
|
@ -532,28 +532,28 @@ This allows the colors used for drawing the handle to be set independently.
|
||||||
|
|
||||||
## SUPPORTED PROPERTIES
|
## SUPPORTED PROPERTIES
|
||||||
|
|
||||||
The following properties are currently supports:
|
The following properties are currently supported:
|
||||||
|
|
||||||
### all widgets:
|
### all widgets:
|
||||||
|
|
||||||
* **padding**: padding
|
* **padding**: padding
|
||||||
Padding on the inside of the widget.
|
Padding on the inside of the widget
|
||||||
* **margin**: padding
|
* **margin**: padding
|
||||||
Margin on the outside of the widget.
|
Margin on the outside of the widget
|
||||||
* **border**: border
|
* **border**: border
|
||||||
Border around the widget (between padding and margin)/
|
Border around the widget (between padding and margin)/
|
||||||
* **border-radius**: padding
|
* **border-radius**: padding
|
||||||
Sets a radius on the corners of the borders.
|
Sets a radius on the corners of the borders.
|
||||||
* **background**: color
|
* **background**: color
|
||||||
Background color.
|
Background color
|
||||||
* **foreground**: color
|
* **foreground**: color
|
||||||
Foreground color.
|
Foreground color
|
||||||
* **index**: integer (This one does not inherits it value from the parent widget)
|
* **index**: integer (This one does not inherit it value from the parent widget)
|
||||||
|
|
||||||
### window:
|
### window:
|
||||||
|
|
||||||
* **font**: string
|
* **font**: string
|
||||||
The font used in the window.
|
The font used in the window
|
||||||
|
|
||||||
* **transparency**: string
|
* **transparency**: string
|
||||||
Indicating if transparency should be used and what type:
|
Indicating if transparency should be used and what type:
|
||||||
|
@ -563,17 +563,16 @@ The following properties are currently supports:
|
||||||
**Path** to png file - Use an image.
|
**Path** to png file - Use an image.
|
||||||
|
|
||||||
* **position**: position
|
* **position**: position
|
||||||
The place of the anchor on the monitor.
|
The place of the anchor on the monitor
|
||||||
* **anchor**: anchor
|
* **anchor**: anchor
|
||||||
The anchor position on the window.
|
The anchor position on the window
|
||||||
* **fullscreen**: boolean
|
* **fullscreen**: boolean
|
||||||
Window is fullscreen.
|
Window is fullscreen.
|
||||||
* **width**: distance
|
* **width**: distance
|
||||||
The width of the window.
|
The width of the window
|
||||||
* **x-offset**: distance
|
* **x-offset**: distance
|
||||||
* **y-offset**: distance
|
* **y-offset**: distance
|
||||||
The offset of the window to the anchor point.
|
The offset of the window to the anchor point, allowing you to push the window left/right/up/down
|
||||||
Allowing you to push the window left/right/up/down.
|
|
||||||
|
|
||||||
|
|
||||||
### scrollbar:
|
### scrollbar:
|
||||||
|
@ -594,28 +593,28 @@ The following properties are currently supports:
|
||||||
|
|
||||||
* **background**: color
|
* **background**: color
|
||||||
* **foreground**: color
|
* **foreground**: color
|
||||||
* **font**: The font used by this textbox. (string)
|
* **font**: the font used by this textbox (string)
|
||||||
* **str**: The string to display by this textbox. (string)
|
* **str**: the string to display by this textbox (string)
|
||||||
* **vertical-align**: Vertical alignment of the text. (0 top, 1 bottom)
|
* **vertical-align**: vertical alignment of the text (`0` top, `1` bottom)
|
||||||
* **horizontal-align**: Horizontal alignment of the text. (0 left, 1 right)
|
* **horizontal-align**: horizontal alignment of the text (`0` left, `1` right)
|
||||||
* **text**: The text color to use (falls back to foreground if not set)
|
* **text**: the text color to use (falls back to foreground if not set)
|
||||||
* **highlight**: Text Style {color}
|
* **highlight**: text style {color}
|
||||||
Color is optional, multiple highlight styles can be added like: bold underline italic #000000;
|
color is optional, multiple highlight styles can be added like: bold underline italic #000000;
|
||||||
* **width**: Override the desired width for the textbox.
|
* **width**: override the desired width for the textbox
|
||||||
|
|
||||||
### listview:
|
### listview:
|
||||||
* **columns**: integer
|
* **columns**: integer
|
||||||
Number of columns to show (atleast 1).
|
Number of columns to show (at least 1)
|
||||||
* **fixed-height**: boolean
|
* **fixed-height**: boolean
|
||||||
Always show `lines` rows, even if less elements are available.
|
Always show `lines` rows, even if fewer elements are available.
|
||||||
* **dynamic**: boolean
|
* **dynamic**: boolean
|
||||||
If the size should changed when filtering the list, or if it should keep the original height.
|
`True` if the size should change when filtering the list, `False` if it should keep the original height.
|
||||||
* **scrollbar**: boolean
|
* **scrollbar**: boolean
|
||||||
If the scrollbar should be enabled/disabled.
|
If the scrollbar should be enabled/disabled.
|
||||||
* **scrollbar-width**: distance
|
* **scrollbar-width**: distance
|
||||||
Width of the scrollbar
|
Width of the scrollbar
|
||||||
* **cycle**: boolean
|
* **cycle**: boolean
|
||||||
When navigating it should wrap around.
|
When navigating, it should wrap around
|
||||||
* **spacing**: distance
|
* **spacing**: distance
|
||||||
Spacing between the elements (both vertical and horizontal)
|
Spacing between the elements (both vertical and horizontal)
|
||||||
* **lines**: integer
|
* **lines**: integer
|
||||||
|
@ -626,15 +625,15 @@ The following properties are currently supports:
|
||||||
## Layout
|
## Layout
|
||||||
|
|
||||||
The new format allows the layout of the **rofi** window to be tweaked extensively.
|
The new format allows the layout of the **rofi** window to be tweaked extensively.
|
||||||
For each widget the themer can specify padding, margin, border, font and more.
|
For each widget, the themer can specify padding, margin, border, font, and more.
|
||||||
It even allows, as advanced feature, to pack widgets in a custom structure.
|
It even allows, as an advanced feature, to pack widgets in a custom structure.
|
||||||
|
|
||||||
### Basic structure
|
### Basic structure
|
||||||
|
|
||||||
The whole view is build up out of boxes that pack other boxes or widgets.
|
The whole view is made out of boxes that pack other boxes or widgets.
|
||||||
The box can be either vertical or horizontal. This is loosely inspired [GTK](http://gtk.org/).
|
The box can be vertical or horizontal. This is loosely inspired by [GTK](http://gtk.org/).
|
||||||
|
|
||||||
The current layout of **rofi** is structured as follow:
|
The current layout of **rofi** is structured as follows:
|
||||||
|
|
||||||
```
|
```
|
||||||
|------------------------------------------------------------------------------------|
|
|------------------------------------------------------------------------------------|
|
||||||
|
@ -667,13 +666,13 @@ The current layout of **rofi** is structured as follow:
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
> ci is case-indicator
|
> ci is the case-indicator
|
||||||
|
|
||||||
### Advanced layout
|
### Advanced layout
|
||||||
|
|
||||||
The layout of **rofi** can be tweaked by packing the 'fixed' widgets in a custom structure.
|
The layout of **rofi** can be tweaked by packing the 'fixed' widgets in a custom structure.
|
||||||
|
|
||||||
The following widgets names are 'fixed' widgets with functionality:
|
The following widgets are fixed, as they provide core **rofi** functionality:
|
||||||
|
|
||||||
* prompt
|
* prompt
|
||||||
* entry
|
* entry
|
||||||
|
@ -682,22 +681,23 @@ The following widgets names are 'fixed' widgets with functionality:
|
||||||
* listview
|
* listview
|
||||||
* sidebar
|
* sidebar
|
||||||
|
|
||||||
The following exists and automatically pack a subset of the widgets as in the above picture:
|
The following keywords are defined and can be used to automatically pack a subset of the widgets.
|
||||||
|
These are used in the default theme as depicted in the figure above.
|
||||||
|
|
||||||
* mainbox
|
* mainbox
|
||||||
Packs: `inputbar, message, listview, sidebar`
|
Packs: `inputbar, message, listview, sidebar`
|
||||||
* inputbar
|
* inputbar
|
||||||
Packs: `prompt,entry,case-indicator`
|
Packs: `prompt,entry,case-indicator`
|
||||||
|
|
||||||
Any widget name starting with `textbox` is a textbox widget, all others are a
|
Any widget name starting with `textbox` is a textbox widget, others are box widgets and can pack other widgets.
|
||||||
box widget and can pack other widgets. To specify children, set the children
|
To specify children, set the `children`
|
||||||
property (this always happens on the `box` child, see example below):
|
property (this always happens on the `box` child, see example below):
|
||||||
|
|
||||||
```
|
```
|
||||||
children: [prompt,entry,case-indicator];
|
children: [prompt,entry,case-indicator];
|
||||||
```
|
```
|
||||||
|
|
||||||
The theme needs to be update to match the hierarchy specified.
|
The theme needs to be updated to match the hierarchy specified.
|
||||||
|
|
||||||
Below is an example of a theme emulating dmenu:
|
Below is an example of a theme emulating dmenu:
|
||||||
|
|
||||||
|
@ -745,7 +745,7 @@ Below is an example of a theme emulating dmenu:
|
||||||
|
|
||||||
### Padding and margin
|
### Padding and margin
|
||||||
|
|
||||||
Just like css **rofi** uses the box model for each widget.
|
Just like CSS, **rofi** uses the box model for each widget.
|
||||||
|
|
||||||
```
|
```
|
||||||
|-------------------------------------------------------------------|
|
|-------------------------------------------------------------------|
|
||||||
|
@ -770,17 +770,17 @@ Explanation of the different parts:
|
||||||
* Border - A border that goes around the padding and content.
|
* Border - A border that goes around the padding and content.
|
||||||
The border use the foreground color of the widget.
|
The border use the foreground color of the widget.
|
||||||
* Margin - Clears an area outside the border.
|
* Margin - Clears an area outside the border.
|
||||||
The margin is transparent
|
The margin is transparent.
|
||||||
|
|
||||||
The box model allows us to add a border around elements, and to define space between elements.
|
The box model allows us to add a border around elements, and to define space between elements.
|
||||||
|
|
||||||
The size, on each side, of margin, border and padding can be set.
|
The size of each margin, border, and padding can be set.
|
||||||
For the border a linestyle and radius can be set.
|
For the border, a linestyle and radius can be set.
|
||||||
|
|
||||||
### Spacing
|
### Spacing
|
||||||
|
|
||||||
Widgets that can pack more then one child widget, currently box and listview, the `spacing` property exists.
|
Widgets that can pack more then one child widget (currently box and listview) have the `spacing` property.
|
||||||
This determines the space between the packed widgets (both in horizontal as vertical direction).
|
This property sets the distance between the packed widgets (both horizontally and vertically).
|
||||||
|
|
||||||
```
|
```
|
||||||
|---------------------------------------|
|
|---------------------------------------|
|
||||||
|
@ -796,7 +796,7 @@ This determines the space between the packed widgets (both in horizontal as vert
|
||||||
|
|
||||||
### Advanced box packing
|
### Advanced box packing
|
||||||
|
|
||||||
More dynamic spacing can be achieved by adding dummy widgets, for example to get one widget centered:
|
More dynamic spacing can be achieved by adding dummy widgets, for example to make one widget centered:
|
||||||
|
|
||||||
```
|
```
|
||||||
|--------------------------------------------|
|
|--------------------------------------------|
|
||||||
|
@ -810,13 +810,13 @@ More dynamic spacing can be achieved by adding dummy widgets, for example to get
|
||||||
|--------------------------------------------|
|
|--------------------------------------------|
|
||||||
```
|
```
|
||||||
|
|
||||||
If both dummy widgets are set to expanding, `child` will be centered. Depending on the `expand` flag of child the
|
If both dummy widgets are set to expand, `child` will be centered. Depending on the `expand` flag of child the
|
||||||
remaining space will be equally divided between both dummy and child widget (expand enabled), or both dummy widgets
|
remaining space will be equally divided between both dummy and child widget (expand enabled), or both dummy widgets
|
||||||
(expand disabled).
|
(expand disabled).
|
||||||
|
|
||||||
## DEBUGGING
|
## DEBUGGING
|
||||||
|
|
||||||
To get debug information from the parser run rofi like:
|
To get debug information from the parser, run rofi like:
|
||||||
|
|
||||||
```
|
```
|
||||||
G_MESSAGES_DEBUG=Parser rofi -show run
|
G_MESSAGES_DEBUG=Parser rofi -show run
|
||||||
|
@ -830,13 +830,13 @@ To see the elements queried during running, run:
|
||||||
G_MESSAGES_DEBUG=Theme rofi -show run
|
G_MESSAGES_DEBUG=Theme rofi -show run
|
||||||
```
|
```
|
||||||
|
|
||||||
To test minor changes, part of the theme can be passed on the commandline, for example to set it fullscreen:
|
To test minor changes, part of the theme can be passed on the command line, for example to set it to full-screen:
|
||||||
|
|
||||||
```
|
```
|
||||||
rofi -theme-str '#window { fullscreen:true;}' -show run
|
rofi -theme-str '#window { fullscreen:true;}' -show run
|
||||||
```
|
```
|
||||||
|
|
||||||
To print the current theme run:
|
To print the current theme, run:
|
||||||
|
|
||||||
```
|
```
|
||||||
rofi -dump-theme
|
rofi -dump-theme
|
||||||
|
@ -845,10 +845,9 @@ rofi -dump-theme
|
||||||
|
|
||||||
## EXAMPLES
|
## EXAMPLES
|
||||||
|
|
||||||
Several examples are installed together with **rofi**. These can be found in `{datadir}/rofi/themes/` where
|
Several examples are installed together with **rofi**. These can be found in `{datadir}/rofi/themes/`, where
|
||||||
`{datadir}` is the install path of **rofi** data. When installed using a package manager this is usually: `/usr/share/`.
|
`{datadir}` is the install path of **rofi** data. When installed using a package manager, this is usually: `/usr/share/`.
|
||||||
|
|
||||||
## SEE ALSO
|
## SEE ALSO
|
||||||
|
|
||||||
rofi(1)
|
rofi(1)
|
||||||
|
|
||||||
|
|
|
@ -11,18 +11,18 @@
|
||||||
|
|
||||||
## DESCRIPTION
|
## DESCRIPTION
|
||||||
|
|
||||||
**rofi** is an X11 popup window switcher, run dialog, dmenu replacement and more. It focuses on
|
**rofi** is an X11 pop-up window switcher, run dialog, dmenu replacement, and more. It focuses on
|
||||||
being fast to use and have minimal distraction. It supports keyboard and mouse navigation, type to
|
being fast to use and have minimal distraction. It supports keyboard and mouse navigation, type to
|
||||||
filter, tokenized search and more.
|
filter, tokenized search and more.
|
||||||
|
|
||||||
|
|
||||||
## USAGE
|
## USAGE
|
||||||
|
|
||||||
**rofi** main functionality is to assist in your workflow, allowing you to quickly (with a few keystrokes) switch
|
**rofi**'s main functionality is to assist in your workflow, allowing you to quickly switch
|
||||||
between windows, start applications or log into a remote machine via ssh. There are different modi for different type of
|
between windows, start applications or log into a remote machine via ssh. There are different *modi* for different types of
|
||||||
actions.
|
actions.
|
||||||
|
|
||||||
**rofi** can also function as (drop in) replacement for **dmenu(1)**.
|
**rofi** can also function as (drop-in) replacement for **dmenu(1)**.
|
||||||
|
|
||||||
### Running rofi
|
### Running rofi
|
||||||
|
|
||||||
|
@ -31,17 +31,15 @@ To show the run dialog:
|
||||||
|
|
||||||
rofi -show run
|
rofi -show run
|
||||||
|
|
||||||
|
|
||||||
### Emulating dmenu
|
### Emulating dmenu
|
||||||
|
|
||||||
**rofi** can emulate **dmenu(1)** (a dynamic menu for X) when launched with the `-dmenu` flag.
|
**rofi** can emulate **dmenu(1)** (a dynamic menu for X) when launched with the `-dmenu` flag.
|
||||||
|
|
||||||
The "official" website for `dmenu` can be found [here](http://tools.suckless.org/dmenu/).
|
The website for `dmenu` can be found [here](http://tools.suckless.org/dmenu/).
|
||||||
|
|
||||||
**rofi** does not aim to be 100% compatible with dmenu. There are simply to many different flavours of dmenu.
|
|
||||||
The idea is the basic usage commandline flags are obeyed, theme related flags are not.
|
|
||||||
Besides this, **rofi** offers some extended features (like multi-select, highlighting, message bar, extra key-bindings).
|
|
||||||
|
|
||||||
|
**rofi** does not aim to be 100% compatible with dmenu. There are simply too many different flavors of dmenu.
|
||||||
|
The idea is that the basic usage command-line flags are obeyed, theme-related flags are not.
|
||||||
|
Besides, **rofi** offers some extended features (like multi-select, highlighting, message bar, extra key bindings).
|
||||||
|
|
||||||
### Display Error message
|
### Display Error message
|
||||||
|
|
||||||
|
@ -55,7 +53,7 @@ Markup support can be enabled, see CONFIGURATION options.
|
||||||
|
|
||||||
There are currently three methods of setting configuration options (evaluated in order below):
|
There are currently three methods of setting configuration options (evaluated in order below):
|
||||||
|
|
||||||
* System configuration file (f.e. /etc/rofi.conf).
|
* System configuration file (for example `/etc/rofi.conf`).
|
||||||
* Xresources: A method of storing key values in the Xserver. See
|
* Xresources: A method of storing key values in the Xserver. See
|
||||||
[here](https://en.wikipedia.org/wiki/X_resources) for more information.
|
[here](https://en.wikipedia.org/wiki/X_resources) for more information.
|
||||||
* Rasi theme file: The new *theme* format can be used to set configuration values.
|
* Rasi theme file: The new *theme* format can be used to set configuration values.
|
||||||
|
@ -69,24 +67,23 @@ There are currently three methods of setting configuration options (evaluated in
|
||||||
**NOTE**: In version 1.4.0 we support configuration in a new format, a config for this can be generated by: `rofi
|
**NOTE**: In version 1.4.0 we support configuration in a new format, a config for this can be generated by: `rofi
|
||||||
-dump-config`
|
-dump-config`
|
||||||
|
|
||||||
The Xresources file expects options starting with `rofi.` followed by it's name. An Example to set the number of lines:
|
The Xresources file expects options starting with `rofi.` followed by its name. An example to set the number of lines:
|
||||||
|
|
||||||
rofi.lines: 10
|
rofi.lines: 10
|
||||||
|
|
||||||
Command line options override settings from Xresources file. The same option set as argument:
|
Command line options override settings from Xresources file. The same option set as argument — prefixed with a '-':
|
||||||
prefixed with a '-':
|
|
||||||
|
|
||||||
rofi -lines 10
|
rofi -lines 10
|
||||||
|
|
||||||
To get a list of available options, formatted as Xresources entries run:
|
To get a list of available options formatted as Xresources entries, run:
|
||||||
|
|
||||||
rofi -dump-xresources
|
rofi -dump-xresources
|
||||||
|
|
||||||
The configuration system supports the following types:
|
The configuration system supports the following types:
|
||||||
|
|
||||||
* String
|
* string
|
||||||
* Integer (signed and unsigned)
|
* integer (signed and unsigned)
|
||||||
* Char
|
* char
|
||||||
* Boolean
|
* Boolean
|
||||||
|
|
||||||
Boolean options have a non-default command-line syntax. Example to enable option X:
|
Boolean options have a non-default command-line syntax. Example to enable option X:
|
||||||
|
@ -109,7 +106,7 @@ These include dynamic (run-time generated) options.
|
||||||
`-dump-xresources`
|
`-dump-xresources`
|
||||||
|
|
||||||
Dump the current active configuration in Xresources format to the command-line.
|
Dump the current active configuration in Xresources format to the command-line.
|
||||||
This does not validate all passed values (e.g. colors).
|
This does not validate all passed values (for example, colors).
|
||||||
|
|
||||||
`-threads` *num*
|
`-threads` *num*
|
||||||
|
|
||||||
|
@ -123,7 +120,7 @@ Specify the number of threads **rofi** should use:
|
||||||
|
|
||||||
Run **rofi** in dmenu mode. This allows for interactive scripts.
|
Run **rofi** in dmenu mode. This allows for interactive scripts.
|
||||||
In `dmenu` mode, **rofi** reads from STDIN, and output to STDOUT.
|
In `dmenu` mode, **rofi** reads from STDIN, and output to STDOUT.
|
||||||
A simple example, displaying 3 pre-defined options:
|
A simple example, displaying three pre-defined options:
|
||||||
|
|
||||||
echo -e "Option #1\nOption #2\nOption #3" | rofi -dmenu
|
echo -e "Option #1\nOption #2\nOption #3" | rofi -dmenu
|
||||||
|
|
||||||
|
@ -143,9 +140,9 @@ To show the run-dialog:
|
||||||
|
|
||||||
`-modi` *mode1,mode1*
|
`-modi` *mode1,mode1*
|
||||||
|
|
||||||
Specify a ordered, comma separated list of modes to enable.
|
Specify an ordered, comma-separated list of modes to enable.
|
||||||
Enabled modes can be changed at runtime. Default key is Ctrl+Tab.
|
Enabled modes can be changed at runtime. Default key is Ctrl+Tab.
|
||||||
If no modes are specified all modes will be enabled.
|
If no modes are specified, all modes will be enabled.
|
||||||
To only show the run and ssh launcher:
|
To only show the run and ssh launcher:
|
||||||
|
|
||||||
rofi -modi "run,ssh" -show run
|
rofi -modi "run,ssh" -show run
|
||||||
|
@ -168,7 +165,7 @@ This option can be changed at run-time using the `-kb-toggle-case-sensitivity` k
|
||||||
|
|
||||||
`-cycle`
|
`-cycle`
|
||||||
|
|
||||||
Cycle through the results list. Default is 'true'.
|
Cycle thru the result list. Default is 'true'.
|
||||||
|
|
||||||
`-filter` *filter*
|
`-filter` *filter*
|
||||||
|
|
||||||
|
@ -176,7 +173,7 @@ Filter the list by setting text in input bar to *filter*
|
||||||
|
|
||||||
`-config` *filename*
|
`-config` *filename*
|
||||||
|
|
||||||
Load alternative configuration file.
|
Load an alternative configuration file.
|
||||||
|
|
||||||
`-scroll-method` *method*
|
`-scroll-method` *method*
|
||||||
|
|
||||||
|
@ -196,8 +193,7 @@ Disable plugin loading.
|
||||||
|
|
||||||
`-plugin-path` *directory*
|
`-plugin-path` *directory*
|
||||||
|
|
||||||
Specify the directory where *rofi* should look for plugins.
|
Specify the directory where **rofi** should look for plugins.
|
||||||
|
|
||||||
|
|
||||||
### Matching
|
### Matching
|
||||||
|
|
||||||
|
@ -206,10 +202,10 @@ Specify the directory where *rofi* should look for plugins.
|
||||||
Specify the matching algorithm used.
|
Specify the matching algorithm used.
|
||||||
Current the following methods are supported.
|
Current the following methods are supported.
|
||||||
|
|
||||||
* **normal**: Match the int string.
|
* **normal**: match the int string
|
||||||
* **regex**: Match a regex input.
|
* **regex**: match a regex input
|
||||||
* **glob**: Match a glob pattern.
|
* **glob**: match a glob pattern
|
||||||
* **fuzzy**: Do a fuzzy match.
|
* **fuzzy**: do a fuzzy match
|
||||||
|
|
||||||
Default: *normal*
|
Default: *normal*
|
||||||
|
|
||||||
|
@ -222,7 +218,7 @@ Tokenize the input.
|
||||||
### Layout
|
### Layout
|
||||||
|
|
||||||
Most of the following options are **deprecated** and should not be used. Please use the new theme format to customize
|
Most of the following options are **deprecated** and should not be used. Please use the new theme format to customize
|
||||||
rofi. More information about the new format can be found in the **rofi-theme(5)** manpage.
|
**rofi**. More information about the new format can be found in the **rofi-theme(5)** manpage.
|
||||||
|
|
||||||
`-lines`
|
`-lines`
|
||||||
|
|
||||||
|
@ -246,15 +242,15 @@ Set width of menu. `[value]` is specified in percentage.
|
||||||
|
|
||||||
rofi -width 60
|
rofi -width 60
|
||||||
|
|
||||||
If `[value]` is larger then 100, size is set in pixels. Example to span a full hd monitor:
|
If `[value]` is larger then 100, size is set in pixels. Example to span a full-HD monitor:
|
||||||
|
|
||||||
rofi -width 1920
|
rofi -width 1920
|
||||||
|
|
||||||
If `[value]` is negative, it tries to estimates a character width. To show 30 characters on a row:
|
If `[value]` is negative, it tries to estimates a character width. To show 30 characters in a row:
|
||||||
|
|
||||||
rofi -width -30
|
rofi -width -30
|
||||||
|
|
||||||
Character width is a rough estimation, and might not be correct, but should work for most monospaced fonts.
|
Character width is a rough estimate, and might not be correct, but should work for most monospaced fonts.
|
||||||
|
|
||||||
Default: *50*
|
Default: *50*
|
||||||
|
|
||||||
|
@ -280,13 +276,13 @@ Default: *5*
|
||||||
|
|
||||||
`-fullscreen`
|
`-fullscreen`
|
||||||
|
|
||||||
Use the full screen height and width.
|
Use the full-screen height and width.
|
||||||
|
|
||||||
`-sidebar-mode`
|
`-sidebar-mode`
|
||||||
|
|
||||||
Open in sidebar-mode. In this mode a list of all enabled modes is shown at the bottom.
|
Open in sidebar-mode. In this mode a list of all enabled modes is shown at the bottom.
|
||||||
(See `-modi` option)
|
(See `-modi` option)
|
||||||
To show sidebar use:
|
To show sidebar, use:
|
||||||
|
|
||||||
rofi -show run -sidebar-mode -lines 0
|
rofi -show run -sidebar-mode -lines 0
|
||||||
|
|
||||||
|
@ -303,19 +299,19 @@ When one entry is left, automatically select it.
|
||||||
`-monitor` *name*
|
`-monitor` *name*
|
||||||
|
|
||||||
Select monitor to display **rofi** on.
|
Select monitor to display **rofi** on.
|
||||||
As input it accepts: *primary* (if primary output is set), the *xrandr* output name or integer number (in order of
|
It accepts as input: *primary* (if primary output is set), the *xrandr* output name, or integer number (in order of
|
||||||
detection). Negative numbers are handled differently:
|
detection). Negative numbers are handled differently:
|
||||||
|
|
||||||
* **-1**: the currently focused monitor.
|
* **-1**: the currently focused monitor.
|
||||||
* **-2**: the currently focused window (i.e. rofi will be displayed on top of the focused window).
|
* **-2**: the currently focused window (that is, **rofi** will be displayed on top of the focused window).
|
||||||
* **-3**: Position at mouse (overrides the location setting to get normal context menu
|
* **-3**: Position at mouse (overrides the location setting to get normal context menu
|
||||||
behaviour.)
|
behavior.)
|
||||||
* **-4**: the monitor with the focused window.
|
* **-4**: the monitor with the focused window.
|
||||||
* **-5**: the monitor that shows the mouse pointer.
|
* **-5**: the monitor that shows the mouse pointer.
|
||||||
|
|
||||||
Default: *-5*
|
Default: *-5*
|
||||||
|
|
||||||
See `rofi -h` output for the detected monitors, their position and size.
|
See `rofi -h` output for the detected monitors, their position, and size.
|
||||||
|
|
||||||
|
|
||||||
`-theme` *filename*
|
`-theme` *filename*
|
||||||
|
@ -326,25 +322,23 @@ Path to the new theme file format. This overrides the old theme settings.
|
||||||
|
|
||||||
Allow theme parts to be specified on the command line as an override.
|
Allow theme parts to be specified on the command line as an override.
|
||||||
|
|
||||||
For example
|
For example:
|
||||||
|
|
||||||
rofi -theme-str '#window { fullscreen: true; }'
|
rofi -theme-str '#window { fullscreen: true; }'
|
||||||
|
|
||||||
This option can be specified multiple times.
|
This option can be specified multiple times.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
`-dpi` *number*
|
`-dpi` *number*
|
||||||
|
|
||||||
Override the default DPI setting.
|
Override the default DPI setting.
|
||||||
If set to `0` it tries to auto-detect based on X11 screen size. (Similar to i3 and GTK)
|
If set to `0`, it tries to auto-detect based on X11 screen size (similar to i3 and GTK).
|
||||||
If set to `1` it tries to auto-detect based on monitor (rofi is displayed on) size. (Similar to latest QT5)
|
If set to `1`, it tries to auto-detect based on the size of the monitor that rofi is displayed on (similar to latest Qt 5).
|
||||||
|
|
||||||
### PATTERN setting
|
### PATTERN setting
|
||||||
|
|
||||||
`-terminal`
|
`-terminal`
|
||||||
|
|
||||||
Specify what terminal to start.
|
Specify which terminal to start.
|
||||||
|
|
||||||
rofi -terminal xterm
|
rofi -terminal xterm
|
||||||
|
|
||||||
|
@ -358,7 +352,6 @@ Override the used ssh client.
|
||||||
Pattern: *{ssh-client}*
|
Pattern: *{ssh-client}*
|
||||||
Default: *ssh*
|
Default: *ssh*
|
||||||
|
|
||||||
|
|
||||||
### SSH settings
|
### SSH settings
|
||||||
|
|
||||||
`-ssh-command` *cmd*
|
`-ssh-command` *cmd*
|
||||||
|
@ -400,9 +393,9 @@ Default: *{terminal} -e {cmd}*
|
||||||
|
|
||||||
`-run-list-command` *cmd*
|
`-run-list-command` *cmd*
|
||||||
|
|
||||||
If set, use an external tool to generate list of executable commands. Uses 'run-command'
|
If set, use an external tool to generate list of executable commands. Uses `run-command`.
|
||||||
|
|
||||||
Default: *""*
|
Default: *{cmd}*
|
||||||
|
|
||||||
### Window switcher settings
|
### Window switcher settings
|
||||||
|
|
||||||
|
@ -414,13 +407,13 @@ Format what is being displayed for windows.
|
||||||
|
|
||||||
*field*:
|
*field*:
|
||||||
|
|
||||||
* **w**: Desktop name
|
* **w**: desktop name
|
||||||
* **t**: Title of window
|
* **t**: title of window
|
||||||
* **n**: Name
|
* **n**: name
|
||||||
* **r**: Role
|
* **r**: role
|
||||||
* **c**: Class
|
* **c**: class
|
||||||
|
|
||||||
*len*: maximum field length (0 for auto-size). If length negative and window *width* is negative field length is *width - len*.
|
*len*: maximum field length (0 for auto-size). If length and window *width* are negative, field length is *width - len*.
|
||||||
if length is positive, the entry will be truncated or padded to fill that length.
|
if length is positive, the entry will be truncated or padded to fill that length.
|
||||||
|
|
||||||
|
|
||||||
|
@ -428,7 +421,7 @@ default: {w} {c} {t}
|
||||||
|
|
||||||
`-window-command` *cmd*
|
`-window-command` *cmd*
|
||||||
|
|
||||||
Set command to execute on selected window for custom action.
|
Set command to execute on selected window for a custom action.
|
||||||
See *PATTERN*.
|
See *PATTERN*.
|
||||||
|
|
||||||
Default: *"xkill -id {window}"*
|
Default: *"xkill -id {window}"*
|
||||||
|
@ -439,12 +432,12 @@ Default: *"xkill -id {window}"*
|
||||||
|
|
||||||
The modi to combine in combi mode.
|
The modi to combine in combi mode.
|
||||||
For syntax to see `-modi`.
|
For syntax to see `-modi`.
|
||||||
To get one merge view, of window,run,ssh:
|
To get one merge view, of `window`,`run`, and `ssh`:
|
||||||
|
|
||||||
rofi -show combi -combi-modi "window,run,ssh" -modi combi
|
rofi -show combi -combi-modi "window,run,ssh" -modi combi
|
||||||
|
|
||||||
Notes: The I3 Window manager does not like commas in the command when specifying an exec command.
|
Notes: The I3 Window manager does not like commas in the command when specifying an exec command.
|
||||||
For that case '#' can be used as an separator.
|
For that case '#' can be used as a separator.
|
||||||
|
|
||||||
### History and Sorting
|
### History and Sorting
|
||||||
|
|
||||||
|
@ -456,20 +449,20 @@ Disable history
|
||||||
`-levenshtein-sort` to enable
|
`-levenshtein-sort` to enable
|
||||||
`-no-levenshtein-sort` to disable
|
`-no-levenshtein-sort` to disable
|
||||||
|
|
||||||
When searching sort the result based on levenshtein distance.
|
When searching, sort the result based on levenshtein distance.
|
||||||
This setting can be changed at runtime, see `-kb-toggle-sort`.
|
This setting can be changed at runtime (see `-kb-toggle-sort`).
|
||||||
|
|
||||||
### Dmenu specific
|
### Dmenu specific
|
||||||
|
|
||||||
`-sep` *separator*
|
`-sep` *separator*
|
||||||
|
|
||||||
Separator for dmenu. Example: To show list 'a' to 'e' with '|' as separator:
|
Separator for dmenu. Example: To show a list of 'a' to 'e' with '|' as a separator:
|
||||||
|
|
||||||
echo "a|b|c|d|e" | rofi -sep '|' -dmenu
|
echo "a|b|c|d|e" | rofi -sep '|' -dmenu
|
||||||
|
|
||||||
`-p` *prompt*
|
`-p` *prompt*
|
||||||
|
|
||||||
Specify the prompt to show in dmenu mode. E.g. select monkey a,b,c,d or e.
|
Specify the prompt to show in dmenu mode. For example, select 'monkey', a,b,c,d, or e.
|
||||||
|
|
||||||
echo "a|b|c|d|e" | rofi -sep '|' -dmenu -p "monkey:"
|
echo "a|b|c|d|e" | rofi -sep '|' -dmenu -p "monkey:"
|
||||||
|
|
||||||
|
@ -495,7 +488,7 @@ Makes dmenu searches case-insensitive
|
||||||
|
|
||||||
`-a` *X*
|
`-a` *X*
|
||||||
|
|
||||||
Active row, mark row X as active. (starting at 0)
|
Active row, mark row X as active (starting at 0).
|
||||||
You can specify single element: -a 3
|
You can specify single element: -a 3
|
||||||
A range: -a 3-8
|
A range: -a 3-8
|
||||||
or a set of rows: -a 0,2
|
or a set of rows: -a 0,2
|
||||||
|
@ -503,7 +496,7 @@ or any combination: -a 0,2-3,9
|
||||||
|
|
||||||
`-u` *X*
|
`-u` *X*
|
||||||
|
|
||||||
Urgent row, mark row X as urgent. (starting at 0)
|
Urgent row, mark row X as urgent (starting at 0).
|
||||||
You can specify single element: -u 3
|
You can specify single element: -u 3
|
||||||
A range: -u 3-8
|
A range: -u 3-8
|
||||||
or a set of rows: -u 0,2
|
or a set of rows: -u 0,2
|
||||||
|
@ -521,14 +514,14 @@ This mode returns directly when no entries given.
|
||||||
|
|
||||||
`-format` *format*
|
`-format` *format*
|
||||||
|
|
||||||
Allows the output of dmenu to be customized (N is total number of input entries):
|
Allows the output of dmenu to be customized (N is the total number of input entries):
|
||||||
|
|
||||||
* 's' selected string.
|
* 's' selected string
|
||||||
* 'i' index (0 - (N-1)).
|
* 'i' index (0 - (N-1))
|
||||||
* 'd' index (1 - N).
|
* 'd' index (1 - N)
|
||||||
* 'q' quote string.
|
* 'q' quote string
|
||||||
* 'f' filter string (user input).
|
* 'f' filter string (user input)
|
||||||
* 'F' quoted filter string (user input).
|
* 'F' quoted filter string (user input)
|
||||||
|
|
||||||
Default: 's'
|
Default: 's'
|
||||||
|
|
||||||
|
@ -561,7 +554,7 @@ Hide the input text. This should not be considered secure!
|
||||||
|
|
||||||
`-markup-rows`
|
`-markup-rows`
|
||||||
|
|
||||||
Tell **rofi** that DMenu input is pango markup encoded and should be rendered.
|
Tell **rofi** that DMenu input is pango markup encoded, and should be rendered.
|
||||||
See [here](https://developer.gnome.org/pango/stable/PangoMarkupFormat.html) for details about pango markup.
|
See [here](https://developer.gnome.org/pango/stable/PangoMarkupFormat.html) for details about pango markup.
|
||||||
|
|
||||||
|
|
||||||
|
@ -571,14 +564,14 @@ Allow multiple lines to be selected. Adds a small selection indicator to the lef
|
||||||
|
|
||||||
`-sync`
|
`-sync`
|
||||||
|
|
||||||
Force rofi mode to first read all data from stdin before showing selection window. This is how original dmenu behaviour.
|
Force rofi mode to first read all data from stdin before showing the selection window. This is original dmenu behavior.
|
||||||
|
|
||||||
Note: the default asynchronous mode will also be automatically disabled if used with conflicting options
|
Note: the default asynchronous mode will also be automatically disabled if used with conflicting options,
|
||||||
such as `-dump`, `-only-match` or `-auto-select`
|
such as `-dump`, `-only-match` or `-auto-select`.
|
||||||
|
|
||||||
`-async-pre-read` *number*
|
`-async-pre-read` *number*
|
||||||
|
|
||||||
Reads the first 25 entries blocking. Then switches to async mode. This makes it feel more 'snappy'.
|
Reads the first 25 entries blocking, then switches to async mode. This makes it feel more 'snappy'.
|
||||||
|
|
||||||
*default*: 25
|
*default*: 25
|
||||||
|
|
||||||
|
@ -586,15 +579,14 @@ Reads the first 25 entries blocking. Then switches to async mode. This makes it
|
||||||
|
|
||||||
`-e` *message*
|
`-e` *message*
|
||||||
|
|
||||||
Popup a message dialog (used internally for showing errors) with *message*.
|
Pops up a message dialog (used internally for showing errors) with *message*.
|
||||||
Message can be multi-line.
|
Message can be multi-line.
|
||||||
|
|
||||||
### Other
|
### Other
|
||||||
|
|
||||||
`-pid` *path*
|
`-pid` *path*
|
||||||
|
|
||||||
Make **rofi** create a pid file and check this on startup. Avoiding multiple copies running
|
Make **rofi** create a pid file and check this on startup. The pid file prevents multiple **rofi** instances from running simultaneously. This is useful when running **rofi** from a key-binding daemon.
|
||||||
simultaneously. This is useful when running **rofi** from a keybinding daemon.
|
|
||||||
|
|
||||||
`-fake-transparency`
|
`-fake-transparency`
|
||||||
|
|
||||||
|
@ -618,7 +610,6 @@ Default: *enabled*
|
||||||
|
|
||||||
### Debug
|
### Debug
|
||||||
|
|
||||||
|
|
||||||
`-no-config`
|
`-no-config`
|
||||||
|
|
||||||
Disable parsing of configuration. This runs rofi in *stock* mode.
|
Disable parsing of configuration. This runs rofi in *stock* mode.
|
||||||
|
@ -627,35 +618,34 @@ Disable parsing of configuration. This runs rofi in *stock* mode.
|
||||||
|
|
||||||
Disables the loading of plugins.
|
Disables the loading of plugins.
|
||||||
|
|
||||||
To get a trace with (lots of) debug information set the following environment variable when executing **rofi**:
|
To get a trace with (lots of) debug information, set the following environment variable when executing **rofi**:
|
||||||
|
|
||||||
```
|
```
|
||||||
G_MESSAGES_DEBUG=all
|
G_MESSAGES_DEBUG=all
|
||||||
```
|
```
|
||||||
|
|
||||||
The trace can be filtered by only outputting the relevant domains, f.e.:
|
The trace can be filtered by only outputting the relevant domains, for example:
|
||||||
|
|
||||||
```
|
```
|
||||||
G_MESSAGES_DEBUG=Dialogs.DRun
|
G_MESSAGES_DEBUG=Dialogs.DRun
|
||||||
```
|
```
|
||||||
|
|
||||||
For more information on debugging see the [wiki](https://github.com/DaveDavenport/rofi/wiki/Debugging%20Rofi)
|
For more information on debugging, see the [wiki](https://github.com/DaveDavenport/rofi/wiki/Debugging%20Rofi)
|
||||||
|
|
||||||
## PATTERN
|
## PATTERN
|
||||||
|
|
||||||
To launch commands (e.g. when using the ssh launcher) the user can enter the used command-line,
|
To launch commands (for example, when using the ssh launcher), the user can enter the used command-line. The following keys can be used that will be replaced at runtime:
|
||||||
the following keys can be used that will be replaced at runtime:
|
|
||||||
|
|
||||||
* `{host}`: The host to connect to.
|
* `{host}`: the host to connect to
|
||||||
* `{terminal}`: The configured terminal (See -terminal-emulator)
|
* `{terminal}`: the configured terminal (see -terminal-emulator)
|
||||||
* `{ssh-client}`: The configured ssh client (See -ssh-client)
|
* `{ssh-client}`: the configured ssh client (see -ssh-client)
|
||||||
* `{cmd}`: The command to execute.
|
* `{cmd}`: the command to execute
|
||||||
* `{window}`: The window id of the selected window. (In `window-command`)
|
* `{window}`: the window ID of the selected window (in `window-command`)
|
||||||
|
|
||||||
## DMENU REPLACEMENT
|
## DMENU REPLACEMENT
|
||||||
|
|
||||||
If `argv[0]` (calling command) is dmenu, **rofi** will start in dmenu mode.
|
If `argv[0]` (calling command) is dmenu, **rofi** will start in dmenu mode.
|
||||||
This way it can be used as a drop-in replacement for dmenu. just copy or symlink **rofi** to dmenu in `$PATH`.
|
This way it can be used as a drop-in replacement for dmenu. Just copy or symlink **rofi** to dmenu in `$PATH`.
|
||||||
|
|
||||||
ln -s /usr/bin/rofi /usr/bin/dmenu
|
ln -s /usr/bin/rofi /usr/bin/dmenu
|
||||||
|
|
||||||
|
@ -665,22 +655,22 @@ The theme format below describes the old (pre version 1.4) theme format. Please
|
||||||
manual.
|
manual.
|
||||||
|
|
||||||
The theme setup allows you to specify colors per state, similar to **i3**
|
The theme setup allows you to specify colors per state, similar to **i3**
|
||||||
Currently 3 states exists:
|
Currently 3 states exist:
|
||||||
|
|
||||||
* **normal** Normal row.
|
* **normal**: normal row
|
||||||
* **urgent** Highlighted row (urgent)
|
* **urgent**: highlighted row (urgent)
|
||||||
* **active** Highlighted row (active)
|
* **active**: highlighted row (active)
|
||||||
|
|
||||||
For each state the following 5 colors must be set:
|
For each state, the following 5 colors must be set:
|
||||||
|
|
||||||
* **bg** Background color row
|
* **bg**: background color row
|
||||||
* **fg** Text color
|
* **fg**: text color
|
||||||
* **bgalt** Background color alternating row
|
* **bgalt**: background color alternating row
|
||||||
* **hlfg** Foreground color selected row
|
* **hlfg**: foreground color selected row
|
||||||
* **hlbg** Background color selected row
|
* **hlbg**: background color selected row
|
||||||
|
|
||||||
The window background and border color should be specified separate. The key `color-window` contains
|
The window background and border color should be specified separately. The key `color-window` contains
|
||||||
a pair `background,border,separator`.
|
a tuple `background,border,separator`.
|
||||||
An example for `Xresources` file:
|
An example for `Xresources` file:
|
||||||
|
|
||||||
! State: 'bg', 'fg', 'bgalt', 'hlbg', 'hlfg'
|
! State: 'bg', 'fg', 'bgalt', 'hlbg', 'hlfg'
|
||||||
|
@ -697,35 +687,33 @@ Same settings can also be specified on command-line:
|
||||||
|
|
||||||
## COLORS
|
## COLORS
|
||||||
|
|
||||||
RGB colors can be specified by either its X11 name, or hexadecimal notation.
|
RGB colors can be specified by either their X11 name or hexadecimal notation.
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
white
|
white
|
||||||
|
|
||||||
Or
|
Or:
|
||||||
|
|
||||||
#FFFFFF
|
#FFFFFF
|
||||||
|
|
||||||
ARGB colors are also support, these can be used to create a transparent window if: 1. Your Xserver supports TrueColor, 2.
|
ARGB colors are also supported. These can be used to create a transparent window if (1) your Xserver supports TrueColor, and (2) you are running a composite manager.
|
||||||
You are running a composite manager.
|
For example:
|
||||||
|
|
||||||
argb:FF444444
|
argb:FF444444
|
||||||
|
|
||||||
Or
|
Or:
|
||||||
|
|
||||||
#FF444444
|
#FF444444
|
||||||
|
|
||||||
The first two fields specify the alpha level. This determines the amount of transparency.
|
The first two fields specify the alpha level. This determines the amount of transparency (00 everything, FF nothing). The other fields represent the actual color, in hex.
|
||||||
(00 everything, FF nothing). The other fields represent the actual color, in hex.
|
|
||||||
|
|
||||||
Within **rofi** transparency can be used, e.g. if the selected background color is 50% transparent, the background color
|
Transparency can be used within **rofi**, for example if the selected background color is 50% transparent, the background color
|
||||||
of the window will be visible through it.
|
of the window will be visible thru it.
|
||||||
|
|
||||||
## KEY BINDINGS
|
## KEY BINDINGS
|
||||||
|
|
||||||
**rofi** has the following key-bindings:
|
**rofi** has the following key bindings:
|
||||||
|
|
||||||
* `Ctrl-v, Insert`: Paste clipboard
|
* `Ctrl-v, Insert`: Paste from clipboard
|
||||||
* `Ctrl-Shift-v, Shift-Insert`: Paste primary selection
|
* `Ctrl-Shift-v, Shift-Insert`: Paste primary selection
|
||||||
* `Ctrl-u`: Clear the line
|
* `Ctrl-u`: Clear the line
|
||||||
* `Ctrl-a`: Beginning of line
|
* `Ctrl-a`: Beginning of line
|
||||||
|
@ -741,13 +729,13 @@ of the window will be visible through it.
|
||||||
* `Ctrl-j,Ctrl-m,Enter`: Accept entry
|
* `Ctrl-j,Ctrl-m,Enter`: Accept entry
|
||||||
* `Ctrl-n,Down`: Select next entry
|
* `Ctrl-n,Down`: Select next entry
|
||||||
* `Ctrl-p,Up`: Select previous entry
|
* `Ctrl-p,Up`: Select previous entry
|
||||||
* `Page Up`: Go to the previous page
|
* `Page Up`: Go to previous page
|
||||||
* `Page Down`: Go to the next page
|
* `Page Down`: Go to next page
|
||||||
* `Ctrl-Page Up`: Go to the previous column
|
* `Ctrl-Page Up`: Go to previous column
|
||||||
* `Ctrl-Page Down`: Go to the next column
|
* `Ctrl-Page Down`: Go to next column
|
||||||
* `Ctrl-Enter`: Use entered text as command (in ssh/run modi)
|
* `Ctrl-Enter`: Use entered text as a command (in `ssh/run modi`)
|
||||||
* `Shift-Enter`: Launch the application in a terminal (in run mode)
|
* `Shift-Enter`: Launch the application in a terminal (in run mode)
|
||||||
* `Shift-Enter`: Return the selected entry and move to the next item while keeping Rofi open. (in dmenu)
|
* `Shift-Enter`: Return the selected entry and move to the next item while keeping **rofi** open. (in dmenu)
|
||||||
* `Shift-Right`: Switch to the next modi. The list can be customized with the `-switchers` argument.
|
* `Shift-Right`: Switch to the next modi. The list can be customized with the `-switchers` argument.
|
||||||
* `Shift-Left`: Switch to the previous modi. The list can be customized with the `-switchers` argument.
|
* `Shift-Left`: Switch to the previous modi. The list can be customized with the `-switchers` argument.
|
||||||
* `Ctrl-Tab`: Switch to the next modi. The list can be customized with the `-switchers` argument.
|
* `Ctrl-Tab`: Switch to the next modi. The list can be customized with the `-switchers` argument.
|
||||||
|
@ -756,11 +744,11 @@ of the window will be visible through it.
|
||||||
* `Shift-Del`: Delete entry from history.
|
* `Shift-Del`: Delete entry from history.
|
||||||
* `grave`: Toggle case sensitivity.
|
* `grave`: Toggle case sensitivity.
|
||||||
* `Alt-grave`: Toggle levenshtein sorting.
|
* `Alt-grave`: Toggle levenshtein sorting.
|
||||||
* `Alt-Shift-S`: Take a screenshot and store this in the Pictures directory.
|
* `Alt-Shift-S`: Take a screenshot and store it in the Pictures directory.
|
||||||
|
|
||||||
To get a full list of key bindings on the commandline, see `rofi -dump-xresources | grep kb-`.
|
To get a full list of key bindings on the commandline, see `rofi -dump-xresources | grep kb-`.
|
||||||
Key bindings can be modified using the configuration systems.
|
Key bindings can be modified using the configuration systems.
|
||||||
To get searchable list of keybindings, run `rofi -show keys`.
|
To get a searchable list of key bindings, run `rofi -show keys`.
|
||||||
|
|
||||||
A key binding starting with `!` will act when all keys have been released.
|
A key binding starting with `!` will act when all keys have been released.
|
||||||
|
|
||||||
|
@ -795,7 +783,7 @@ Pressing the `accept-custom` binding (`control-enter` or `shift-enter`) with cus
|
||||||
|
|
||||||
### SSH
|
### SSH
|
||||||
|
|
||||||
Shows a list of SSH targets based on your ssh config file, and allows to quickly ssh into them.
|
Shows a list of SSH targets based on your ssh config file, and allows to quickly `ssh` into them.
|
||||||
|
|
||||||
### Keys
|
### Keys
|
||||||
|
|
||||||
|
@ -813,7 +801,7 @@ Try using a mono-space font.
|
||||||
|
|
||||||
### The window is completely black.
|
### The window is completely black.
|
||||||
|
|
||||||
Check quotes used on the commandline: e.g. used “ instead of ".
|
Check quotes used on the commandline: you might have used `“` ("smart quotes") instead of `"` ("machine quotes").
|
||||||
|
|
||||||
### What does the icon in the top right show?
|
### What does the icon in the top right show?
|
||||||
|
|
||||||
|
@ -832,8 +820,7 @@ Show the run dialog:
|
||||||
|
|
||||||
rofi -modi run -show run
|
rofi -modi run -show run
|
||||||
|
|
||||||
|
Show the the run dialog, and allow switching to Desktop File run dialog (drun):
|
||||||
Show the the run dialog and allow switching to Desktop File run dialog (drun):
|
|
||||||
|
|
||||||
rofi -modi run,drun -show run
|
rofi -modi run,drun -show run
|
||||||
|
|
||||||
|
@ -841,8 +828,7 @@ Combine the run and Desktop File run dialog (drun):
|
||||||
|
|
||||||
rofi -modi combi -show combi -combi-modi run,drun
|
rofi -modi combi -show combi -combi-modi run,drun
|
||||||
|
|
||||||
|
Combine the run and Desktop File run dialog (drun), and allow switching to window switcher:
|
||||||
Combine the run and Desktop File run dialog (drun) and allow switching to window switcher:
|
|
||||||
|
|
||||||
rofi -modi combi,window -show combi -combi-modi run,drun
|
rofi -modi combi,window -show combi -combi-modi run,drun
|
||||||
|
|
||||||
|
@ -850,7 +836,7 @@ Run **rofi** full monitor width at the top of the monitor like a dropdown menu:
|
||||||
|
|
||||||
rofi -show run -width 100 -location 1 -lines 5 -bw 2 -yoffset -2
|
rofi -show run -width 100 -location 1 -lines 5 -bw 2 -yoffset -2
|
||||||
|
|
||||||
Get a colored list of available wifi networks:
|
Get a colored list of available wi-fi networks:
|
||||||
|
|
||||||
tty-pipe nmcli device wifi | out2html -p | rofi -dmenu -markup-rows
|
tty-pipe nmcli device wifi | out2html -p | rofi -dmenu -markup-rows
|
||||||
|
|
||||||
|
@ -870,13 +856,13 @@ Use `qalc` to get a simple calculator in **rofi**:
|
||||||
|
|
||||||
rofi -show calc -modi "calc:qalc +u8 -nocurrencies"
|
rofi -show calc -modi "calc:qalc +u8 -nocurrencies"
|
||||||
|
|
||||||
## I3
|
## i3
|
||||||
|
|
||||||
In [I3](http://i3wm.org/) you want to bind rofi to be launched on key-release. Otherwise it cannot grab the keyboard.
|
In [i3](http://i3wm.org/) you want to bind **rofi** to be launched on key release. Otherwise, it cannot grab the keyboard.
|
||||||
See also the I3 [manual](http://i3wm.org/docs/userguide.html):
|
See also the i3 [manual](http://i3wm.org/docs/userguide.html):
|
||||||
|
|
||||||
Some tools (such as import or xdotool) might be unable to run upon a KeyPress event, because the keyboard/pointer is
|
Some tools (such as import or xdotool) might be unable to run upon a KeyPress event, because the keyboard/pointer is
|
||||||
still grabbed. For these situations, the --release flag can be used, which will execute the command after the keys have
|
still grabbed. For these situations, the `--release` flag can be used, as it will execute the command after the keys have
|
||||||
been released.
|
been released.
|
||||||
|
|
||||||
## LICENSE
|
## LICENSE
|
||||||
|
@ -904,7 +890,7 @@ been released.
|
||||||
|
|
||||||
## WEBSITE
|
## WEBSITE
|
||||||
|
|
||||||
**rofi** website can be found at [here](https://davedavenport.github.io/rofi/)
|
**rofi** website can be found [here](https://davedavenport.github.io/rofi/)
|
||||||
|
|
||||||
## SUPPORT
|
## SUPPORT
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue