aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2024-05-20 21:31:21 -0500
committerToby Vincent <tobyv@tobyvin.dev>2024-05-20 21:31:21 -0500
commit4cfcc3e5863644aa7fed8e9347bb2bcbf47d7fb0 (patch)
treebde551f3544172d9cc4924e8d7da53dedca1c4e8
parent05904eb11ca70835e98f6f6240a6588855f8bfc5 (diff)
feat(i3blocks): add more scripts
-rw-r--r--i3blocks/.config/i3blocks/config15
-rwxr-xr-xi3blocks/.local/bin/i3blocks-miniflux26
-rwxr-xr-xi3blocks/.local/bin/i3blocks-notmuch33
-rwxr-xr-xi3blocks/.local/bin/i3blocks-title4
-rwxr-xr-xnotmuch/.local/bin/notmuch-notify14
5 files changed, 86 insertions, 6 deletions
diff --git a/i3blocks/.config/i3blocks/config b/i3blocks/.config/i3blocks/config
index d2a5aa5..a3d88b7 100644
--- a/i3blocks/.config/i3blocks/config
+++ b/i3blocks/.config/i3blocks/config
@@ -1,6 +1,10 @@
-separator_block_width=15
markup=pango
+black="#1d2021"
+white="#d5c4a1"
+yellow="#fabd2f"
+red="#fb4934"
+
[i3blocks-title]
command=~/.local/bin/i3blocks-title
max_length=30
@@ -10,6 +14,15 @@ interval=persist
command=curl -s wttr.in/?m\&format="%c+%t\n" | sed 's/\s\++\(.*\)C/ \1/'
interval=600
+[miniflux]
+command=~/.local/bin/i3blocks-miniflux
+interval=30
+format=json
+
+[notmuch]
+command=~/.local/bin/i3blocks-notmuch
+interval=5
+
[time]
command=date +"%a %d/%m %T"
interval=1
diff --git a/i3blocks/.local/bin/i3blocks-miniflux b/i3blocks/.local/bin/i3blocks-miniflux
new file mode 100755
index 0000000..05224e2
--- /dev/null
+++ b/i3blocks/.local/bin/i3blocks-miniflux
@@ -0,0 +1,26 @@
+#!/usr/bin/env python3
+
+import os
+
+import requests
+
+ICON = "\U0000f09e"
+
+
+def main():
+ url = "https://miniflux.tobyvin.dev/v1/feeds/counters"
+ headers = {"X-Auth-Token": os.environ.get("MINIFLUX_TOKEN")}
+ resp = requests.get(url, headers=headers)
+ count = sum(resp.json().get("unreads").values())
+
+ print(f" {ICON} {count} \n")
+ if count > 50:
+ print(os.environ.get("black"))
+ print(os.environ.get("red"))
+ elif count > 0:
+ print(os.environ.get("black"))
+ print(os.environ.get("yellow"))
+
+
+if __name__ == "__main__":
+ main()
diff --git a/i3blocks/.local/bin/i3blocks-notmuch b/i3blocks/.local/bin/i3blocks-notmuch
new file mode 100755
index 0000000..b25c971
--- /dev/null
+++ b/i3blocks/.local/bin/i3blocks-notmuch
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+
+import notmuch
+import os
+
+ICON = "\U000f01ee" # 󰇮
+
+
+def main():
+ # Workaround for bug in the notmuch module's default config resolution
+ if os.environ.get("NOTMUCH_CONFIG") is None:
+ os.environ["NOTMUCH_CONFIG"] = os.path.join(
+ os.environ.get(
+ "XDG_CONFIG_HOME", os.path.join(os.path.expanduser("~"), ".config")
+ ),
+ "notmuch",
+ os.environ.get("NOTMUCH_PROFILE", "default"),
+ "config",
+ )
+
+ count = notmuch.Database().create_query("tag:unread").count_messages()
+
+ print(f" {ICON} {count} \n")
+ if count > 50:
+ print(os.environ.get("black"))
+ print(os.environ.get("red"))
+ elif count > 0:
+ print(os.environ.get("black"))
+ print(os.environ.get("yellow"))
+
+
+if __name__ == "__main__":
+ main()
diff --git a/i3blocks/.local/bin/i3blocks-title b/i3blocks/.local/bin/i3blocks-title
index b8e3213..9cd6abe 100755
--- a/i3blocks/.local/bin/i3blocks-title
+++ b/i3blocks/.local/bin/i3blocks-title
@@ -40,9 +40,9 @@ def on_window_event(sway: i3ipc.Connection, event: WindowEvent | WorkspaceEvent)
focused = focused.find_focused()
if focused:
- print(focused.ipc_data["name"][:max_length])
+ print(focused.ipc_data["name"][:max_length], flush=True)
else:
- print("")
+ print("", flush=True)
if __name__ == "__main__":
diff --git a/notmuch/.local/bin/notmuch-notify b/notmuch/.local/bin/notmuch-notify
index f808c4d..bc93f09 100755
--- a/notmuch/.local/bin/notmuch-notify
+++ b/notmuch/.local/bin/notmuch-notify
@@ -18,11 +18,19 @@ def notify(title, message):
)
+# Workaround for bug in the notmuch module's default config resolution
+if os.environ.get("NOTMUCH_CONFIG") is None:
+ os.environ["NOTMUCH_CONFIG"] = os.path.join(
+ os.environ.get(
+ "XDG_CONFIG_HOME", os.path.join(os.path.expanduser("~"), ".config")
+ ),
+ "notmuch",
+ os.environ.get("NOTMUCH_PROFILE", "default"),
+ "config",
+ )
+
for message in (
notmuch.Database(
- path="{}/mail".format(
- os.getenv("XDG_DATA_HOME", os.path.expanduser("~/.local/share"))
- ),
mode=notmuch.Database.MODE.READ_WRITE,
)
.create_query("tag:notify")