aboutsummaryrefslogtreecommitdiffstats
path: root/config.def.h
Commit message (Collapse)AuthorAgeFilesLines
* config.def.h: add an option allowwindowops, by default off (secure)Hiltjo Posthuma2020-05-301-0/+4
| | | | | | | | | | | | | | | | 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'
* Make shift+wheel behaves as shift+Prev/Nextk0ga2020-05-161-0/+2
| | | | | | | | | | | | | | | 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.
* auto-sync: draw on idle to avoid flicker/tearingAvi Halachmi (:avih)2020-05-091-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* config.def.h: add a comment for the scroll variableHiltjo Posthuma2020-04-111-0/+1
|
* Add support for scroll(1)Roberto E. Vargas Caballero2020-04-111-1/+2
| | | | | | | | | 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.
* mouse shortcuts: don't hardcode selpasteAvi Halachmi (:avih)2019-10-131-1/+2
| | | | | | | | 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.
* mouse shortcuts: allow override for all shortcutsAvi Halachmi (:avih)2019-10-131-7/+7
| | | | | | | | | | | | | | | 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.
* mouse shortcuts: allow same functions as kb shortcutsAvi Halachmi (:avih)2019-10-131-3/+3
| | | | | | | Previously mouse shortcuts supported only ttywrite. This required adding an "Arg" function ttysend - which does what the original mouse shortcuts did.
* config.def.h: remove crlf value sectionHiltjo Posthuma2019-08-261-4/+0
| | | | | | this is not used anymore. patch sent as an ed script using RFC2549 by k0ga.
* revert part of commit add0211522737b79dad990ccd65c8af63b5cc1ddHiltjo Posthuma2019-03-151-4/+3
| | | | | | | | | | "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.
* config.def.h: tweak extra worddelimitersHiltjo Posthuma2019-03-151-1/+1
| | | | | This changes the selection more like xterm. To test try: "find /" and select a path.
* use iswspace()/iswpunct() to find word delimitersLauri Tirkkonen2019-03-151-3/+4
| | | | | | 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.
* replace utf8strchr with wcschrLauri Tirkkonen2019-03-151-2/+2
|
* config: add Shift+Insert as selpaste() againHiltjo Posthuma2019-01-101-0/+1
| | | | | This was changed before in: commit 20f713548de451b67db3306cf8cf7b2f38fee05c on Wed Jan 25 19:17:38 2017
* Remove the ISO 14755 featureQuentin Rameau2018-09-111-1/+0
| | | | | | 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!
* Revert "Make cursor follow text color"Hiltjo Posthuma2018-07-171-0/+2
| | | | This reverts commit b51bcd5553af3db394014efbd78acf7828fa48ff.
* Make cursor follow text colorJules Maselbas2018-07-141-2/+0
|
* Limit usage of extern to config.h globalsDevin J. Pohly2018-02-251-1/+1
| | | | | | | | 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>
* Move CRLF input processing into ttywriteDevin J. Pohly2018-02-251-213/+210
| | | | | | | | | 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>
* Move config.h include from st.c to x.cDevin J. Pohly2018-02-251-37/+36
| | | | | | | | 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>
* Move key-matching functions into x.cDevin J. Pohly2018-02-251-3/+3
| | | | | | | | 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>
* Move window urgency handling entirely into x.cDevin J. Pohly2018-02-251-1/+1
| | | | | | This allows us to make xseturgency internal. Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
* Change default keybindingsRoberto E. Vargas Caballero2017-01-251-9/+9
| | | | | | | 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.
* Split X-specific code into x.cMichael Forney2017-01-201-32/+32
|
* Move column and row default numbers into config.hfpqc2016-12-161-0/+7
|
* make the various combinations of arrow keys and shift/control/meta workManuel Tobias Schiller2016-11-141-4/+20
| | | | | | | | | | 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.
* Do not use color when font attributes are supportedQuentin Rameau2016-10-231-5/+3
| | | | | If fontconfig gives us a font without the attributes we asked for, display an alternative color instead.
* Add support for iso14755Quentin Rameau2016-10-181-0/+1
| | | | | We launch dmenu for getting a codepoint, then convert it and send it to the terminal.
* Change who's expanding tabs.Christoph Lohmann2016-07-201-1/+1
|
* Add some hint to have the pseudo terminal in the right mode.Christoph Lohmann2016-07-201-0/+6
| | | | | If you don't make sure that the terminal does not expand tabs to spaces, of course such a setting won't work.
* Add comment about tabspaces.Christoph Lohmann2016-07-201-0/+9
| | | | st.info needs to be changed too, when tabspaces are changed.
* Consistent Alt+BackSpace behaviorAlive 4ever2016-07-121-0/+1
| | | | | | | | | | | | 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>
* I like empty lines.Christoph Lohmann2016-03-081-0/+1
|
* Measure the single advance width with a heuristic methodRyusei Yamaguchi2016-03-081-0/+8
| | | | | | | | 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>
* Now the Shortcuts are more consistent.Christoph Lohmann2015-10-311-1/+1
| | | | Keep the debile happy.
* Make the cursor shapes more descriptive.Christoph Lohmann2015-10-051-4/+4
| | | | »IBeam« is now »Bar« because it's named like that in the source code.
* Snowman is everywhere.Christoph Lohmann2015-10-051-0/+1
|
* Style normalisation in the config.def.h.Christoph Lohmann2015-10-051-8/+13
| | | | This adds an awareness commit for the big key array too.
* The definition of the reverse cursor is now up to the user.Christoph Lohmann2015-10-051-1/+3
|
* The times of bad fonts are over.Christoph Lohmann2015-09-121-1/+1
| | | | | The antialiasing was false due to circumstances that do not exist anymore. We need antialiasing on big screens with big fonts. Autohinting too.
* Change Pause to Break in shortcut for serial breakRoberto E. Vargas Caballero2015-09-081-1/+1
|
* Expose cursor shape in config.def.hJan Christoph Ebersbach2015-09-081-0/+9
| | | | Signed-off-by: Christoph Lohmann <20h@r-36.net>
* Add key to send a break to the serial lineRoberto E. Vargas Caballero2015-09-081-0/+1
|
* Set default values of stty according to the man pageRoberto E. Vargas Caballero2015-09-081-1/+1
| | | | | | This configuration is basically 38400 8N1, without echo and in raw mode. Kernel will not process any of the characters sent by the user.
* Adding mouse colour/shape settingsAlex Kozadaev2015-07-281-0/+8
|
* added note about the low precedence of shell to config.def.hMytchel Hammond2015-07-241-0/+9
|
* Unboolify stFRIGN2015-07-091-1/+1
| | | | | | | | | 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>
* do not truncate font size when zoomingQuentin Rameau2015-06-191-3/+3
|
* Add tty line supportRoberto E. Vargas Caballero2015-04-151-0/+1
| | | | | | | | | | | 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, ...).
* Make DECSCUSR thickness configurableOmar Sandoval2015-04-101-0/+5
|
remember that computers suck.