From 2e4856f0e5bf26a59da5c001f17d8e0c4923fcd3 Mon Sep 17 00:00:00 2001 From: Felix Martin Date: Sat, 23 Jul 2022 12:46:14 -0400 Subject: [PATCH] Implement window kill support for really bad keywords. --- antidrift/config.py | 1 + antidrift/daemon.py | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/antidrift/config.py b/antidrift/config.py index 30f39b6..f3fbba3 100644 --- a/antidrift/config.py +++ b/antidrift/config.py @@ -8,6 +8,7 @@ from pydantic import BaseModel class Block(BaseModel): name: str keywords: List[str] + kill: bool = False class Config(BaseModel): diff --git a/antidrift/daemon.py b/antidrift/daemon.py index 2eeedd7..2263388 100644 --- a/antidrift/daemon.py +++ b/antidrift/daemon.py @@ -139,7 +139,12 @@ def window_is_blocked(config: Config, silent: bool = False) -> bool: return False for b in blackblocks: for k in b.keywords: - if k in window.keywords: + if k in window.keywords and b.kill: + window.kill() + xwindow.notify(f"Kill for {k} on {b.name}.") + logging.warning(f"Kill for [red]{k}[/red] on [red]{b.name}[/red].") + return True + elif k in window.keywords: if not silent: xwindow.notify(f"{window.name[:30]} blocked by {b.name}.") logging.warning(f"[red]{window.name[:50]}[/red] "