aboutsummaryrefslogtreecommitdiffstats
path: root/modules/communication/neomutt/macros.nix
blob: 0548a0fe9e3dead4ebb6a2396405e2f201dc3fae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Macros - neomutt macros for sync, URL extraction, flag legend, and quit
{ config, lib, ... }:
{
  config.programs.neomutt.macros = lib.mkIf config.communication.neomutt.enable [
    {
      map = [
        "index"
        "pager"
      ];
      key = "O";
      action = "<enter-command>set my_wait_key=$wait_key wait_key=no<enter><sync-mailbox><shell-escape>${lib.getExe config.scripts.neomutt-sync.package}<enter><sync-mailbox><enter-command>set wait_key=$my_wait_key<enter>";
    }
    {
      # gx: extract links from the current message and open one, vim-netrw style
      map = [
        "index"
        "pager"
      ];
      key = "gx";
      action = "<pipe-message>urlscan<Enter>";
    }
    {
      map = [
        "index"
        "pager"
      ];
      key = "gl";
      action = "<shell-escape>less ~/.config/neomutt/flag_legend.txt<enter>";
    }
    {
      # gF: clear the current limit/filter and show every message again,
      # the counterpart to gf (interactive limit prompt) in binds.nix
      map = [ "index" ];
      key = "gF";
      action = "<limit>~A<enter>";
    }
    {
      # ZZ: save and quit, vim-style (sync mailbox, then quit)
      map = [ "index" ];
      key = "ZZ";
      action = "<sync-mailbox><quit>";
    }
    {
      # ZQ: quit without saving, vim-style counterpart to ZZ
      map = [ "index" ];
      key = "ZQ";
      action = "<exit>";
    }
  ];
}