aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2019-05-14 14:27:28 -0400
committerDrew DeVault <sir@cmpwn.com>2019-05-14 14:27:28 -0400
commitf77d7c2c3d578ae5a724e1e8b91656304dde75d0 (patch)
tree77b4be714678ca6b1d25d94ba89215606c03d727 /config
parent928ac1bcd9f7e4a6f20ab23a9416180534417cff (diff)
Add distinct keybindings for each compose view
Diffstat (limited to 'config')
-rw-r--r--config/bindings.go2
-rw-r--r--config/binds.conf13
-rw-r--r--config/config.go27
3 files changed, 31 insertions, 11 deletions
diff --git a/config/bindings.go b/config/bindings.go
index 4cb4805..a9a57c5 100644
--- a/config/bindings.go
+++ b/config/bindings.go
@@ -283,7 +283,7 @@ func init() {
keyNames["ACK"] = KeyStroke{tcell.KeyACK, 0}
keyNames["BEL"] = KeyStroke{tcell.KeyBEL, 0}
keyNames["BS"] = KeyStroke{tcell.KeyBS, 0}
- keyNames["TAB"] = KeyStroke{tcell.KeyTAB, 0}
+ keyNames["tab"] = KeyStroke{tcell.KeyTAB, 0}
keyNames["LF"] = KeyStroke{tcell.KeyLF, 0}
keyNames["VT"] = KeyStroke{tcell.KeyVT, 0}
keyNames["FF"] = KeyStroke{tcell.KeyFF, 0}
diff --git a/config/binds.conf b/config/binds.conf
index 1102c21..62004a9 100644
--- a/config/binds.conf
+++ b/config/binds.conf
@@ -40,6 +40,14 @@ a = :reply -a<Enter>
f = :forward<Enter>
[compose]
+# Keybindings used when the embedded terminal is not selected in the compose
+# view
+<C-k> = :prev-field<Enter>
+<C-j> = :next-field<Enter>
+<tab> = :next-field<Enter>
+
+[compose::editor]
+# Keybindings used when the embedded terminal is selected in the compose view
$noinherit = true
$ex = <semicolon>
<C-k> = :prev-field<Enter>
@@ -47,6 +55,11 @@ $ex = <semicolon>
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>
+[compose::review]
+# Keybindings used when reviewing a message to be sent
+y = :send<Enter>
+n = :abort<Enter>
+
[terminal]
$noinherit = true
$ex = <semicolon>
diff --git a/config/config.go b/config/config.go
index 79d1810..5c5094a 100644
--- a/config/config.go
+++ b/config/config.go
@@ -39,11 +39,13 @@ type AccountConfig struct {
}
type BindingConfig struct {
- Global *KeyBindings
- Compose *KeyBindings
- MessageList *KeyBindings
- MessageView *KeyBindings
- Terminal *KeyBindings
+ Global *KeyBindings
+ Compose *KeyBindings
+ ComposeEditor *KeyBindings
+ ComposeReview *KeyBindings
+ MessageList *KeyBindings
+ MessageView *KeyBindings
+ Terminal *KeyBindings
}
type FilterConfig struct {
@@ -139,11 +141,13 @@ func LoadConfig(root *string) (*AercConfig, error) {
file.NameMapper = mapName
config := &AercConfig{
Bindings: BindingConfig{
- Global: NewKeyBindings(),
- Compose: NewKeyBindings(),
- MessageList: NewKeyBindings(),
- MessageView: NewKeyBindings(),
- Terminal: NewKeyBindings(),
+ Global: NewKeyBindings(),
+ Compose: NewKeyBindings(),
+ ComposeEditor: NewKeyBindings(),
+ ComposeReview: NewKeyBindings(),
+ MessageList: NewKeyBindings(),
+ MessageView: NewKeyBindings(),
+ Terminal: NewKeyBindings(),
},
Ini: file,
@@ -223,6 +227,9 @@ func LoadConfig(root *string) (*AercConfig, error) {
"messages": &config.Bindings.MessageList,
"terminal": &config.Bindings.Terminal,
"view": &config.Bindings.MessageView,
+
+ "compose::editor": &config.Bindings.ComposeEditor,
+ "compose::review": &config.Bindings.ComposeReview,
}
for _, name := range binds.SectionStrings() {
sec, err := binds.GetSection(name)