|
|
@ -51,11 +51,9 @@ def execute(command: str, shell_on: bool = False, background: bool = False): |
|
|
|
|
|
|
|
|
|
|
|
def screensaver_running(): |
|
|
|
def screensaver_running(): |
|
|
|
graphic_program_instances = execute(f"{script_dir}/kill_screensaver_graphic_program.sh -d | grep graphic_processes | wc -l", shell_on=True) |
|
|
|
graphic_program_instances = execute(f"{script_dir}/kill_screensaver_graphic_program.sh -d | grep graphic_processes | wc -l", shell_on=True) |
|
|
|
return int(graphic_program_instances) > 0 |
|
|
|
if int(graphic_program_instances) > 0: return True |
|
|
|
|
|
|
|
if execute(f"DISPLAY=:0 xscreensaver-command -time | grep 'screen locked' >/dev/null 2>&1", shell_on=True): return True |
|
|
|
def just_woke_up(): |
|
|
|
return False |
|
|
|
seconds_since_wakeup = execute(f"{script_dir}/seconds_since_wakeup.sh", shell_on=True) |
|
|
|
|
|
|
|
return int(seconds_since_wakeup) < 60 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def lock_screen(): |
|
|
|
def lock_screen(): |
|
|
|
if args.dummy : |
|
|
|
if args.dummy : |
|
|
@ -102,7 +100,7 @@ def get_yubikey_serials() -> int: |
|
|
|
|
|
|
|
|
|
|
|
def update_lock_state(): |
|
|
|
def update_lock_state(): |
|
|
|
if any(serial in yubikey_serials for serial in get_yubikey_serials()): |
|
|
|
if any(serial in yubikey_serials for serial in get_yubikey_serials()): |
|
|
|
if screensaver_running() or just_woke_up(): |
|
|
|
if screensaver_running(): |
|
|
|
logger.debug('screen will be unlocked') |
|
|
|
logger.debug('screen will be unlocked') |
|
|
|
unlock_screen() |
|
|
|
unlock_screen() |
|
|
|
else: |
|
|
|
else: |
|
|
|