btw i use nix
1{ pkgs, ... }:
2{
3 global = {
4 "<C-p>" = ":prev-tab<Enter>";
5 "<C-PgUp>" = ":prev-tab<Enter>";
6 "<C-n>" = ":next-tab<Enter>";
7 "<C-PgDn>" = ":next-tab<Enter>";
8 "<C-t>" = ":term<Enter>";
9 "?" = ":help keys<Enter>";
10 "<C-c>" = ":prompt 'Quit?' quit<Enter>";
11 };
12
13 messages = {
14 "q" = ":quit<Enter>";
15 "j" = ":next<Enter>";
16 "<Down>" = ":next<Enter>";
17 "<C-d>" = ":next 50%<Enter>";
18 "<C-f>" = ":next 100%<Enter>";
19 "<PgDn>" = ":next 100%<Enter>";
20 "k" = ":prev<Enter>";
21 "<Up>" = ":prev<Enter>";
22 "<C-u>" = ":prev 50%<Enter>";
23 "<C-b>" = ":prev 100%<Enter>";
24 "<PgUp>" = ":prev 100%<Enter>";
25 "gg" = ":select 0<Enter>";
26 "G" = ":select -1<Enter>";
27 "gi" = ":cf Inbox<Enter>";
28 "gs" = ":cf Sent<Enter>";
29 "gd" = ":cf Drafts<Enter>";
30 "ga" = ":cf Archive<Enter>";
31 "gS" = ":cf Spam<Enter>";
32 "gb" = ":cf Bin<Enter>";
33 "Mi" = ":move Inbox<Enter>";
34 "Ms" = ":move Sent<Enter>";
35 "Md" = ":move Drafts<Enter>";
36 "Ma" = ":move Archive<Enter>";
37 "MS" = ":move Spam<Enter>";
38 "Mb" = ":move Bin<Enter>";
39 "J" = ":next-folder<Enter>";
40 "<C-j>" = ":next-folder<Enter>";
41 "<C-Down>" = ":next-folder<Enter>";
42 "K" = ":prev-folder<Enter>";
43 "<C-k>" = ":prev-folder<Enter>";
44 "<C-Up>" = ":prev-folder<Enter>";
45 "H" = ":collapse-folder<Enter>";
46 "<C-h>" = ":collapse-folder<Enter>";
47 "<C-Left>" = ":collapse-folder<Enter>";
48 "L" = ":expand-folder<Enter>";
49 "<C-l>" = ":expand-folder<Enter>";
50 "<C-Right>" = ":expand-folder<Enter>";
51 "v" = ":mark -t<Enter>";
52 "<Space>" = ":mark -t<Enter>:next<Enter>";
53 "V" = ":mark -v<Enter>";
54 "m" = ":read -t<Enter>";
55 "," = ":read<Enter>";
56 "." = ":unread<Enter>";
57 "t" = ":toggle-threads<Enter>";
58 "T" = ":toggle-thread-context<Enter>";
59 "zc" = ":fold<Enter>";
60 "zo" = ":unfold<Enter>";
61 "za" = ":fold -t<Enter>";
62 "zM" = ":fold -a<Enter>";
63 "zR" = ":unfold -a<Enter>";
64 "<Enter>" = ":view<Enter>";
65 "d" = ":read<Enter>:move Bin<Enter>";
66 "D" = ":prompt 'Really delete this message?' 'delete-message'<Enter>";
67 "<C-s>" = ":read<Enter>:move Spam<Enter>";
68 "a" = ":read<Enter>:archive flat<Enter>";
69 "A" = ":unmark -a<Enter>:mark -T<Enter>:read<Enter>:archive flat<Enter>";
70 "c" = ":compose<Enter>";
71 "rr" = ":reply -a<Enter>";
72 "rq" = ":reply -aq<Enter>";
73 "Rr" = ":reply<Enter>";
74 "Rq" = ":reply -q<Enter>";
75 "f" = ":cf";
76 "$" = ":term<space>";
77 "!" = ":term<space>";
78 "|" = ":pipe<space>";
79 "/" = ":search<space>";
80 "\\" = ":filter<space>";
81 "n" = ":next-result<Enter>";
82 "N" = ":prev-result<Enter>";
83 "<Esc>" = ":clear<Enter>";
84 "<C-r>" = ":check-mail<Enter>";
85 "<C-a>" = ":mark -a<Enter>";
86 "e" = ":envelope<Enter>";
87 "E" = ":envelope -h<Enter>";
88 "s" = ":exec mu find --clearlinks --format=links --linksdir=~/mail/search/results<space>";
89 };
90
91 "messages:folder=Drafts" = {
92 "<Enter>" = ":recall<Enter>";
93 };
94
95 view = {
96 "/" = ":toggle-key-passthrough<Enter>/";
97 "q" = ":close<Enter>";
98 "O" = ":open<Enter>";
99 "o" = ":open<Enter>";
100 "c" = ":pipe khal import --batch";
101 "C" =
102 ":open ${pkgs.libsForQt5.kitinerary}/libexec/kf5/kitinerary-extractor -o ical {} | khal import --batch";
103 "S" = ":save<space>";
104 "|" = ":pipe<space>";
105 "d" = ":read<Enter>:move Bin<Enter>";
106 "D" = ":prompt 'Really delete this message?' 'delete-message'<Enter>";
107 "<C-s>" = ":read<Enter>:move Spam<Enter>";
108 "a" = ":read<Enter>:archive flat<Enter>";
109 "A" = ":unmark -a<Enter>:mark -T<Enter>:read<Enter>:archive flat<Enter>";
110 "<C-l>" = ":open-link <space>";
111 "f" = ":forward<Enter>";
112 "rr" = ":reply -a<Enter>";
113 "rq" = ":reply -aq<Enter>";
114 "Rr" = ":reply<Enter>";
115 "Rq" = ":reply -q<Enter>";
116 "H" = ":toggle-headers<Enter>";
117 "<C-k>" = ":prev-part<Enter>";
118 "<C-Up>" = ":prev-part<Enter>";
119 "<C-j>" = ":next-part<Enter>";
120 "<C-Down>" = ":next-part<Enter>";
121 "J" = ":next<Enter>";
122 "<C-Right>" = ":next<Enter>";
123 "K" = ":prev<Enter>";
124 "<C-Left>" = ":prev<Enter>";
125 "e" = ":envelope<Enter>";
126 "E" = ":envelope -h<Enter>";
127 };
128
129 "view::passthrough" = {
130 "$noinherit" = "true";
131 "$ex" = "<C-x>";
132 "<Esc>" = ":toggle-key-passthrough<Enter>";
133 };
134
135 compose = {
136 "$noinherit" = "true";
137 "$ex" = "<C-x>";
138 "<C-c>" = ":cc";
139 "<C-b>" = ":bcc";
140 "<C-k>" = ":prev-field<Enter>";
141 "<C-Up>" = ":prev-field<Enter>";
142 "<C-j>" = ":next-field<Enter>";
143 "<C-Down>" = ":next-field<Enter>";
144 "<C-h>" = ":switch-account -p<Enter>";
145 "<C-Left>" = ":switch-account -p<Enter>";
146 "<C-l>" = ":switch-account -n<Enter>";
147 "<C-Right>" = ":switch-account -n<Enter>";
148 "<C-p>" = ":prev-tab<Enter>";
149 "<C-PgUp>" = ":prev-tab<Enter>";
150 "<C-n>" = ":next-tab<Enter>";
151 "<C-PgDn>" = ":next-tab<Enter>";
152 "<tab>" = ":next-field<Enter>";
153 "<backtab>" = ":prev-field<Enter>";
154 "<C-a>" = ":attach -m<Enter>";
155 "<C-q>" = ":abort<Enter>";
156 };
157
158 "compose::editor" = {
159 "$noinherit" = "true";
160 "$ex" = "<exit>";
161 "<C-k>" = ":prev-field<Enter>";
162 "<C-Up>" = ":prev-field<Enter>";
163 "<C-j>" = ":next-field<Enter>";
164 "<C-Down>" = ":next-field<Enter>";
165 "<C-h>" = ":switch-account -p<Enter>";
166 "<C-l>" = ":switch-account -n<Enter>";
167 "<C-p>" = ":prev-tab<Enter>";
168 "<C-PgUp>" = ":prev-tab<Enter>";
169 "<C-n>" = ":next-tab<Enter>";
170 "<C-PgDn>" = ":next-tab<Enter>";
171 "<C-a>" = ":attach -m<Enter>";
172 "<C-q>" = ":abort<Enter>";
173 };
174
175 "compose::review" = {
176 "y" = ":send<Enter>";
177 "Y" = ":send -a flat<Enter>";
178 "q" = ":abort<Enter>";
179 "v" = ":preview<Enter>";
180 "p" = ":postpone<Enter>";
181 "e" = ":edit<Enter>";
182 "a" = ":attach -m<space>";
183 "d" = ":detach<space>";
184 };
185
186 "compose::review:folder=Inbox" = {
187 "y" = ":send -a flat<Enter>";
188 "Y" = ":send<Enter>";
189 };
190
191 terminal = {
192 "$noinherit" = "true";
193 "$ex" = "<C-x>";
194 "<C-p>" = ":prev-tab<Enter>";
195 "<C-n>" = ":next-tab<Enter>";
196 "<C-PgUp>" = ":prev-tab<Enter>";
197 "<C-PgDn>" = ":next-tab<Enter>";
198 };
199
200 "messages:account=ryangibb321@gmail.com" = {
201 "ga" = ":cf [Gmail]/'All Mail'<Enter>";
202 "gs" = ":cf [Gmail]/'Sent Mail'<Enter>";
203 "Ma" = ":move [Gmail]/'All Mail'<Enter>";
204 "Ms" = ":move [Gmail]/'Sent Mail'<Enter>";
205 };
206}