aboutsummaryrefslogtreecommitdiff
path: root/config.def.h
AgeCommit message (Collapse)Author
2021-12-26Add support for OSC color sequencesRaheman Vaiya
2020-05-30config.def.h: add an option allowwindowops, by default off (secure)Hiltjo Posthuma
Similar to the xterm AllowWindowOps option, this is an option to allow or disallow certain (non-interactive) operations that can be insecure or exploited. NOTE: xsettitle() is not guarded by this because st does not support printing the window title. Else this could be exploitable (arbitrary code execution). Similar problems have been found in the past in other terminal emulators. The sequence for base64-encoded clipboard copy is now guarded because it allows a sequence written to the terminal to manipulate the clipboard of the running user non-interactively, for example: printf '\x1b]52;0;ZWNobyBoaQ0=\a'
2020-05-16Make shift+wheel behaves as shift+Prev/Nextk0ga
St uses a very good hack where mouse wheel genereates ^Y and ^E, that are the same keys that less and vi uses for backward and fordward scrolling. Scroll, as many terminal emulators, use shift+Prev/Next for scrolling, but it is also using ^E and ^Y for scroling, characters that are reserved in the POSIX shell in emacs mode for end of line and yanking, making scroll unsable in st. This patch adds a new hack, making shift+wheel returning the same sequences than shift+Prev/Next, meaning that scroll or any other similar program will not be able to differentiate between them.
2020-05-09auto-sync: draw on idle to avoid flicker/tearingAvi Halachmi (:avih)
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-04-11config.def.h: add a comment for the scroll variableHiltjo Posthuma
2020-04-11Add support for scroll(1)Roberto E. Vargas Caballero
Scroll is a program that stores all the lines of its child and be used in st as a way of implementing scrollback. This solution is much better than implementing the scrollback in st itself because having a different program allows to use it in any other program without doing modifications to those programs.
2019-10-13mouse shortcuts: don't hardcode selpasteAvi Halachmi (:avih)
Because selpaste is activated on release, a release flag was added to mouse shortcuts which controls whether activation is on press/release, and selpaste binding to button2 was moved to config.h . button1 remains the only hardcoded mouse button - for selection + copy.
2019-10-13mouse shortcuts: allow override for all shortcutsAvi Halachmi (:avih)
Allow forceselmod to override all mouse shortcuts rather than only selection, and rename it to forcemousemod as it's now more appropriate. This will affect mouse shortcuts which use mask other than XK_ANY_MOD. This does not affect the default behavior because the default mouse shortcuts (wheel) use XK_ANY_MOD, where forceselmod already activated the override also before this change. Previously, if a mouse shortcut was configured with a specific mod and forceselmod was held, then the shortcut did not execute unless the configured mod included forceselmod.
2019-10-13mouse shortcuts: allow same functions as kb shortcutsAvi Halachmi (:avih)
Previously mouse shortcuts supported only ttywrite. This required adding an "Arg" function ttysend - which does what the original mouse shortcuts did.
2019-08-26config.def.h: remove crlf value sectionHiltjo Posthuma
this is not used anymore. patch sent as an ed script using RFC2549 by k0ga.
2019-03-15revert part of commit add0211522737b79dad990ccd65c8af63b5cc1ddHiltjo Posthuma
"use iswspace()/iswpunct() to find word delimiters this inverts the configuration logic: you no longer provide a list of delimiters -- all space and punctuation characters are considered delimiters, unless listed in extrawordchars." Feedback from IRC and personal preference.
2019-03-15config.def.h: tweak extra worddelimitersHiltjo Posthuma
This changes the selection more like xterm. To test try: "find /" and select a path.
2019-03-15use iswspace()/iswpunct() to find word delimitersLauri Tirkkonen
this inverts the configuration logic: you no longer provide a list of delimiters -- all space and punctuation characters are considered delimiters, unless listed in extrawordchars.
2019-03-15replace utf8strchr with wcschrLauri Tirkkonen
2019-01-10config: add Shift+Insert as selpaste() againHiltjo Posthuma
This was changed before in: commit 20f713548de451b67db3306cf8cf7b2f38fee05c on Wed Jan 25 19:17:38 2017
2018-09-11Remove the ISO 14755 featureQuentin Rameau
And move it to the patches section. Keeping it would force to add an exec pledge on OpenBSD, and some people think it's bloated, so bye!
2018-07-17Revert "Make cursor follow text color"Hiltjo Posthuma
This reverts commit b51bcd5553af3db394014efbd78acf7828fa48ff.
2018-07-14Make cursor follow text colorJules Maselbas
2018-02-25Limit usage of extern to config.h globalsDevin J. Pohly
Prefer passing arguments to declaring external global variables. The only remaining usage of extern is for config.h variables which are needed in st.c instead of x.c (where it is now included). Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
2018-02-25Move CRLF input processing into ttywriteDevin J. Pohly
This also allows us to remove the crlf field from the Key struct, since the only difference it made was converting "\r" to "\r\n" (which is now done automatically in ttywrite). In addition, MODE_CRLF is no longer referenced from x.c. Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
2018-02-25Move config.h include from st.c to x.cDevin J. Pohly
config.h includes references to KeySyms and other X stuff. Until we come up with a cleaner way to separate configuration, it is simpler (leads to more code removal) to have this here. Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
2018-02-25Move key-matching functions into x.cDevin J. Pohly
Modifiers and keysyms are specific to X, and the functions match and kmap are only used in x.c. Needed to global-ize the key arrays and lengths from config.h (for now). Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
2018-02-25Move window urgency handling entirely into x.cDevin J. Pohly
This allows us to make xseturgency internal. Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
2017-01-25Change default keybindingsRoberto E. Vargas Caballero
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-20Split X-specific code into x.cMichael Forney
2016-12-16Move column and row default numbers into config.hfpqc
2016-11-14make the various combinations of arrow keys and shift/control/meta workManuel Tobias Schiller
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-10-23Do not use color when font attributes are supportedQuentin Rameau
If fontconfig gives us a font without the attributes we asked for, display an alternative color instead.
2016-10-18Add support for iso14755Quentin Rameau
We launch dmenu for getting a codepoint, then convert it and send it to the terminal.
2016-07-20Change who's expanding tabs.Christoph Lohmann
2016-07-20Add some hint to have the pseudo terminal in the right mode.Christoph Lohmann
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-20Add comment about tabspaces.Christoph Lohmann
st.info needs to be changed too, when tabspaces are changed.
2016-07-12Consistent Alt+BackSpace behaviorAlive 4ever
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-03-08I like empty lines.Christoph Lohmann
2016-03-08Measure the single advance width with a heuristic methodRyusei Yamaguchi
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>
2015-10-31Now the Shortcuts are more consistent.Christoph Lohmann
Keep the debile happy.
2015-10-05Make the cursor shapes more descriptive.Christoph Lohmann
»IBeam« is now »Bar« because it's named like that in the source code.
2015-10-05Snowman is everywhere.Christoph Lohmann
2015-10-05Style normalisation in the config.def.h.Christoph Lohmann
This adds an awareness commit for the big key array too.
2015-10-05The definition of the reverse cursor is now up to the user.Christoph Lohmann
2015-09-12The times of bad fonts are over.Christoph Lohmann
The antialiasing was false due to circumstances that do not exist anymore. We need antialiasing on big screens with big fonts. Autohinting too.
2015-09-08Change Pause to Break in shortcut for serial breakRoberto E. Vargas Caballero
2015-09-08Expose cursor shape in config.def.hJan Christoph Ebersbach
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-09-08Add key to send a break to the serial lineRoberto E. Vargas Caballero
2015-09-08Set default values of stty according to the man pageRoberto E. Vargas Caballero
This configuration is basically 38400 8N1, without echo and in raw mode. Kernel will not process any of the characters sent by the user.
2015-07-28Adding mouse colour/shape settingsAlex Kozadaev
2015-07-24added note about the low precedence of shell to config.def.hMytchel Hammond
2015-07-09Unboolify stFRIGN
This practice proved itself in sbase, ubase and a couple of other projects. Also remove the True and False defined in X11 and FcTrue and FcFalse defined in Fontconfig. Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-06-19do not truncate font size when zoomingQuentin Rameau
2015-04-15Add tty line supportRoberto E. Vargas Caballero
Not always is desirable to create a pseudo terminal, and some times we want to open a terminal emulator over a tty line. With this new patch is possible to do someting like: $ st -l /dev/ttyS0 115200 Without this option was needed to launch another terminal emulator over st (for example minicom, picocom, cu, ...).