about summary refs log tree commit diff
diff options
context:
space:
mode:
authorsefidel <contact@sefidel.net>2024-02-13 15:22:30 +0900
committersefidel <contact@sefidel.net>2024-02-13 15:22:30 +0900
commitfaf0d2472021006870ed60cb932e4e03b154a54e (patch)
tree01f9a42b83c836632d3016a319139c3acae3961b
parent9cd26276f8f2aed20c6b04cff4eb3d5009cc9ffb (diff)
downloadnixrc-faf0d2472021006870ed60cb932e4e03b154a54e.tar.gz
nixrc-faf0d2472021006870ed60cb932e4e03b154a54e.zip
feat(home/multimedia): add newsboat
-rw-r--r--home/profiles/multimedia/default.nix51
-rw-r--r--home/secrets/secrets.yaml5
2 files changed, 53 insertions, 3 deletions
diff --git a/home/profiles/multimedia/default.nix b/home/profiles/multimedia/default.nix
index bb4a8fd..5890fb7 100644
--- a/home/profiles/multimedia/default.nix
+++ b/home/profiles/multimedia/default.nix
@@ -1,5 +1,8 @@
 { config, lib, pkgs, ... }:
-let cfg = config.profiles.multimedia;
+let
+  cfg = config.profiles.multimedia;
+
+  fixSopsPrefix = x: y: builtins.replaceStrings [ "%r" ] [ "/run/user/${toString x}" ] y;
 in
 {
   imports = [
@@ -14,6 +17,52 @@ in
   config = lib.mkIf cfg.enable {
     home.packages = with pkgs; [ vlc playerctl cider spotify ];
 
+    sops.secrets.freshrss-api-password = { };
+
+    programs.newsboat = {
+      enable = true;
+      autoReload = true;
+
+      extraConfig = ''
+        urls-source "freshrss"
+        freshrss-url "https://rss.exotic.sh/api/greader.php"
+        freshrss-login "sefidel"
+        freshrss-passwordeval "cat ${fixSopsPrefix 1000 config.sops.secrets.freshrss-api-password.path}"
+
+        # Vim-like movement
+        bind-key j down feedlist
+        bind-key k up feedlist
+        bind-key j next articlelist
+        bind-key k prev articlelist
+        bind-key J next-feed articlelist
+        bind-key K prev-feed articlelist
+        bind-key j down article
+        bind-key k up article
+
+        # Colorscheme to work with softjelly
+        color listnormal        white default
+        color listnormal_unread white default
+        color listfocus         white default reverse bold
+        color listfocus_unread  white default reverse bold
+        color info              yellow black
+        color background        white default
+        color article           white default
+
+        # Additional Highlight groups
+        highlight article "(^Feed:.*|^Title:.*|^Author:.*)" cyan default bold
+        highlight article "(^Link:.*|^Date:.*)" default default
+        highlight article "https?://[^ ]+" green default
+
+        highlight article "^(Title):.*$" blue default
+        highlight article "\\[[0-9][0-9]*\\]" magenta default bold
+        highlight article "\\[image\\ [0-9]+\\]" green default bold
+        highlight article "\\[embedded flash: [0-9][0-9]*\\]" green default bold
+        highlight article ":.*\\(link\\)$" cyan default
+        highlight article ":.*\\(image\\)$" blue default
+        highlight article ":.*\\(embedded flash\\)$" magenta default
+      '';
+    };
+
     nixpkgs.allowedUnfree = [ "spotify" ];
   };
 }
diff --git a/home/secrets/secrets.yaml b/home/secrets/secrets.yaml
index 19975f8..fce8f42 100644
--- a/home/secrets/secrets.yaml
+++ b/home/secrets/secrets.yaml
@@ -1,6 +1,7 @@
 sef-email-password: ENC[AES256_GCM,data:K1D+d8nly3POMLM1qHQPr0emF4qScEb1UjAyhaUd,iv:odkiOVPxckfsfcY5ZRuQ++L35kZ8cemnuRKWTUpjNWs=,tag:QwOs2oOxGTyy2kdIWyzSRA==,type:str]
 kagi-query: ENC[AES256_GCM,data:9Y/m+D66aCiUgiBMz1652Qjt532gxw1vy1hx1UXhysUJfv/xSCDLmlfZVjX4EVV9QzG9VZu5zGo9GFtYCIpq1CeNdqpmBoi8eQmg0AJPHAd60wGgl0qeq1AV,iv:BlBUk1jz9F51Sa7iibfYToBlLBEQDG7U2kidg9/fhW0=,tag:aBYY8m1v9DPm+FifD+3tGw==,type:str]
 kagi-session: ENC[AES256_GCM,data:T1lNYU8Tq2n7LfvKSw8zm8oFY1TDlB5GppxpiBPR8t9LaoULe+X/QIr69HEjIKUM/mQ8o8IUvOiqFGCpKiQg+Zy1y1lei+J8xFL2eSCJ/YOa7LJswg==,iv:VgNMeo8049LqnRpBVAR/Ba4FoPz5lpYyvBXm3OnnArA=,tag:pOLZP2JVaeWgzRZnEjVWlw==,type:str]
+freshrss-api-password: ENC[AES256_GCM,data:f3tFN/J+ijErbMXRPbG0bmEYBik=,iv:cFzABSNaQTXLTZ3d0vrHGfaVeCvw27ZgoEHovacTzEU=,tag:MAo83bcNjKscSdp3Q3NO1w==,type:str]
 sops:
     kms: []
     gcp_kms: []
@@ -25,8 +26,8 @@ sops:
             SDl5RTUvUXVSdmc0aEc0aFd2akdkY0UKJFEvPFe2xalBb5Y2fxSbCeB6vHf15OXw
             LzSmm+8T7kvCUvJG+TEu1qOaR16RSWHSv/A9F4IfmE0V8YTRdgbgrQ==
             -----END AGE ENCRYPTED FILE-----
-    lastmodified: "2023-12-21T09:16:20Z"
-    mac: ENC[AES256_GCM,data:wfB5eae3K04H6xQf5QE0g2+q2RlmqSgmxzHtPYiJcbK5R31+T8DUstwgvhPNRxnbuqYpi87Qt5L8yvQqYZHIBqJlZ+f18H1sIWyICnq7I6rSBcRsaJG5Pk10J/A3wP3JlSeWKr5mrrcu0z/R2tZHFNDXdtLTFo9PxAdM3hsSSRw=,iv:Kr04UVznkYXSgXcHoEebWaDsOx5viGQ+1046JFJsMzA=,tag:KZOZqdlu9BNvW/7WLeMVrg==,type:str]
+    lastmodified: "2024-02-13T05:09:42Z"
+    mac: ENC[AES256_GCM,data:MO3hQDeG3rq8+QEulfohtV4znIhX3D5qmlKFrUyZmG5rI6aAx2v3+pbCkUGTzXSAHOI0VicIcbLAiyD53yJplRSk39geoI+VRkfvsUBC/FW+yfOcxpY6A/p3duVmKvNMNv/JBmZkzJYs/UZvfyGdgR17kXZHxnTG//8Jn+b2f4w=,iv:IZHnvoVdD0zWni8ZL6YYRRKGp2/ptqJoMZ7jtr1HCog=,tag:/PICQ0+Ug/9JSBmLJPF8fg==,type:str]
     pgp: []
     unencrypted_suffix: _unencrypted
     version: 3.8.1