sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

commit 791f0a3321caf9c02b85a157922dc2143378d719
parent 9dd7323ded6aab14e920f9e4e6aeb43e25d18945
Author: syl <59789740+sylphenix@users.noreply.github.com>
Date:   Mon,  4 Apr 2022 16:28:45 +0800

add nano_shortcuts_support patch

Diffstat:
Ast.suckless.org/patches/nano_shortcuts_support/index.md | 20++++++++++++++++++++
Ast.suckless.org/patches/nano_shortcuts_support/st-nano-shortcuts-support-0.8.5.diff | 96+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 116 insertions(+), 0 deletions(-)

diff --git a/st.suckless.org/patches/nano_shortcuts_support/index.md b/st.suckless.org/patches/nano_shortcuts_support/index.md @@ -0,0 +1,20 @@ +nano shortcuts support +====== + +Description +----------- +When use nano editor with st, some shortcuts (e.g. alt+del, ctrl+end, alt+ins +alt+PgUp ... ) would not work. This patch gets those shortcuts fully supported. + +Notes: +------ +This patch actually adds and changes a few key definitions. It has included +st [delkey](/patches/delkey) patch. + +Download +-------- +* [st-nano-shortcuts-support-0.8.5.diff](st-nano-shortcuts-support-0.8.5.diff) + +Authors +------- +* Shi Yanling - <sylphenix@outlook.com> diff --git a/st.suckless.org/patches/nano_shortcuts_support/st-nano-shortcuts-support-0.8.5.diff b/st.suckless.org/patches/nano_shortcuts_support/st-nano-shortcuts-support-0.8.5.diff @@ -0,0 +1,96 @@ +diff --git a/config.def.h b/config.def.h +index 91ab8ca..2e35192 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -242,6 +242,7 @@ static uint ignoremod = Mod2Mask|XK_SWITCH_MOD; + */ + static Key key[] = { + /* keysym mask string appkey appcursor */ ++ { XK_KP_Home, ControlMask, "\033[1;5H", 0, 0}, + { XK_KP_Home, ShiftMask, "\033[2J", 0, -1}, + { XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1}, + { XK_KP_Home, XK_ANY_MOD, "\033[H", 0, -1}, +@@ -258,6 +259,7 @@ static Key key[] = { + { XK_KP_Right, XK_ANY_MOD, "\033Ov", +1, 0}, + { XK_KP_Right, XK_ANY_MOD, "\033[C", 0, -1}, + { XK_KP_Right, XK_ANY_MOD, "\033OC", 0, +1}, ++ { XK_KP_Prior, Mod1Mask, "\033[5;3~", 0, 0}, + { XK_KP_Prior, ShiftMask, "\033[5;2~", 0, 0}, + { XK_KP_Prior, XK_ANY_MOD, "\033[5~", 0, 0}, + { XK_KP_Begin, XK_ANY_MOD, "\033[E", 0, 0}, +@@ -266,19 +268,22 @@ static Key key[] = { + { XK_KP_End, ShiftMask, "\033[K", -1, 0}, + { XK_KP_End, ShiftMask, "\033[1;2F", +1, 0}, + { XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0}, ++ { XK_KP_Next, Mod1Mask, "\033[6;3~", 0, 0}, + { XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0}, + { XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0}, + { XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0}, + { XK_KP_Insert, ShiftMask, "\033[4l", -1, 0}, ++ { XK_KP_Insert, Mod1Mask, "\033[2;3~", 0, 0}, + { XK_KP_Insert, ControlMask, "\033[L", -1, 0}, + { XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0}, + { XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0}, + { XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0}, +- { XK_KP_Delete, ControlMask, "\033[M", -1, 0}, ++ { XK_KP_Delete, ControlMask, "\033[3;5~", -1, 0}, + { XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0}, ++ { XK_KP_Delete, Mod1Mask, "\033[3;3~", 0, 0}, + { XK_KP_Delete, ShiftMask, "\033[2K", -1, 0}, + { XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0}, +- { XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0}, ++ { XK_KP_Delete, XK_ANY_MOD, "\033[3~", -1, 0}, + { XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0}, + { XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0}, + { XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0}, +@@ -338,18 +343,21 @@ static Key key[] = { + { XK_Return, XK_ANY_MOD, "\r", 0, 0}, + { XK_Insert, ShiftMask, "\033[4l", -1, 0}, + { XK_Insert, ShiftMask, "\033[2;2~", +1, 0}, ++ { XK_Insert, Mod1Mask, "\033[2;3~", 0, 0}, + { XK_Insert, ControlMask, "\033[L", -1, 0}, + { XK_Insert, ControlMask, "\033[2;5~", +1, 0}, + { XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0}, + { XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0}, +- { XK_Delete, ControlMask, "\033[M", -1, 0}, ++ { XK_Delete, ControlMask, "\033[3;5~", -1, 0}, + { XK_Delete, ControlMask, "\033[3;5~", +1, 0}, ++ { XK_Delete, Mod1Mask, "\033[3;3~", 0, 0}, + { XK_Delete, ShiftMask, "\033[2K", -1, 0}, + { XK_Delete, ShiftMask, "\033[3;2~", +1, 0}, +- { XK_Delete, XK_ANY_MOD, "\033[P", -1, 0}, ++ { XK_Delete, XK_ANY_MOD, "\033[3~", -1, 0}, + { XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0}, + { XK_BackSpace, XK_NO_MOD, "\177", 0, 0}, + { XK_BackSpace, Mod1Mask, "\033\177", 0, 0}, ++ { XK_Home, ControlMask, "\033[1;5H", 0, 0}, + { XK_Home, ShiftMask, "\033[2J", 0, -1}, + { XK_Home, ShiftMask, "\033[1;2H", 0, +1}, + { XK_Home, XK_ANY_MOD, "\033[H", 0, -1}, +@@ -360,9 +368,11 @@ static Key key[] = { + { XK_End, ShiftMask, "\033[1;2F", +1, 0}, + { XK_End, XK_ANY_MOD, "\033[4~", 0, 0}, + { XK_Prior, ControlMask, "\033[5;5~", 0, 0}, ++ { XK_Prior, Mod1Mask, "\033[5;3~", 0, 0}, + { XK_Prior, ShiftMask, "\033[5;2~", 0, 0}, + { XK_Prior, XK_ANY_MOD, "\033[5~", 0, 0}, + { XK_Next, ControlMask, "\033[6;5~", 0, 0}, ++ { XK_Next, Mod1Mask, "\033[6;3~", 0, 0}, + { XK_Next, ShiftMask, "\033[6;2~", 0, 0}, + { XK_Next, XK_ANY_MOD, "\033[6~", 0, 0}, + { XK_F1, XK_NO_MOD, "\033OP" , 0, 0}, +diff --git a/st.info b/st.info +index 8201ad6..7c9de94 100644 +--- a/st.info ++++ b/st.info +@@ -62,8 +62,10 @@ st-mono| simpleterm monocolor, + kcuf1=\EOC, + kcuu1=\EOA, + kDC=\E[3;2~, ++ kDC5=\E[3;5~ + kent=\EOM, + kEND=\E[1;2F, ++ kEND5=\E[1;5F, + kIC=\E[2;2~, + kNXT=\E[6;2~, + kPRV=\E[5;2~,