2020-02-15 19:01:54 +01:00
|
|
|
|
# -*- conf -*-
|
|
|
|
|
|
|
2021-01-07 11:16:29 +01:00
|
|
|
|
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
|
2021-02-09 19:42:55 +01:00
|
|
|
|
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
|
2021-01-07 11:16:29 +01:00
|
|
|
|
# login-shell=no
|
|
|
|
|
|
|
2023-05-02 01:53:01 +10:00
|
|
|
|
# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
|
2021-07-04 17:59:40 +02:00
|
|
|
|
# title=foot
|
|
|
|
|
|
# locked-title=no
|
|
|
|
|
|
|
2020-12-31 12:48:20 +01:00
|
|
|
|
# font=monospace:size=8
|
2020-10-20 21:04:47 +02:00
|
|
|
|
# font-bold=<bold variant of regular font>
|
|
|
|
|
|
# font-italic=<italic variant of regular font>
|
|
|
|
|
|
# font-bold-italic=<bold+italic variant of regular font>
|
2022-12-17 10:18:55 +01:00
|
|
|
|
# font-size-adjustment=0.5
|
2021-01-07 11:16:29 +01:00
|
|
|
|
# line-height=<font metrics>
|
2021-01-07 11:46:18 +01:00
|
|
|
|
# letter-spacing=0
|
2021-01-07 11:16:29 +01:00
|
|
|
|
# horizontal-letter-offset=0
|
|
|
|
|
|
# vertical-letter-offset=0
|
2021-06-17 17:52:38 +02:00
|
|
|
|
# underline-offset=<font metrics>
|
2022-08-19 02:54:49 +02:00
|
|
|
|
# underline-thickness=<font underline thickness>
|
2021-04-09 23:19:20 +02:00
|
|
|
|
# box-drawings-uses-font-glyphs=no
|
2023-06-26 17:55:04 +02:00
|
|
|
|
# dpi-aware=no
|
2021-01-07 11:16:29 +01:00
|
|
|
|
|
2020-09-08 19:17:29 +02:00
|
|
|
|
# initial-window-size-pixels=700x500 # Or,
|
|
|
|
|
|
# initial-window-size-chars=<COLSxROWS>
|
2020-03-28 12:04:00 +01:00
|
|
|
|
# initial-window-mode=windowed
|
2022-09-03 12:16:41 +02:00
|
|
|
|
# pad=0x0 # optionally append 'center'
|
2021-01-21 15:14:43 +01:00
|
|
|
|
# resize-delay-ms=100
|
2021-01-07 11:16:29 +01:00
|
|
|
|
|
2021-05-27 11:41:57 +02:00
|
|
|
|
# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}
|
2021-01-31 14:27:13 +01:00
|
|
|
|
|
2020-11-14 11:21:51 +01:00
|
|
|
|
# bold-text-in-bright=no
|
2020-10-09 19:44:23 +02:00
|
|
|
|
# word-delimiters=,│`|:"'()[]{}<>
|
2021-01-16 11:26:03 +01:00
|
|
|
|
# selection-target=primary
|
2021-01-07 11:16:29 +01:00
|
|
|
|
# workers=<number of logical CPUs>
|
2023-05-17 20:51:40 +02:00
|
|
|
|
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux)
|
|
|
|
|
|
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD)
|
2019-07-21 15:35:01 +02:00
|
|
|
|
|
2022-05-28 19:27:29 +02:00
|
|
|
|
[environment]
|
|
|
|
|
|
# name=value
|
|
|
|
|
|
|
2021-04-29 04:12:55 -05:00
|
|
|
|
[bell]
|
2021-05-07 07:16:48 -05:00
|
|
|
|
# urgent=no
|
|
|
|
|
|
# notify=no
|
2023-10-07 19:37:04 +02:00
|
|
|
|
# visual=no
|
2021-04-29 04:12:55 -05:00
|
|
|
|
# command=
|
2021-05-22 10:53:09 -07:00
|
|
|
|
# command-focused=no
|
2021-04-29 04:12:55 -05:00
|
|
|
|
|
2020-07-29 17:41:24 +02:00
|
|
|
|
[scrollback]
|
|
|
|
|
|
# lines=1000
|
2020-09-29 09:50:17 +02:00
|
|
|
|
# multiplier=3.0
|
2020-07-29 17:41:24 +02:00
|
|
|
|
# indicator-position=relative
|
2022-12-01 15:06:13 +01:00
|
|
|
|
# indicator-format=""
|
2020-07-29 17:41:24 +02:00
|
|
|
|
|
2021-05-20 17:56:56 +02:00
|
|
|
|
[url]
|
|
|
|
|
|
# launch=xdg-open ${url}
|
|
|
|
|
|
# label-letters=sadfjklewcmpgh
|
|
|
|
|
|
# osc8-underline=url-mode
|
2021-08-09 18:25:36 +02:00
|
|
|
|
# protocols=http, https, ftp, ftps, file, gemini, gopher
|
2022-04-05 19:42:42 +02:00
|
|
|
|
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
|
2021-05-20 17:58:06 +02:00
|
|
|
|
|
2019-07-22 20:15:14 +02:00
|
|
|
|
[cursor]
|
|
|
|
|
|
# style=block
|
2022-04-06 01:56:17 +02:00
|
|
|
|
# color=<inverse foreground/background>
|
2020-06-30 17:45:34 +02:00
|
|
|
|
# blink=no
|
2021-04-30 20:31:47 +02:00
|
|
|
|
# beam-thickness=1.5
|
2021-05-18 18:52:10 +02:00
|
|
|
|
# underline-thickness=<font underline thickness>
|
2020-08-04 07:33:15 +02:00
|
|
|
|
|
|
|
|
|
|
[mouse]
|
2020-07-31 17:09:06 +02:00
|
|
|
|
# hide-when-typing=no
|
2020-09-15 19:09:00 +02:00
|
|
|
|
# alternate-scroll-mode=yes
|
2019-07-22 20:15:14 +02:00
|
|
|
|
|
2023-07-05 00:19:21 +08:00
|
|
|
|
[touch]
|
|
|
|
|
|
# long-press-delay=400
|
|
|
|
|
|
|
2019-07-21 15:35:01 +02:00
|
|
|
|
[colors]
|
2020-03-02 18:47:35 +01:00
|
|
|
|
# alpha=1.0
|
2023-07-18 16:18:53 +02:00
|
|
|
|
# background=242424
|
|
|
|
|
|
# foreground=ffffff
|
2023-10-07 19:37:04 +02:00
|
|
|
|
# flash=7f7f00
|
2023-10-10 08:11:13 +02:00
|
|
|
|
# flash-alpha=0.5
|
2021-11-03 14:25:38 +01:00
|
|
|
|
|
|
|
|
|
|
## Normal/regular colors (color palette 0-7)
|
2023-07-18 16:18:53 +02:00
|
|
|
|
# regular0=242424 # black
|
|
|
|
|
|
# regular1=f62b5a # red
|
|
|
|
|
|
# regular2=47b413 # green
|
|
|
|
|
|
# regular3=e3c401 # yellow
|
|
|
|
|
|
# regular4=24acd4 # blue
|
|
|
|
|
|
# regular5=f2affd # magenta
|
|
|
|
|
|
# regular6=13c299 # cyan
|
|
|
|
|
|
# regular7=e6e6e6 # white
|
2021-11-03 14:25:38 +01:00
|
|
|
|
|
|
|
|
|
|
## Bright colors (color palette 8-15)
|
2023-07-18 16:18:53 +02:00
|
|
|
|
# bright0=616161 # bright black
|
|
|
|
|
|
# bright1=ff4d51 # bright red
|
|
|
|
|
|
# bright2=35d450 # bright green
|
|
|
|
|
|
# bright3=e9e836 # bright yellow
|
|
|
|
|
|
# bright4=5dc5f8 # bright blue
|
|
|
|
|
|
# bright5=feabf2 # bright magenta
|
|
|
|
|
|
# bright6=24dfc4 # bright cyan
|
2020-07-25 13:21:27 +02:00
|
|
|
|
# bright7=ffffff # bright white
|
2021-11-03 14:25:38 +01:00
|
|
|
|
|
|
|
|
|
|
## dimmed colors (see foot.ini(5) man page)
|
|
|
|
|
|
# dim0=<not set>
|
|
|
|
|
|
# ...
|
|
|
|
|
|
# dim7=<not-set>
|
|
|
|
|
|
|
|
|
|
|
|
## The remaining 256-color palette
|
2021-05-08 02:18:45 -05:00
|
|
|
|
# 16 = <256-color palette #16>
|
|
|
|
|
|
# ...
|
|
|
|
|
|
# 255 = <256-color palette #255>
|
2021-11-03 14:25:38 +01:00
|
|
|
|
|
|
|
|
|
|
## Misc colors
|
2020-08-12 18:53:32 +02:00
|
|
|
|
# selection-foreground=<inverse foreground/background>
|
|
|
|
|
|
# selection-background=<inverse foreground/background>
|
2022-07-27 19:14:27 +02:00
|
|
|
|
# jump-labels=<regular0> <regular3> # black-on-yellow
|
|
|
|
|
|
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
|
|
|
|
|
|
# search-box-no-match=<regular0> <regular1> # black-on-red
|
|
|
|
|
|
# search-box-match=<regular0> <regular3> # black-on-yellow
|
2021-02-06 11:10:40 +01:00
|
|
|
|
# urls=<regular3>
|
2020-03-02 18:42:49 +01:00
|
|
|
|
|
|
|
|
|
|
[csd]
|
|
|
|
|
|
# preferred=server
|
2020-03-03 18:18:59 +01:00
|
|
|
|
# size=26
|
2021-07-22 23:40:32 +02:00
|
|
|
|
# font=<primary font>
|
2020-03-03 18:18:59 +01:00
|
|
|
|
# color=<foreground color>
|
2023-06-27 17:00:31 +05:00
|
|
|
|
# hide-when-maximized=no
|
2023-07-14 12:03:35 +02:00
|
|
|
|
# double-click-to-maximize=yes
|
2021-10-27 18:27:08 +02:00
|
|
|
|
# border-width=0
|
2021-10-29 19:30:11 +02:00
|
|
|
|
# border-color=<csd.color>
|
2020-03-06 19:11:31 +01:00
|
|
|
|
# button-width=26
|
2021-06-20 10:44:50 +02:00
|
|
|
|
# button-color=<background color>
|
2021-02-06 10:35:00 +01:00
|
|
|
|
# button-minimize-color=<regular4>
|
|
|
|
|
|
# button-maximize-color=<regular2>
|
|
|
|
|
|
# button-close-color=<regular1>
|
2020-03-08 15:36:30 +01:00
|
|
|
|
|
|
|
|
|
|
[key-bindings]
|
2020-09-10 18:17:47 +02:00
|
|
|
|
# scrollback-up-page=Shift+Page_Up
|
|
|
|
|
|
# scrollback-up-half-page=none
|
|
|
|
|
|
# scrollback-up-line=none
|
|
|
|
|
|
# scrollback-down-page=Shift+Page_Down
|
|
|
|
|
|
# scrollback-down-half-page=none
|
|
|
|
|
|
# scrollback-down-line=none
|
2023-10-08 10:37:16 +02:00
|
|
|
|
# scrollback-home=none
|
|
|
|
|
|
# scrollback-end=none
|
2022-01-17 13:57:24 -05:00
|
|
|
|
# clipboard-copy=Control+Shift+c XF86Copy
|
|
|
|
|
|
# clipboard-paste=Control+Shift+v XF86Paste
|
2020-10-10 10:27:42 +02:00
|
|
|
|
# primary-paste=Shift+Insert
|
2021-03-04 08:59:37 +01:00
|
|
|
|
# search-start=Control+Shift+r
|
2020-03-08 15:36:30 +01:00
|
|
|
|
# font-increase=Control+plus Control+equal Control+KP_Add
|
|
|
|
|
|
# font-decrease=Control+minus Control+KP_Subtract
|
|
|
|
|
|
# font-reset=Control+0 Control+KP_0
|
2021-03-04 08:59:37 +01:00
|
|
|
|
# spawn-terminal=Control+Shift+n
|
2020-03-18 14:52:04 +01:00
|
|
|
|
# minimize=none
|
|
|
|
|
|
# maximize=none
|
|
|
|
|
|
# fullscreen=none
|
2021-02-26 09:24:40 +01:00
|
|
|
|
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
|
|
|
|
|
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
2020-07-31 17:02:53 +02:00
|
|
|
|
# pipe-selected=[xargs -r firefox] none
|
2022-12-08 11:45:51 +01:00
|
|
|
|
# pipe-command-output=[sh -c "cat - > /tmp/foot-cmd-out.txt"] none # Write output of last command to /tmp/foot-cmd-out.txt (requires shell integration)
|
bind control-shift-u to unicode-input, move urls to o
Having a keybinding to invoke arbitrary unicode characters is very
useful. It's often used as a method of last resort to communicate with
people outside of your main language. For example, if you want to type
the last letter of my real name, you can invoke the latin-1 character
0xe9 or unicode 0x00e9.
You can also use this to type special characters, for example, unicode
U+1F4A9 is of course, the infamous PILE OF POO, which is sure to
produce million laughs everywhere you go.
In foot, there's no keybinding by default to invoke the very useful
unicode-input command. There is no "standard" (as in "ISO") keybinding
this either. But there *is* a de-facto standard currently deployed
by *both* GTK and Qt (a rare feat) *and* Chrome OS (an even rarer
feat) and it's control-shift-u.
Alternatives include Control-x 8 (emacs), Control V u (vim),
Alt (Windows, LibreOffice), or Option (Mac). I doubt we want to adopt
any of those.
So let's use control-shift-u for this. Unfortunately, it's currently
assigned to show-urls-launch, which is unfortunate, but
insurmountable. We can reassign this keybinding elsewhere. I have
picked control-shift-o in my configuration, because "o" is a good
mnemonic for "open URLs". Others have suggested "m" instead.
Closes: #1183
2022-12-15 11:49:51 -05:00
|
|
|
|
# show-urls-launch=Control+Shift+o
|
2021-02-04 20:55:08 +01:00
|
|
|
|
# show-urls-copy=none
|
2022-03-22 19:07:06 +01:00
|
|
|
|
# show-urls-persistent=none
|
osc: add support for OSC 133;A (prompt markers)
This patch adds support for the OSC-133;A sequence, introduced by
FinalTerm and implemented by iTerm2, Kitty and more. See
https://iterm2.com/documentation-one-page.html#documentation-escape-codes.html.
The shell emits the OSC just before printing the prompt. This lets the
terminal know where, in the scrollback, there are prompts.
We implement this using a simple boolean in the row struct ("this row
has a prompt"). The prompt marker must be reflowed along with the text
on window resizes.
In an ideal world, erasing, or overwriting the cell where the OSC was
emitted, would remove the prompt mark. Since we don't store this
information in the cell struct, we can't do that. The best we can do
is reset it in erase_line(). This works well enough in the "normal"
screen, when used with a "normal" shell. It doesn't really work in
fullscreen apps, on the alt screen. But that doesn't matter since we
don't support jumping between prompts on the alt screen anyway.
To be able to jump between prompts, two new key bindings have been
added: prompt-prev and prompt-next, bound to ctrl+shift+z and
ctrl+shift+x respectively.
prompt-prev will jump to the previous, not currently visible, prompt,
by moving the viewport, ensuring the prompt is at the top of the
screen.
prompt-next jumps to the next prompt, visible or not. Again, by moving
the viewport to ensure the prompt is at the top of the screen. If
we're at the bottom of the scrollback, the viewport is instead moved
as far down as possible.
Closes #30
2022-06-15 18:44:23 +02:00
|
|
|
|
# prompt-prev=Control+Shift+z
|
|
|
|
|
|
# prompt-next=Control+Shift+x
|
bind control-shift-u to unicode-input, move urls to o
Having a keybinding to invoke arbitrary unicode characters is very
useful. It's often used as a method of last resort to communicate with
people outside of your main language. For example, if you want to type
the last letter of my real name, you can invoke the latin-1 character
0xe9 or unicode 0x00e9.
You can also use this to type special characters, for example, unicode
U+1F4A9 is of course, the infamous PILE OF POO, which is sure to
produce million laughs everywhere you go.
In foot, there's no keybinding by default to invoke the very useful
unicode-input command. There is no "standard" (as in "ISO") keybinding
this either. But there *is* a de-facto standard currently deployed
by *both* GTK and Qt (a rare feat) *and* Chrome OS (an even rarer
feat) and it's control-shift-u.
Alternatives include Control-x 8 (emacs), Control V u (vim),
Alt (Windows, LibreOffice), or Option (Mac). I doubt we want to adopt
any of those.
So let's use control-shift-u for this. Unfortunately, it's currently
assigned to show-urls-launch, which is unfortunate, but
insurmountable. We can reassign this keybinding elsewhere. I have
picked control-shift-o in my configuration, because "o" is a good
mnemonic for "open URLs". Others have suggested "m" instead.
Closes: #1183
2022-12-15 11:49:51 -05:00
|
|
|
|
# unicode-input=Control+Shift+u
|
2021-10-24 11:49:37 +02:00
|
|
|
|
# noop=none
|
2020-07-31 17:02:53 +02:00
|
|
|
|
|
2020-07-29 17:27:01 +02:00
|
|
|
|
[search-bindings]
|
2021-07-02 09:12:57 +01:00
|
|
|
|
# cancel=Control+g Control+c Escape
|
2020-07-29 17:27:01 +02:00
|
|
|
|
# commit=Return
|
|
|
|
|
|
# find-prev=Control+r
|
|
|
|
|
|
# find-next=Control+s
|
|
|
|
|
|
# cursor-left=Left Control+b
|
|
|
|
|
|
# cursor-left-word=Control+Left Mod1+b
|
|
|
|
|
|
# cursor-right=Right Control+f
|
|
|
|
|
|
# cursor-right-word=Control+Right Mod1+f
|
|
|
|
|
|
# cursor-home=Home Control+a
|
|
|
|
|
|
# cursor-end=End Control+e
|
|
|
|
|
|
# delete-prev=BackSpace
|
|
|
|
|
|
# delete-prev-word=Mod1+BackSpace Control+BackSpace
|
|
|
|
|
|
# delete-next=Delete
|
|
|
|
|
|
# delete-next-word=Mod1+d Control+Delete
|
2023-10-08 10:16:48 +02:00
|
|
|
|
# extend-char=Shift+Right
|
|
|
|
|
|
# extend-to-word-boundary=Control+w Control+Shift+Right
|
2021-03-04 08:59:37 +01:00
|
|
|
|
# extend-to-next-whitespace=Control+Shift+w
|
2023-10-08 10:16:48 +02:00
|
|
|
|
# extend-line-down=Shift+Down
|
|
|
|
|
|
# extend-backward-char=Shift+Left
|
|
|
|
|
|
# extend-backward-to-word-boundary=Control+Shift+Left
|
|
|
|
|
|
# extend-backward-to-next-whitespace=none
|
|
|
|
|
|
# extend-line-up=Shift+Up
|
2022-04-26 18:34:18 +02:00
|
|
|
|
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
|
2020-11-01 12:39:57 +01:00
|
|
|
|
# primary-paste=Shift+Insert
|
2022-07-28 18:09:16 +02:00
|
|
|
|
# unicode-input=none
|
2023-10-08 10:37:16 +02:00
|
|
|
|
# scrollback-up-page=Shift+Page_Up
|
|
|
|
|
|
# scrollback-up-half-page=none
|
|
|
|
|
|
# scrollback-up-line=none
|
|
|
|
|
|
# scrollback-down-page=Shift+Page_Down
|
|
|
|
|
|
# scrollback-down-half-page=none
|
|
|
|
|
|
# scrollback-down-line=none
|
|
|
|
|
|
# scrollback-home=none
|
|
|
|
|
|
# scrollback-end=none
|
2020-07-29 17:27:01 +02:00
|
|
|
|
|
2021-01-30 12:43:59 +01:00
|
|
|
|
[url-bindings]
|
2021-07-02 09:12:57 +01:00
|
|
|
|
# cancel=Control+g Control+c Control+d Escape
|
2021-02-14 16:58:34 +01:00
|
|
|
|
# toggle-url-visible=t
|
2021-01-30 12:43:59 +01:00
|
|
|
|
|
2022-02-09 18:10:38 +01:00
|
|
|
|
[text-bindings]
|
|
|
|
|
|
# \x03=Mod4+c # Map Super+c -> Ctrl+c
|
|
|
|
|
|
|
2020-03-12 10:20:05 +01:00
|
|
|
|
[mouse-bindings]
|
2023-09-18 16:36:39 +02:00
|
|
|
|
# scrollback-up-mouse=BTN_BACK
|
|
|
|
|
|
# scrollback-down-mouse=BTN_FORWARD
|
2021-11-29 22:06:35 +00:00
|
|
|
|
# selection-override-modifiers=Shift
|
2020-03-12 10:20:05 +01:00
|
|
|
|
# primary-paste=BTN_MIDDLE
|
2020-08-11 09:55:33 +02:00
|
|
|
|
# select-begin=BTN_LEFT
|
2020-08-11 10:52:02 +02:00
|
|
|
|
# select-begin-block=Control+BTN_LEFT
|
2020-08-11 10:17:19 +02:00
|
|
|
|
# select-extend=BTN_RIGHT
|
2021-01-06 11:11:46 +01:00
|
|
|
|
# select-extend-character-wise=Control+BTN_RIGHT
|
2020-08-11 09:55:33 +02:00
|
|
|
|
# select-word=BTN_LEFT-2
|
|
|
|
|
|
# select-word-whitespace=Control+BTN_LEFT-2
|
selection: add support for selecting the contents of a quote
This patch changes the default of triple clicking, from selecting the
current logical row, to first trying to select the contents of the
quote under the cursor, and if failing to find a quote, selecting the
current row (like before).
This is implemented by adding a new key binding, 'select-quote'.
It will search for surrounding quote characters, and if one is found
on each side of the cursor, the quote is selected. If not, the entire
row is selected instead.
Subsequent selection operations will behave as if the selection is
either a word selection (a quote was found), or a row selection (no
quote found).
Escaped quote characters are not supported: "foo \" bar" will match
'foo \', and not 'foo " bar'.
Mismatched quotes are not custom handled. They will simply not match.
Nested quotes ("123 'abc def' 456") are supported.
Closes #1364
2023-09-19 16:23:34 +02:00
|
|
|
|
# select-quote = BTN_LEFT-3
|
|
|
|
|
|
# select-row=BTN_LEFT-4
|
2022-02-09 17:22:53 +01:00
|
|
|
|
|
2022-03-06 12:58:48 +01:00
|
|
|
|
# vim: ft=dosini
|