summary refs log tree commit diff stats
path: root/config/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'config/config.go')
-rw-r--r--config/config.go16
1 files changed, 15 insertions, 1 deletions
diff --git a/config/config.go b/config/config.go
index f863729..356d562 100644
--- a/config/config.go
+++ b/config/config.go
@@ -65,7 +65,8 @@ type BindingConfig struct {
 }
 
 type ComposeConfig struct {
-	Editor string `ini:"editor"`
+	Editor       string     `ini:"editor"`
+	HeaderLayout [][]string `ini:"-"`
 }
 
 type FilterConfig struct {
@@ -278,6 +279,12 @@ func (config *AercConfig) LoadConfig(file *ini.File) error {
 		if err := compose.MapTo(&config.Compose); err != nil {
 			return err
 		}
+		for key, val := range compose.KeysHash() {
+			switch key {
+			case "header-layout":
+				config.Compose.HeaderLayout = parseLayout(val)
+			}
+		}
 	}
 	if ui, err := file.GetSection("ui"); err == nil {
 		if err := ui.MapTo(&config.Ui); err != nil {
@@ -350,6 +357,13 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
 				{"Subject"},
 			},
 		},
+
+		Compose: ComposeConfig{
+			HeaderLayout: [][]string{
+				{"To", "From"},
+				{"Subject"},
+			},
+		},
 	}
 	// These bindings are not configurable
 	config.Bindings.AccountWizard.ExKey = KeyStroke{