From ddb35309480ceaf9e182e11027930d8f6c3fa729 Mon Sep 17 00:00:00 2001 From: Jacob Babor Date: Sun, 12 Jul 2026 15:12:40 -0500 Subject: [PATCH] Hide the secondary codex window if it's not supplied --- hyprland/.config/waybar/config | 2 +- hyprland/.config/waybar/scripts/openai-rate.py | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/hyprland/.config/waybar/config b/hyprland/.config/waybar/config index 55e0977a..6fe4c7ec 100644 --- a/hyprland/.config/waybar/config +++ b/hyprland/.config/waybar/config @@ -167,7 +167,7 @@ "interval": 15, "return-type": "json", "exec": "$HOME/.config/waybar/scripts/openai-rate.py --window secondary", - "exec-if": "test -r ~/.codex/auth.json", + "exec-if": "test -r ~/.codex/auth.json && $HOME/.config/waybar/scripts/openai-rate.py --window secondary --check", "escape": false, "format": " {}" }, diff --git a/hyprland/.config/waybar/scripts/openai-rate.py b/hyprland/.config/waybar/scripts/openai-rate.py index b3500d16..9898f0c4 100755 --- a/hyprland/.config/waybar/scripts/openai-rate.py +++ b/hyprland/.config/waybar/scripts/openai-rate.py @@ -146,9 +146,14 @@ def format_window(name, window): } +def get_window(data, selector): + rate_limit = data.get("rate_limit") or {} + return format_window(selector, rate_limit.get(f"{selector}_window")) + + def output_window(data, source, selector): rate_limit = data.get("rate_limit") or {} - window = format_window(selector, rate_limit.get(f"{selector}_window")) + window = get_window(data, selector) if not window: waybar("n/a", "warning", f"No {selector} usage window returned\nsource: {source}") @@ -165,6 +170,11 @@ def parse_args(): required=True, help="usage window to display", ) + parser.add_argument( + "--check", + action="store_true", + help="exit successfully only when the selected usage window exists", + ) return parser.parse_args() @@ -172,6 +182,8 @@ def main(): args = parse_args() token, account_id, source = load_auth() data = fetch_usage(token, account_id) + if args.check: + sys.exit(0 if get_window(data, args.window) else 1) output_window(data, source, args.window)