guyyatsu / Dixie-Flatline_Shell-Commands

0 stars 0 forks source link

Wi-Fi Network Manager #1

Open guyyatsu opened 7 months ago

guyyatsu commented 7 months ago

IWD based GUI Wi-Fi access manager for Arch Linux written in Python.

This thing exists because of a certain phenomenon that is known to exist amongst Linux users; if you've ever seen the meme with Techmo elevating his keyboard just to connect to the Internet, then you know what I'm talking about and you feel my pain. Took me like five years to finally get around to it, but I'm finally stepping into the 21th Century in the way I manage my Wi-Fi access.

See, there's a specific ritual that is enacted every time I log in to my laptop; it always goes the exact same way, and for some reason I just never bothered to fix that bullshit until now. It goes like this:

<Fn+F5>;
<Fn+F5>;
<WIN+ENTER>;
sudo iwctl station wlan0 scan;
sudo iwctl station wlan0 get-networks;
sudo iwctl station wlan0 connect $PREFERRED_PORTABLE_NETWORK || \
sudo iwctl station wlan0 connect $UNPREFERRED_PUBLIC_NETWORK;
sudo dhcpcd;
ping -c1 -W5 google.com;

We can do better than that, easily, by using the subprocess and pyautogui modules to execute these CLI and Keyboard commands for us automatically in the background and only ever bothering us to log into another network if our personal hotspot isn't available for some reason.

Project Maintenance

Code Operations

guyyatsu commented 7 months ago

As of 31148dc we have a little snag that I'm writing out to help collect my thoughts; I'll just paste the comment directly from the code. Maybe tweak it out a bit into a proper prompt for ChatGPT.

So this next part has been some bullshit; to the point I'm about to
ask ChatGPT for help.

The problem here is we have a list of lines consisting of unicode
and plaintext; where the first item in the list usually has three blocks
of unicode; then two blocks of plaintext that we need, and they all
have a trailing block of unicode we can disregard.

As well, every item beyond the first simply starts with the two
textblocks we're looking for.

Since this all exists within the context of a network connection we can
conduct a ping scan before we look at the list to determine if the first
item in the list is going to be unicode or not.

As for actually trimming the unicode off; we can just delete those items
while iterating.

Will update comment with the results.