Commit Graph

75 Commits

Author SHA1 Message Date
bakkeby 9ab02993c3 Add support for OSC color sequences
Ref.
  - https://git.suckless.org/st/commit/8e310303903792c010d03c046ba75f8b18f7d3a7.html
  - https://git.suckless.org/st/commit/273db5ceaf392e68c2faf8f7dec14ea2e25e980d.html
2022-02-24 13:24:00 +01:00
bakkeby 7099c6ec73 sixel: adding anysize patch compatibility ref. #45 2021-12-15 11:23:59 +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 f0e4dc3bd5 undercurl: upgrading patch with curly, spiky and capped options
Ref. https://git.suckless.org/sites/commit/9bb304a974185cbd9fa48c890450c6582d3e0546.html
2021-08-22 18:35:31 +02:00
bakkeby 271a807111 Adding the CSI 22, 23 patch 2021-08-18 10:07:42 +02:00
bakkeby d50ebeef66 dynamic cursor color: trying out JuanScerriE's proposed amendment for the patch ref. #10 2021-07-29 18:45:11 +02:00
bakkeby f643835542 Adding simple version of the anysize patch ref. #35 2021-07-29 12:22:44 +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 426eca8f2e Adding proposed scrollback changes for sixel graphics ref. #30 2021-07-07 09:43: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 56931acefb Proposed fix for wide glyphs ref. #26 2021-05-15 09:16:51 +02:00
bakkeby 5adf4c4c8e Adding default cursor patch 2021-05-11 16:35:30 +02:00
bakkeby 2d59f21271 Revert "Restore cursor when exiting alt mode."
This reverts commit 52900255d9.
2021-05-11 15:42:47 +02:00
bakkeby 52900255d9 Restore cursor when exiting alt mode.
If the mouse cursor is changed to a bar or an underline then st will use that
when the terminal is first opened. When an application that changes the cursor
via escape sequences is executed, e.g. vim which uses a block cursor by default,
then that cursor will remain after exiting the program.

This change sets the cursor back to default when exiting alt mode.
2021-05-11 10:12:23 +02:00
bakkeby 72ee5f3307 vim-browse: fix for missing history overlay 2021-05-10 10:43:38 +02:00
bakkeby 763e9f15b3 Mild const-correctness improvements.
Only touch a few things, the main focus is to
improve code readability.

https://git.suckless.org/st/commit/4536f46cfff50c66a115755def0155d8e246b02f.html
2021-05-10 09:35:50 +02:00
bakkeby 29b20b54c5 ST: Add WM_ICON_NAME property support
Also added _NET_WM_ICON_NAME.

https://git.suckless.org/st/commit/28b4c822c5c0acec300fdf15c6e3ede9f5e2335d.html#h0-1-11
https://git.suckless.org/st/commit/4ef0cbd8b9371f37f7d02ef37b5378b879e6b8bf.html#h0-0-3
2021-05-10 09:28:15 +02:00
bakkeby 835d204593 fix: correctly encode mouse buttons >= 8 in X10 and SGR mode
These are typically mapped in X11 to the side-buttons (backward/forwards) on
the mouse. A comparison of the button numbers in SGR mode (first field):

st old:
0 1 2 64 65 66 67 68 69 70

st new (it is the same as xterm now):
0 1 2 64 65 66 67 128 129 130

A script to test and reproduce it, first argument is "h" (on) or "l" (off):

	#!/bin/sh
	printf '\x1b[?1000%s\x1b[?1006%s' "$1" "$1"

	for n in 1 2 3 4 5 6 7 8 9 10; do
		printf 'button %d\n' "$n"
		xdotool click "$n"
		printf '\n\n'
	done

https://git.suckless.org/st/commit/9e68fdbcdb06dfa3d23fe3a7a7f7b59e40e1ea2f.html
2021-05-10 09:22:32 +02:00
bakkeby 0325f7c76b vim-browse: segment fault when applied on top of st-clipboard patch ref. #21 2021-05-09 19:53:25 +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 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
Loic Coyle 540a923fb9 Add XRESOURCES_RELOAD_PATCH 2021-04-24 00:30:14 +02:00
Loic Coyle ec513b230a Add alpha to background color from escape sequence 2021-04-22 20:49:05 +02:00
bakkeby 08f137a8a0 Adding workaround for Variable Fonts causing too wide letter spacing 2021-04-21 15:54:41 +02:00
bakkeby dbd1d6ece0 Addressing relativeborder plus ligatures combo conflict 2021-03-29 10:27:10 +02:00
bakkeby f31c43015d Adding sixel support ref. #7 2021-03-25 11:10:57 +01:00
bakkeby 884c62a056 Adding dynamic cursor color patch ref. #10 2021-02-26 14:33:03 +01:00
bakkeby 99903c67d9 Adding alpha gradient patch 2021-02-15 14:37:37 +01:00
bakkeby a23971fff1 Adding wide glyphs patch 2020-11-14 16:24:07 +01:00
bakkeby ef994f3e6d Adding monochrome patch and anysize-nobar patch 2020-10-23 10:14:00 +02:00
bakkeby 315c5cbe9f Re-added visualbell patch 2020-08-09 18:09:43 +02:00
bakkeby c8d69b5d70 Added the single drawable buffer patch as per the FAQ in order to get w3m images to display 2020-06-26 15:01:30 +02:00
bakkeby bca86276e7 Adding w3m patch 2020-06-14 20:04:27 +02:00
bakkeby e0169edec9 Adding ligatures patch as requested in #4 2020-06-05 13:43:14 +02:00
bakkeby 0bb43eff81 Call xsetcursor to set win.cursor in main
In xsetcursor, remove "DEFAULT(cursor, 1)" because 0 is a valid value.
Increase max allowed value of cursor from 6 to 7 (st extension).
2020-05-24 17:19:24 +02:00
bakkeby 7a1259e112 code-style: add fallthrough comment
Patch by Steve Ward, thanks.
2020-05-20 14:26:04 +02:00
bakkeby 338818b2b3 tiny code-style and typo-fix in comment (df79f2) 2020-05-20 14:22:04 +02:00
bakkeby 5c7d8ab1ad auto-sync: draw on idle to avoid flicker/tearing
st could easily tear/flicker with animation or other unattended
output. This commit eliminates most of the tear/flicker.

Before this commit, the display timing had two "modes":

- Interactively, st was waiting fixed `1000/xfps` ms after forwarding
  the kb/mouse event to the application and before drawing.

- Unattended, and specifically with animations, the draw frequency was
  throttled to `actionfps`. Animation at a higher rate would throttle
  and likely tear, and at lower rates it was tearing big frames
  (specifically, when one `read` didn't get a full "frame").

The interactive behavior was decent, but it was impossible to get good
unattended-draw behavior even with carefully chosen configuration.

This commit changes the behavior such that it draws on idle instead of
using fixed latency/frequency. This means that it tries to draw only
when it's very likely that the application has completed its output
(or after some duration without idle), so it mostly succeeds to avoid
tear, flicker, and partial drawing.

The config values minlatency/maxlatency replace xfps/actionfps and
define the range which the algorithm is allowed to wait from the
initial draw-trigger until the actual draw. The range enables the
flexibility to choose when to draw - when least likely to flicker.

It also unifies the interactive and unattended behavior and config
values, which makes the code simpler as well - without sacrificing
latency during interactive use, because typically interactively idle
arrives very quickly, so the wait is typically minlatency.

While it only slighly improves interactive behavior, for animations
and other unattended-drawing it improves greatly, as it effectively
adapts to any [animation] output rate without tearing, throttling,
redundant drawing, or unnecessary delays (sounds impossible, but it
works).
2020-05-20 14:15:57 +02:00
bakkeby a4d8ea1853 Added the force redraw on keypress patch 2020-04-20 12:14:49 +02:00
bakkeby f7b0d77a03 make argv0 not static, fixes a warning with tcc (fcd339) 2020-04-10 13:57:14 +02:00
bakkeby 914cee019d [st] mouseshortcuts: fix custom modifier on release (4c84ac4) 2020-04-02 16:30:40 +02:00
bakkeby 7dee587ceb Adding workingdir patch 2020-03-29 16:46:38 +02:00