Fix import error and kill existing antidrift windows on start

main
felixm 2023-05-27 11:37:03 -04:00
parent 1a99219851
commit 00a6d2a00a
2 changed files with 17 additions and 0 deletions

View File

@ -7,6 +7,7 @@ import re
import sys
import time
import antidrift.xwindow as xwindow
from antidrift.xwindow import XWindow
from antidrift.config import Config, State, Block
from gi.repository import GLib, Gio

16
main.py
View File

@ -5,6 +5,7 @@ import os
import signal
import subprocess
import argparse
import psutil
import rich
from rich.logging import RichHandler
from pathlib import Path
@ -76,6 +77,20 @@ def check_for_xdotool():
sys.exit(1)
def kill_existing_antidrift():
current_pid = os.getpid()
for proc in psutil.process_iter(['pid', 'name', 'exe']):
if proc.info['name'] == '/usr/bin/antidrift' or proc.info['exe'] == '/usr/bin/antidrift':
if proc.info['pid'] == current_pid:
continue # don't kill ourselves
try:
proc.kill()
except psutil.AccessDenied:
pass
except psutil.NoSuchProcess:
pass
def main_daemon(config):
if os.geteuid() == 0:
newpid = os.fork()
@ -84,6 +99,7 @@ def main_daemon(config):
AntiDriftDaemon(config).run()
else:
if sys.argv[0] == "antidrift":
kill_existing_antidrift()
cmd = ["sudo", "antidrift", "--daemon"]
subprocess.Popen(cmd)
else: