This commit is contained in:
mjallen18
2024-11-08 22:31:09 -06:00
parent 2743309214
commit 96a05612c6
13 changed files with 193 additions and 94 deletions

View File

@@ -4,7 +4,7 @@
{
config,
# outputs,
outputs,
lib,
pkgs,
...
@@ -27,8 +27,80 @@ let
fi
'';
fixWifiScript = pkgs.writeScriptBin "fix-wifi" ''
/home/matt/nix-config/scripts/fix-wifi.py
'';
#!/usr/bin/env python3
import subprocess
import socket
import logging
from typing import List, Optional
def check_internet_connection(hosts_to_check: Optional[List[str]] = None) -> bool:
"""
Check internet connectivity by attempting to connect to reliable hosts.
:param hosts_to_check: Optional list of hosts to check.
:return: Boolean indicating if internet connection is available
"""
if hosts_to_check is None:
hosts_to_check = [
"8.8.8.8", # Google DNS
"1.1.1.1", # Cloudflare DNS
"9.9.9.9" # Quad9 DNS
]
for host in hosts_to_check:
try:
# Create a socket connection with a 5-second timeout
socket.create_connection((host, 53), timeout=5)
return True
except (socket.error, socket.timeout):
continue
return False
def reset_wifi_card() -> bool:
"""
Execute WiFi card reset commands.
:return: Boolean indicating if reset commands were successful
"""
reset_commands = [
"echo 1 | sudo -u root tee /sys/bus/pci/devices/0000:09:00.0/reset",
"sudo rmmod iwlwifi",
"sudo modprobe iwlwifi"
]
try:
for command in reset_commands:
result = subprocess.run(
command,
shell=True,
check=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True
)
print(f"Executed: {command}")
print(f"Output: {result.stdout}")
return True
except subprocess.CalledProcessError as e:
print(f"Error resetting WiFi: {e}")
print(f"Error output: {e.stderr}")
return False
def main():
"""
Check internet connection and reset WiFi if not connected.
"""
if not check_internet_connection():
print("No internet connection detected. Attempting WiFi reset...")
reset_wifi_card()
else:
print("Internet connection is stable. No reset needed.")
if __name__ == "__main__":
main()
'';
in
{
imports = [
@@ -211,7 +283,9 @@ in
kdePackages.ksvg
lact
memtest86-efi
memtest86plus
memtest86plus
unstable.mesa
unstable.driversi686Linux.mesa
nano
onlyoffice-bin
os-prober
@@ -270,9 +344,12 @@ in
};
# Configure nixpkgs
nixpkgs.config.permittedInsecurePackages = [
# ...
];
nixpkgs = {
overlays = [ outputs.overlays.nixpkgs-unstable ];
config.permittedInsecurePackages = [
# ...
];
};
# Define a user account. Don't forget to set a password with passwd.
users.users."${user}" = {