Commit graph

4867 commits

Author SHA1 Message Date
Ronan Pigott
99d5bf64bc foot/client: implement xdga client activation
This is an application of the xdg activation protocol that will allow
compositors to associate new foot toplevels with the command that
launched them.

footclient receives an activation token from the launcher which the
compositor can use to track application startup. It passes the token
to the foot server, which then activates the new window with the token
to complete the startup sequence.
2021-10-31 18:52:29 -07:00
Daniel Eklöf
347e79f8a1
config: format all (well, most) error messages in the same way
path:lineno: [section].key: value: message desribing what’s wrong with value
2021-10-31 20:58:17 +01:00
Daniel Eklöf
86cc0e0c95
config: use "[section].key" syntax when logging errors 2021-10-31 20:25:54 +01:00
Daniel Eklöf
b0ba58b841
config: improve error messages for invalid section keys 2021-10-31 20:23:35 +01:00
Daniel Eklöf
bf42884494
install: remove text describing obsolete differences between PKGBUILDs 2021-10-31 14:26:53 +01:00
Daniel Eklöf
74cca03976
readme: add GitHub Sponsors link 2021-10-31 14:24:17 +01:00
Daniel Eklöf
2398af7b47
Merge branch 'client-sendall' 2021-10-31 09:49:12 +01:00
Daniel Eklöf
4607763e79
client: use MSG_NOSIGNAL in send(3)
MSG_NOSIGNAL  Requests not to send the SIGPIPE signal if an attempt
                to send is made on  a  stream-oriented socket that is
                no longer connected. The [EPIPE] error shall still be
                returned.
2021-10-30 18:07:06 +02:00
Daniel Eklöf
cad48c1b0a
client: handle partial writes in send(3) 2021-10-29 21:44:34 +02:00
Daniel Eklöf
9a04c741a0
Merge branch 'csd-border' 2021-10-29 19:32:35 +02:00
Daniel Eklöf
e69c3e5b1e
render: csd_part: we don’t use the ‘src’ pixman image 2021-10-29 19:31:09 +02:00
Daniel Eklöf
61635b4132
foot.ini: csd.border-color: <color> -> <csd.color> 2021-10-29 19:30:11 +02:00
Daniel Eklöf
5e4de143de
csd: add support for a visible border
When we’re using CSDs, we’ve up until now rendered a 5px invisible
border. This border handles interactive resizing. I.e. hovering it
changes the mouse cursor, and mouse button events are used to start an
interactive resize.

This patch makes it possible to color part of (or the entire) border,
with a configurable color.

To facilitate this, two new options have been added:

* csd.border-width
* csd.border-color

border-width defaults to 0, resulting in the look we’re used to.

border-color defaults to the title bar color. If the title bar color
hasn’t been set, it defaults to the default foreground color (just
like the title bar color does).

This means that, setting border-width but not border-color, results in
a border that blends with the title bar.
2021-10-27 18:32:28 +02:00
Daniel Eklöf
eebec8e38d
meson: install themes to $datadir/foot/themes 2021-10-27 17:31:02 +02:00
Daniel Eklöf
329ad66568
Merge branch 'scrolling-fixes' 2021-10-27 17:09:39 +02:00
Daniel Eklöf
0900d01ec9
input: clean up mouse scroll handling
* Allow scrolling on the normal (non-alt) screen, when application is
  grabbing the mouse (when user presses Shift).
* Use term_mouse_grabbed() instead of explicitly checking for
  MOUSE_NONE tracking.
* Remove mouse tracking check from cmd_scrollback_{up,down}. Caller is
  expected to have done the check.
* Don’t scroll down on mouse wheel tilt events.
2021-10-27 17:09:26 +02:00
Daniel Eklöf
3413901678
Merge branch 'noop-key-binding'
Closes #765
2021-10-27 17:08:48 +02:00
Daniel Eklöf
bcea929c94
config: add [key-bindings].noop action
Key combinations assigned to this action will not be sent to the
application.

Closes #765
2021-10-27 17:07:26 +02:00
Daniel Martí
b2ddacb799 doc: fix a typo
I presume "can be used here as well" was meant.
Spotted it while reading the docs.
2021-10-23 22:06:37 +01:00
Daniel Eklöf
0978b442c6
ci: also build release branches 2021-10-23 16:05:00 +02:00
Daniel Eklöf
3155ab45fe
foot/client: version info: add +/- assertions 2021-10-23 15:40:54 +02:00
Daniel Eklöf
db2529159c
term: bell: simplify if-statement - we don’t need two nested levels 2021-10-22 20:04:23 +02:00
Daniel Eklöf
00c0bc12aa
doc: foot.5: we support “real” urgency through XDG activation
Foot has been signaling window urgency through the (new) “XDG
activation” protocol for some time now. Update the documentation to
reflect this.
2021-10-22 20:03:18 +02:00
Daniel Eklöf
3b57cd45a4
changeloge: style fixes 2021-10-22 19:57:11 +02:00
Daniel Eklöf
2fbc336eb9
term: ignore window title updates if title is un-changed 2021-10-22 18:01:53 +02:00
Daniel Eklöf
de6ab6dca0
Merge branch 'update-input-serial-on-each-keypress'
Closes #753
2021-10-21 16:18:51 +02:00
Daniel Eklöf
d60e303c33
config: error out on invalid grapheme-width-method values 2021-10-21 16:17:41 +02:00
Daniel Eklöf
5b66592a57
render: tab -> spaces 2021-10-20 20:03:15 +02:00
Daniel Eklöf
8691ad8b2e
input: update serial on each key press/release and mouse button
The serial is used when copying/pasting data from the clipboard. Up
until now, we’ve used the serial from the keyboard/mouse enter
events.

This works in most cases, but breaks in the following example:

  $ wl-copy  WLCOPY
  /* Ctrl+Shift+v works fine (pastes "WLCOPY") */

  $ printf "\033]52;c;eHl6\a"
  /* Ctrl+Shift+v pastes "WLCOPY" instead of "xyz" */

Shifting focus away and then back to the foot window, and re-executing
the printf works, suggesting the “enter” serial is no longer valid
after another process(?) has copied something to the clipboard.

Updating the serial on key press/release (and the corresponding mouse
serial on mouse button events) seems to fix this.

I’ve also tested that “normal” copy/paste operations, within the same
foot instance, and between foot and other applications, are still
working. In at least river (wlroots based), and GNOME/mutter.

Closes #753
2021-10-20 19:59:57 +02:00
Daniel Eklöf
174f8870c7
Merge branch 'parse-rgb-strlen' 2021-10-20 19:59:05 +02:00
Daniel Eklöf
266b03be9a
Merge branch 'warn-not-to-use-single-letter-key-bindings-in-url-mode' 2021-10-20 19:56:12 +02:00
Daniel Eklöf
60edefc311
doc: foot.5: warn user to be careful with single letter key bindings in url mode 2021-10-20 19:55:08 +02:00
Daniel Eklöf
ecd8776dfd
Merge branch 'osc-bel' 2021-10-20 19:06:09 +02:00
Daniel Eklöf
fbc0155c55
Merge branch 'clipboard-convert-carriage-ret-to-new-line'
Closes #752
2021-10-20 18:57:25 +02:00
Craig Barnes
2e87889279 osc: use STRLEN() macro to make parse_rgb() more self-documenting
The empty literals in the macro are to ensure the argument itself
is a string literal, so it can't be used on anything else.
2021-10-20 17:05:36 +01:00
Craig Barnes
52dcf72d0b osc: use BEL terminator in OSC replies to BEL-terminated OSC queries
This matches the documented (and observed) behavior in xterm:

> XTerm accepts either BEL or ST for terminating OSC sequences, and
> when returning information, uses the same terminator used in a query

-- https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands
2021-10-20 12:48:37 +01:00
Daniel Eklöf
5ab49de7f2
selection: convert \r -> \n when reading clipboard data
This fixes an issue where pasting (using e.g. OSC-52) in client
applications that doesn’t do this conversion themselves, like tmux,
doesn’t work.

Closes #752
2021-10-19 21:34:04 +02:00
Daniel Eklöf
6dfacb9c08
Merge branch 'nordiq' 2021-10-18 21:44:10 +02:00
armin
e8753a20ce add Nordiq theme 2021-10-18 16:44:44 +02:00
Daniel Eklöf
d4b365b55c
pgo: full-inner: add --override tweak.grapheme-shaping=no
Grapheme shaping is now enabled by default in foot. However, when
generating the profiling data in PGO builds, this results in skewed
optimizations.

The end result is worse benchmark results regardless of whether
grapheme-shaping is enabled or not (when running the benchmarks).
2021-10-16 16:58:59 +02:00
Daniel Eklöf
f9782848e5
doc: foot.1: reporting bugs: move “search existing issues” 2021-10-16 15:30:21 +02:00
Daniel Eklöf
4ffa37e619
readme: reporting bugs: move “search existing issues” 2021-10-16 15:29:57 +02:00
Daniel Eklöf
a75f1f7ab4
doc: foot.1: reporting bugs: re-order and tweak
* Tell people to search existing bugs first (open + closed)
* Re-order instructions: most important ones first
2021-10-16 15:25:11 +02:00
Daniel Eklöf
2a9c667650
readme: reporting bugs: re-order and tweak
* Tell people to search existing bugs first (open + closed)
* Re-order instructions: most important ones first
2021-10-16 15:22:40 +02:00
Daniel Eklöf
f22bc60bfc
Merge branch 'enable-grapheme-shaping-by-default' 2021-10-16 13:56:31 +02:00
Daniel Eklöf
37f9f54840
config: enable grapheme shaping by default
This changes the default value of tweak.grapheme-shaping to “yes”,
thus enabling grapheme shaping by default.

It also changes the default value of tweak.grapheme-width-method to
“wcswidth”, for maximum compatibility with terminal applications.
2021-10-13 17:42:40 +02:00
Daniel Eklöf
75533e01b5
Merge branch 'generate-version-handle-repo-not-having-any-tags' 2021-10-11 20:27:05 +02:00
Daniel Eklöf
1c1b2bd101
ci: run “foot --version” and “footclient --version” after each build 2021-10-11 20:18:26 +02:00
Daniel Eklöf
7d30bccad8
generate-version: handle git repo not having any tags 2021-10-11 20:11:41 +02:00
Craig Barnes
a31d04fa23 doc: ctlseq: improve text formatting in CSI and SGR sections
Using underlining for parameters allows the angle brackets to be
removed while still keeping a visual separation between literals
and parameters. The removes any uncertainty about whether the
angle brackets are part of the sequence or not. It also mirrors
the formatting used further down in the document.
2021-10-11 15:40:36 +01:00