mirror of
				https://git.davidovski.xyz/dot.git
				synced 2024-08-15 00:43:28 +00:00 
			
		
		
		
	Switch to compfy
This commit is contained in:
		
							parent
							
								
									4c2194a7c5
								
							
						
					
					
						commit
						2c23da6112
					
				
					 10 changed files with 943 additions and 4 deletions
				
			
		
							
								
								
									
										96
									
								
								scripts/dmenu-iwd
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										96
									
								
								scripts/dmenu-iwd
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,96 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| STATION="wlan0" | ||||
| FONT="Monospace" | ||||
| NORMAL_BACKGROUND="#000000" | ||||
| NORMAL_FOREGROUND="#8f8f8f" | ||||
| SELECTED_BACKGROUND="#000000" | ||||
| SELECTED_FOREGROUND="#00ff00" | ||||
| FLAGS=( | ||||
|     "-i" | ||||
|     "-nb" "$NORMAL_BACKGROUND" | ||||
|     "-nf" "$NORMAL_FOREGROUND" | ||||
|     "-sb" "$SELECTED_BACKGROUND" | ||||
|     "-sf" "$SELECTED_FOREGROUND" | ||||
|     "-fn" "$FONT" | ||||
| ) | ||||
| 
 | ||||
| remove_colors() { | ||||
|     sed -E 's/\x1B\[[0-9;]*[JKmsu]//g' | ||||
| } | ||||
| 
 | ||||
| connect() { | ||||
|     SSID="$1" | ||||
|     notify-send --urgency=low "Attempting to connect to network: $SSID" | ||||
|     if iwctl station "$STATION" connect "$SSID" --dont-ask; then | ||||
|         notify-send "Connected to network: $SSID" | ||||
|         exit 0 | ||||
|     fi | ||||
|     if ERROR=$( | ||||
|         iwctl station "$STATION" connect "$SSID" \ | ||||
|             --passphrase "$(dmenu "${FLAGS[@]}" -p Password: </dev/null)" \ | ||||
|             --dont-ask 2>&1 | ||||
|     ); then | ||||
|         notify-send "Connected to network: $SSID" | ||||
|     else | ||||
|         notify-send --urgency=critical \ | ||||
|             "Failed to connect to network: $SSID" "$(remove_colors <<<$ERROR)" | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| networks() { | ||||
|     iwctl station "$STATION" get-networks | awk ' | ||||
| BEGIN { | ||||
|     i = -1 | ||||
| } | ||||
| { | ||||
|     i++ | ||||
|     if (i < 4) next # skip header | ||||
| 
 | ||||
|     network = "" | ||||
|     strength = 0 | ||||
|     for (ix = 1; ix <= NF; ix++) { | ||||
|         if (ix == NF - 1) continue # skip protocol | ||||
| 
 | ||||
|         # calculate strength by reading *s until | ||||
|         # a color code is encountered | ||||
|         char = sprintf("%c", $ix) | ||||
|         if (char == "*") { | ||||
|             split($ix, chars, "") | ||||
|             for (c = 1; c <= length($ix); c++) { | ||||
|                 char = sprintf("%c", chars[c]) | ||||
|                 if (char == "\033") break | ||||
|                 strength++ | ||||
|             } | ||||
|             continue | ||||
|         } | ||||
| 
 | ||||
|         if (char == "\033") continue # color codes | ||||
|         if ($ix == "") continue # whitespace | ||||
|         if ($ix == ">") continue # current network | ||||
| 
 | ||||
|         # ssids may contain spaces | ||||
|         if (network == "") { | ||||
|             network = $ix | ||||
|             continue | ||||
|         } | ||||
|         network = network " " $ix | ||||
|     } | ||||
|     if (network == "") next | ||||
|     networks[network] = strength | ||||
| } | ||||
| END { | ||||
|     for (s = 4; s >= 0; s--) { | ||||
|         for (network in networks) { | ||||
|             if (networks[network] == s) { | ||||
|                 print network | ||||
|                 delete networks[network] | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
| ' | ||||
| } | ||||
| 
 | ||||
| SELECTION=$(networks | dmenu "${FLAGS[@]}") || exit 1 | ||||
| connect "$SELECTION" | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue