Commit Graph

95 Commits

Author SHA1 Message Date
Bakkeby aa5957495d 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).
2024-05-02 09:28:20 +02:00
Bakkeby dd8675943d 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.

Ref.
https://git.suckless.org/st/commit/497a75638291454875ba1ec8d484c7f3d6f41d66.html
2024-04-03 21:43:56 +02:00
Bakkeby fdae39e8b8 bump version to 0.9.1
ref.
https://git.suckless.org/st/commit/5ce971628106fb767ef91bf4386227423f5fdf98.html
2024-03-20 08:04:33 +01:00
Bakkeby dba3d178a4 config.def.h: improve latency for the default configuration
Ref.
https://git.suckless.org/st/commit/f20e169a20f3ee761f7e09714f1d4c10916cf4c6.html
2024-03-17 15:38:45 +01:00
Bakkeby 6a5561cd76 Minor changes to description 2024-03-13 10:44:43 +01:00
Stein Gunnar Bakkeby 0b8055a271
netwmicon: upgrading patch and adding farbfeld variant (#121) 2024-03-13 10:35:17 +01:00
Stein Gunnar Bakkeby 3b87b07404
Adding reflow patch (#120) 2024-03-13 10:33:51 +01:00
Bakkeby e88f2bf20c Removing the VIM browse patch.
The general reasoning is that the vim browse patch is very invasive,
has a high level of complexity, and is incompatible with a significant
number of other patches and it complicates further maintenance.

Additionally the patch has its own scrollback mechanism which seemingly
did not work properly - and nobody seems to have complained about this
since the patch was added back in May 2021.

If you want to try out the vim browse patch then I would recommend having
a play around with the patch author's own build that has this patch
integrated:
   - https://github.com/juliusHuelsmann/st-history-vim
   - https://github.com/juliusHuelsmann/st

Alternatively a tag has been added to this repository that refers to the
last commit that still has the vim browse patch:
   - https://github.com/bakkeby/st-flexipatch/tree/VIM_BROWSE_PATCH
2024-03-07 22:35:11 +01:00
Bakkeby 74f19eafe9 csi: check for private marker in 'S' case
The handler for 'S' final character does not check for a private
marker. This can cause a conflict with a sequence called 'XTSMGRAPHICS'
which also has an 'S' final character, but uses the private marker '?'.
Without checking for a private marker, st will perform a scroll up
operation when XTSMGRAPHICS is seen, which can cause unexpected display
artifacts.

ref.
https://git.suckless.org/st/commit/a3f7420310be0fd778ef9fe2abf20edc2d8dc81a.html
2024-02-19 09:09:08 +01:00
Bakkeby 1af2184c87 Add terminfo entries for bracketed paste mode
Helps Vim (and hopefully others) to discover that this feature exists
without further user configuration.

ref.
https://git.suckless.org/st/commit/9846a56bd7fdc86bf788db04bbbcbde7b7eb9952.html
2023-10-08 20:24:52 +02:00
Bakkeby 4a1d981d54 Makefile: remove the options target
The Makefile used to suppress output (by using @), so this target made sense at
the time.

But the Makefile should be simple and make debugging with less abstractions or
fancy printing.  The Makefile was made verbose and doesn't hide the build
output, so remove this target.

Prompted by a question on the mailing list about the options target.

ref.
https://git.suckless.org/st/commit/eb3b894f4076f2b25afc644a1f444b5cbd96aae8.html
2023-09-22 18:16:08 +02:00
Bakkeby b82057eb85 Fix for wide character being incorrectly cleared on MODE_INSERT
Under insert mode, when inserting a normal character in front of
a wide character, the affected region is shifted to the right by
one cell. However, the empty cell is reset as if being a part of a
wide character, causing the following cell being mishandled as a
dummy cell.
To reproduce the bug:
	printf '\033[4h' # set MODE_INSERT
	printf 妳好
	printf '\033[4D'
	printf 'x'
	printf '\033[4l\n'

Ref.
https://git.suckless.org/st/commit/3a6d6d740110e6ee1b092d05ad746244eedabe4b.html
2023-06-25 14:19:27 +02:00
Bakkeby 1343b29ee5 Bump to 211964d.
ignore C1 control characters in UTF-8 mode

Ignore processing and printing C1 control characters in UTF-8 mode.
These are in the range: 0x80 - 0x9f.

By default in st the mode is set to UTF-8.

This matches more the behaviour of xterm with the options -u8 or +u8 also.
Also see the xterm resource "allowC1Printable".

Let me know if this breaks something, in most cases I don't think so.

As usual a very good reference is:
https://invisible-island.net/xterm/ctlseqs/ctlseqs.html

Ref.
https://git.suckless.org/st/commit/211964d56ee00a7d46e251cbc150afb79138ae37.html
2023-04-07 14:31:41 +02:00
Bakkeby e6a2fb489c Bump to e5e9598.
fix buffer overflow when handling long composed input

To reproduce the issue:

"
If you already have the multi-key enabled on your system, then add this line
to your ~/.XCompose file:

[...]
<question> <T> <E> <S> <T> <question> :
"1234567890123456789012345678901234567890123456789012345678901234567890"
"

Reported by and an initial patch by Andy Gozas <andy@gozas.me>, thanks!

Adapted the patch, for now st (like dmenu) handles a fixed amount of composed
characters, or otherwise ignores it. This is done for simplicity sake.

Ref.
https://git.suckless.org/st/commit/e5e959835b195c023d1f685ef4dbbcfc3b5120b2.html
2022-10-25 17:22:33 +02:00
Bakkeby d8529b66a4 Adding fullscreen patch ref. #88 2022-10-24 11:27:51 +02:00
Bakkeby 13f2b133eb Bump to 68d1ad9.
FAQ: document the color emojis crash issue which affected some systems is fixed

It is fixed in libXft 2.3.6:

https://gitlab.freedesktop.org/xorg/lib/libxft/-/blob/libXft-2.3.5/NEWS

bump version to 1.5

Ref.
https://git.suckless.org/st/commit/00085199039ee63acc7b1ecb7e3774a9c3552b2a.html
https://git.suckless.org/st/commit/68d1ad9b54e952e3079356aeab8ab37e44c56c2c.html
2022-10-06 15:33:26 +02:00
Bakkeby 2906447fef Adding use XftFontMatch patch 2022-08-28 21:05:55 +02:00
Bakkeby cc36f7c256 Adding URL for no decorations patch 2022-08-24 11:29:55 +02:00
Bakkeby 3947ceb431 Adding the no window decorations patch 2022-08-24 11:04:49 +02:00
Bakkeby cd1aa57a06 Bump to 72fd327.
st: use `void' to indicate an empty parameter list

Ref.
https://git.suckless.org/st/commit/72fd32736a612edec43596c14148322122a5544d.html
2022-08-18 17:30:18 +02:00
Bakkeby f0bad9ac44 Removing the anysize-nobar amendment for the anysize patch as this should be redundant following the fix in PR #75 2022-07-18 11:54:51 +02:00
Bakkeby dc8abceeca Makefile: add manual path for OpenBSD
ref. https://git.suckless.org/st/commit/baa9357e96d2478baa52a3301e70ac80a229b726.html
2022-07-10 17:11:39 +02:00
myNameIsPK bca5e344fa
Fix typo 2022-06-04 04:51:57 +07:00
bakkeby 3e41e252b1 Adding background image reload patch ref. pull request #62 2022-04-11 16:04:58 +02:00
bakkeby d8ec7a396c base64_digits: reduce scope, implicit zero, +1 size
the array is not accessed outside of base64dec() so it makes sense to
limit it's scope to the related function. the static-storage duration of
the array is kept intact.

this also removes unnecessary explicit zeroing from the start and end of
the array. anything that wasn't explicitly zero-ed will now be
implicitly zero-ed instead.

the validity of the new array can be easily confirmed via running this
trivial loop:

	for (int i = 0; i < 255; ++i)
		assert(base64_digits[i] == base64_digits_old[i]);

lastly, as pointed out by Roberto, the array needs to have 256 elements
in order to able access it as any unsigned char as an index; the
previous array had 255.

however, this array will only be accessed at indexes which are
isprint() || '=' (see `base64dec_getc()`), so reducing the size of the
array to the highest printable ascii char (127 AFAIK) + 1 might also be
a valid strategy.

ref. https://git.suckless.org/st/commit/ef0551932fb162f907b40185d2f48c3b497708ee.html
2022-03-28 11:23:52 +02:00
bakkeby fb0b76b0ff make underlines and strikethroughs respect `chscale`
Ref.
https://git.suckless.org/st/commit/2aefa348baf4b702fdce98eb105bcba175d8283f.html
2022-03-14 09:45:12 +01:00
bakkeby 1a8175a337 Adding background image patch 2022-03-10 13:54:28 +01:00
bakkeby 4a156b95f9 Delay redrawals on palette changes
Build on auto-sync and only mark window dirty on palette changes and let
the event handler do the actual draw.

Ref.
   - https://git.suckless.org/st/commit/e823e2308f2a99023032a3966ebb7036a31d305f.html
2022-02-24 13:46:37 +01:00
bakkeby c02ad97409 fix possible rare crash when Xutf8TextPropertyToTextList fails
from the XmbTextListToTextProperty(3) man page:

"If insufficient memory is available for the new value string, the functions
return XNoMemory.  If the current locale is not supported, the functions return
XLocaleNotSupported.  In both of these error cases, the functions do not set
text_prop_return."

Reported by Steffen Nurpmeso <steffen@sdaoden.eu>, thanks!

Ref. https://git.suckless.org/st/commit/2f6e597ed871cff91c627850d03152cae5f45779.html
2021-08-24 15:02:20 +02:00
bakkeby 271a807111 Adding the CSI 22, 23 patch 2021-08-18 10:07:42 +02:00
bakkeby eccd7fac9e Adding columns patch ref. #34 2021-07-26 10:16:54 +02:00
bakkeby 286db8098b Add 14th bit to XK_SWITCH_MOD bitmask
The bits of uint signal in an XKeyEvent which concern the key group (keyboard
layout) are bits 13 and 14, as documented here:
https://www.x.org/releases/X11R7.7/doc/libX11/XKB/xkblib.html#Groups_and_Shift_Levels
In the older version, only bit 13 was marked as part of XK_SWITCH_MOD, this
causes issues for users who have more than two keymaps. The 14th bit is not
in ignoremod, key sequences are not caught by match(), if they switch to a third
or fourth keyboard.
2021-07-18 18:17:17 +02:00
bakkeby ee4cdc8d6e Adding openurlonclick patch ref. #32 2021-07-07 10:08:43 +02:00
bakkeby b0660ecf47 Adding hide terminal cursor patch 2021-06-09 09:54:50 +02:00
bakkeby ad7e16b38a Adding swapmouse patch ref. #28 2021-05-16 11:40:15 +02:00
bakkeby 5adf4c4c8e Adding default cursor patch 2021-05-11 16:35:30 +02:00
bakkeby 78e025a0e7 Upgrading to latest master, 46b02f, 2021-03-28 2021-05-10 10:43:48 +02:00
bakkeby 896f5a08c8 Upgrading to latest master, 46b02f, 2021-03-28 2021-05-10 09:39:02 +02:00
bakkeby e039854635 Adding vim browse patch ref. #21 2021-05-09 17:48:28 +02:00
bakkeby 1a1d492cd8 Adding alpha-focus-highlight patch 2021-05-09 14:40:30 +02:00
bakkeby 56e208e0de Adding sync patch ref. #21 2021-05-09 09:25:22 +02:00
bakkeby a5435903d4 Adding universcroll patch ref. #21 2021-05-08 17:49:04 +02:00
bakkeby a1303a8811 Adding delkey patch ref. #21 2021-05-08 16:57:59 +02:00
bakkeby a44ac5937f Adding osc_10_11_12_2 patch ref. #21 2021-05-08 16:50:06 +02:00
bakkeby 8c8bace91c Adding netwmicon patch ref. #21 2021-05-08 14:50:06 +02:00
bakkeby 79278e3d32 Adding undercurl patch ref. #20 2021-05-08 10:53:46 +02:00
bakkeby ce05a34de1 Adding blinking cursor patch ref. #20 2021-05-08 10:13:20 +02:00
bakkeby 0fade9158a xresources reload: minor style changes ref. #16 2021-05-07 09:27:05 +02:00
bakkeby 08f137a8a0 Adding workaround for Variable Fonts causing too wide letter spacing 2021-04-21 15:54:41 +02:00
bakkeby f31c43015d Adding sixel support ref. #7 2021-03-25 11:10:57 +01:00