mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-04-27 06:46:44 -04:00
Bring back old whitespaces
This commit is contained in:
parent
1b8cb9ef91
commit
4c0701368d
1 changed files with 123 additions and 123 deletions
|
|
@ -44,77 +44,77 @@ commented out will usually be installed to */etc/xdg/foot/foot.ini*.
|
||||||
options. Most noteworthy is *:size=n*, which is used to set the
|
options. Most noteworthy is *:size=n*, which is used to set the
|
||||||
font size. Note that the font size is also affected by the
|
font size. Note that the font size is also affected by the
|
||||||
*dpi-aware* option.
|
*dpi-aware* option.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
- Dina:weight=bold:slant=italic
|
- Dina:weight=bold:slant=italic
|
||||||
- Courier New:size=12
|
- Courier New:size=12
|
||||||
- Fantasque Sans Mono:fontfeatures=ss01
|
- Fantasque Sans Mono:fontfeatures=ss01
|
||||||
|
|
||||||
For each option, the first font is the primary font. The remaining
|
For each option, the first font is the primary font. The remaining
|
||||||
fonts are fallback fonts that will be used whenever a glyph cannot
|
fonts are fallback fonts that will be used whenever a glyph cannot
|
||||||
be found in the primary font.
|
be found in the primary font.
|
||||||
|
|
||||||
The fallback fonts are searched in the order they appear. If a
|
The fallback fonts are searched in the order they appear. If a
|
||||||
glyph cannot be found in any of the fallback fonts, the dynamic
|
glyph cannot be found in any of the fallback fonts, the dynamic
|
||||||
fallback list from fontconfig (for the primary font) is
|
fallback list from fontconfig (for the primary font) is
|
||||||
searched.
|
searched.
|
||||||
|
|
||||||
*font-bold*, *font-italic* and *font-bold-italic* allow custom
|
*font-bold*, *font-italic* and *font-bold-italic* allow custom
|
||||||
fonts to be used for bold/italic/bold+italic fonts. If left
|
fonts to be used for bold/italic/bold+italic fonts. If left
|
||||||
unconfigured, the bold/italic variants of the regular font(s)
|
unconfigured, the bold/italic variants of the regular font(s)
|
||||||
specified in *font* are used. *Note*: you _may_ have to tweak the
|
specified in *font* are used. *Note*: you _may_ have to tweak the
|
||||||
size(s) of the custom bold/italic fonts to match the regular font.
|
size(s) of the custom bold/italic fonts to match the regular font.
|
||||||
|
|
||||||
To disable bold and/or italic fonts, set e.g. *font-bold* to
|
To disable bold and/or italic fonts, set e.g. *font-bold* to
|
||||||
_exactly_ the same value as *font*.
|
_exactly_ the same value as *font*.
|
||||||
|
|
||||||
Default: _monospace:size=8_ (*font*), _not set_ (*font-bold*,
|
Default: _monospace:size=8_ (*font*), _not set_ (*font-bold*,
|
||||||
*font-italic*, *font-bold-italic*).
|
*font-italic*, *font-bold-italic*).
|
||||||
|
|
||||||
*include*
|
*include*
|
||||||
Absolute path to configuration file to import.
|
Absolute path to configuration file to import.
|
||||||
|
|
||||||
The import file has its own section scope. I.e. the including
|
The import file has its own section scope. I.e. the including
|
||||||
configuration is still in the default section after the include,
|
configuration is still in the default section after the include,
|
||||||
regardless of which section the included file ends in.
|
regardless of which section the included file ends in.
|
||||||
|
|
||||||
- The path must be an absolute path, or start with *~/*.
|
- The path must be an absolute path, or start with *~/*.
|
||||||
- Multiple include directives are allowed, but only one path per
|
- Multiple include directives are allowed, but only one path per
|
||||||
directive.
|
directive.
|
||||||
- Nested imports are allowed.
|
- Nested imports are allowed.
|
||||||
|
|
||||||
Default: _not set_.
|
Default: _not set_.
|
||||||
|
|
||||||
*line-height*
|
*line-height*
|
||||||
An absolute value, in _points_, that override line height from the
|
An absolute value, in _points_, that override line height from the
|
||||||
font metrics.
|
font metrics.
|
||||||
|
|
||||||
You can specify a height in _pixels_ by using the *px* suffix:
|
You can specify a height in _pixels_ by using the *px* suffix:
|
||||||
e.g. *line-height=12px*.
|
e.g. *line-height=12px*.
|
||||||
|
|
||||||
See also: *vertical-letter-offset*.
|
See also: *vertical-letter-offset*.
|
||||||
|
|
||||||
Default: _not set_.
|
Default: _not set_.
|
||||||
|
|
||||||
*letter-spacing*
|
*letter-spacing*
|
||||||
Spacing between letters, in _points_. A positive value will
|
Spacing between letters, in _points_. A positive value will
|
||||||
increase the cell size, and a negative value shrinks it.
|
increase the cell size, and a negative value shrinks it.
|
||||||
|
|
||||||
You can specify a letter spacing in _pixels_ by using the *px*
|
You can specify a letter spacing in _pixels_ by using the *px*
|
||||||
suffix: e.g. *letter-spacing=2px*.
|
suffix: e.g. *letter-spacing=2px*.
|
||||||
|
|
||||||
See also: *horizontal-letter-offset*.
|
See also: *horizontal-letter-offset*.
|
||||||
|
|
||||||
Default: _0_.
|
Default: _0_.
|
||||||
|
|
||||||
*horizontal-letter-offset*, *vertical-letter-offset*
|
*horizontal-letter-offset*, *vertical-letter-offset*
|
||||||
Configure the horizontal and vertical offsets used when
|
Configure the horizontal and vertical offsets used when
|
||||||
positioning glyphs within cells, in _points_, relative to the top
|
positioning glyphs within cells, in _points_, relative to the top
|
||||||
left corner.
|
left corner.
|
||||||
|
|
||||||
To specify an offset in _pixels_, append *px*:
|
To specify an offset in _pixels_, append *px*:
|
||||||
e.g. *horizontal-letter-offset=2px*.
|
e.g. *horizontal-letter-offset=2px*.
|
||||||
|
|
||||||
Default: _0_.
|
Default: _0_.
|
||||||
|
|
||||||
*underline-offset*
|
*underline-offset*
|
||||||
|
|
@ -122,20 +122,20 @@ commented out will usually be installed to */etc/xdg/foot/foot.ini*.
|
||||||
_points_ and relative the font's baseline. A positive value
|
_points_ and relative the font's baseline. A positive value
|
||||||
positions the underline under the baseline, while a negative value
|
positions the underline under the baseline, while a negative value
|
||||||
positions it above the baseline.
|
positions it above the baseline.
|
||||||
|
|
||||||
To specify an offset in _pixels_, append *px*:
|
To specify an offset in _pixels_, append *px*:
|
||||||
*underline-offset=2px*.
|
*underline-offset=2px*.
|
||||||
|
|
||||||
If left unset (the default), the offset specified in the font is
|
If left unset (the default), the offset specified in the font is
|
||||||
used, or estimated by foot if the font lacks underline positioning
|
used, or estimated by foot if the font lacks underline positioning
|
||||||
information.
|
information.
|
||||||
|
|
||||||
Default: _unset_.
|
Default: _unset_.
|
||||||
|
|
||||||
*box-drawings-uses-font-glyphs* Boolean. When disabled, foot generates
|
*box-drawings-uses-font-glyphs* Boolean. When disabled, foot generates
|
||||||
box/line drawing characters itself. The are several advantages to
|
box/line drawing characters itself. The are several advantages to
|
||||||
doing this instead of using font glyphs:
|
doing this instead of using font glyphs:
|
||||||
|
|
||||||
- No antialiasing effects where e.g. line endpoints appear
|
- No antialiasing effects where e.g. line endpoints appear
|
||||||
dimmed down, or blurred.
|
dimmed down, or blurred.
|
||||||
- Line- and box characters are guaranteed to span the entire cell,
|
- Line- and box characters are guaranteed to span the entire cell,
|
||||||
|
|
@ -144,60 +144,60 @@ commented out will usually be installed to */etc/xdg/foot/foot.ini*.
|
||||||
- Many fonts lack some, or all, of the line- and box drawing
|
- Many fonts lack some, or all, of the line- and box drawing
|
||||||
characters, causing fallback fonts to be used, which results
|
characters, causing fallback fonts to be used, which results
|
||||||
in out-of-place looking glyphs (for example, badly sized).
|
in out-of-place looking glyphs (for example, badly sized).
|
||||||
|
|
||||||
When enabled, box/line drawing characters are rendered using font
|
When enabled, box/line drawing characters are rendered using font
|
||||||
glyphs. This may result in a more uniform look, in some use cases.
|
glyphs. This may result in a more uniform look, in some use cases.
|
||||||
|
|
||||||
Default: _no_.
|
Default: _no_.
|
||||||
|
|
||||||
*dpi-aware*
|
*dpi-aware*
|
||||||
*auto*, *yes*, or *no*.
|
*auto*, *yes*, or *no*.
|
||||||
|
|
||||||
When set to *yes*, fonts are sized using the monitor's DPI, making
|
When set to *yes*, fonts are sized using the monitor's DPI, making
|
||||||
a font of a given size have the same physical size, regardless of
|
a font of a given size have the same physical size, regardless of
|
||||||
monitor. In other words, if you drag a foot window between
|
monitor. In other words, if you drag a foot window between
|
||||||
different monitors, the font size remains the same.
|
different monitors, the font size remains the same.
|
||||||
|
|
||||||
In this mode, the monitor's scaling factor is ignored; doubling
|
In this mode, the monitor's scaling factor is ignored; doubling
|
||||||
the scaling factor will *not* double the font size.
|
the scaling factor will *not* double the font size.
|
||||||
|
|
||||||
When set to *no*, the monitor's DPI is ignored. The font is
|
When set to *no*, the monitor's DPI is ignored. The font is
|
||||||
instead sized using the monitor's scaling factor; doubling the
|
instead sized using the monitor's scaling factor; doubling the
|
||||||
scaling factor *does* double the font size.
|
scaling factor *does* double the font size.
|
||||||
|
|
||||||
Finally, if set to *auto*, fonts will be sized using the monitor's
|
Finally, if set to *auto*, fonts will be sized using the monitor's
|
||||||
DPI if _all_ monitors have a scaling factor of 1. If at least one
|
DPI if _all_ monitors have a scaling factor of 1. If at least one
|
||||||
monitor as a scaling factor larger than 1 (regardless of whether
|
monitor as a scaling factor larger than 1 (regardless of whether
|
||||||
the foot window is mapped on that monitor or not), fonts will be
|
the foot window is mapped on that monitor or not), fonts will be
|
||||||
scaled using the scaling factor.
|
scaled using the scaling factor.
|
||||||
|
|
||||||
Note that this option typically does not work with bitmap fonts,
|
Note that this option typically does not work with bitmap fonts,
|
||||||
which only contains a pre-defined set of sizes, and cannot be
|
which only contains a pre-defined set of sizes, and cannot be
|
||||||
dynamically scaled. Whichever size (of the available ones) that
|
dynamically scaled. Whichever size (of the available ones) that
|
||||||
best matches the DPI or scaling factor, will be used.
|
best matches the DPI or scaling factor, will be used.
|
||||||
|
|
||||||
Also note that if the font size has been specified in pixels
|
Also note that if the font size has been specified in pixels
|
||||||
(*:pixelsize=*_N_, instead of *:size=*_N_), DPI scaling
|
(*:pixelsize=*_N_, instead of *:size=*_N_), DPI scaling
|
||||||
(*dpi-aware=yes*) will have no effect (the specified pixel size
|
(*dpi-aware=yes*) will have no effect (the specified pixel size
|
||||||
will be used as is). But, if the monitor's scaling factor is used
|
will be used as is). But, if the monitor's scaling factor is used
|
||||||
to size the font (*dpi-aware=no*), the font's pixel size will be
|
to size the font (*dpi-aware=no*), the font's pixel size will be
|
||||||
multiplied with the scaling factor.
|
multiplied with the scaling factor.
|
||||||
|
|
||||||
Default: _auto_
|
Default: _auto_
|
||||||
|
|
||||||
*pad*
|
*pad*
|
||||||
Padding between border and glyphs, in pixels (subject to output
|
Padding between border and glyphs, in pixels (subject to output
|
||||||
scaling), in the form _XxY_.
|
scaling), in the form _XxY_.
|
||||||
|
|
||||||
This will add _at least_ X pixels on both the left and right
|
This will add _at least_ X pixels on both the left and right
|
||||||
sides, and Y pixels on the top and bottom sides. The grid content
|
sides, and Y pixels on the top and bottom sides. The grid content
|
||||||
will be anchored in the top left corner. I.e. if the window
|
will be anchored in the top left corner. I.e. if the window
|
||||||
manager forces an odd window size on foot, the additional pixels
|
manager forces an odd window size on foot, the additional pixels
|
||||||
will be added to the right and bottom sides.
|
will be added to the right and bottom sides.
|
||||||
|
|
||||||
To instead center the grid content, append *center* (e.g. *pad=5x5
|
To instead center the grid content, append *center* (e.g. *pad=5x5
|
||||||
center*).
|
center*).
|
||||||
|
|
||||||
Default: _2x2_.
|
Default: _2x2_.
|
||||||
|
|
||||||
*resize-delay-ms*
|
*resize-delay-ms*
|
||||||
|
|
@ -205,18 +205,18 @@ commented out will usually be installed to */etc/xdg/foot/foot.ini*.
|
||||||
window dimensions to the client application while doing an
|
window dimensions to the client application while doing an
|
||||||
interactive resize of a foot window. Idle time in this context is
|
interactive resize of a foot window. Idle time in this context is
|
||||||
a period of time where the window size is not changing.
|
a period of time where the window size is not changing.
|
||||||
|
|
||||||
In other words, while you are fiddling with the window size, foot
|
In other words, while you are fiddling with the window size, foot
|
||||||
does not send the updated dimensions to the client. Only when you
|
does not send the updated dimensions to the client. Only when you
|
||||||
pause the fiddling for *resize-delay-ms* milliseconds is the
|
pause the fiddling for *resize-delay-ms* milliseconds is the
|
||||||
client updated.
|
client updated.
|
||||||
|
|
||||||
Emphasis is on _while_ here; as soon as the interactive resize
|
Emphasis is on _while_ here; as soon as the interactive resize
|
||||||
ends (i.e. when you let go of the window border), the final
|
ends (i.e. when you let go of the window border), the final
|
||||||
dimensions is sent to the client, without any delays.
|
dimensions is sent to the client, without any delays.
|
||||||
|
|
||||||
Setting it to 0 disables the delay completely.
|
Setting it to 0 disables the delay completely.
|
||||||
|
|
||||||
Default: _100_.
|
Default: _100_.
|
||||||
|
|
||||||
*initial-window-size-pixels*
|
*initial-window-size-pixels*
|
||||||
|
|
@ -229,12 +229,12 @@ commented out will usually be installed to */etc/xdg/foot/foot.ini*.
|
||||||
Initial window width and height in _characters_, in the form
|
Initial window width and height in _characters_, in the form
|
||||||
_WIDTHxHEIGHT_. Mutually exclusive to
|
_WIDTHxHEIGHT_. Mutually exclusive to
|
||||||
*initial-window-size-pixels*.'
|
*initial-window-size-pixels*.'
|
||||||
|
|
||||||
Note that if you have a multi-monitor setup, with different
|
Note that if you have a multi-monitor setup, with different
|
||||||
scaling factors, there is a possibility the window size will not
|
scaling factors, there is a possibility the window size will not
|
||||||
be set correctly. If that is the case, use
|
be set correctly. If that is the case, use
|
||||||
*initial-window-size-pixels* instead.
|
*initial-window-size-pixels* instead.
|
||||||
|
|
||||||
Default: _not set_.
|
Default: _not set_.
|
||||||
|
|
||||||
*initial-window-mode*
|
*initial-window-mode*
|
||||||
|
|
@ -257,12 +257,12 @@ commented out will usually be installed to */etc/xdg/foot/foot.ini*.
|
||||||
Semi-boolean. When enabled, bold text is rendered in a brighter
|
Semi-boolean. When enabled, bold text is rendered in a brighter
|
||||||
color (in addition to using a bold font). The color is brightened
|
color (in addition to using a bold font). The color is brightened
|
||||||
by increasing its luminance.
|
by increasing its luminance.
|
||||||
|
|
||||||
If set to *palette-based*, rather than a simple *yes|true*, colors
|
If set to *palette-based*, rather than a simple *yes|true*, colors
|
||||||
matching one of the 8 regular palette colors will be brightened
|
matching one of the 8 regular palette colors will be brightened
|
||||||
using the corresponding bright palette color. Other colors will
|
using the corresponding bright palette color. Other colors will
|
||||||
not be brightened.
|
not be brightened.
|
||||||
|
|
||||||
Default: _no_.
|
Default: _no_.
|
||||||
|
|
||||||
*word-delimiters*
|
*word-delimiters*
|
||||||
|
|
@ -274,19 +274,19 @@ commented out will usually be installed to */etc/xdg/foot/foot.ini*.
|
||||||
Command to execute to display a notification. _${title}_ and
|
Command to execute to display a notification. _${title}_ and
|
||||||
_${body}_ will be replaced with the notification's actual _title_
|
_${body}_ will be replaced with the notification's actual _title_
|
||||||
and _body_ (message content).
|
and _body_ (message content).
|
||||||
|
|
||||||
_${app-id}_ is replaced with the value of the command line option
|
_${app-id}_ is replaced with the value of the command line option
|
||||||
_--app-id_, and defaults to *foot*.
|
_--app-id_, and defaults to *foot*.
|
||||||
|
|
||||||
_${window-title}_ is replaced with the current window title.
|
_${window-title}_ is replaced with the current window title.
|
||||||
|
|
||||||
Applications can trigger notifications in the following ways:
|
Applications can trigger notifications in the following ways:
|
||||||
|
|
||||||
- OSC 777: *\\e]777;notify;<title>;<body>\\e\\\\*
|
- OSC 777: *\\e]777;notify;<title>;<body>\\e\\\\*
|
||||||
|
|
||||||
By default, notifications are *inhibited* if the foot window
|
By default, notifications are *inhibited* if the foot window
|
||||||
has keyboard focus. See _notify-focus-inhibit_.
|
has keyboard focus. See _notify-focus-inhibit_.
|
||||||
|
|
||||||
Default: _notify-send -a ${app-id} -i ${app-id} ${title} ${body}_.
|
Default: _notify-send -a ${app-id} -i ${app-id} ${title} ${body}_.
|
||||||
|
|
||||||
*notify-focus-inhibit*
|
*notify-focus-inhibit*
|
||||||
|
|
@ -311,13 +311,13 @@ commented out will usually be installed to */etc/xdg/foot/foot.ini*.
|
||||||
When set to _yes_, foot will signal urgency to the compositor
|
When set to _yes_, foot will signal urgency to the compositor
|
||||||
through the XDG activation protocol whenever *BEL* is received,
|
through the XDG activation protocol whenever *BEL* is received,
|
||||||
and the window does NOT have keyboard foccus.
|
and the window does NOT have keyboard foccus.
|
||||||
|
|
||||||
If the compositor does not implement this protocol, the margins
|
If the compositor does not implement this protocol, the margins
|
||||||
will be painted in red instead.
|
will be painted in red instead.
|
||||||
|
|
||||||
Applications can enable/disable this feature programmatically with
|
Applications can enable/disable this feature programmatically with
|
||||||
the *CSI ? 1042 h* and *CSI ? 1042 l* escape sequences.
|
the *CSI ? 1042 h* and *CSI ? 1042 l* escape sequences.
|
||||||
|
|
||||||
Default: _no_
|
Default: _no_
|
||||||
|
|
||||||
*notify*
|
*notify*
|
||||||
|
|
@ -370,24 +370,24 @@ commented out will usually be installed to */etc/xdg/foot/foot.ini*.
|
||||||
*osc8-underline*
|
*osc8-underline*
|
||||||
When to underline OSC-8 URLs. Possible values are *url-mode* and
|
When to underline OSC-8 URLs. Possible values are *url-mode* and
|
||||||
*always*.
|
*always*.
|
||||||
|
|
||||||
When set to *url-mode*, OSC-8 URLs are only highlighted in URL
|
When set to *url-mode*, OSC-8 URLs are only highlighted in URL
|
||||||
mode, just like auto-detected URLs.
|
mode, just like auto-detected URLs.
|
||||||
|
|
||||||
When set to *always*, OSC-8 URLs are always highlighted,
|
When set to *always*, OSC-8 URLs are always highlighted,
|
||||||
regardless of their other attributes (bold, italic etc). Note that
|
regardless of their other attributes (bold, italic etc). Note that
|
||||||
this does _not_ make them clickable.
|
this does _not_ make them clickable.
|
||||||
|
|
||||||
Default: _url-mode_
|
Default: _url-mode_
|
||||||
|
|
||||||
*label-letters*
|
*label-letters*
|
||||||
String of characters to use when generating key sequences for URL
|
String of characters to use when generating key sequences for URL
|
||||||
jump labels.
|
jump labels.
|
||||||
|
|
||||||
If you change this option to include the letter *t*, you should
|
If you change this option to include the letter *t*, you should
|
||||||
also change the default *[url-bindings].toggle-url-visible* key
|
also change the default *[url-bindings].toggle-url-visible* key
|
||||||
binding to avoid a clash.
|
binding to avoid a clash.
|
||||||
|
|
||||||
Default: _sadfjklewcmpgh_.
|
Default: _sadfjklewcmpgh_.
|
||||||
|
|
||||||
*protocols*
|
*protocols*
|
||||||
|
|
@ -400,7 +400,7 @@ commented out will usually be installed to */etc/xdg/foot/foot.ini*.
|
||||||
*uri-characters*
|
*uri-characters*
|
||||||
Set of characters allowed in auto-detected URLs. Any character not
|
Set of characters allowed in auto-detected URLs. Any character not
|
||||||
included in this set constitutes a URL delimiter.
|
included in this set constitutes a URL delimiter.
|
||||||
|
|
||||||
Default:
|
Default:
|
||||||
_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-\_.,~:;/?#@!$&%\*+="'()[]_
|
_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-\_.,~:;/?#@!$&%\*+="'()[]_
|
||||||
|
|
||||||
|
|
@ -422,7 +422,7 @@ applications can change these at runtime.
|
||||||
Two RRGGBB values (i.e. plain old 6-digit hex values, without
|
Two RRGGBB values (i.e. plain old 6-digit hex values, without
|
||||||
prefix) specifying the foreground (text) and background (cursor)
|
prefix) specifying the foreground (text) and background (cursor)
|
||||||
colors for the cursor.
|
colors for the cursor.
|
||||||
|
|
||||||
Default: _inverse foreground/background colors_.
|
Default: _inverse foreground/background colors_.
|
||||||
|
|
||||||
Note that this value only applies to the block cursor. The other
|
Note that this value only applies to the block cursor. The other
|
||||||
|
|
@ -437,13 +437,13 @@ applications can change these at runtime.
|
||||||
*underline-thickness*
|
*underline-thickness*
|
||||||
Thickness (height) of the underline styled cursor. The value is in
|
Thickness (height) of the underline styled cursor. The value is in
|
||||||
points, and its exact value thus depends on the monitor's DPI.
|
points, and its exact value thus depends on the monitor's DPI.
|
||||||
|
|
||||||
To instead specify a thickness in pixels, use the *px* suffix:
|
To instead specify a thickness in pixels, use the *px* suffix:
|
||||||
e.g. *underline-thickness=2px*.
|
e.g. *underline-thickness=2px*.
|
||||||
|
|
||||||
Note that if left unset, the cursor's thickness will scale with
|
Note that if left unset, the cursor's thickness will scale with
|
||||||
the font size, while if set, the size is fixed.
|
the font size, while if set, the size is fixed.
|
||||||
|
|
||||||
Default: _font underline thickness_.
|
Default: _font underline thickness_.
|
||||||
|
|
||||||
# SECTION: mouse
|
# SECTION: mouse
|
||||||
|
|
@ -457,17 +457,17 @@ applications can change these at runtime.
|
||||||
scroll mode_. When this mode is enabled, mouse scroll events are
|
scroll mode_. When this mode is enabled, mouse scroll events are
|
||||||
translated to _up_/_down_ key events when displaying the alternate
|
translated to _up_/_down_ key events when displaying the alternate
|
||||||
screen.
|
screen.
|
||||||
|
|
||||||
This lets you scroll with the mouse in e.g. pagers (like _less_)
|
This lets you scroll with the mouse in e.g. pagers (like _less_)
|
||||||
without enabling native mouse support in them.
|
without enabling native mouse support in them.
|
||||||
|
|
||||||
Alternate scrolling is *not* used if the application enables
|
Alternate scrolling is *not* used if the application enables
|
||||||
native mouse support.
|
native mouse support.
|
||||||
|
|
||||||
This option can be modified by applications at run-time using the
|
This option can be modified by applications at run-time using the
|
||||||
escape sequences *CSI ? 1007 h* (enable) and *CSI ? 1007 l*
|
escape sequences *CSI ? 1007 h* (enable) and *CSI ? 1007 l*
|
||||||
(disable).
|
(disable).
|
||||||
|
|
||||||
Default: _yes_.
|
Default: _yes_.
|
||||||
|
|
||||||
# SECTION: colors
|
# SECTION: colors
|
||||||
|
|
@ -502,30 +502,30 @@ can configure the background transparency with the _alpha_ option.
|
||||||
Custom colors to use with dimmed colors. Dimmed colors do not have
|
Custom colors to use with dimmed colors. Dimmed colors do not have
|
||||||
an entry in the color palette. Applications emit them by combining
|
an entry in the color palette. Applications emit them by combining
|
||||||
a color value, and a "dim" attribute.
|
a color value, and a "dim" attribute.
|
||||||
|
|
||||||
By default, foot implements this by reducing the luminance of the
|
By default, foot implements this by reducing the luminance of the
|
||||||
current color. This is a generic approach that applies to both
|
current color. This is a generic approach that applies to both
|
||||||
colors from the 256-color palette, as well as 24-bit RGB colors.
|
colors from the 256-color palette, as well as 24-bit RGB colors.
|
||||||
|
|
||||||
You can change this behavior by setting the *dimN* options. When
|
You can change this behavior by setting the *dimN* options. When
|
||||||
set, foot will match the current color against the color palette,
|
set, foot will match the current color against the color palette,
|
||||||
and if it matches one of the *regularN* colors, the corresponding
|
and if it matches one of the *regularN* colors, the corresponding
|
||||||
*dimN* color will be used.
|
*dimN* color will be used.
|
||||||
|
|
||||||
If instead the current color matches one of the *brightN* colors,
|
If instead the current color matches one of the *brightN* colors,
|
||||||
the corresponding *regularN* color will be used.
|
the corresponding *regularN* color will be used.
|
||||||
|
|
||||||
If the current color does not match any known color, it is dimmed
|
If the current color does not match any known color, it is dimmed
|
||||||
by reducing the luminance (i.e. the same behavior as if the *dimN*
|
by reducing the luminance (i.e. the same behavior as if the *dimN*
|
||||||
options are unconfigured). 24-bit RGB colors will typically fall
|
options are unconfigured). 24-bit RGB colors will typically fall
|
||||||
into this category.
|
into this category.
|
||||||
|
|
||||||
Note that applications can change the *regularN* and *brighN*
|
Note that applications can change the *regularN* and *brighN*
|
||||||
colors at runtime. However, they have no way of changing the
|
colors at runtime. However, they have no way of changing the
|
||||||
*dimN* colors. If an application has changed the *regularN*
|
*dimN* colors. If an application has changed the *regularN*
|
||||||
colors, foot will still use the corresponding *dimN* color, as
|
colors, foot will still use the corresponding *dimN* color, as
|
||||||
configured in foot.ini.
|
configured in foot.ini.
|
||||||
|
|
||||||
Default: _not set_.
|
Default: _not set_.
|
||||||
|
|
||||||
*0* *..* *255*
|
*0* *..* *255*
|
||||||
|
|
@ -579,12 +579,12 @@ Examples:
|
||||||
*preferred*
|
*preferred*
|
||||||
Which type of window decorations to prefer: *client* (CSD),
|
Which type of window decorations to prefer: *client* (CSD),
|
||||||
*server* (SSD) or *none*.
|
*server* (SSD) or *none*.
|
||||||
|
|
||||||
Note that this is only a hint to the compositor. Depending on
|
Note that this is only a hint to the compositor. Depending on
|
||||||
compositor support, and how it has been configured, it may
|
compositor support, and how it has been configured, it may
|
||||||
instruct foot to use CSDs even though this option has been set to
|
instruct foot to use CSDs even though this option has been set to
|
||||||
*server*, or render SSDs despite *client* or *none* being set.
|
*server*, or render SSDs despite *client* or *none* being set.
|
||||||
|
|
||||||
Default: _server_.
|
Default: _server_.
|
||||||
|
|
||||||
*size*
|
*size*
|
||||||
|
|
@ -742,17 +742,17 @@ e.g. *search-start=none*.
|
||||||
currently selected text to an external tool. The syntax for this
|
currently selected text to an external tool. The syntax for this
|
||||||
option is a bit special; the first part of the value is the
|
option is a bit special; the first part of the value is the
|
||||||
command to execute enclosed in "[]", followed by the binding(s).
|
command to execute enclosed in "[]", followed by the binding(s).
|
||||||
|
|
||||||
You can configure multiple pipes as long as the command strings
|
You can configure multiple pipes as long as the command strings
|
||||||
are different and the key bindings are unique.
|
are different and the key bindings are unique.
|
||||||
|
|
||||||
Note that the command is *not* automatically run inside a shell;
|
Note that the command is *not* automatically run inside a shell;
|
||||||
use *sh -c "command line"* if you need that.
|
use *sh -c "command line"* if you need that.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
*pipe-visible=[sh -c "xurls | uniq | tac | fuzzel | xargs -r
|
*pipe-visible=[sh -c "xurls | uniq | tac | fuzzel | xargs -r
|
||||||
firefox"] Control+Print*
|
firefox"] Control+Print*
|
||||||
|
|
||||||
Default: _not bound_
|
Default: _not bound_
|
||||||
|
|
||||||
*show-urls-launch*
|
*show-urls-launch*
|
||||||
|
|
@ -863,14 +863,14 @@ Be careful; do not use single-letter keys that are also used in
|
||||||
By default, the jump label only shows the key sequence required to
|
By default, the jump label only shows the key sequence required to
|
||||||
activate it. This is fine as long as the URL is visible in the
|
activate it. This is fine as long as the URL is visible in the
|
||||||
original text.
|
original text.
|
||||||
|
|
||||||
But with e.g. OSC-8 URLs (the terminal version of HTML anchors,
|
But with e.g. OSC-8 URLs (the terminal version of HTML anchors,
|
||||||
i.e. "links"), the text on the screen can be something completey
|
i.e. "links"), the text on the screen can be something completey
|
||||||
different than the URL.
|
different than the URL.
|
||||||
|
|
||||||
This action toggles between showing and hiding the URL on the jump
|
This action toggles between showing and hiding the URL on the jump
|
||||||
label.
|
label.
|
||||||
|
|
||||||
Default: _t_.
|
Default: _t_.
|
||||||
|
|
||||||
# SECTION: text-bindings
|
# SECTION: text-bindings
|
||||||
|
|
@ -1002,25 +1002,25 @@ any of these options.
|
||||||
*bilinear*, *cubic* or *lanczos3*. *cubic* and *lanczos3* produce
|
*bilinear*, *cubic* or *lanczos3*. *cubic* and *lanczos3* produce
|
||||||
the best results, but are slower (with *lanczos3* being the best
|
the best results, but are slower (with *lanczos3* being the best
|
||||||
_and_ slowest).
|
_and_ slowest).
|
||||||
|
|
||||||
Default: _lanczos3_.
|
Default: _lanczos3_.
|
||||||
|
|
||||||
*overflowing-glyphs*
|
*overflowing-glyphs*
|
||||||
Boolean. When enabled, glyphs wider than their cell(s) are allowed
|
Boolean. When enabled, glyphs wider than their cell(s) are allowed
|
||||||
to render into one additional neighbouring cell.
|
to render into one additional neighbouring cell.
|
||||||
|
|
||||||
One use case for this are fonts with wide italic characters that
|
One use case for this are fonts with wide italic characters that
|
||||||
"bend" into the next cell. Without this option, such glyphs will
|
"bend" into the next cell. Without this option, such glyphs will
|
||||||
appear "cut off".
|
appear "cut off".
|
||||||
|
|
||||||
Another use case are fonts with "icon" characters in the Unicode
|
Another use case are fonts with "icon" characters in the Unicode
|
||||||
private usage area, e.g. Nerd Fonts, or Powerline Fonts and legacy
|
private usage area, e.g. Nerd Fonts, or Powerline Fonts and legacy
|
||||||
emoji characters like *WHITE FROWNING FACE*.
|
emoji characters like *WHITE FROWNING FACE*.
|
||||||
|
|
||||||
Note: might impact performance depending on the font used.
|
Note: might impact performance depending on the font used.
|
||||||
Especially small font sizes can cause many overflowing glyphs
|
Especially small font sizes can cause many overflowing glyphs
|
||||||
because of subpixel rendering.
|
because of subpixel rendering.
|
||||||
|
|
||||||
Default: _yes_.
|
Default: _yes_.
|
||||||
|
|
||||||
*render-timer*
|
*render-timer*
|
||||||
|
|
@ -1040,17 +1040,17 @@ any of these options.
|
||||||
Boolean. When enabled, box drawing "shades" (e.g. LIGHT SHADE,
|
Boolean. When enabled, box drawing "shades" (e.g. LIGHT SHADE,
|
||||||
MEDIUM SHADE and DARK SHADE) are rendered as solid blocks using a
|
MEDIUM SHADE and DARK SHADE) are rendered as solid blocks using a
|
||||||
darker variant of the current foreground color.
|
darker variant of the current foreground color.
|
||||||
|
|
||||||
When disabled, they are instead rendered as checker box pattern,
|
When disabled, they are instead rendered as checker box pattern,
|
||||||
using the current foreground color as is.
|
using the current foreground color as is.
|
||||||
|
|
||||||
Default: _yes_.
|
Default: _yes_.
|
||||||
|
|
||||||
*delayed-render-lower*, *delayed-render-upper*
|
*delayed-render-lower*, *delayed-render-upper*
|
||||||
These two values control the timeouts (in nanoseconds) that are
|
These two values control the timeouts (in nanoseconds) that are
|
||||||
used to mitigate screen flicker caused by clients writing large,
|
used to mitigate screen flicker caused by clients writing large,
|
||||||
non-atomic screen updates.
|
non-atomic screen updates.
|
||||||
|
|
||||||
If a client splits up a screen update over multiple *write*(3)
|
If a client splits up a screen update over multiple *write*(3)
|
||||||
calls, we may end up rendering an intermediate frame, quickly
|
calls, we may end up rendering an intermediate frame, quickly
|
||||||
followed by another frame with the final screen content. For
|
followed by another frame with the final screen content. For
|
||||||
|
|
@ -1059,56 +1059,56 @@ any of these options.
|
||||||
writes. Rendering the frame when the screen has been erased, but
|
writes. Rendering the frame when the screen has been erased, but
|
||||||
not yet filled with new content will be perceived as screen
|
not yet filled with new content will be perceived as screen
|
||||||
flicker.
|
flicker.
|
||||||
|
|
||||||
The *real* solution to this is _Application Synchronized Updates_
|
The *real* solution to this is _Application Synchronized Updates_
|
||||||
(https://gitlab.freedesktop.org/terminal-wg/specifications/-/merge_requests/2).
|
(https://gitlab.freedesktop.org/terminal-wg/specifications/-/merge_requests/2).
|
||||||
|
|
||||||
The problem with this is twofold - first, it has not yet been
|
The problem with this is twofold - first, it has not yet been
|
||||||
standardized, and thus there are not many terminal emulators that
|
standardized, and thus there are not many terminal emulators that
|
||||||
implement it (foot *does* implement it), and second, applications
|
implement it (foot *does* implement it), and second, applications
|
||||||
must be patched to use it.
|
must be patched to use it.
|
||||||
|
|
||||||
Until this has happened, foot offers an interim workaround; an
|
Until this has happened, foot offers an interim workaround; an
|
||||||
attempt to mitigate the screen flicker *without* affecting neither
|
attempt to mitigate the screen flicker *without* affecting neither
|
||||||
performance nor latency.
|
performance nor latency.
|
||||||
|
|
||||||
It is based on the fact that the screen is updated at a fixed
|
It is based on the fact that the screen is updated at a fixed
|
||||||
interval (typically 60Hz). For us, this means it does not matter
|
interval (typically 60Hz). For us, this means it does not matter
|
||||||
if we render a new frame at the *beginning* of a frame interval,
|
if we render a new frame at the *beginning* of a frame interval,
|
||||||
or at the *end*. Thus, the goal is to introduce a delay between
|
or at the *end*. Thus, the goal is to introduce a delay between
|
||||||
receiving client data and rendering the resulting state, but
|
receiving client data and rendering the resulting state, but
|
||||||
without causing a frame skip.
|
without causing a frame skip.
|
||||||
|
|
||||||
While it should be possible to estimate the amount of time left
|
While it should be possible to estimate the amount of time left
|
||||||
until the next frame, foot's algorithm is currently not that
|
until the next frame, foot's algorithm is currently not that
|
||||||
advanced, but is based on statistics I guess you could say - the
|
advanced, but is based on statistics I guess you could say - the
|
||||||
delay we introduce is so small that the risk of pushing the frame
|
delay we introduce is so small that the risk of pushing the frame
|
||||||
over to the next frame interval is also very small.
|
over to the next frame interval is also very small.
|
||||||
|
|
||||||
Now, that was a lot of text. But what is it foot actually does?
|
Now, that was a lot of text. But what is it foot actually does?
|
||||||
|
|
||||||
When receiving client data, it schedules a timer, the
|
When receiving client data, it schedules a timer, the
|
||||||
*delayed-render-lower*. If we do not receive any more client data
|
*delayed-render-lower*. If we do not receive any more client data
|
||||||
before the timer has run out, we render the frame. If however, we
|
before the timer has run out, we render the frame. If however, we
|
||||||
do receive more data, the timer is re-scheduled. That is, each
|
do receive more data, the timer is re-scheduled. That is, each
|
||||||
time we receive client data, frame rendering is delayed another
|
time we receive client data, frame rendering is delayed another
|
||||||
*delayed-render-lower* nanoseconds.
|
*delayed-render-lower* nanoseconds.
|
||||||
|
|
||||||
Now, while this works very well with most clients, it would be
|
Now, while this works very well with most clients, it would be
|
||||||
possible to construct a malicious client that keeps writing data
|
possible to construct a malicious client that keeps writing data
|
||||||
at a slow pace. To the user, this would look like foot has frozen
|
at a slow pace. To the user, this would look like foot has frozen
|
||||||
as we never get to render a new frame. To prevent this, an upper
|
as we never get to render a new frame. To prevent this, an upper
|
||||||
limit is set - *delayed-render-upper*. If this timer runs out, we
|
limit is set - *delayed-render-upper*. If this timer runs out, we
|
||||||
render the frame regardless of what the client is doing.
|
render the frame regardless of what the client is doing.
|
||||||
|
|
||||||
If changing these values, note that the lower timeout *must* be
|
If changing these values, note that the lower timeout *must* be
|
||||||
set lower than the upper timeout, but that this is not verified by
|
set lower than the upper timeout, but that this is not verified by
|
||||||
foot. Furthermore, both values must be less than 16ms (that is,
|
foot. Furthermore, both values must be less than 16ms (that is,
|
||||||
16000000 nanoseconds).
|
16000000 nanoseconds).
|
||||||
|
|
||||||
You can disable the feature altogether by setting either value to
|
You can disable the feature altogether by setting either value to
|
||||||
0. In this case, frames are rendered "as soon as possible".
|
0. In this case, frames are rendered "as soon as possible".
|
||||||
|
|
||||||
Default: lower=_500000_ (0.5ms), upper=_8333333_ (8.3ms - half a
|
Default: lower=_500000_ (0.5ms), upper=_8333333_ (8.3ms - half a
|
||||||
frame interval).
|
frame interval).
|
||||||
|
|
||||||
|
|
@ -1117,14 +1117,14 @@ any of these options.
|
||||||
time a frame has been rendered. This forces the compositor to
|
time a frame has been rendered. This forces the compositor to
|
||||||
redraw the entire window. If disabled, foot will only 'damage'
|
redraw the entire window. If disabled, foot will only 'damage'
|
||||||
updated rows.
|
updated rows.
|
||||||
|
|
||||||
There is normally *no* reason to enable this. However, it has been
|
There is normally *no* reason to enable this. However, it has been
|
||||||
seen to workaround an issue with _fractional scaling_ in _Gnome_.
|
seen to workaround an issue with _fractional scaling_ in _Gnome_.
|
||||||
|
|
||||||
Note that enabling this option is likely to increase CPU and/or
|
Note that enabling this option is likely to increase CPU and/or
|
||||||
GPU usage (by the compositor, not by foot), and may have a
|
GPU usage (by the compositor, not by foot), and may have a
|
||||||
negative impact on battery life.
|
negative impact on battery life.
|
||||||
|
|
||||||
Default: _no_.
|
Default: _no_.
|
||||||
|
|
||||||
*grapheme-shaping*
|
*grapheme-shaping*
|
||||||
|
|
@ -1132,90 +1132,90 @@ any of these options.
|
||||||
cluster segmentation while parsing "printed" text. Then, when
|
cluster segmentation while parsing "printed" text. Then, when
|
||||||
rendering, it will use _fcft_ (if compiled with _HarfBuzz_
|
rendering, it will use _fcft_ (if compiled with _HarfBuzz_
|
||||||
support) to shape the grapheme clusters.
|
support) to shape the grapheme clusters.
|
||||||
|
|
||||||
This is required to render e.g. flag (emoji) sequences, keycap
|
This is required to render e.g. flag (emoji) sequences, keycap
|
||||||
sequences, modifier sequences, zero-width-joiner (ZWJ) sequences
|
sequences, modifier sequences, zero-width-joiner (ZWJ) sequences
|
||||||
and emoji tag sequences. It might also improve rendering of
|
and emoji tag sequences. It might also improve rendering of
|
||||||
composed characters, depending on font.
|
composed characters, depending on font.
|
||||||
|
|
||||||
- foot must have been compiled with utf8proc support
|
- foot must have been compiled with utf8proc support
|
||||||
- fcft must have been compiled with HarfBuzz support
|
- fcft must have been compiled with HarfBuzz support
|
||||||
|
|
||||||
See also: *grapheme-width-method*.
|
See also: *grapheme-width-method*.
|
||||||
|
|
||||||
Default: _yes_
|
Default: _yes_
|
||||||
|
|
||||||
*grapheme-width-method*
|
*grapheme-width-method*
|
||||||
Selects which method to use when calculating the width
|
Selects which method to use when calculating the width
|
||||||
(i.e. number of columns) of a grapheme cluster. One of
|
(i.e. number of columns) of a grapheme cluster. One of
|
||||||
*wcswidth*, *double-width* and *max*.
|
*wcswidth*, *double-width* and *max*.
|
||||||
|
|
||||||
*wcswidth* simply adds together the individual width of all
|
*wcswidth* simply adds together the individual width of all
|
||||||
codepoints making up the cluster.
|
codepoints making up the cluster.
|
||||||
|
|
||||||
*double-width* does the same, but limits the maximum number of
|
*double-width* does the same, but limits the maximum number of
|
||||||
columns to 2. This is more correct, but may break some
|
columns to 2. This is more correct, but may break some
|
||||||
applications since applications typically use *wcswidth*(3)
|
applications since applications typically use *wcswidth*(3)
|
||||||
internally to calculate the width. This results in cursor
|
internally to calculate the width. This results in cursor
|
||||||
de-synchronization issues.
|
de-synchronization issues.
|
||||||
|
|
||||||
*max* uses the width of the largest codepoint in the cluster.
|
*max* uses the width of the largest codepoint in the cluster.
|
||||||
|
|
||||||
Default: _wcswidth_
|
Default: _wcswidth_
|
||||||
|
|
||||||
*font-monospace-warn*
|
*font-monospace-warn*
|
||||||
Boolean. When enabled, foot will use heuristics to try to verify
|
Boolean. When enabled, foot will use heuristics to try to verify
|
||||||
the primary font is a monospace font, and warn if it is not.
|
the primary font is a monospace font, and warn if it is not.
|
||||||
|
|
||||||
Disable this if you still want to use the font, even if foot
|
Disable this if you still want to use the font, even if foot
|
||||||
thinks it is not monospaced.
|
thinks it is not monospaced.
|
||||||
|
|
||||||
You may also want to disable it to get slightly faster startup times.
|
You may also want to disable it to get slightly faster startup times.
|
||||||
|
|
||||||
Default: _yes_
|
Default: _yes_
|
||||||
|
|
||||||
*max-shm-pool-size-mb*
|
*max-shm-pool-size-mb*
|
||||||
This option controls the amount of virtual address space used by
|
This option controls the amount of virtual address space used by
|
||||||
the pixmap memory to which the terminal screen content is
|
the pixmap memory to which the terminal screen content is
|
||||||
rendered.
|
rendered.
|
||||||
|
|
||||||
It does not change how much physical memory foot uses.
|
It does not change how much physical memory foot uses.
|
||||||
|
|
||||||
Foot uses a memory mapping trick to implement fast rendering of
|
Foot uses a memory mapping trick to implement fast rendering of
|
||||||
interactive scrolling (typically, but applies to "slow" scrolling
|
interactive scrolling (typically, but applies to "slow" scrolling
|
||||||
in general). Example: holding down the 'up' or 'down' arrow key to
|
in general). Example: holding down the 'up' or 'down' arrow key to
|
||||||
scroll in a text editor.
|
scroll in a text editor.
|
||||||
|
|
||||||
For this to work, it needs a large amount of virtual address
|
For this to work, it needs a large amount of virtual address
|
||||||
space. Again, note that this is not physical memory.
|
space. Again, note that this is not physical memory.
|
||||||
|
|
||||||
On a normal x64 based computer, each process has 128TB of virtual
|
On a normal x64 based computer, each process has 128TB of virtual
|
||||||
address space, and newer ones have 64PB. This is an insane amount
|
address space, and newer ones have 64PB. This is an insane amount
|
||||||
and most applications do not use anywhere near that amount.
|
and most applications do not use anywhere near that amount.
|
||||||
|
|
||||||
Each foot terminal window can allocate up to 2GB of virtual
|
Each foot terminal window can allocate up to 2GB of virtual
|
||||||
address space. With 128TB of address space, that means a maximum
|
address space. With 128TB of address space, that means a maximum
|
||||||
of 65536 windows in server/daemon mode (for 2GB). That should be
|
of 65536 windows in server/daemon mode (for 2GB). That should be
|
||||||
enough, yes?
|
enough, yes?
|
||||||
|
|
||||||
However, the Wayland compositor also needs to allocate the same
|
However, the Wayland compositor also needs to allocate the same
|
||||||
amount of virtual address space. Thus, it has a slightly higher
|
amount of virtual address space. Thus, it has a slightly higher
|
||||||
chance of running out of address space since it needs to host
|
chance of running out of address space since it needs to host
|
||||||
all running Wayland clients in the same way, at the same time.
|
all running Wayland clients in the same way, at the same time.
|
||||||
|
|
||||||
In the off chance that this becomes a problem for you, you can
|
In the off chance that this becomes a problem for you, you can
|
||||||
reduce the amount used with this option.
|
reduce the amount used with this option.
|
||||||
|
|
||||||
Or, for optimal performance, you can increase it to the maximum
|
Or, for optimal performance, you can increase it to the maximum
|
||||||
allowed value, 2GB (but note that you most likely will not notice
|
allowed value, 2GB (but note that you most likely will not notice
|
||||||
any difference compared to the default value).
|
any difference compared to the default value).
|
||||||
|
|
||||||
Setting it to 0 disables the feature.
|
Setting it to 0 disables the feature.
|
||||||
|
|
||||||
Limitations:
|
Limitations:
|
||||||
- only supported on 64-bit architectures
|
- only supported on 64-bit architectures
|
||||||
- only supported on Linux
|
- only supported on Linux
|
||||||
|
|
||||||
Default: _512_. Maximum allowed: _2048_ (2GB).
|
Default: _512_. Maximum allowed: _2048_ (2GB).
|
||||||
|
|
||||||
*sixel*
|
*sixel*
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue