diff options
-rw-r--r-- | user-profiles/feeds/alot.config | 50 | ||||
-rw-r--r-- | user-profiles/feeds/module.nix | 32 |
2 files changed, 80 insertions, 2 deletions
diff --git a/user-profiles/feeds/alot.config b/user-profiles/feeds/alot.config new file mode 100644 index 00000000..a14d4539 --- /dev/null +++ b/user-profiles/feeds/alot.config | |||
@@ -0,0 +1,50 @@ | |||
1 | attachment_prefix="~/Downloads" | ||
2 | bug_on_exit=true | ||
3 | editor_cmd="false" | ||
4 | tabwidth=2 | ||
5 | timestamp_format="%a %d %b %H:%M:%S %Y UTC%z" | ||
6 | auto_remove_unread=True | ||
7 | #initial_command="search ( tag:inbox ) AND NOT ( tag:killed )" | ||
8 | initial_command="search ( tag:inbox ) AND NOT ( is:link OR is:media OR is:killed )" | ||
9 | |||
10 | [accounts] | ||
11 | [[private]] | ||
12 | realname = @realname@ | ||
13 | address = @address@ | ||
14 | |||
15 | [bindings] | ||
16 | j = | ||
17 | k = | ||
18 | 'g g' = | ||
19 | G = | ||
20 | I = search ( tag:inbox ) AND NOT ( is:killed ) | ||
21 | U = search ( tag:inbox ) AND NOT ( is:link OR is:media OR is:killed ) | ||
22 | V = search ( tag:inbox AND is:media OR ( is:live AND date:12h.. AND NOT is:unread ) ) AND NOT ( is:killed ) | ||
23 | W = search ( is:media ) AND NOT ( tag:inbox OR is:killed OR is:highlight ) | ||
24 | L = search ( tag:inbox AND is:link ) AND NOT ( is:killed ) | ||
25 | |||
26 | h = move first | ||
27 | t = move up | ||
28 | n = move down | ||
29 | s = move last | ||
30 | [[search]] | ||
31 | a = | ||
32 | s = | ||
33 | |||
34 | u = toggletags unread | ||
35 | i = toggletags inbox | ||
36 | j = untag unread,inbox | ||
37 | r = toggletags later | ||
38 | [[thread]] | ||
39 | s = | ||
40 | S = | ||
41 | n = | ||
42 | 'g j' = | ||
43 | 'g k' = | ||
44 | 'g l' = | ||
45 | w = save | ||
46 | W = save --all | ||
47 | 'g h' = move parent | ||
48 | 'g t' = move next sibling | ||
49 | 'g n' = move previous sibling | ||
50 | 'g s' = move first reply \ No newline at end of file | ||
diff --git a/user-profiles/feeds/module.nix b/user-profiles/feeds/module.nix index da992b8c..de1a65c6 100644 --- a/user-profiles/feeds/module.nix +++ b/user-profiles/feeds/module.nix | |||
@@ -55,7 +55,7 @@ let | |||
55 | }; | 55 | }; |
56 | in haskellPackages.imm; | 56 | in haskellPackages.imm; |
57 | immWrapped = pkgs.runCommand "${imm.name}-wrapped-${config.home.username}" | 57 | immWrapped = pkgs.runCommand "${imm.name}-wrapped-${config.home.username}" |
58 | { nativeBuildInputs = with pkgs; [ makeWrapper imm ]; | 58 | { nativeBuildInputs = with pkgs; [ makeWrapper ]; |
59 | } '' | 59 | } '' |
60 | mkdir -p $out/bin | 60 | mkdir -p $out/bin |
61 | makeWrapper ${imm}/bin/imm $out/bin/imm \ | 61 | makeWrapper ${imm}/bin/imm $out/bin/imm \ |
@@ -154,9 +154,37 @@ let | |||
154 | path = afewHook; | 154 | path = afewHook; |
155 | } | 155 | } |
156 | ]; | 156 | ]; |
157 | |||
158 | notmuchWrapped = pkgs.runCommand "${pkgs.notmuch.name}-wrapped-${config.home.username}" | ||
159 | { nativeBuildInputs = with pkgs; [ makeWrapper ]; | ||
160 | } '' | ||
161 | mkdir -p $out/bin | ||
162 | makeWrapper ${pkgs.notmuch}/bin/notmuch $out/bin/notmuch-feeds \ | ||
163 | --set NOTMUCH_CONFIG ${configPath} | ||
164 | ''; | ||
165 | alotWrapped = pkgs.runCommand "${pkgs.alot.name}-wrapped-${config.home.username}" | ||
166 | { nativeBuildInputs = with pkgs; [ makeWrapper gnused ]; | ||
167 | } '' | ||
168 | mkdir -p $out/bin | ||
169 | makeWrapper ${pkgs.alot}/bin/alot $out/bin/alot-feeds \ | ||
170 | --add-flags --config=${alotConfig} \ | ||
171 | --add-flags --notmuch-config=${configPath} | ||
172 | |||
173 | mkdir $out/share | ||
174 | ln -s ${pkgs.alot}/share/alot $out/share | ||
175 | mkdir -p $out/share/applications | ||
176 | sed -r 's/alot/alot-feeds/g' ${pkgs.alot}/share/applications/alot.desktop > $out/share/applications/alot-feeds.desktop | ||
177 | mkdir -p $out/share/zsh/site-functions | ||
178 | sed -r 's/alot/alot-feeds/g' ${pkgs.alot}/share/zsh/site-functions/_alot > $out/share/zsh/site-functions/_alot-feeds | ||
179 | ''; | ||
180 | |||
181 | alotConfig = pkgs.runCommand "alot" { | ||
182 | realname = notmuchIni.user.name; | ||
183 | address = notmuchIni.user.primary_email; | ||
184 | } "substituteAll ${./alot.config} $out"; | ||
157 | in { | 185 | in { |
158 | config = { | 186 | config = { |
159 | home.packages = [ immWrapped ]; | 187 | home.packages = [ immWrapped notmuchWrapped pkgs.notmuch.man alotWrapped ]; |
160 | 188 | ||
161 | home.activation.createImm = hm.dag.entryAfter ["writeBoundary"] '' | 189 | home.activation.createImm = hm.dag.entryAfter ["writeBoundary"] '' |
162 | $DRY_RUN_CMD mkdir -p $VERBOSE_ARG ${config.xdg.configHome}/imm | 190 | $DRY_RUN_CMD mkdir -p $VERBOSE_ARG ${config.xdg.configHome}/imm |