Roberto E. Vargas Caballero [Sun, 25 Nov 2012 21:13:29 +0000 (22:13 +0100)]
Add support for End key
- 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(-)
Roberto E. Vargas Caballero [Sun, 25 Nov 2012 21:13:24 +0000 (22:13 +0100)]
Add support for Supr key
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(-)
Roberto E. Vargas Caballero [Sun, 25 Nov 2012 21:13:19 +0000 (22:13 +0100)]
Add support for insert key
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(-)
Roberto E. Vargas Caballero [Sun, 25 Nov 2012 21:13:13 +0000 (22:13 +0100)]
Fix value of ka1 terminfo capability
ka1 stands for upper left of keypad, so the correct value is the one
generated by Home in application keypad mode.
---
st.info | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Roberto E. Vargas Caballero [Sun, 25 Nov 2012 08:23:02 +0000 (09:23 +0100)]
Add key for toogling numlock handling
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(-)
Roberto E. Vargas Caballero [Fri, 16 Nov 2012 10:32:17 +0000 (11:32 +0100)]
Add application cursor sequences for Home
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(-)
Roberto E. Vargas Caballero [Thu, 15 Nov 2012 18:01:16 +0000 (19:01 +0100)]
Fix Shift + Insert shortcut
This patch apply the same code for shortcuts that it is used now for defined
keys. So it is possible use now XK_NO_MOD and XK_ANY_MOD for defining shortcuts.
---
st.c | 35 ++++++++++++++++++++---------------
1 file changed, 20 insertions(+), 15 deletions(-)
Roberto E. Vargas Caballero [Thu, 15 Nov 2012 14:36:20 +0000 (15:36 +0100)]
Use XK_ANY_MOD instead of XK_NO_MOD in key definition
Usually terminal emulators don't generate any sequence for a combination
they don't have registered, for example Shift + Next, but st behavior
previous to the keyboard patch generates the sequence without the modifier,
in this example Next. This patch uses the XK_ANY_MOD in order to get this
same behaviour.
---
config.def.h | 114 ++++++++++++++++++++++++++++++----------------------------
1 file changed, 59 insertions(+), 55 deletions(-)
Roberto E. Vargas Caballero [Thu, 15 Nov 2012 14:36:13 +0000 (15:36 +0100)]
Fix XK_NO_MOD and XK_ANY_MOD behavior
XK_NO_MOD match a key without modifiers and XK_ANY_MOD match a key does not
matter what modifiers are pressed to. Like they are mask the best value for
XK_ANY_MOD is all the bits to 1, so the and with any state will be equal to
the state. This also imply that is necessary check the case for XK_NO_MOD
(no modifiers at all) with some modifier in state, and the inverse
(some mask different to XK_ANY_MOD or XK_NO_MOD and no modifiers in state).
---
st.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)