Commit graph

207 commits

Author SHA1 Message Date
Daniel Eklöf
44b32104a7
doc: foot.ini: remove FONT FORMAT section, expand description of ‘font’ 2020-12-31 12:57:37 +01:00
Birger Schacht
4e67940fd7 Fix typo
programatically -> programmatically
2020-12-26 09:17:34 +01:00
Daniel Eklöf
b25b201819
doc: updated ‘laptop’ benchmarks for 1.6.0 2020-12-21 20:12:03 +01:00
Daniel Eklöf
0a821f2ed4
fonts: size fonts using the scaling factor when output scaling is enabled
This extends the new ‘dpi-aware’ option with a new default value,
‘auto’.

When set to ‘auto’, fonts are sized using monitors’ DPI when output
scaling is disabled. When output scaling is enabled, fonts are instead
sized using the scaling factor.

The reasoning here is that a user that has enabled output scaling is
obviously *not* relying on DPI scaling.

Output scaling can also be a way to compensate for different viewing
distances, in which case we do *not* want to break that by using DPI
scaling.

Users can still force DPI-only font sizing by setting ‘dpi-aware=yes’,
or disable it completely by setting ‘dpi-aware=no’.
2020-12-17 12:05:22 +01:00
Daniel Eklöf
15d20af2a2
config: add ‘notify’ to possible values for ‘bell’ in foot.ini
When `bell=notify`, foot will trigger a desktop notification when it
receives a BEL in an unfocused window.
2020-12-10 18:22:48 +01:00
Daniel Eklöf
21cc68d49e
osc: implement urxvt’s “OSC 777;notify”
OSC 777 is URxvt’s generic escape to send commands to its perl
extensions. The first parameter is the name of the extension, followed
by its arguments.

OSC 777;notify is a, if not well established, at least a fairly well
known escape sequence to request a (desktop) notification. The syntax
is:

  \e]777;notify;<title>;<body>\e\\

Neither title nor body is escaped in any way, meaning they should not
contain a ‘;’.

Foot will split title from body at the *first* ‘;’. Any remaining ‘;’
characters are treated as part of ‘body’.

Instead of adding built-in support for the freedesktop notification
specification (which would require us to link against at least dbus),
add a new config option to foot.ini: ‘notify’.

This option specifies the command to execute when a notification is
received. ‘${title}’ and ‘${body}’ can be used anywhere, in any
combination, and as many times as you want, in any of the command
arguments.

The default value is ‘notify-send -a foot -i foot ${title} ${body}’
2020-12-09 20:54:51 +01:00
Daniel Eklöf
7b16802972
config: remove support for loading configuration from footrc 2020-12-08 19:52:22 +01:00
Daniel Eklöf
016c703b3d
doc: foot.1: add IRC channel 2020-11-27 22:39:33 +01:00
Daniel Eklöf
903a8eaf4a
doc: foot.5: minor highlighting fixes 2020-11-26 18:22:45 +01:00
Daniel Eklöf
4d9e5368a9
doc: foot.1: no need to say foot.ini twice 2020-11-26 18:22:22 +01:00
Daniel Eklöf
8eaa195990
foot/footclient: add short options to all command line options
e813883367 added “missing” short command
line options to footclient.

Except they weren’t missing; they were intentionally missing short
options and only supported long options.

This commit makes the new/missing short options “official”, by adding
documentation, zsh completions and including them in usage().
2020-11-23 19:19:19 +01:00
Craig Barnes
b8fc2e19da client: add new "--window-size-*" options to docs and CHANGELOG.md 2020-11-22 18:52:51 +00:00
Daniel Eklöf
8e7658a135
config: add ‘dpi-aware’ option, defaulting to enabled
When disabled, foot no longers uses outputs’ DPI to scale the
font. Instead, it uses the outputs’ scaling factor.

That is, instead of appending “:dpi=123” to the fontconfig string,
modify the “:pixelsize” or “:size” attribute.

Closes #206
2020-11-19 19:25:48 +01:00
Daniel Eklöf
60a1ebac2b
doc: foot.ini: document default.bold-text-in-bright 2020-11-14 11:22:23 +01:00
Daniel Eklöf
5b43477cc2
config: enable allow-overflowing-double-width-glyphs by default 2020-11-13 17:50:16 +01:00
Daniel Eklöf
2af65471a6
readme/doc:foot.1: document the (new) keypad behavior 2020-11-11 18:37:28 +01:00
Daniel Eklöf
f3e6941c9a
search: add {clipboard,primary}-paste key bindings
These bindings copy from the clipboard or primary selection into the
search buffer.

Default bindings:

* clipboard-paste: ctrl+v, ctrl+y
* primary-paste: shift+insert
2020-11-01 12:39:57 +01:00
Daniel Eklöf
84859f475e
doc: foot.ini.5: mention how one can disable bold/italic fonts completely 2020-10-20 21:12:25 +02:00
Daniel Eklöf
2c101a21ee
config: add font-bold, font-italic and font-bold-italic options
These options lets the user configure custom fonts and styles, to use
with the bold and italic cell attributes.

By default, they are unset, meaning we use the bold/italic variants of
the regular font.

Closes #169.
2020-10-20 21:04:47 +02:00
Daniel Eklöf
17761dce63
csi: implement ‘CSI ? 1042 h/l’ - enable/disable bell-is-urgent 2020-10-11 17:44:29 +02:00
Daniel Eklöf
c650862b0d
readme/doc: add shift+insert to list of default key bindings 2020-10-10 23:36:41 +02:00
Daniel Eklöf
50ca1c2864
doc: foot.ini.t: csd.preferred: repair indentation of “default: _server_” 2020-10-10 13:07:31 +02:00
Daniel Eklöf
3940e07972
doc; foot.ini.5: csd.preferred: re-phrase 2020-10-10 13:07:31 +02:00
Daniel Eklöf
6ff97128fc
conf: csd.preferred can now be set to ‘none’
When csd.preferred == none, we will request CSDs from the compositor,
but internally render as if we are using SSDs. That is, we don’t
render any window decorations at all.

Note that some compositors may ignore our request to use CSDs, and
still render SSDs for us.

Closes #163
2020-10-10 13:07:29 +02:00
Daniel Eklöf
e54adbfa7c
Merge branch 'bind-shift+insert-to-primary-paste' into master 2020-10-10 13:05:55 +02:00
Daniel Eklöf
b308e09261
Merge branch 'configurable-word-delimiters' into master
Closes #156
2020-10-10 13:02:12 +02:00
Daniel Eklöf
afafe12d5b
config: bind shift+insert to primary-paste by default 2020-10-10 10:27:42 +02:00
Daniel Eklöf
e26802258b
doc: benchmark: workstation numbers for 1.5.0 2020-10-09 21:17:38 +02:00
Daniel Eklöf
994262f7d4
doc: foot.ini: word-delimiters: whitespace chars are always delimiters 2020-10-09 19:50:56 +02:00
Daniel Eklöf
49f4b3da64
config: add ‘[default].word-delimiters’
This option lets the user configure which characters act as word
delimiters when selecting text.

This affects both “double clicking”, and ‘ctrl-w’ in scrollback search
mode.

Closes #156
2020-10-09 19:44:23 +02:00
Daniel Eklöf
f47d27968f
doc: foot.ini: bell/urgency: add note about this getting replaced in the future
The ‘set-urgency’ action is an interim workaround for lack of support
of an urgency hint in Wayland compositors. If/when such a feature gets
implemented in Wayland, I intend to use that instead of the current
implementation in foot.
2020-10-09 07:39:53 +02:00
Daniel Eklöf
7c6686221f
bell: optionally render margins in red when receiving BEL
Add anew config option, ‘bell=none|set-urgency’. When set to
‘set-urgency’, the margins will be painted in red (if the window did
not have keyboard focus).

This is intended as a cheap replacement for the ‘urgency’ hint, that
doesn’t (yet) exist on Wayland.

Closes #157
2020-10-08 19:55:32 +02:00
Daniel Eklöf
7e0cfd46c6
doc: foot.1: remove ‘--’ from example command line 2020-10-08 19:54:28 +02:00
Daniel Eklöf
4c242cacb3
doc: foot.ini: mention that ‘lines’ is rounded up to nearest power of 2 2020-10-08 19:54:06 +02:00
Daniel Eklöf
219dbad5b5
doc: foot.ini: “top at” -> “top of” 2020-10-08 19:53:49 +02:00
Daniel Eklöf
17d6e85e1c
doc: foot.ini: it’s foot.ini, not foot.init 2020-10-08 19:53:30 +02:00
Daniel Eklöf
2ebd7a3dd7
doc: foot.ini: the tweak section is called ‘tweak’, not ‘tweaks’ 2020-10-07 18:38:54 +02:00
Daniel Eklöf
7e78c82de7
doc: benchmark: update with ‘laptop’ results after 1.5 release 2020-10-03 16:40:49 +02:00
Daniel Eklöf
ebd1476baf
config: change default multiplier from 1.0 -> 3.0 2020-09-29 19:42:50 +02:00
Daniel Eklöf
a683a13120
Revert "meson: add -Dwith-docs=disabled|enabled|auto"
This reverts commit 9d6b2c9342.
2020-09-24 16:44:26 +02:00
Daniel Eklöf
9d6b2c9342
meson: add -Dwith-docs=disabled|enabled|auto
When enabled, man pages are generated and installed, along with
README.md, CHANGELOG.md and LICENSE. This requires ‘scdoc’ as a make
dependency.

When disabled, ‘scdoc’ is no longer required, no man pages will be
built, and no documentation at all is installed.

Defaults to ‘enabled’.
2020-09-24 16:39:19 +02:00
Daniel Eklöf
f30d7cce27
doc: foot.ini: alternate-scroll-mode: fix highlighting of CSI escape 2020-09-16 08:05:38 +02:00
Daniel Eklöf
f2497320c6
config: add mouse.alternate-scroll-mode option
This option controls the initial state of the Alternate Scroll Mode,
and defaults to ‘enabled’.
2020-09-15 19:12:29 +02:00
Daniel Eklöf
fdfdbba9a0
render: best-effort attempt to set initial window size in chars when scale != 1
The initial window size is set *before* we’re initially mapped. This
means we don’t (yet) know on which output we’ll be mapped. _That_
means we don’t know which scaling factor to use.

This implements a best effort attempt, where we use the “guessed”
scaling factor. This will always be correct in single-monitor
configurations, but may be wrong in multi-monitor setups with
different scaling factors.
2020-09-14 17:36:56 +02:00
Daniel Eklöf
51a7e44fa2
config: add tweak.scaling-filter
Use the new fcft_set_scaling_filter() API to use a non-default scaling
filter.

By default, we use lanczo3, the ‘best’ filter. This overrides the
default in fcft, which is ‘cubic’ filtering.
2020-09-13 17:59:56 +02:00
Daniel Eklöf
4d13429235
key-binding: deprecate scrollback-up/down, add scrollback-up/down-line
This deprecates/renames scrollback-up/down to scrollback-up/down-page.

It also renames scrollback-up/down-half to
scrollback-up/down-half-page, and adds the new bindings
scrollback-up/down-line.
2020-09-10 18:17:47 +02:00
Daniel Eklöf
2e3bd5e23c
config: add scrollback-{up,down}-half key bindings
These new bindings scroll up/down half a page in the
scrollback (instead of the full page scrolled by
‘scrollback-{up,down}’).

Closes #128.
2020-09-09 19:40:48 +02:00
Daniel Eklöf
eb6737ca25
Add -W,--window-size-chars, and foot.ini:initial-window-size-chars
* Add -W,--window-size-chars command line option
* Add initial-window-size-chars foot.ini option
* Add -w,--window-size-pixels command line option
* Add initial-window-size-pixels foot.ini option
* Deprecate -g,--geometry command line option in favor of
  -w,--window-size-pixels
* Deprecate geometry option in foot.ini in favor of
  initial-window-size-pixels
2020-09-08 19:41:00 +02:00
Daniel Eklöf
d040284cc7
config: add tweak.damage-whole-window
When enabled, foot will ‘damage’ the entire window, instead of just
the modified/updated rows.

This will force the compositor to redraw/blend the whole window.

This can be used to workaround an issue with fractional scaling in
Gnome, where random thin lines may appear.
2020-09-06 17:52:07 +02:00
Daniel Eklöf
c40ada903d
doc: foot.ini: max-shm-pool-size-mb: a value of 0 disables the feature 2020-09-06 09:34:58 +02:00