224 Commits
Author SHA1 Message Date
Aurélien Aptel ae0966484c cosmetic, whitespace, etc. 2012-01-21 23:43:03 +01:00
Aurélien Aptel 156ce77645 fix PRINT/DRAW _TIMEOUT and fix redrawing bug. 2012-01-21 23:26:53 +01:00
Aurélien Aptel 96c22e1604 copy dirty lines to screen, add select() timeout & min time between draw() calls.
* add a timeout value (SELECT_TIMEOUT) of 20ms in the select() call
* wait at least 20ms (DRAW_TIMEOUT) between draw() calls
* only copy dirty lines from the buffer to the screen

what draw() does:
* clears dirty lines in the buffer
* draws the longest same-attributes string of each
  dirty line to the buffer with multiple xdraws() call
* copies the current dirty line from buffer to the screen with a single
  xcopy() call

this changeset makes st run ~10x faster.
2012-01-21 23:14:41 +01:00
Aurélien Aptel 281174445b fix segfault in selection. (thx Martti Kühne) 2012-01-10 22:21:03 +01:00
Aurélien Aptel 197c466864 merge. 2011-11-01 16:37:16 +01:00
Aurélien Aptel 5ca0d3d2fa fix selection. (thx Tarmo Heiskanen) 2011-11-01 16:33:43 +01:00
Aurélien Aptel b1b9dc7eb5 drawregion() only copies region on screen. 2011-10-20 23:26:58 +02:00
Aurélien Aptel 44c83397af add dirty flag for lines 2011-10-20 23:20:59 +02:00
Aurélien Aptel 7c350025b2 no palette limit (thx Nick) 2011-10-06 21:32:34 +02:00
Aurélien Aptel 4a421ffbbc simplify version format. 2011-09-22 10:04:58 +02:00
Aurélien Aptel 62a92ca1aa selection is removed or scrolled properly. (thx Rafa Garcia Gallego) 2011-09-16 18:48:16 +02:00
Aurélien Aptel 98042a1a2d working on old repo, merging recent changesets. 2011-09-16 18:24:13 +02:00
Aurélien Aptel 5c6df8b3c3 move xembedatom in XWindow struct, add link to xembed specs. 2011-09-16 18:21:48 +02:00
Aurélien Aptel 43a4c5ebb2 tweak focus to support XEMBED client message and remove focus on EnterNotify. (thx Adrian) 2011-09-16 18:03:44 +02:00
Aurélien Aptel bf2e23f535 remove dup of default window size. 2011-09-16 17:57:56 +02:00
Aurélien Aptel 5d1c52bf5c change "op" cap in terminfo entry to xterm/rxvt value. 2011-08-14 17:15:19 +02:00
Aurélien Aptel 54adc7ee50 fix custom key handling. 2011-08-14 17:13:59 +02:00
Aurélien Aptel e2809f3976 fix focus state when embed in another window. 2011-06-09 18:25:56 +02:00
Aurélien Aptel ce547d3060 fix segfault with mouse selection. (thx anonymous) 2011-06-09 14:27:07 +02:00
Aurélien Aptel 4259a3ba3a add -w option to embed st. (thx nodus cursorius) 2011-06-08 21:35:58 +02:00
Aurélien Aptel fb32d01a18 applied parts of "anonymous" cleanup patch. 2011-06-08 20:26:00 +02:00
Aurélien Aptel 986670d080 add altscreen escseq alias & caps to terminfo entry. (thx Bert Münnich) 2011-06-08 20:22:38 +02:00
Aurélien Aptel 6eaec4732f disable mouse highlight when mouse report enabled. (thx Bert Münnich) 2011-06-08 19:32:10 +02:00
Aurélien Aptel 2edb412b6b reverse video mode. (thx Bert Münnich) 2011-06-08 12:40:35 +02:00
Aurélien Aptel bf6a11a482 add status bar (window title) to terminfo. (thx Rafa Gallego) 2011-06-01 19:57:48 +02:00
Aurélien Aptel a05423cb6a set title before mapping window (thx Kamil Cholewiński). 2011-05-22 16:57:27 +02:00
Aurélien Aptel cdd993c39e applied parts of Connor Lane Smith's cleanup patch. 2011-05-14 17:47:37 +02:00
Aurélien Aptel a7f4af0139 macro cleanup. 2011-05-10 22:55:35 +02:00
Aurélien Aptel 225fc7cbcf add mouse report escape to terminfo entry. 2011-05-10 22:54:30 +02:00
Aurélien Aptel 9760a7a831 support for x11 xterm mouse reporting 2011-05-10 22:22:44 +02:00
Aurélien Aptel 9a3cc64f9d whitespace. 2011-04-26 20:29:28 +02:00
Aurélien Aptel 3d0eeac7a8 cleanup. 2011-04-26 20:22:15 +02:00
Aurélien Aptel 31ba817cc3 update TODO 2011-04-22 00:42:58 +02:00
Aurélien Aptel e4dd367a4f selection clicks, shift+arrow keys, fast(er) redraw, key mask in config.h (thx Magnus Leuthner) 2011-04-22 00:18:53 +02:00
Aurélien Aptel 043fb982c5 update README. 2011-04-03 21:40:33 +02:00
Aurélien Aptel 7f3ea64d61 quick bug-fixing 0.1.1 release. 2011-04-03 21:05:41 +02:00
Aurélien Aptel d343f5847b update VERSION. 2011-04-03 21:04:45 +02:00
Aurélien Aptel 55c8d82eb1 take BORDER into account for selection. (thx Petr Sabata) 2011-04-03 21:03:48 +02:00
Aurélien Aptel d679267c46 fix utf8 clipboard. (thx Petr Sabata) 2011-04-03 21:00:55 +02:00
Aurélien Aptel bdd3246271 Added tag 0.1 for changeset cbc18c988236 2011-04-03 02:02:31 +02:00
Aurélien Aptel dbc2a3ea0f add support for utf8 clipboard. fix usage message. 2011-04-03 00:35:02 +02:00
pancake@nopcode.org ff97be88d5 do not add newline to selection text if next line not selected (Nick) 2011-04-01 09:35:38 +02:00
pancake@nopcode.org f27e662faa remove debugging printf 2011-04-01 09:33:28 +02:00
pancake@nopcode.org 2ea66b9229 apply Nick's patch to fix some error printf to use stderr 2011-04-01 09:32:41 +02:00
Aurélien Aptel cabc2bed68 fix insert key, terminfo and changed TERM back to st. (thx Ondrej Martinek) 2011-01-23 12:30:01 +01:00
Aurélien Aptel 0d2e7feb3b change X cursor to "I". 2010-12-12 13:32:13 +01:00
Aurélien Aptel 77e8d5be18 update terminfo entry. 2010-12-08 18:41:55 +01:00
Aurélien Aptel 111a8b00a2 add new line glitch to terminfo entry. 2010-12-08 18:09:39 +01:00
Aurélien Aptel 5dd76fab8b change -e behaviour and update man page. 2010-11-30 22:55:44 +01:00
Aurélien Aptel 191e59e438 -e flag handles arguments. 2010-11-28 13:17:20 +01:00
Aurélien Aptel 0f37655939 use memmove() instead of memcpy() in ttyread(). 2010-11-28 01:40:39 +01:00
Aurélien Aptel 1551e2db46 fix and clean ttyread(). buf wasn't static. 2010-11-27 21:19:31 +01:00
Aurélien Aptel 3cf9c2736c merge. 2010-11-26 22:12:54 +01:00
Aurélien Aptel c1f5b697a8 s/xw.dis/xw.dpy/ 2010-11-26 22:11:31 +01:00
pancake@nopcode.org 94ddc3e0c4 Fix unused variable issue and OSX includes 2010-11-24 14:27:44 +01:00
Aurélien Aptel 37f079e063 cleanup & bugfix in xdraws(). 2010-11-20 22:24:04 +01:00
Aurélien Aptel 58a650f089 clean comment regarding redrawing in bmotion(). 2010-11-19 22:32:39 +01:00
Gregor Best e417230f38 Add -c option to override the default window class 2010-11-19 17:13:13 +01:00
Aurélien Aptel 0735e8e760 some code cleaning. 2010-11-18 12:43:33 +01:00
Aurélien Aptel db3a27c8e6 utf8 support! print text in delicious unicode greatness! all hail to the glorious Damian Okrasa for the patch!
TERM set back to xterm.
changed default fonts.
Note: drawing is now (even) slower.
2010-11-18 01:00:04 +01:00
Aurélien Aptel f8d22ad159 selection code cleanup. 2010-11-08 19:49:13 +01:00
Aurélien Aptel 4569bab9c2 fixed ED. 2010-10-31 20:29:22 +01:00
Devin J. Pohly ea4d528fb9 redraw if we scroll on resize 2010-10-25 16:45:13 -04:00
Devin J. Pohly 221a683ef2 get rid of artifacts in border on resize down 2010-10-25 16:00:10 -04:00
Devin J. Pohly 90a56203a0 copy old pixmap to new on resize 2010-10-25 15:26:47 -04:00
Devin J. Pohly a6790adae7 move code into new xresize func, add early exit to resize 2010-10-25 15:10:41 -04:00
Aurélien Aptel f2388b19b9 \v and \f are have the same behaviour of \n. 2010-10-16 20:54:19 +02:00
Aurélien Aptel 311dd6952b added LNM mode; re-organized kpress() to handle it. 2010-10-16 20:50:29 +02:00
Aurélien Aptel 53bdabe24a redraw optimization. 2010-10-16 17:13:22 +02:00
Aurélien Aptel 5822a9fe61 fixed newline bug. 2010-10-14 19:21:12 +02:00
Aurélien Aptel 9daaad2214 replaced memset by loops in tresize(); turns out it's faster. 2010-10-13 01:27:09 +02:00
Aurélien Aptel b7d01d9b5c remove useless draw(). 2010-10-13 01:25:04 +02:00
Aurélien Aptel 32cae5475a applied xclipboard patch. thx David Isaac Wolinsky. 2010-10-13 01:24:11 +02:00
Aurélien Aptel a4ee801882 clean button selection code. 2010-10-13 00:50:18 +02:00
Aurélien Aptel 9bbc040ea6 compose key patch. thx federico luna. 2010-09-21 16:04:13 +02:00
Aurélien Aptel ad918b5a0b s/hasfocus/focus/ for consistency. 2010-09-11 16:07:36 +02:00
Aurélien Aptel 047aa071f3 don't draw if the window is not visible. 2010-09-11 16:05:57 +02:00
Aurélien Aptel d3440e1e0f use xclear() in draw(). 2010-09-11 16:01:41 +02:00
Aurélien Aptel 9134535808 use XCreateWindow(), set gravity bit. 2010-09-11 15:59:54 +02:00
Aurélien Aptel 641b507220 cleaning st.info. added comment in st.c for DECSCNM. 2010-09-03 00:15:43 +02:00
Aurélien Aptel 6380a73364 cleaning st.info. fixed cvvis. 2010-09-03 00:00:41 +02:00
Aurélien Aptel a997fea2c0 set terminal colors to xterm default ones. 2010-09-02 22:35:55 +02:00
Aurélien Aptel e87203dea6 removed gfx chars not present in xterm acsc. 2010-09-02 21:59:05 +02:00
Aurélien Aptel 9c504814df fixed start/end sequence of gfx. 2010-09-02 20:24:33 +02:00
Aurélien Aptel c68dae91d2 undefined gfx doesn't draw \0. 2010-09-02 20:21:40 +02:00
Aurélien Aptel 95b236a22a fixed makefile. 2010-09-02 02:03:53 +02:00
Aurélien Aptel c762fce23c added manpage. 2010-09-02 02:02:56 +02:00
Aurélien Aptel 5c7be4ad4d resize from the top. 2010-09-02 01:42:03 +02:00
Aurélien Aptel 195aa6bb9c added -e and -t option. 2010-09-02 01:37:01 +02:00
Aurélien Aptel eef3cb4242 factored code and fixed behaviour of tnewline(). 2010-09-01 23:20:54 +02:00
Aurélien Aptel ce404f8263 updated TODO. 2010-09-01 22:54:28 +02:00
Aurélien Aptel 8e1871bf8a started to go through st.info and fix things. 2010-09-01 22:54:07 +02:00
Aurélien Aptel ffd59a1b58 capabilities sorted by capname in st.info. copy acsc from xterm. 2010-09-01 19:47:46 +02:00
Aurélien Aptel c5b2056ba9 removed debug code. 2010-09-01 18:12:54 +02:00
Aurélien Aptel 2b3f6aca5a fixed IL and DL. 2010-09-01 17:21:09 +02:00
Aurélien Aptel 8c49888622 factor and cleanup code. 2010-09-01 16:26:12 +02:00
Aurélien Aptel f2482b322a added correct line drawing characters for default font. 2010-09-01 00:30:39 +02:00
Aurélien Aptel 60df49df91 use struct instead of array. 2010-08-31 18:30:18 +02:00
Aurélien Aptel 75143af77c cleanup. 2010-08-31 18:22:59 +02:00
pancake@nopcode.org 87d1f98637 fix segfault when selecting big buffers
shift+insert paste clipboard
honor CFLAGS and LDFLAGS in config.mk
2010-08-31 17:36:55 +02:00
Aurélien Aptel 4449abbddb fix build. 2010-08-31 16:56:27 +02:00
Aurélien Aptel 1d10e7865f add selinit() and renamed clipboard_* to sel*. 2010-08-31 16:53:34 +02:00
Aurélien Aptel 639e493b95 move event configuration in xinit(). 2010-08-31 16:30:11 +02:00
Aurélien Aptel 6ee49bcd9a use one global struct instead of many vars for selection. Cleanup. 2010-08-31 15:36:13 +02:00
Aurélien Aptel 6fc43b0194 use GLYPH_SET to test if a char is set; cleanup. 2010-08-31 14:52:52 +02:00
pancake@nopcode.org 725ec8ff4a fix crash for small windows
use unconditional infinite loops
2010-08-31 11:40:57 +02:00
Aurélien Aptel 9669f718ab toggle ATTR_REVERSE on selected text, factored some code and fixed Makefile. 2010-08-31 11:02:17 +02:00
pancake ca1f6675a1 fix build
use config.def.h mechanism
add SHELL in config.h
2010-08-30 23:49:15 +02:00
pancake dcc7f842bb initial implementation of selection and clipboard 2010-08-30 23:41:37 +02:00
pancake@nopcode.org 35b33ee489 fix segfault 2010-08-30 17:07:54 +02:00
Aurélien Aptel 641dfd94e3 added support for alternate screen. 2010-08-30 16:48:18 +02:00
Aurélien Aptel af113bd3fb cursor is hid when unfocused. 2010-08-30 15:28:29 +02:00
Aurélien Aptel 4f5c7e3a31 use predefined OS macro instead of uname. 2010-08-30 13:04:19 +02:00
Aurélien Aptel 1ba065d993 st should compile on NetBSD. 2010-08-30 01:20:38 +02:00
Aurélien Aptel bc834723ec removed pty.h. minimal system guessing added in config.mk. 2010-08-30 03:12:11 +02:00
Aurélien Aptel ecca0580cb removed (visual) bell. '\a' sets the urgency flag if st is unfocused. 2010-08-30 03:05:05 +02:00
Aurélien Aptel ad2fdab6b6 removed useless cursor init. and renamed xcursor() to xdrawcursor(). 2010-08-30 01:45:57 +02:00
Aurélien Aptel 4657805ec5 added support for the "magic margin", changed c.hide to c.state, changed xcursor() to use term instead of a
parameter and fixed the cursor position after setting a scrolling region.
2010-08-30 01:35:37 +02:00
Aurélien Aptel 674926af15 removed old VT52 escapes, fixed VT100 IND. 2010-08-30 01:19:05 +02:00
pancake 70c9762434 fix warning 2010-08-30 00:32:49 +02:00
Aurélien Aptel 913c0cbd34 fixed optimized drawing routine and factored some code. 2010-08-29 20:12:44 +02:00
Aurélien Aptel 27a7d85d0c fixed pixmap buffer drawing. 2010-08-29 19:41:36 +02:00
Aurélien Aptel acf921d410 added a XFlush() in xbell(). 2010-08-29 19:14:05 +02:00
Aurélien Aptel 5299e2bfa2 moved term.hidec in term.c for consistency, put back delay in xbell()
along with duration in config.h, factored some code in tnew()/treset()
and cleaned some code.
2010-08-29 18:55:15 +02:00
Aurélien Aptel 1def7a177e merged tscroll() with tscrollup(). 2010-08-29 12:27:59 +02:00
Aurélien Aptel cf527c22d5 st now runs on Linux, OpenBSD and FreeBSD. 2010-08-28 03:18:22 +02:00
Aurélien Aptel fa6a9216a1 removed XINERAMA from config.mk and fixed a segfault when st is
started without a display. (thx Hiltjo Posthuma)
2010-08-27 13:53:27 +02:00
Aurélien Aptel fec59f7370 fixed potential bug in IS_SET(). 2010-08-27 00:58:28 +02:00
Aurélien Aptel 6f259b9257 merged tcursorwrap() with tnewline(), added few comments and updated copyright. 2010-08-27 00:28:27 +02:00
Aurélien Aptel 8db9a192e5 cleaned some spaces. 2010-08-27 00:05:50 +02:00
Aurélien Aptel 85a94e2db9 added macro to test flags, removed tmovecursor(). 2010-08-26 23:43:08 +02:00
Aurélien Aptel 8a3b1e0938 faster resizing. 2010-08-26 21:37:12 +02:00
Aurélien Aptel 1494bb9f97 close master/slave pty in the shell process. 2010-08-26 21:36:21 +02:00
Aurélien Aptel ab5e72dc39 clean \t. 2010-08-26 21:34:37 +02:00
Aurélien Aptel f181bb29d8 update function prototypes. 2010-08-26 21:33:53 +02:00
Aurélien Aptel c81ea29001 fix \b and clean \t. 2010-08-26 21:32:34 +02:00
Aurélien Aptel d1084bfdab added F1-12 key, fixed DCH and ICH. 2010-08-22 19:46:46 +02:00
Aurélien Aptel 66efdff768 fixed backspace problem, updated terminfo entry and moved TNAME in config.h. 2010-08-19 12:46:54 +02:00
Aurélien Aptel b0672d0932 renamed a function. 2010-08-13 22:43:30 +02:00
Anselm R Garbe 2bbe19f9d5 applied Devin J Pohly's st color info patches, thanks Devin! 2010-07-24 12:09:14 +01:00
pancake@nopcode.org 5f4fb527ce fix gcc warnings 2010-07-08 17:34:02 +02:00
Aurélien Aptel 1552e2f1b9 fixed background color bug (thx Devin J. Pohly). 2010-07-08 16:31:41 +02:00
Aurélien Aptel c7861318e2 added PBaseSize hint and set default title to "st". 2010-06-03 23:14:37 +02:00
Aurélien Aptel 2a28e226a9 rearranged code, resize fixed. 2010-06-02 16:01:30 +02:00
Aurélien Aptel 50d795d28c little clean up. 2010-04-27 00:04:29 +02:00
Aurélien Aptel ba9e8eafe7 use SHELL environment variable (thx Thomas Adam) 2010-04-26 19:20:53 +02:00
Aurélien Aptel ba783c4517 double-buffering added using pixmap (finally).
results in a lot of simplification :
	- no more dirty flags (perf are good enough).
	- no more ugly gfx call in emulation functions.
LINESPACE removed from config.h.
BORDER is now handled correctly.
2010-03-15 23:56:38 +01:00
Aurélien Aptel 5b945f0652 bold attribute is back.
visibility of the cursor is not saved/loaded anymore.
scrolling up/down is fixed.
added RI and RIS sequences.
fixed cursor drawing bug.
2010-03-11 23:50:50 +01:00
Aurélien Aptel 8898ecc34a added VT100 NEL. 2010-02-21 14:59:32 +01:00
Aurélien Aptel a744f2f897 added VT100 RI. 2010-02-21 14:39:31 +01:00
Aurélien Aptel 21a92b4dc9 added VT100 save&load cursor support. 2010-02-21 14:28:32 +01:00
Aurélien Aptel 8d12cb4035 ECH handled correctly. 2010-02-21 14:14:58 +01:00
Aurélien Aptel bc4b43be44 more escapes & more compability:
cursor keys are handled in kpress according to the Application Mode (DECPAM).
define & enum were renamed.
tcursor() is now tmovecursor() which is more correct.
tcpos() is now tcursor(), as DECSC is also supposed to save attributes.
capnames are indicated whenever possible.

Currently:
alsamixer looks fine, totally usable.
ncmpc is almost ok.
emacs looks like shit.
2010-02-08 23:16:55 +01:00
Aurélien Aptel fe32c542ec graphic charset and a few more escapes. 2010-02-03 16:18:04 +01:00
Aurélien Aptel 85e81bd8a6 TERM set to xterm by default (which broke a lot of stuff), better escape handling (title), and a little clean up. 2010-02-03 03:25:35 +01:00
Aurélien Aptel a2d6f50665 drawing is faster but the bold attr is not supported anymore. 2009-10-28 14:34:22 +01:00
Aurélien Aptel 7958b41040 Fixed possible segfault by reverting to the key struct (again). 2009-09-07 21:19:29 +02:00
Anselm R Garbe be0878960e only compile tdump if DEBUG flag is set 2009-07-10 16:27:14 +01:00
Anselm R Garbe 4d3b1f94c7 we definately need pixmaps for the drawing, currently drawing into the window is painfully slow! much more slower than drawing into a pixmap and mapping that when finished -- several optimisations 2009-07-10 16:23:11 +01:00
Aurélien Aptel 30024d585b reverted back to the old Key struct. 2009-06-21 19:52:06 +02:00
Aurélien Aptel 29fafafb26 updated "key" to a lookup table. 2009-06-21 19:37:12 +02:00
Aurélien Aptel b36cf286b3 removed old unused cursor() proto. 2009-06-17 20:44:36 +02:00
Aurélien Aptel c23d259eb4 fixed the scrolling bug and cleaned some stuff. 2009-06-17 02:58:40 +02:00
Aurélien Aptel bddcc7f5ae dump escseq if not handled. 2009-06-16 12:34:10 +02:00
Aurélien Aptel 0b2a2fc613 clean up. 2009-06-16 02:41:45 +02:00
Aurélien Aptel 19d9334d96 added/removed files, updated Makefile. 2009-06-16 02:33:38 +02:00
Aurélien Aptel 6305137834 made kpress() more flexible, removed st.h, added config.h. 2009-06-16 02:23:46 +02:00
Aurélien Aptel ae69ef6758 updated TODO. 2009-06-11 17:03:25 +02:00
Aurélien Aptel d8ce37bc3d added sigchld handler, cleaned error checking. 2009-06-11 16:41:14 +02:00
Aurélien Aptel 678b66897a cleaned up (removed space indentation). select/event bug fixed. 2009-05-28 01:33:01 +02:00
Aurélien Aptel 8e4ac364cb fixed a memory leak & segfault in tresize. 2009-05-26 02:21:02 +02:00
Aurélien Aptel 9224d3eaf2 updated TODO. 2009-05-15 00:40:47 +02:00
Aurélien Aptel 2fab2ea5ed tab moves the cursor instead of inserting spaces. 2009-05-15 00:39:51 +02:00
Aurélien Aptel 9364de4c64 handle tabulation (still not perfect) 2009-05-14 01:03:17 +02:00
Aurélien Aptel 28abdd24c7 removed truecolor stuff 2009-05-14 00:28:10 +02:00
Aurélien Aptel f806677a0b removed the truecolor stuff 2009-05-14 00:27:37 +02:00
Aurélien Aptel 633983cfc7 same thing, really fixed this time. 2009-05-14 00:18:05 +02:00
Aurélien Aptel e6b37f2f87 added some error checking in xinit (fixed the segfault caused by a missing font) 2009-05-14 00:04:34 +02:00
Aurélien Aptel da01ce7465 Removed unused variable and cleaned some comment. 2009-05-10 23:32:21 +02:00
Anselm R Garbe c740fb5be8 backport of local changes 2009-05-10 13:17:09 +01:00
Matthias-Christian Ott ad4256295b add accidentally omitted word 2008-09-05 20:25:34 +02:00
Matthias-Christian Ott 6bcdd0edd5 use stdio(3) 2008-08-25 17:56:00 +02:00
Matthias-Christian Ott 7e57d1fbba add description of std 2008-08-25 16:29:37 +02:00
Matthias-Christian Ott 841d2339e3 add prototype for command parsing 2008-08-07 10:38:54 +02:00
Matthias-Christian Ott 4063ddb6dc correct year of copyright notice 2008-07-21 17:10:33 +02:00
Matthias-Christian Ott db20559694 simplify Makefile
Due to consideration of POSIX compliance issues config.mk had
to be removed. Configuration variables can be overridden by
environment variables or specified via command line.

Additionally all pretty-printed messages were removed and
built-in rules are used. This also simplifies and purges
the Makefile.
2008-07-21 17:06:59 +02:00
Matthias-Christian Ott 76c66a3556 reunite pty.c with std.c 2008-07-21 10:34:02 +02:00
Matthias-Christian Ott 2346bd1d39 correct programme name 2008-07-21 09:25:47 +02:00
Matthias-Christian Ott 019a118b67 use errx() for help and version messages 2008-07-21 09:25:25 +02:00
Matthias-Christian Ott 3993557404 merge with backout head 2008-07-10 22:43:24 +02:00
Matthias-Christian Ott fbac4d5cb6 Backed out changeset d2bb4220fdf3
Ptm and pts are used by pty.c, thus they have to be non-static.
2008-07-10 22:42:10 +02:00
Matthias-Christian Ott 3333bca385 remove TODO 2008-07-09 11:10:38 +02:00
Matthias-Christian Ott 23bc536ebd make ptm and pts static 2008-07-09 10:50:44 +02:00
Matthias-Christian Ott f917857f4e remove useless variable 2008-07-05 13:29:21 +02:00
Matthias-Christian Ott eb92c4da84 remove emallocz() 2008-07-04 18:18:51 +02:00
Matthias-Christian Ott d16fdbb6fa replace eprint() functions with BSD error functions 2008-07-04 18:05:08 +02:00
Matthias-Christian Ott f757e6f839 simplify flushing 2008-06-15 17:31:24 +02:00
Matthias-Christian Ott dadd3d0a6d correct buffering 2008-06-15 09:19:22 +02:00
Matthias-Christian Ott 1bc8d0beb3 make local functions and variables static 2008-06-14 23:29:11 +02:00
Matthias-Christian Ott 7c63f47d3d add select(2)-based i/o multiplexing 2008-06-14 23:24:12 +02:00
Matthias-Christian Ott bed0807e77 drop stdio usage
Std requires I/O multiplexing which is very complicated with
stdio, because it provides no transparent buffering.
2008-06-14 23:12:07 +02:00
Matthias-Christian Ott c9e63f9c30 make st and std separate programmes 2008-06-14 11:03:29 +02:00
Matthias-Christian Ott 61f6e92f65 add missing header file 2008-06-10 18:01:15 +02:00
Matthias-Christian Ott f513f1d9da assume glibc by default 2008-06-10 18:00:15 +02:00
Matthias-Christian Ott 3e8930a7a6 source utility functions out to util.c 2008-06-10 17:56:57 +02:00
Matthias-Christian Ott df9140d050 add copyright comment 2008-06-10 17:32:15 +02:00
Matthias-Christian Ott 3f14681cd6 source getpty() out to pty.c 2008-06-10 17:30:15 +02:00
Matthias-Christian Ott 9995f245ee update TODO 2008-06-09 22:24:44 +02:00
Matthias-Christian Ott e4be8afef2 correct function name 2008-06-09 22:21:37 +02:00
Matthias-Christian Ott 9a644176d0 remove xinerama flags
The xinerama related variables in config.mk are a relict of
dwm and therefore should be removed.
2008-06-08 21:36:58 +02:00
Matthias-Christian Ott 130b90d8d0 add missing header file 2008-06-08 21:18:49 +02:00
Matthias-Christian Ott 62872197f8 add parser loop 2008-06-08 21:17:02 +02:00
Matthias-Christian Ott 19a38b1fd3 remove useless variable 2008-06-08 20:55:42 +02:00
Matthias-Christian Ott 512ca99d8c replace state with separate variables 2008-06-08 20:47:08 +02:00
Matthias-Christian Ott 538a0c4431 terminate error message with newline 2008-06-04 19:52:59 +02:00
Matthias-Christian Ott 75b1565fdc correct LENGTH() 2008-06-02 20:15:52 +02:00
Matthias-Christian Ott 4059fb04fa simplify control flow 2008-06-02 20:01:35 +02:00
Matthias-Christian Ott 1ebcc5c97b remove debug code 2008-06-02 18:42:23 +02:00
Matthias-Christian Ott 28f831b74b remove stdio slave pty opening 2008-06-02 18:41:23 +02:00
Matthias-Christian Ott 38c5ff876d drop support for proprietary UNIX variants
Proprietary UNIX variants like AIX, HP-UX or SCO UNIX
are nowadays rarely used and maintaining compatibility to
non-standard operating systems interfaces is wasteful and
practically useless.

Projects like xterm suffer from backward compatibility to decades-old
UNIX variants and terminal standards. This does not conform to st's
design goals.
2008-06-02 18:40:22 +02:00
Anselm R Garbe 2803f76fa8 slight changes 2008-06-01 18:04:49 +01:00
Anselm R Garbe d272d5a95e applied Matthias-Christians changes to std.c 2008-06-01 18:02:48 +01:00
Anselm R Garbe a4e3e95194 added some new files for the initial rewrite of st from scratch 2008-05-20 10:03:59 +01:00
arg@localhost.localdomain 9e7b36d72b added new TODO 2008-05-11 16:36:13 +00:00
13 changed files with 1093 additions and 3499 deletions

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
cbc18c988236c63a58ed24031805e8d36a3ad01a 0.1
f245ac2efd8ac2f1ac6bffae876c2663e794f79d 0.1.1
-91
View File
@@ -1,91 +0,0 @@
## Why does st not handle utmp entries?
Use the excellent tool of [utmp](http://git.suckless.org/utmp/) for this task.
## Some _random program_ complains that st is unknown/not recognised/unsupported/whatever!
It means that st doesn’t have any terminfo entry on your system. Chances are
you did not `make install`. If you just want to test it without installing it,
you can manualy run `tic -s st.info`.
## Nothing works, and nothing is said about an unknown terminal!
* Some programs just assume they’re running in xterm i.e. they don’t rely on
terminfo. What you see is the current state of the “xterm compliance”.
* Some programs don’t complain about the lacking st description and default to
another terminal. In that case see the question about terminfo.
## I get some weird glitches/visual bug on _random program_!
Try launching it with a different TERM: $ TERM=xterm myapp. toe(1) will give
you a list of available terminals, but you’ll most likely switch between xterm,
st or st-256color. The default value for TERM can be changed in config.h
(TNAME).
## How do I scroll back up?
Using a terminal multiplexer.
* `st -e tmux` using C-b [
* `st -e screen` using C-a ESC
## Why doesn't the Del key work in some programs?
Taken from the terminfo manpage:
If the terminal has a keypad that transmits codes when the keys
are pressed, this information can be given. Note that it is not
possible to handle terminals where the keypad only works in
local (this applies, for example, to the unshifted HP 2621 keys).
If the keypad can be set to transmit or not transmit, tive these
codes as smkx and rmkx. Otherwise the keypad is assumed to
always transmit.
In the st case smkx=E[?1hE= and rmkx=E[?1lE>, so it is mandatory that
applications which want to test against keypad keys, have to send these
sequences.
But buggy applications like bash and irssi for example don't do this. A fast
solution for them is to use the following command:
$ printf "\033?1h\033=" >/dev/tty
or
$ echo $(tput smkx) >/dev/tty
In the case of bash readline is used. Readline has a different note in its
manpage about this issue:
enable-keypad (Off)
When set to On, readline will try to enable the
application keypad when it is called. Some systems
need this to enable arrow keys.
Adding this option to your .inputrc will fix the keypad problem for all
applications using readline.
If you are using zsh, then read the zsh FAQ
<http://zsh.sourceforge.net/FAQ/zshfaq03.html#l25>:
It should be noted that the O / [ confusion can occur with other keys
such as Home and End. Some systems let you query the key sequences
sent by these keys from the system's terminal database, terminfo.
Unfortunately, the key sequences given there typically apply to the
mode that is not the one zsh uses by default (it's the "application"
mode rather than the "raw" mode). Explaining the use of terminfo is
outside of the scope of this FAQ, but if you wish to use the key
sequences given there you can tell the line editor to turn on
"application" mode when it starts and turn it off when it stops:
function zle-line-init () { echoti smkx }
function zle-line-finish () { echoti rmkx }
zle -N zle-line-init
zle -N zle-line-finish
Putting these lines into your .zshrc will fix the problems.
## How can use meta in 8bit mode?
St support meta in 8bit mode, but the default terminfo entry doesn't
use this capability. If you want it, you have to use st-meta value
in TERM.
-17
View File
@@ -1,17 +0,0 @@
A STATEMENT ON LEGACY SUPPORT
In the terminal world there is much cruft that comes from old and unsup‐
ported terminals that inherit incompatible modes and escape sequences
which noone is able to know, except when he/she comes from that time and
developed a graphical vt100 emulator at that time.
One goal of st is to only support what is really needed. When you en‐
counter a sequence which you really need, implement it. But while you
are at it, do not add the other cruft you might encounter while sneek‐
ing at other terminal emulators. History has bloated them and there is
no real evidence that most of the sequences are used today.
Christoph Lohmann <20h@r-36.net>
2012-09-13T07:00:36.081271045+02:00
+23 -28
View File
@@ -1,30 +1,25 @@
MIT/X Consortium License
Copyright (c) 2009, Aurélien APTEL <aurelien dot aptel at gmail dot com>
Copyright (c) 2009, Anselm R Garbe <garbeam at gmail dot com>
© 2009-2012 Aurélien APTEL <aurelien dot aptel at gmail dot com>
© 2009 Anselm R Garbe <garbeam at gmail dot com>
© 2012 Roberto E. Vargas Caballero <k0ga at shike2 dot com>
© 2012 Christoph Lohmann <20h at r-36 dot net>
© 2013 Eon S. Jeon <esjeon at hyunmu dot am>
© 2013 Alexander Sedov <alex0player at gmail dot com>
© 2013 Mark Edgar <medgar123 at gmail dot com>
© 2013 Eric Pruitt <eric.pruitt at gmail dot com>
© 2013 Michael Forney <mforney at mforney dot org>
© 2013 Markus Teich <markus dot teich at stusta dot mhn dot de>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-1
View File
@@ -48,7 +48,6 @@ install: all
@mkdir -p ${DESTDIR}${MANPREFIX}/man1
@sed "s/VERSION/${VERSION}/g" < st.1 > ${DESTDIR}${MANPREFIX}/man1/st.1
@chmod 644 ${DESTDIR}${MANPREFIX}/man1/st.1
@echo Please see the README file regarding the terminfo entry of st.
@tic -s st.info
uninstall:
+5 -4
View File
@@ -21,14 +21,15 @@ necessary as root):
Running st
----------
If you did not install st with make clean install, you must compile
the st terminfo entry with the following command:
If you don't install st, define TNAME to "xterm" in config.h or make sure to at
least compile st terminfo entry with the following command:
tic -s st.info
It should print the path of the compiled terminfo entry. You can
safely remove it if you don't plan to use st anymore.
See the man page for additional details.
Credits
-------
Based on Aurélien APTEL <aurelien dot aptel at gmail dot com> bt source code.
Based on Aurélien APTEL <aurelien dot aptel at gmail dot com> bt source code.
+7 -13
View File
@@ -1,24 +1,18 @@
vt emulation
------------
* double-height support
* screen erased with background color ## capname:bce
* back tab ## capname:cbt ## seq:CSI Z
* ...
code & interface
----------------
* add a simple way to do multiplexing
drawing
-------
* add diacritics support to xdraws()
* make the font cache simpler
bugs
----
* clean selection code
* clean and complete terminfo entry
* fix shift up/down (shift selection in emacs)
* fix -e handling
* remove DEC test sequence when appropriate
* fast drawing
* ...
misc
----
-63
View File
@@ -1,63 +0,0 @@
/*
* Copy me if you can.
* by 20h
*/
#ifndef ARG_H__
#define ARG_H__
extern char *argv0;
/* use main(int argc, char *argv[]) */
#define ARGBEGIN for (argv0 = *argv, argv++, argc--;\
argv[0] && argv[0][1]\
&& argv[0][0] == '-';\
argc--, argv++) {\
char argc_;\
char **argv_;\
int brk_;\
if (argv[0][1] == '-' && argv[0][2] == '\0') {\
argv++;\
argc--;\
break;\
}\
for (brk_ = 0, argv[0]++, argv_ = argv;\
argv[0][0] && !brk_;\
argv[0]++) {\
if (argv_ != argv)\
break;\
argc_ = argv[0][0];\
switch (argc_)
/* Handles obsolete -NUM syntax */
#define ARGNUM case '0':\
case '1':\
case '2':\
case '3':\
case '4':\
case '5':\
case '6':\
case '7':\
case '8':\
case '9'
#define ARGEND }\
}
#define ARGC() argc_
#define ARGNUMF(base) (brk_ = 1, estrtol(argv[0], (base)))
#define EARGF(x) ((argv[0][1] == '\0' && argv[1] == NULL)?\
((x), abort(), (char *)0) :\
(brk_ = 1, (argv[0][1] != '\0')?\
(&argv[0][1]) :\
(argc--, argv++, argv[0])))
#define ARGF() ((argv[0][1] == '\0' && argv[1] == NULL)?\
(char *)0 :\
(brk_ = 1, (argv[0][1] != '\0')?\
(&argv[0][1]) :\
(argc--, argv++, argv[0])))
#endif
+46 -339
View File
@@ -1,57 +1,12 @@
/* See LICENSE file for copyright and license details. */
/*
* appearance
*
* font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
*/
static char font[] = "Liberation Mono:pixelsize=12:antialias=false:autohint=false";
static int borderpx = 2;
static char shell[] = "/bin/sh";
/* Kerning / character bounding-box mutlipliers */
float cwscale = 1.0;
float chscale = 1.0;
/*
* word delimiter string
*
* More advanced example: " `'\"()[]{}"
*/
static char worddelimiters[] = " ";
/* selection timeouts (in milliseconds) */
static unsigned int doubleclicktimeout = 300;
static unsigned int tripleclicktimeout = 600;
/* alt screens */
static bool allowaltscreen = true;
/* frames per second st should at maximum draw to the screen */
static unsigned int xfps = 120;
static unsigned int actionfps = 30;
/*
* blinking timeout (set to 0 to disable blinking) for the terminal blinking
* attribute.
*/
static unsigned int blinktimeout = 800;
/*
* bell volume. It must be a value between -100 and 100. Use 0 for disabling
* it
*/
static int bellvolume = 0;
/* TERM value */
static char termname[] = "st-256color";
static unsigned int tabspaces = 8;
#define TAB 8
#define TNAME "st-256color"
#define FONT "-*-*-medium-r-*-*-*-120-75-75-*-60-*-*"
#define BOLDFONT "-*-*-bold-r-*-*-*-120-75-75-*-60-*-*"
#define BORDER 2
#define SHELL "/bin/sh"
/* Terminal colors (16 first used in escape sequence) */
static const char *colorname[] = {
/* 8 normal colors */
"black",
"red3",
"green3",
@@ -60,8 +15,6 @@ static const char *colorname[] = {
"magenta3",
"cyan3",
"gray90",
/* 8 bright colors */
"gray50",
"red",
"green",
@@ -69,299 +22,53 @@ static const char *colorname[] = {
"#5c5cff",
"magenta",
"cyan",
"white",
[255] = 0,
/* more colors can be added after 255 to use with DefaultXX */
"#cccccc",
"white"
};
/* Default colors (colorname index)
foreground, background, cursor */
#define DefaultFG 7
#define DefaultBG 0
#define DefaultCS 1
/*
* Default colors (colorname index)
* foreground, background, cursor
*/
static unsigned int defaultfg = 7;
static unsigned int defaultbg = 0;
static unsigned int defaultcs = 256;
/* Special keys (change & recompile st.info accordingly)
Keep in mind that kpress() in st.c hardcodes some keys.
/*
* Colors used, when the specific fg == defaultfg. So in reverse mode this
* will reverse too. Another logic would only make the simple feature too
* complex.
*/
static unsigned int defaultitalic = 11;
static unsigned int defaultunderline = 7;
/* Internal mouse shortcuts. */
/* Beware that overloading Button1 will disable the selection. */
static Mousekey mshortcuts[] = {
/* button mask string */
{ Button4, XK_ANY_MOD, "\031" },
{ Button5, XK_ANY_MOD, "\005" },
};
/* Internal keyboard shortcuts. */
#define MODKEY Mod1Mask
static Shortcut shortcuts[] = {
/* mask keysym function argument */
{ ControlMask, XK_Print, toggleprinter, {.i = 0} },
{ ShiftMask, XK_Print, printscreen, {.i = 0} },
{ XK_ANY_MOD, XK_Print, printsel, {.i = 0} },
{ MODKEY|ShiftMask, XK_Prior, xzoom, {.i = +1} },
{ MODKEY|ShiftMask, XK_Next, xzoom, {.i = -1} },
{ ShiftMask, XK_Insert, selpaste, {.i = 0} },
{ MODKEY|ShiftMask, XK_Insert, clippaste, {.i = 0} },
{ MODKEY, XK_Num_Lock, numlock, {.i = 0} },
};
/*
* Special keys (change & recompile st.info accordingly)
*
* Mask value:
* * Use XK_ANY_MOD to match the key no matter modifiers state
* * Use XK_NO_MOD to match the key alone (no modifiers)
* appkey value:
* * 0: no value
* * > 0: keypad application mode enabled
* * = 2: term.numlock = 1
* * < 0: keypad application mode disabled
* appcursor value:
* * 0: no value
* * > 0: cursor application mode enabled
* * < 0: cursor application mode disabled
* crlf value
* * 0: no value
* * > 0: crlf mode is enabled
* * < 0: crlf mode is disabled
*
* Be careful with the order of the definitons because st searchs in
* this table sequentially, so any XK_ANY_MOD must be in the last
* position for a key.
*/
/*
* If you want keys other than the X11 function keys (0xFD00 - 0xFFFF)
* to be mapped below, add them to this array.
*/
static KeySym mappedkeys[] = { -1 };
/*
* State bits to ignore when matching key or button events. By default,
* numlock (Mod2Mask) and keyboard layout (XK_SWITCH_MOD) are ignored.
*/
static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
Mask value:
* Use XK_ANY_MOD to match the key no matter modifiers state
* Use XK_NO_MOD to match the key alone (no modifiers)
key, mask, output */
static Key key[] = {
/* keysym mask string appkey appcursor crlf */
{ XK_KP_Home, ShiftMask, "\033[2J", 0, -1, 0},
{ XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1, 0},
{ XK_KP_Home, XK_ANY_MOD, "\033[H", 0, -1, 0},
{ XK_KP_Home, XK_ANY_MOD, "\033[1~", 0, +1, 0},
{ XK_KP_Up, XK_ANY_MOD, "\033Ox", +1, 0, 0},
{ XK_KP_Up, XK_ANY_MOD, "\033[A", 0, -1, 0},
{ XK_KP_Up, XK_ANY_MOD, "\033OA", 0, +1, 0},
{ XK_KP_Down, XK_ANY_MOD, "\033Or", +1, 0, 0},
{ XK_KP_Down, XK_ANY_MOD, "\033[B", 0, -1, 0},
{ XK_KP_Down, XK_ANY_MOD, "\033OB", 0, +1, 0},
{ XK_KP_Left, XK_ANY_MOD, "\033Ot", +1, 0, 0},
{ XK_KP_Left, XK_ANY_MOD, "\033[D", 0, -1, 0},
{ XK_KP_Left, XK_ANY_MOD, "\033OD", 0, +1, 0},
{ XK_KP_Right, XK_ANY_MOD, "\033Ov", +1, 0, 0},
{ XK_KP_Right, XK_ANY_MOD, "\033[C", 0, -1, 0},
{ XK_KP_Right, XK_ANY_MOD, "\033OC", 0, +1, 0},
{ XK_KP_Prior, ShiftMask, "\033[5;2~", 0, 0, 0},
{ XK_KP_Prior, XK_ANY_MOD, "\033[5~", 0, 0, 0},
{ XK_KP_Begin, XK_ANY_MOD, "\033[E", 0, 0, 0},
{ XK_KP_End, ControlMask, "\033[J", -1, 0, 0},
{ XK_KP_End, ControlMask, "\033[1;5F", +1, 0, 0},
{ XK_KP_End, ShiftMask, "\033[K", -1, 0, 0},
{ XK_KP_End, ShiftMask, "\033[1;2F", +1, 0, 0},
{ XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0, 0},
{ XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0, 0},
{ XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0, 0},
{ XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0, 0},
{ XK_KP_Insert, ShiftMask, "\033[4l", -1, 0, 0},
{ XK_KP_Insert, ControlMask, "\033[L", -1, 0, 0},
{ XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0, 0},
{ XK_KP_Delete, ControlMask, "\033[M", -1, 0, 0},
{ XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0, 0},
{ XK_KP_Delete, ShiftMask, "\033[2K", -1, 0, 0},
{ XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0, 0},
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0, 0},
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\r", -1, 0, -1},
{ XK_KP_Enter, XK_ANY_MOD, "\r\n", -1, 0, +1},
{ XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0, 0},
{ XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0, 0},
{ XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0, 0},
{ XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0, 0},
{ XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0, 0},
{ XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0, 0},
{ XK_KP_3, XK_ANY_MOD, "\033Os", +2, 0, 0},
{ XK_KP_4, XK_ANY_MOD, "\033Ot", +2, 0, 0},
{ XK_KP_5, XK_ANY_MOD, "\033Ou", +2, 0, 0},
{ XK_KP_6, XK_ANY_MOD, "\033Ov", +2, 0, 0},
{ XK_KP_7, XK_ANY_MOD, "\033Ow", +2, 0, 0},
{ XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0, 0},
{ XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0, 0},
{ XK_BackSpace, XK_NO_MOD, "\177", 0, 0, 0},
{ XK_Up, ShiftMask, "\033[1;2A", 0, 0, 0},
{ XK_Up, ControlMask, "\033[1;5A", 0, 0, 0},
{ XK_Up, Mod1Mask, "\033[1;3A", 0, 0, 0},
{ XK_Up, XK_ANY_MOD, "\033[A", 0, -1, 0},
{ XK_Up, XK_ANY_MOD, "\033OA", 0, +1, 0},
{ XK_Down, ShiftMask, "\033[1;2B", 0, 0, 0},
{ XK_Down, ControlMask, "\033[1;5B", 0, 0, 0},
{ XK_Down, Mod1Mask, "\033[1;3B", 0, 0, 0},
{ XK_Down, XK_ANY_MOD, "\033[B", 0, -1, 0},
{ XK_Down, XK_ANY_MOD, "\033OB", 0, +1, 0},
{ XK_Left, ShiftMask, "\033[1;2D", 0, 0, 0},
{ XK_Left, ControlMask, "\033[1;5D", 0, 0, 0},
{ XK_Left, Mod1Mask, "\033[1;3D", 0, 0, 0},
{ XK_Left, XK_ANY_MOD, "\033[D", 0, -1, 0},
{ XK_Left, XK_ANY_MOD, "\033OD", 0, +1, 0},
{ XK_Right, ShiftMask, "\033[1;2C", 0, 0, 0},
{ XK_Right, ControlMask, "\033[1;5C", 0, 0, 0},
{ XK_Right, Mod1Mask, "\033[1;3C", 0, 0, 0},
{ XK_Right, XK_ANY_MOD, "\033[C", 0, -1, 0},
{ XK_Right, XK_ANY_MOD, "\033OC", 0, +1, 0},
{ XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0, 0},
{ XK_Return, Mod1Mask, "\033\r", 0, 0, -1},
{ XK_Return, Mod1Mask, "\033\r\n", 0, 0, +1},
{ XK_Return, XK_ANY_MOD, "\r", 0, 0, -1},
{ XK_Return, XK_ANY_MOD, "\r\n", 0, 0, +1},
{ XK_Insert, ShiftMask, "\033[4l", -1, 0, 0},
{ XK_Insert, ShiftMask, "\033[2;2~", +1, 0, 0},
{ XK_Insert, ControlMask, "\033[L", -1, 0, 0},
{ XK_Insert, ControlMask, "\033[2;5~", +1, 0, 0},
{ XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0, 0},
{ XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0, 0},
{ XK_Delete, ControlMask, "\033[M", -1, 0, 0},
{ XK_Delete, ControlMask, "\033[3;5~", +1, 0, 0},
{ XK_Delete, ShiftMask, "\033[2K", -1, 0, 0},
{ XK_Delete, ShiftMask, "\033[3;2~", +1, 0, 0},
{ XK_Delete, XK_ANY_MOD, "\033[P", -1, 0, 0},
{ XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0, 0},
{ XK_Home, ShiftMask, "\033[2J", 0, -1, 0},
{ XK_Home, ShiftMask, "\033[1;2H", 0, +1, 0},
{ XK_Home, XK_ANY_MOD, "\033[H", 0, -1, 0},
{ XK_Home, XK_ANY_MOD, "\033[1~", 0, +1, 0},
{ XK_End, ControlMask, "\033[J", -1, 0, 0},
{ XK_End, ControlMask, "\033[1;5F", +1, 0, 0},
{ XK_End, ShiftMask, "\033[K", -1, 0, 0},
{ XK_End, ShiftMask, "\033[1;2F", +1, 0, 0},
{ XK_End, XK_ANY_MOD, "\033[4~", 0, 0, 0},
{ XK_Prior, ControlMask, "\033[5;5~", 0, 0, 0},
{ XK_Prior, ShiftMask, "\033[5;2~", 0, 0, 0},
{ XK_Prior, XK_ANY_MOD, "\033[5~", 0, 0, 0},
{ XK_Next, ControlMask, "\033[6;5~", 0, 0, 0},
{ XK_Next, ShiftMask, "\033[6;2~", 0, 0, 0},
{ XK_Next, XK_ANY_MOD, "\033[6~", 0, 0, 0},
{ XK_F1, XK_NO_MOD, "\033OP" , 0, 0, 0},
{ XK_F1, /* F13 */ ShiftMask, "\033[1;2P", 0, 0, 0},
{ XK_F1, /* F25 */ ControlMask, "\033[1;5P", 0, 0, 0},
{ XK_F1, /* F37 */ Mod4Mask, "\033[1;6P", 0, 0, 0},
{ XK_F1, /* F49 */ Mod1Mask, "\033[1;3P", 0, 0, 0},
{ XK_F1, /* F61 */ Mod3Mask, "\033[1;4P", 0, 0, 0},
{ XK_F2, XK_NO_MOD, "\033OQ" , 0, 0, 0},
{ XK_F2, /* F14 */ ShiftMask, "\033[1;2Q", 0, 0, 0},
{ XK_F2, /* F26 */ ControlMask, "\033[1;5Q", 0, 0, 0},
{ XK_F2, /* F38 */ Mod4Mask, "\033[1;6Q", 0, 0, 0},
{ XK_F2, /* F50 */ Mod1Mask, "\033[1;3Q", 0, 0, 0},
{ XK_F2, /* F62 */ Mod3Mask, "\033[1;4Q", 0, 0, 0},
{ XK_F3, XK_NO_MOD, "\033OR" , 0, 0, 0},
{ XK_F3, /* F15 */ ShiftMask, "\033[1;2R", 0, 0, 0},
{ XK_F3, /* F27 */ ControlMask, "\033[1;5R", 0, 0, 0},
{ XK_F3, /* F39 */ Mod4Mask, "\033[1;6R", 0, 0, 0},
{ XK_F3, /* F51 */ Mod1Mask, "\033[1;3R", 0, 0, 0},
{ XK_F3, /* F63 */ Mod3Mask, "\033[1;4R", 0, 0, 0},
{ XK_F4, XK_NO_MOD, "\033OS" , 0, 0, 0},
{ XK_F4, /* F16 */ ShiftMask, "\033[1;2S", 0, 0, 0},
{ XK_F4, /* F28 */ ControlMask, "\033[1;5S", 0, 0, 0},
{ XK_F4, /* F40 */ Mod4Mask, "\033[1;6S", 0, 0, 0},
{ XK_F4, /* F52 */ Mod1Mask, "\033[1;3S", 0, 0, 0},
{ XK_F5, XK_NO_MOD, "\033[15~", 0, 0, 0},
{ XK_F5, /* F17 */ ShiftMask, "\033[15;2~", 0, 0, 0},
{ XK_F5, /* F29 */ ControlMask, "\033[15;5~", 0, 0, 0},
{ XK_F5, /* F41 */ Mod4Mask, "\033[15;6~", 0, 0, 0},
{ XK_F5, /* F53 */ Mod1Mask, "\033[15;3~", 0, 0, 0},
{ XK_F6, XK_NO_MOD, "\033[17~", 0, 0, 0},
{ XK_F6, /* F18 */ ShiftMask, "\033[17;2~", 0, 0, 0},
{ XK_F6, /* F30 */ ControlMask, "\033[17;5~", 0, 0, 0},
{ XK_F6, /* F42 */ Mod4Mask, "\033[17;6~", 0, 0, 0},
{ XK_F6, /* F54 */ Mod1Mask, "\033[17;3~", 0, 0, 0},
{ XK_F7, XK_NO_MOD, "\033[18~", 0, 0, 0},
{ XK_F7, /* F19 */ ShiftMask, "\033[18;2~", 0, 0, 0},
{ XK_F7, /* F31 */ ControlMask, "\033[18;5~", 0, 0, 0},
{ XK_F7, /* F43 */ Mod4Mask, "\033[18;6~", 0, 0, 0},
{ XK_F7, /* F55 */ Mod1Mask, "\033[18;3~", 0, 0, 0},
{ XK_F8, XK_NO_MOD, "\033[19~", 0, 0, 0},
{ XK_F8, /* F20 */ ShiftMask, "\033[19;2~", 0, 0, 0},
{ XK_F8, /* F32 */ ControlMask, "\033[19;5~", 0, 0, 0},
{ XK_F8, /* F44 */ Mod4Mask, "\033[19;6~", 0, 0, 0},
{ XK_F8, /* F56 */ Mod1Mask, "\033[19;3~", 0, 0, 0},
{ XK_F9, XK_NO_MOD, "\033[20~", 0, 0, 0},
{ XK_F9, /* F21 */ ShiftMask, "\033[20;2~", 0, 0, 0},
{ XK_F9, /* F33 */ ControlMask, "\033[20;5~", 0, 0, 0},
{ XK_F9, /* F45 */ Mod4Mask, "\033[20;6~", 0, 0, 0},
{ XK_F9, /* F57 */ Mod1Mask, "\033[20;3~", 0, 0, 0},
{ XK_F10, XK_NO_MOD, "\033[21~", 0, 0, 0},
{ XK_F10, /* F22 */ ShiftMask, "\033[21;2~", 0, 0, 0},
{ XK_F10, /* F34 */ ControlMask, "\033[21;5~", 0, 0, 0},
{ XK_F10, /* F46 */ Mod4Mask, "\033[21;6~", 0, 0, 0},
{ XK_F10, /* F58 */ Mod1Mask, "\033[21;3~", 0, 0, 0},
{ XK_F11, XK_NO_MOD, "\033[23~", 0, 0, 0},
{ XK_F11, /* F23 */ ShiftMask, "\033[23;2~", 0, 0, 0},
{ XK_F11, /* F35 */ ControlMask, "\033[23;5~", 0, 0, 0},
{ XK_F11, /* F47 */ Mod4Mask, "\033[23;6~", 0, 0, 0},
{ XK_F11, /* F59 */ Mod1Mask, "\033[23;3~", 0, 0, 0},
{ XK_F12, XK_NO_MOD, "\033[24~", 0, 0, 0},
{ XK_F12, /* F24 */ ShiftMask, "\033[24;2~", 0, 0, 0},
{ XK_F12, /* F36 */ ControlMask, "\033[24;5~", 0, 0, 0},
{ XK_F12, /* F48 */ Mod4Mask, "\033[24;6~", 0, 0, 0},
{ XK_F12, /* F60 */ Mod1Mask, "\033[24;3~", 0, 0, 0},
{ XK_F13, XK_NO_MOD, "\033[1;2P", 0, 0, 0},
{ XK_F14, XK_NO_MOD, "\033[1;2Q", 0, 0, 0},
{ XK_F15, XK_NO_MOD, "\033[1;2R", 0, 0, 0},
{ XK_F16, XK_NO_MOD, "\033[1;2S", 0, 0, 0},
{ XK_F17, XK_NO_MOD, "\033[15;2~", 0, 0, 0},
{ XK_F18, XK_NO_MOD, "\033[17;2~", 0, 0, 0},
{ XK_F19, XK_NO_MOD, "\033[18;2~", 0, 0, 0},
{ XK_F20, XK_NO_MOD, "\033[19;2~", 0, 0, 0},
{ XK_F21, XK_NO_MOD, "\033[20;2~", 0, 0, 0},
{ XK_F22, XK_NO_MOD, "\033[21;2~", 0, 0, 0},
{ XK_F23, XK_NO_MOD, "\033[23;2~", 0, 0, 0},
{ XK_F24, XK_NO_MOD, "\033[24;2~", 0, 0, 0},
{ XK_F25, XK_NO_MOD, "\033[1;5P", 0, 0, 0},
{ XK_F26, XK_NO_MOD, "\033[1;5Q", 0, 0, 0},
{ XK_F27, XK_NO_MOD, "\033[1;5R", 0, 0, 0},
{ XK_F28, XK_NO_MOD, "\033[1;5S", 0, 0, 0},
{ XK_F29, XK_NO_MOD, "\033[15;5~", 0, 0, 0},
{ XK_F30, XK_NO_MOD, "\033[17;5~", 0, 0, 0},
{ XK_F31, XK_NO_MOD, "\033[18;5~", 0, 0, 0},
{ XK_F32, XK_NO_MOD, "\033[19;5~", 0, 0, 0},
{ XK_F33, XK_NO_MOD, "\033[20;5~", 0, 0, 0},
{ XK_F34, XK_NO_MOD, "\033[21;5~", 0, 0, 0},
{ XK_F35, XK_NO_MOD, "\033[23;5~", 0, 0, 0},
{ XK_BackSpace, XK_NO_MOD, "\177" },
{ XK_Insert, XK_NO_MOD, "\033[2~" },
{ XK_Delete, XK_NO_MOD, "\033[3~" },
{ XK_Home, XK_NO_MOD, "\033[1~" },
{ XK_End, XK_NO_MOD, "\033[4~" },
{ XK_Prior, XK_NO_MOD, "\033[5~" },
{ XK_Next, XK_NO_MOD, "\033[6~" },
{ XK_F1, XK_NO_MOD, "\033OP" },
{ XK_F2, XK_NO_MOD, "\033OQ" },
{ XK_F3, XK_NO_MOD, "\033OR" },
{ XK_F4, XK_NO_MOD, "\033OS" },
{ XK_F5, XK_NO_MOD, "\033[15~" },
{ XK_F6, XK_NO_MOD, "\033[17~" },
{ XK_F7, XK_NO_MOD, "\033[18~" },
{ XK_F8, XK_NO_MOD, "\033[19~" },
{ XK_F9, XK_NO_MOD, "\033[20~" },
{ XK_F10, XK_NO_MOD, "\033[21~" },
{ XK_F11, XK_NO_MOD, "\033[23~" },
{ XK_F12, XK_NO_MOD, "\033[24~" },
};
/*
* Selection types' masks.
* Use the same masks as usual.
* Button1Mask is always unset, to make masks match between ButtonPress.
* ButtonRelease and MotionNotify.
* If no match is found, regular selection is used.
*/
static uint selmasks[] = {
[SEL_RECTANGULAR] = Mod1Mask,
/* Line drawing characters (sometime specific to each font...) */
static char gfx[] = {
['f'] = 'o',
['g'] = '+',
['i'] = '#',
[255] = 0,
};
/* double-click timeout (in milliseconds) between clicks for selection */
#define DOUBLECLICK_TIMEOUT 300
#define TRIPLECLICK_TIMEOUT (2*DOUBLECLICK_TIMEOUT)
+6 -11
View File
@@ -1,5 +1,5 @@
# st version
VERSION = 0.5
VERSION = 0.1.1
# Customize below to fit your system
@@ -11,18 +11,13 @@ X11INC = /usr/X11R6/include
X11LIB = /usr/X11R6/lib
# includes and libs
INCS = -I. -I/usr/include -I${X11INC} \
`pkg-config --cflags fontconfig` \
`pkg-config --cflags freetype2`
LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 -lutil -lXext -lXft \
`pkg-config --libs fontconfig` \
`pkg-config --libs freetype2`
INCS = -I. -I/usr/include -I${X11INC}
LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 -lutil
# flags
CPPFLAGS = -DVERSION=\"${VERSION}\" -D_BSD_SOURCE -D_XOPEN_SOURCE=600
CFLAGS += -g -std=c99 -pedantic -Wall -Wvariadic-macros -Os ${INCS} ${CPPFLAGS}
LDFLAGS += -g ${LIBS}
CPPFLAGS = -DVERSION=\"${VERSION}\"
CFLAGS += -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
LDFLAGS += -s ${LIBS}
# compiler and linker
CC ?= cc
+2 -42
View File
@@ -3,15 +3,8 @@
st \- simple terminal
.SH SYNOPSIS
.B st
.RB [ \-a ]
.RB [ \-c
.IR class ]
.RB [ \-f
.IR font ]
.RB [ \-g
.IR geometry ]
.RB [ \-o
.IR file ]
.RB [ \-t
.IR title ]
.RB [ \-w
@@ -24,32 +17,12 @@ st \- simple terminal
is a simple terminal emulator.
.SH OPTIONS
.TP
.B \-a
disable alternate screens in terminal
.BI \-t " title"
defines the window title (default 'st').
.TP
.BI \-c " class"
defines the window class (default $TERM).
.TP
.BI \-f " font"
defines the
.I font
to use when st is run.
.TP
.BI \-g " geometry"
defines the X11 geometry string, which will fixate the height and width of st.
The form is [=][<width>{xX}<height>][{+-}<xoffset>{+-}<yoffset>]. See
.BR XParseGeometry (3)
for further details.
.TP
.BI \-o " file"
writes all the I/O to
.I file.
This feature is useful when recording st sessions. A value of "-" means
standard output.
.TP
.BI \-t " title"
defines the window title (default 'st').
.TP
.BI \-w " windowid"
embeds st within the window identified by
.I windowid
@@ -63,16 +36,3 @@ st executes
instead of the shell. If this is used it
.B must be the last option
on the command line, as in xterm / rxvt.
.SH CUSTOMIZATION
.B st
can be customized by creating a custom config.h and (re)compiling the source
code. This keeps it fast, secure and simple.
.SH AUTHORS
See the LICENSE file for the authors.
.SH LICENSE
See the LICENSE file for the terms of redistribution.
.SH SEE ALSO
.BR tabbed (1)
.SH BUGS
See the TODO file in the distribution.
+984 -2770
View File
File diff suppressed because it is too large. Load diff
+18 -120
View File
@@ -1,9 +1,11 @@
# unsupported xterm caps are (getting) commented.
# as soon as they work, uncomment them.
st| simpleterm,
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
am,
bce,
# bce,
bel=^G,
blink=\E[5m,
# blink=\E[5m,
bold=\E[1m,
cbt=\E[Z,
cvvis=\E[?25h,
@@ -31,7 +33,6 @@ st| simpleterm,
ed=\E[J,
el=\E[K,
el1=\E[1K,
enacs=\E)0,
flash=\E[?5h\E[?5l,
fsl=^G,
home=\E[H,
@@ -45,37 +46,22 @@ st| simpleterm,
ind=^J,
indn=\E[%p1%dS,
invis=\E[8m,
is2=\E[4l\E>\E[?1034l,
it#8,
kel=\E[1;2F,
ked=\E[1;5F,
ka1=\E[1~,
ka3=\E[5~,
kc1=\E[4~,
kc3=\E[6~,
kbs=\177,
kcbt=\E[Z,
kb2=\EOu,
kcub1=\EOD,
kcud1=\EOB,
kcuf1=\EOC,
kcuu1=\EOA,
kDC=\E[3;2~,
kent=\EOM,
kEND=\E[1;2F,
kIC=\E[2;2~,
kNXT=\E[6;2~,
kPRV=\E[5;2~,
kHOM=\E[1;2H,
kLFT=\E[1;2D,
kRIT=\E[1;2C,
kind=\E[1;2B,
kri=\E[1;2A,
kclr=\E[3;5~,
kdl1=\E[3;2~,
kcub1=\E[D,
kcud1=\E[B,
kcuf1=\E[C,
kcuu1=\E[A,
kLFT=\E[d,
kRIT=\E[c,
kind=\E[a,
kri=\E[b,
kdch1=\E[3~,
kich1=\E[2~,
kend=\E[4~,
kf10=\E[21~,
kf11=\E[23~,
kf12=\E[24~,
kf1=\EOP,
kf2=\EOQ,
kf3=\EOR,
@@ -85,64 +71,7 @@ st| simpleterm,
kf7=\E[18~,
kf8=\E[19~,
kf9=\E[20~,
kf10=\E[21~,
kf11=\E[23~,
kf12=\E[24~,
kf13=\E[1;2P,
kf14=\E[1;2Q,
kf15=\E[1;2R,
kf16=\E[1;2S,
kf17=\E[15;2~,
kf18=\E[17;2~,
kf19=\E[18;2~,
kf20=\E[19;2~,
kf21=\E[20;2~,
kf22=\E[21;2~,
kf23=\E[23;2~,
kf24=\E[24;2~,
kf25=\E[1;5P,
kf26=\E[1;5Q,
kf27=\E[1;5R,
kf28=\E[1;5S,
kf29=\E[15;5~,
kf30=\E[17;5~,
kf31=\E[18;5~,
kf32=\E[19;5~,
kf33=\E[20;5~,
kf34=\E[21;5~,
kf35=\E[23;5~,
kf36=\E[24;5~,
kf37=\E[1;6P,
kf38=\E[1;6Q,
kf39=\E[1;6R,
kf40=\E[1;6S,
kf41=\E[15;6~,
kf42=\E[17;6~,
kf43=\E[18;6~,
kf44=\E[19;6~,
kf45=\E[20;6~,
kf46=\E[21;6~,
kf47=\E[23;6~,
kf48=\E[24;6~,
kf49=\E[1;3P,
kf50=\E[1;3Q,
kf51=\E[1;3R,
kf52=\E[1;3S,
kf53=\E[15;3~,
kf54=\E[17;3~,
kf55=\E[18;3~,
kf56=\E[19;3~,
kf57=\E[20;3~,
kf58=\E[21;3~,
kf59=\E[23;3~,
kf60=\E[24;3~,
kf61=\E[1;4P,
kf62=\E[1;4Q,
kf63=\E[1;4R,
khome=\E[1~,
kil1=\E[2;5~,
krmir=\E[2;2~,
kich1=\E[2~,
knp=\E[6~,
kmous=\E[M,
kpp=\E[5~,
@@ -152,41 +81,26 @@ st| simpleterm,
ncv#3,
op=\E[39;49m,
pairs#64,
mc0=\E[i,
mc4=\E[4i,
mc5=\E[5i,
rc=\E8,
rev=\E[7m,
ri=\EM,
ritm=\E[23m,
rmacs=\E(B,
rmcup=\E[?1049l,
rmir=\E[4l,
rmkx=\E[?1l\E>,
rmso=\E[27m,
rmul=\E[24m,
rs1=\Ec,
rs2=\E[4l\E>\E[?1034l,
rmso=\E[m,
rmul=\E[m,
sc=\E7,
setab=\E[4%p1%dm,
setaf=\E[3%p1%dm,
setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
sgr0=\E[0m,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
sitm=\E[3m,
smacs=\E(0,
smcup=\E[?1049h,
smir=\E[4h,
smkx=\E[?1h\E=,
smso=\E[7m,
smul=\E[4m,
tbc=\E[3g,
tbc=\E[2g,
tsl=\E]0;,
ul,
xenl,
vpa=\E[%i%p1%dd,
st-256color| simpleterm with 256 colors,
use=st,
@@ -195,19 +109,3 @@ st-256color| simpleterm with 256 colors,
# Nicked from xterm-256color
setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
st-meta| simpleterm with meta key,
use=st,
km,
rmm=\E[?1034l,
smm=\E[?1034h,
rs2=\E[4l\E>\E[?1034h,
is2=\E[4l\E>\E[?1034h,
st-meta-256color| simpleterm with meta key and 256 colors,
use=st-256color,
km,
rmm=\E[?1034l,
smm=\E[?1034h,
rs2=\E[4l\E>\E[?1034h,
is2=\E[4l\E>\E[?1034h,