summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Culverhouse <tim@timculverhouse.com>2022-05-05 12:53:14 -0500
committerRobin Jarry <robin@jarry.cc>2022-05-06 11:02:43 +0200
commitbb400c7d88a08bc29fd635486dffbbad10f1835d (patch)
tree05446eca11fdbaf9608957c93d9821a2425ca4f4
parent5c5158b3c1275a11b66687496706372c01f66817 (diff)
downloadaerc-bb400c7d88a08bc29fd635486dffbbad10f1835d.zip
pgp: add options auto-sign & opportunistic-encrypt
Add account level config options for auto-sign and opportunistic encryption. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com> Tested-by: Koni Marti <koni.marti@gmail.com>
-rw-r--r--config/config.go10
-rw-r--r--doc/aerc-config.5.scd13
-rw-r--r--widgets/compose.go7
3 files changed, 29 insertions, 1 deletions
diff --git a/config/config.go b/config/config.go
index 8480f10..80f7f75 100644
--- a/config/config.go
+++ b/config/config.go
@@ -104,7 +104,11 @@ type AccountConfig struct {
SignatureCmd string
EnableFoldersSort bool `ini:"enable-folders-sort"`
FoldersSort []string `ini:"folders-sort" delim:","`
- PgpKeyId string `ini:"pgp-key-id"`
+
+ // PGP Config
+ PgpKeyId string `ini:"pgp-key-id"`
+ PgpAutoSign bool `ini:"pgp-auto-sign"`
+ PgpOpportunisticEncrypt bool `ini:"pgp-opportunistic-encrypt"`
}
type BindingConfig struct {
@@ -251,6 +255,10 @@ func loadAccountConfig(path string) ([]AccountConfig, error) {
account.EnableFoldersSort, _ = strconv.ParseBool(val)
} else if key == "pgp-key-id" {
account.PgpKeyId = val
+ } else if key == "pgp-auto-sign" {
+ account.PgpAutoSign, _ = strconv.ParseBool(val)
+ } else if key == "pgp-opportunistic-encrypt" {
+ account.PgpOpportunisticEncrypt, _ = strconv.ParseBool(val)
} else if key != "name" {
account.Params[key] = val
}
diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd
index 314aa57..7902550 100644
--- a/doc/aerc-config.5.scd
+++ b/doc/aerc-config.5.scd
@@ -588,10 +588,23 @@ Note that many of these configuration options are written for you, such as
Default: none
+*pgp-auto-sign*
+ If true, all outgoing emails from this account will be signed (if a signing
+ key is available)
+
+ Default: false
+
*pgp-key-id*
Specify the key id to use when signing a message. Can be either short or
long key id. If unset, aerc will look up the key by email
+*pgp-opportunistic-encrypt*
+ If true, any outgoing email from this account will be encrypted when all
+ recipients (including "cc" and "bcc" field) have a public key available in
+ the keyring
+
+ Default: false
+
*postpone*
Specifies the folder to save postponed messages to.
diff --git a/widgets/compose.go b/widgets/compose.go
index 6fbc23a..5dab429 100644
--- a/widgets/compose.go
+++ b/widgets/compose.go
@@ -118,6 +118,13 @@ func NewComposer(aerc *Aerc, acct *AccountView, conf *config.AercConfig,
c.updateCrypto()
c.ShowTerminal()
+ if c.acctConfig.PgpAutoSign {
+ c.SetSign(true)
+ }
+ if c.acctConfig.PgpOpportunisticEncrypt {
+ c.SetEncrypt(true)
+ }
+
return c, nil
}