From 14ddc0de8d2bdd96347cc28d1cea4da74dd775d9 Mon Sep 17 00:00:00 2001 From: John Gebbie Date: Thu, 1 Sep 2022 09:54:43 +0100 Subject: [PATCH] bindings: add alt modifier Enables bindings like . Signed-off-by: John Gebbie Acked-by: Robin Jarry --- CHANGELOG.md | 4 +++ config/bindings.go | 39 ++++++++++++++++++++++ doc/aerc-config.5.scd | 76 ++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 118 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d8ee53..af875b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [Unreleased](https://git.sr.ht/~rjarry/aerc/log/master) +### Added + +- Support for bindings with the Alt modifier. + ### Fixed - `outgoing-cred-cmd` will no longer be executed every time an email needs to diff --git a/config/bindings.go b/config/bindings.go index 18a872b..7816296 100644 --- a/config/bindings.go +++ b/config/bindings.go @@ -241,14 +241,19 @@ func init() { keyNames["semicolon"] = KeyStroke{tcell.ModNone, tcell.KeyRune, ';'} keyNames["enter"] = KeyStroke{tcell.ModNone, tcell.KeyEnter, 0} keyNames["c-enter"] = KeyStroke{tcell.ModCtrl, tcell.KeyEnter, 0} + keyNames["a-enter"] = KeyStroke{tcell.ModAlt, tcell.KeyEnter, 0} keyNames["up"] = KeyStroke{tcell.ModNone, tcell.KeyUp, 0} keyNames["c-up"] = KeyStroke{tcell.ModCtrl, tcell.KeyUp, 0} + keyNames["a-up"] = KeyStroke{tcell.ModAlt, tcell.KeyUp, 0} keyNames["down"] = KeyStroke{tcell.ModNone, tcell.KeyDown, 0} keyNames["c-down"] = KeyStroke{tcell.ModCtrl, tcell.KeyDown, 0} + keyNames["a-down"] = KeyStroke{tcell.ModAlt, tcell.KeyDown, 0} keyNames["right"] = KeyStroke{tcell.ModNone, tcell.KeyRight, 0} keyNames["c-right"] = KeyStroke{tcell.ModCtrl, tcell.KeyRight, 0} + keyNames["a-right"] = KeyStroke{tcell.ModAlt, tcell.KeyRight, 0} keyNames["left"] = KeyStroke{tcell.ModNone, tcell.KeyLeft, 0} keyNames["c-left"] = KeyStroke{tcell.ModCtrl, tcell.KeyLeft, 0} + keyNames["a-left"] = KeyStroke{tcell.ModAlt, tcell.KeyLeft, 0} keyNames["upleft"] = KeyStroke{tcell.ModNone, tcell.KeyUpLeft, 0} keyNames["upright"] = KeyStroke{tcell.ModNone, tcell.KeyUpRight, 0} keyNames["downleft"] = KeyStroke{tcell.ModNone, tcell.KeyDownLeft, 0} @@ -256,8 +261,10 @@ func init() { keyNames["center"] = KeyStroke{tcell.ModNone, tcell.KeyCenter, 0} keyNames["pgup"] = KeyStroke{tcell.ModNone, tcell.KeyPgUp, 0} keyNames["c-pgup"] = KeyStroke{tcell.ModCtrl, tcell.KeyPgUp, 0} + keyNames["a-pgup"] = KeyStroke{tcell.ModAlt, tcell.KeyPgUp, 0} keyNames["pgdn"] = KeyStroke{tcell.ModNone, tcell.KeyPgDn, 0} keyNames["c-pgdn"] = KeyStroke{tcell.ModCtrl, tcell.KeyPgDn, 0} + keyNames["a-pgdn"] = KeyStroke{tcell.ModAlt, tcell.KeyPgDn, 0} keyNames["home"] = KeyStroke{tcell.ModNone, tcell.KeyHome, 0} keyNames["end"] = KeyStroke{tcell.ModNone, tcell.KeyEnd, 0} keyNames["insert"] = KeyStroke{tcell.ModNone, tcell.KeyInsert, 0} @@ -365,6 +372,38 @@ func init() { keyNames["c-["] = KeyStroke{tcell.ModCtrl, tcell.KeyCtrlLeftSq, 0} keyNames["c-^"] = KeyStroke{tcell.ModCtrl, tcell.KeyCtrlCarat, 0} keyNames["c-_"] = KeyStroke{tcell.ModCtrl, tcell.KeyCtrlUnderscore, 0} + keyNames["a-space"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, ' '} + keyNames["a-a"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'a'} + keyNames["a-b"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'b'} + keyNames["a-c"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'c'} + keyNames["a-d"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'd'} + keyNames["a-e"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'e'} + keyNames["a-f"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'f'} + keyNames["a-g"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'g'} + keyNames["a-h"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'h'} + keyNames["a-i"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'i'} + keyNames["a-j"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'j'} + keyNames["a-k"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'k'} + keyNames["a-l"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'l'} + keyNames["a-m"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'm'} + keyNames["a-n"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'n'} + keyNames["a-o"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'o'} + keyNames["a-p"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'p'} + keyNames["a-q"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'q'} + keyNames["a-r"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'r'} + keyNames["a-s"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 's'} + keyNames["a-t"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 't'} + keyNames["a-u"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'u'} + keyNames["a-v"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'v'} + keyNames["a-w"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'w'} + keyNames["a-x"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'x'} + keyNames["a-y"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'y'} + keyNames["a-z"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, 'z'} + keyNames["a-]"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, ']'} + keyNames["a-\\"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, '\\'} + keyNames["a-["] = KeyStroke{tcell.ModAlt, tcell.KeyRune, '['} + keyNames["a-^"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, '^'} + keyNames["a-_"] = KeyStroke{tcell.ModAlt, tcell.KeyRune, '_'} keyNames["nul"] = KeyStroke{tcell.ModNone, tcell.KeyNUL, 0} keyNames["soh"] = KeyStroke{tcell.ModNone, tcell.KeySOH, 0} keyNames["stx"] = KeyStroke{tcell.ModNone, tcell.KeySTX, 0} diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd index b9ed0df..ac28056 100644 --- a/doc/aerc-config.5.scd +++ b/doc/aerc-config.5.scd @@ -812,26 +812,38 @@ following special keys are supported: : | c-up : Ctrl+Up +| a-up +: Alt+Up | down : | c-down : Ctrl+Down +| a-down +: Alt+Down | right : | c-right : Ctrl+Right +| a-right +: Alt+Right | left : | c-left : Ctrl+Left +| a-left +: Alt+Left | pgup : | c-pgup : Ctrl+PageUp +| a-pgup +: Alt+PageUp | pgdn : | c-pgdn -: Ctrl+PageUp +: Ctrl+PageDn +| a-pgdn +: Alt+PageDn | home : | end @@ -852,66 +864,128 @@ following special keys are supported: : | c-space : Ctrl+Space +| a-space +: Alt+Space | c-a : Ctrl+a +| a-a +: Alt+a | c-b : Ctrl+b +| a-b +: Alt+b | c-c : Ctrl+c +| a-c +: Alt+c | c-d : Ctrl+d +| a-d +: Alt+d | c-e : Ctrl+e +| a-e +: Alt+e | c-f : Ctrl+f +| a-f +: Alt+f | c-g : Ctrl+g +| a-g +: Alt+g | c-h : Ctrl+h +| a-h +: Alt+h | c-i : Ctrl+i +| a-i +: Alt+i | c-j : Ctrl+j +| a-j +: Alt+j | c-k : Ctrl+k +| a-k +: Alt+k | c-l : Ctrl+l +| a-l +: Alt+l | c-m : Ctrl+m +| a-m +: Alt+m | c-n : Ctrl+n +| a-n +: Alt+n | c-o : Ctrl+o +| a-o +: Alt+o | c-p : Ctrl+p +| a-p +: Alt+p | c-q : Ctrl+q +| a-q +: Alt+q | c-r : Ctrl+r +| a-r +: Alt+r | c-s : Ctrl+s +| a-s +: Alt+s | c-t : Ctrl+t +| a-t +: Alt+t | c-u : Ctrl+u +| a-u +: Alt+u | c-v : Ctrl+v +| a-v +: Alt+v | c-w : Ctrl+w +| a-w +: Alt+w | c-x : Ctrl+x +| a-x +: Alt+x | c-y : Ctrl+y +| a-y +: Alt+y | c-z : Ctrl+z +| a-z +: Alt+z | c-] : Ctrl+] +| a-] +: Alt+] | c-[ : Ctrl+[ +| a-[ +: Alt+[ | c-^ : Ctrl+^ +| a-^ +: Alt+^ | c-\_ : Ctrl+\_ +| a-\_ +: Alt+\_ # SEE ALSO