diff options
author | Toby Vincent <tobyv@tobyvin.dev> | 2024-05-20 21:31:21 -0500 |
---|---|---|
committer | Toby Vincent <tobyv@tobyvin.dev> | 2024-05-20 21:31:21 -0500 |
commit | 4cfcc3e5863644aa7fed8e9347bb2bcbf47d7fb0 (patch) | |
tree | bde551f3544172d9cc4924e8d7da53dedca1c4e8 | |
parent | 05904eb11ca70835e98f6f6240a6588855f8bfc5 (diff) |
feat(i3blocks): add more scripts
-rw-r--r-- | i3blocks/.config/i3blocks/config | 15 | ||||
-rwxr-xr-x | i3blocks/.local/bin/i3blocks-miniflux | 26 | ||||
-rwxr-xr-x | i3blocks/.local/bin/i3blocks-notmuch | 33 | ||||
-rwxr-xr-x | i3blocks/.local/bin/i3blocks-title | 4 | ||||
-rwxr-xr-x | notmuch/.local/bin/notmuch-notify | 14 |
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") |