From 2daa93b9985ecb8aba6531fdd93859a8dd451be3 Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Sun, 18 Feb 2024 11:15:35 +0100 Subject: [iwctl+waybar] add "soft" and "hard" modes to wlan reconnect script --- .local/bin/iwctl-re | 43 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) (limited to '.local/bin') diff --git a/.local/bin/iwctl-re b/.local/bin/iwctl-re index 4343b30..5fc494d 100755 --- a/.local/bin/iwctl-re +++ b/.local/bin/iwctl-re @@ -1,9 +1,40 @@ -#!/bin/zsh +#!/usr/bin/env python3 -notify-send "WLAN Reload" "Disconnect" -iwctl station wlan0 disconnect +import sys, os +import argparse +import subprocess +import time -sleep 5 -notify-send "WLAN Reload" "Reconnect" -iwctl --passphrase $(pass router/passphrase) station wlan0 connect "$(pass router/name)" $(pass router/security) +parser = argparse.ArgumentParser( + prog='iwctl-re' +) + +parser.add_argument( + '--mode', + default='soft', + choices=['soft', 'hard'] +) + +args = parser.parse_args() + + +def getSubprocessOutput(command): + return subprocess.run(command, capture_output=True, text=True).stdout.strip() + + +if args.mode == 'soft': + subprocess.run(['notify-send', 'WLAN Reload', 'Disconnect']) + subprocess.run(['iwctl', 'station', 'wlan0', 'disconnect']) + + time.sleep(5) + + subprocess.run(['notify-send', 'WLAN Reload', 'Reconnect']) + wlan_passphrase = getSubprocessOutput(['pass', 'router/passphrase']) + wlan_name = getSubprocessOutput(['pass', 'router/name']) + wlan_security = getSubprocessOutput(['pass', 'router/security']) + subprocess.run(['iwctl', '--passphrase', wlan_passphrase, 'station', 'wlan0', 'connect', wlan_name, wlan_security]) + +elif args.mode == 'hard': + subprocess.run(['notify-send', 'WLAN Reload', 'Restart iwd.service']) + subprocess.run(['sudo', 'systemctl', 'restart', 'iwd.service']) -- cgit v1.2.3