Similar to xterm or urxvt holding shift before selecting text with the mouse
allows to override copying text. For example in tmux with "mode-mouse on" or
vim (compiled with --with-x), mc, htop, etc.
forceselmod in config.h sets the modifier to use this mode, by default
ShiftMask.
Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>
Backspace key must generate the backspace character (\010) and
Delete key must generate the delete character (\0177). In
some systems the kernel configuration for erasing previous character
is \0177, so some programs (for example cat, ed, mail, ...), can not
understand the correct meaning of backspace. In this cases it is only
needed this command:
stty erase
\a is the character for bell, and st is only marking the window as urgent
if it is not active. This patch adds an audible bell which can be disable
with bellvolume variable.
Signed-off-by: Christoph Lohmann <20h@r-36.net>
The alternate screen is not properly initialized when st starts. To see
this, set defaultbg in config.h to anything other than 0 (for example, swap
defaultfg and defaultbg), and run:
./st -e sh -c 'tput smcup; read'
You should see that the top-left 80x24 rectangle is black (or whatever
colorname[0] is), while the rest of the screen (if any) has the desired
colorname[defaultbg] color.
The attached patch fixes this by initializing term.c.attr in tnew() before
calling tresize(). It also removes the unnecessary xcalloc() calls, which
misled me on this bug hunt since it is really tclearregion() which
initializes term.lines and term.alt in tresize().
To have a more visible cursor on unfocused windows this patch makes st draw a
rectangle around the terminal cell.
Thanks Mark Hills <mark@xwax.org> for the suggestion!
- Shift + End : Delete until end of line.
- Control + End : Delete until end of screen.
When the End key is pressed without any modifier is not generated the
correct sequence for it (going to the end of the screen), because the size
of the terminal is not known, so it is not possible write a sequence for
this purpouse.
---
config.def.h | 10 ++++++++--
st.info | 2 ++
2 files changed, 10 insertions(+), 2 deletions(-)
Del : Delete character under cursor.
Shift + Del : Delete the line under cursor.
Ctrl + Del: Delete the full screen.
---
config.def.h | 16 ++++++++++++----
st.info | 2 ++
2 files changed, 14 insertions(+), 4 deletions(-)
Insert key stands for a key which allows enter or leaves insert mode, so let
it generates the correct sequence to change between these modes:
- Insert: Enter in insert mode.
- Shift + Insert: Leave insert mode (replace mode).
- Control + Insert: Insert a blank line.
Like Shift + Insert also paste text, if a user want this feature be full
functional he has to modify such shortcut.
---
config.def.h | 16 ++++++++++++----
st.info | 3 +++
2 files changed, 15 insertions(+), 4 deletions(-)
Keypad will generate keycodes when keypad application mode is enabled. It
can cause problems with some programs like vi, which operates in such
mode.
This patch change by default don't generate the keycodes never, but this
behaviour can be changed using the combination Alt + NumLock.
---
config.def.h | 34 ++++++++++++++++++----------------
st.c | 17 +++++++++++++++--
2 files changed, 33 insertions(+), 18 deletions(-)
The commit 'Fixing some key issues with mc' fix the problem where mc didn't
recognize home key because the generated code and the terminfo entry were
different (terminfo khome = \E[1~ but generates \033[H).
Home key in ansi mode should generate the sequence CUP (\033[H) to 0,0 (home
position), but it is also interesting generate a application code which
identifies the key. Real vt520 only generates the ansi sequence CUP, linux
console generates only the application code \033[1~, xterm generates CUP in
ansi mode and \033OH in cursor application mode, rxvt only generates the
application code \033[7~.
This patch sets CUP in ansi mode and \033[1~ in cursor application mode, so
it can be used in both modes and the application mode value is similar to
near values (insert = \033[2~, Prior = \033[5~, Next = \033[6~, End =
\033[4~, Supr = \033[3).
---
config.def.h | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)