Commit Graph

1378 Commits

Author SHA1 Message Date
Nils Reuße
f2bfd513b1 keep some glyph modes for the cursor
st currently does not keep any mode for the cursor that was active
in the underlying glyph (e.g. italic text), the mode is always
ATTR_NULL [1].  At [2] you can find a screenshot that shows the
implications.  Other terminals (at least vte-based, such as
XFCE-terminal) keep some modes for the cursor.  I find the current
behaviour very disruptive, so here is a patch that keeps a few
(arbitrarily chosen) modes for the cursor.

[1] http://git.suckless.org/st/tree/st.c#n3963
[2] http://i.imgur.com/R2yCEaC.png
2017-03-29 18:39:21 +02:00
osandov@osandov.com
e7ed326d2e Support xterm Ms feature to set clipboard
This is used by, e.g., tmux.
2017-03-19 20:32:22 +01:00
Shiva
c50850028b Enable travis build 2017-01-30 20:14:38 -08:00
Shiva
b1e1a6e993 Add badges 2017-01-30 20:11:57 -08:00
Shiva
5d52a549f9 Merge pull request #2 from gitter-badger/gitter-badge-1
Add a Gitter chat link to README
2017-01-30 19:53:26 -08:00
The Gitter Badger
778e1f0cf7 Add Gitter link 2017-01-31 03:51:55 +00:00
Shiva
97e27bc64d Update readme with details about patches 2017-01-29 21:59:15 -08:00
Shiva
efde1e896e Solarized support + switch with F6 2017-01-29 21:53:07 -08:00
Shiva
e0a07a9392 vertically center lines in space available 2017-01-29 21:40:45 -08:00
Shiva
10bf3c8507 Scrollback + wheel support 2017-01-29 21:39:12 -08:00
Shiva
6833411400 clipboard support 2017-01-29 21:35:17 -08:00
Shiva
7549ffd200 Clean generated config.h 2017-01-29 21:16:22 -08:00
Roberto E. Vargas Caballero
20f713548d Change default keybindings
CTRL+SHIFT is an impossible combination in the terminal world
(0x20 | x & 0x1F), so it is perfect to be used for internals
shortcuts of terminals, and being a double combination
reduces the prossibility of having comflicts.
2017-01-25 19:17:38 +01:00
Michael Forney
e2ee5ee611 Split X-specific code into x.c 2017-01-20 19:42:26 -08:00
fpqc
c63a87cd93 Move column and row default numbers into config.h 2016-12-16 10:50:23 +01:00
Roberto E. Vargas Caballero
e44832408b Revert "Initial font size issue."
This reverts commit 424202798b.
2016-11-24 20:21:19 +01:00
Spencer Phippen
fa9a459972 Fixed 'missing glyph doesn't use fontconfig config substitutions' bug
XftFontMatch does display-specific font configuration (commit 528241a).
Nice. Unfortunately, when we switched from FcFontMatch, we also stopped
storing the post-Fc{Config,Default}Substitute FcPattern for future
lookups. The result is that if a glyph isn't found in the primary font,
secondary font lookups use the original FcPattern, not the configured
one. If you have custom fontconfig rules (like me), this can be
disappointing.

I basically just copied the guts out of XftFontMatch[1] and saved
the intermediate configured FcPattern. Could be related to the bug that
inspired commit 4242027.

[1]: https://cgit.freedesktop.org/xorg/lib/libXft/tree/src/xftfont.c
2016-11-24 20:20:45 +01:00
Manuel Tobias Schiller
740ada1447 make the various combinations of arrow keys and shift/control/meta work
When using st with screen, I've bound next, prev, new screen to
combinations like Ctrl-Alt-Right,Left,Down; xterm and (u)rxvt work fine
when this combination of modifiers is pressed, st does not seem to
transport all of them; a single modifier key is fine (e.g. Ctrl-Up,
Alt-Down etc., but combinations are not). While I'm not terribly
familiar with this, I have tried to hack config.h in a more or less
systematic way to generate the expected sequences.
2016-11-14 19:58:02 +01:00
ian@remmler.org
424202798b Initial font size issue.
Hi,

When I specify a font by point size (I'm using "Inconsolata:size=12"),
characters that are substituted from another font because they are not in the
main one appear too small.  Doing a zoom reset fixes it.  For example:

Before: http://i.imgur.com/G4Mfv4X.png
After:  http://i.imgur.com/PMDhfQA.png

I found that adding the pixel size (acquired from the initial font load) to the
pattern then reloading the font fixes the problem.  I'm not sure if this is a
proper fix, though.
2016-11-14 19:27:55 +01:00
pl@ninthfloor.org
3ca7249c86 tic -s -> tic -sx (Treat unknown capabilities as user-defined.) 2016-11-14 19:05:47 +01:00
pl@ninthfloor.org
06f8cf8ca8 Add tmux capabilities to st.info 2016-11-14 19:05:11 +01:00
pl@ninthfloor.org
902a392b90 Make strdump(), csidump(), print to stderr
The two functions strdump(), csidump() are called to show errors and
their output is introduced by a message printed to stderr. Thus, it it
more consistent to have them print to stderr.

Moreover stderr is unbuffered (at least on Linux), making problems
immediately visible.
2016-11-14 18:36:38 +01:00
Quentin Rameau
8c99915608 Do not use color when font attributes are supported
If fontconfig gives us a font without the attributes we asked for,
display an alternative color instead.
2016-10-23 17:56:46 +02:00
Quentin Rameau
7854fde1ff st.1: add an entry for ISO-14755 shortcut 2016-10-22 10:43:18 +02:00
Quentin Rameau
68bae9c7b1 Add support for iso14755
We launch dmenu for getting a codepoint, then convert it and send it to
the terminal.
2016-10-18 13:32:36 +02:00
Klemens Nanni
331033f1f6 Add missing device path to '-l' example
Also, it's ttyS0 not ttySO.
2016-10-13 17:25:17 +02:00
Roberto E. Vargas Caballero
f7398434b8 Add parsing of DCS q sequences
These sequences are used to operate with sixels, but they are still
str sequences, so they are finished with \a, ST or with a C1 control
code. This patch also disables utf8 handling for the case of sixels.
2016-09-14 08:27:32 +02:00
Roberto E. Vargas Caballero
f0e2d28732 Add support for enabling/disabling utf
There are some ocasions where we want to disable the enconding/decoding of utf8, mainly
because it adds an important overhead. This is partial patch for ESC % G and ESC % @,
where they modified the way that st reads and write from/to the serial line, but it does
not modifies how it interacts with the X window part.
2016-09-13 14:01:18 +02:00
Roberto E. Vargas Caballero
078337d745 Delete ncv capability from terminfo
We do not need to disable the previous ncv definition, because
there is not previous definition.
2016-09-09 13:11:06 +02:00
Quentin Rameau
5ce853a1c1 st.info: do not prevent st from displaying attributes
With ncv set to 3, we prevent st from displaying A_STANDOUT and
A_UNDERLINE with colors while our virtual terminal is capable of it.
2016-09-09 11:05:11 +02:00
Christoph Lohmann
023225ef40 Update the LICENSE.
This is for the next release.
2016-08-11 16:30:29 +02:00
Christoph Lohmann
6e79e8357e 0.7 release 2016-08-11 16:25:58 +02:00
Christoph Lohmann
308bfbf6be Change who's expanding tabs. 2016-07-20 13:56:15 +02:00
Christoph Lohmann
c4f245eccd Add some hint to have the pseudo terminal in the right mode.
If you don't make sure that the terminal does not expand tabs to spaces, of
course such a setting won't work.
2016-07-20 13:52:31 +02:00
Christoph Lohmann
2251f6465a Add comment about tabspaces.
st.info needs to be changed too, when tabspaces are changed.
2016-07-20 13:00:43 +02:00
Alive 4ever
235b438e68 Consistent Alt+BackSpace behavior
The default config specifies BackSpace as "\177". The default behavior
should persist across modifier keys, commonly Mod1 (Alt or Meta) which
is widely used to delete a word on readline and text editors, notably
Emacs.

This will make Alt+BackSpace behaves as expected, i.e. sends "\033\177"
instead of "\033\010" as previous default behavior.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-07-12 15:25:08 +02:00
Christoph Lohmann
528241aa38 Use XftFontMatch in place of FcFontMatch.
git am -s didn't like your patch:

From: Mark Edgar <medgar123@gmail.com>

XftFontMatch calls XftDefaultSubstitute which configures various match
properties according to the user's configured Xft defaults (xrdb) as well as
according to the current display and screen. Most importantly, the screen DPI
is computed [1]. Without this, st uses a "default" DPI of 75 [2].

[1]: https://cgit.freedesktop.org/xorg/lib/libXft/tree/src/xftdpy.c?id=libXft-2.3.2#n535
[2]: https://cgit.freedesktop.org/fontconfig/tree/src/fcdefault.c?id=2.11.1#n255
2016-06-03 15:02:32 +02:00
v4hn
60aeb37edb delete clipboard properties after pasting them
https://tronche.com/gui/x/icccm/sec-2.html#s-2.4 specifies:
> Once all the data in the selection has been retrieved,
> the requestor should delete the property in the SelectionNotify request

Most Clipboard-Owners ignore whether or not the property is already set,
so this is mostly a cosmetic change to keep the windows property list clean.

However, at least synergy decides to wait for the requestor to delete
the properties if they are already set by a previous paste (from synergy).

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-06-03 14:55:25 +02:00
Roberto E. Vargas Caballero
66556d9670 Remove stupid assignation in memcpy() 2016-04-15 07:58:26 +02:00
Tor Andersson
39964614b7 st: Fix off-by-one error when calculating character width.
LEN(str) is one larger than strlen(str) because it also counts the zero
terminator. The original code would include the .notdef glyph (since it'll
try to encode character 0, which gets encoded to the .notdef glyph) when
measuring the average dimensions of printable ascii characters.

This causes problems with fonts like GNU Unifont where the .notdef glyph is
not the same width as the usual half-width characters.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-03-09 22:01:25 +01:00
Ton van den Heuvel
0e48a1995e Fix vertical character alignment in some cases
The y-position of a character found by asking fontconfig for a matching
font does not take the border pixels into account, resulting in a
slightly misaligned vertical position.

Signed-off-by: Ton van den Heuvel <tonvandenheuvel@gmail.com>
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-03-08 15:43:52 +01:00
Christoph Lohmann
6d8f85232e I like empty lines. 2016-03-08 13:55:22 +01:00
Ryusei Yamaguchi
034a5c8a09 Measure the single advance width with a heuristic method
This fix is needed to use dual-width fonts, which have double-width
glyphs (e.g. CJK unified ideographs).

Signed-off-by: Ryusei Yamaguchi <mandel59@gmail.com>
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-03-08 13:46:42 +01:00
Christoph Lohmann
30440295bc xtermclear() is now done by xdrawglyphfontspecs()
Thanks Ton van den Heuvel for the proposal!
2016-03-07 14:33:05 +01:00
Lucas Gabriel Vuotto
4fdba860c8 arg.h: fixed argv checks order
This prevents accessing to a potentially out-of-bounds memory section.

Signed-off-by: Lucas Gabriel Vuotto <l.vuotto92@gmail.com>
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-02-21 17:21:41 +01:00
Quentin Rameau
6d636beb22 Fix forgotten bracket and duplicate option in usage()
Scratch the preceding patch, this one is more correct
(don't forget to 'git am --scissors' ;))
-- >8 --

Also reformat the strings in a saner layout

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-02-01 18:14:27 +01:00
Quentin Rameau
6e70bb97d4 Extract ttyresize() out of cresize()
This way we can call cresize() to set the terminal size before creating
a tty or spawning a process, which will start with the correct size.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-01-30 18:40:13 +01:00
Christoph Lohmann
82335583eb Ok, no need for a separate version function.
This is just redundant metadata. Please add Java comment meta classes too.
2016-01-30 09:50:18 +01:00
Quentin Rameau
0cd5117a2c Add -n option for setting WM_CLASS instance name
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-01-30 09:45:23 +01:00
Quentin Rameau
bd5fdbe64c Reformat usage and separate version from it
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-01-30 09:44:41 +01:00