about summary refs log tree commit diff stats
path: root/config
diff options
context:
space:
mode:
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)