Commit Briefs

9c26578c90 amb

Xresources with signal patch (mztbc)

Patch the terminal so it will load colors based on Xres and will update then on a USR1 signal.


67314cdfe3 amb

Merge branch 'master' into mztbc


b43a7ec58f andre

Update colors


688f70add0 Hiltjo Posthuma

st: guard tsetdirt() against zero-sized terminal

tsetdirt() assumes term.row > 0. During early init or resize paths this may not hold, leading to out-of-bounds access. Bail out early if there are no rows.


2c22bec511 amb

Darker background


0723b7e39e Hiltjo Posthuma

Disable bracked paste in reset

Sadly, there are too many programs today that enable this mode and it is becoming very common to find the terminal adding characters before and after in every of your pastes. A reset should disable this mode.


560b3eff0c andre

Dark theme again


6e97047474 Hiltjo Posthuma

bump version to 0.9.3 (master, tags/0.9.3)


ea939812ff Andre Mazzotti Bertachini

No transparency


5a4666c19e Hiltjo Posthuma

add a few comments


1d46dc5b29 Andre Mazzotti Bertachini

Add alpha patch


d6c431859c Hiltjo Posthuma

Support OSC 110, 111, and 112 for resetting colors

This adds support for OSC 110, 111, and 112 escape sequences to reset the foreground, background, and cursor colors in the terminal. The changes include handling these sequences in the `strhandle` function of `st.c`, allowing applications to reset colors to their default values. The OSC sequences originated from Xterm control sequences and are now widely used in terminal applications and supported by many terminal emulators. For applications, this allows them to reset colors to default values without needing to know the colors beforehand. Signed-off-by: Ayman Bagabas <ayman.bagabas@gmail.com>


2ce555eaaa Andre Mazzotti Bertachini

Expected anysize


f114bcedd1 Hiltjo Posthuma

Eat up "CSI 58" sequences

This is used in the wild by systemd systemctl for example and st misinterpreted it as "blink", because it didn't know "58", then saw "5" as "blink", and then didn't know "245". This should print "foo" as normal text: printf '\e[58:5:245mfoo\n' printf '\e[58:2:50:100:200mfoo\n'


b82be7b5fc Andre Mazzotti Bertachini

Rely on fontconfig


98610fcd37 Hiltjo Posthuma

Do not interpret CSI ? u as DECRC

The kitty keyboard protocol docs recommend CSI ? u to query support for that protocol, see https://sw.kovidgoyal.net/kitty/keyboard-protocol/ For better or worse, fish shell uses this query to work around bugs in other terminals triggered by requesting that protocol via CSI = 5 u. Unfortunately, st interprets CSI ? u as DECRC (restore cursor position). reproduce with 'printf "\x1b[?u"; cat'. fish could work around this by switching to the alternate screen before running this query; but that might cause tearing on terminals that don't support Synchronized Output. I'm not sure. In the meantime, let's correct our parser. This adds a redundant else-after-return, for consistency with the surrounding code.


58d6849c4e Andre Mazzotti Bertachini

Change font


6009e6e25b Hiltjo Posthuma

Clear screen: Fix edge case

With sequence \e[1J, if cursor is on second line, clear the first line.


a0274bc20e Hiltjo Posthuma

fix BadMatch error when embedding on some windows

When embedded, st fails with BadMatch error if the embedder's window has non-default colormap/depth/visual. This commit fixes that by creating st's window inside root and then reparent it into embedder. The reference window for dc.gc is also changed to match root's visuals. A similar commit had been made for dmenu[1]. See this issue[2] on github for context. [1]: https://git.suckless.org/dmenu/commit/0fe460dbd469a1d5b6a7140d0e1801935e4a923b.html [2]: https://github.com/phillbush/xfiles/issues/47


5dbcca4926 Hiltjo Posthuma

support colons in SGR character attributes

Patch by Mikhail Kot <to@myrrc.dev> With some modifications to behave more like xterm (see note below). Example: printf '\033[48;2;255:0:0mtest\n' https://invisible-island.net/xterm/ctlseqs/ctlseqs.html Some notes: "CSI Pm m Character Attributes (SGR). [...] o xterm allows either colons (standard) or semicolons (legacy) to separate the subparameters (but after the first colon, colons must be used).


d63b9eb902 Hiltjo Posthuma

bump version to 0.9.2 (tags/0.9.2)


497a756382 Hiltjo Posthuma

Reset title when an empty title string is given

With this patch, st will reset its window title when an empty string is given as the terminal title. For example: printf "\033]0;\007" Some applications, like termdown, expect this functionality. xterm implements it, but it seems that most other terminal emulators don't. In any case, I don't see why there should ever be a case where the st window doesn't have a title property.


8c68ec5241 Hiltjo Posthuma

Revert "Fix cursor move with wide glyphs"

This reverts commit 7473a8d1a57e5f9aba41b953f4e498c35e1c9dc5. This patch needs some more work. It caused regressions with programs that use GNU readline, etc. Original test-case example from Tim Culverhouse <tim@timculverhouse.com>: printf " 😀" && sleep 2 && printf "\e[D" && sleep 2 && printf "\e[D" && sleep 2 After the patch it caused regressions, example test-case: printf "A字\bB\n"


5ce9716281 Hiltjo Posthuma

bump version to 0.9.1 (tags/0.9.1)