slitaz-tools annotate tinyutils/wifibox @ rev 305
tazhw: fix loading of sound module
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Fri Feb 27 00:03:55 2009 +0100 (2009-02-27) |
parents | 20f08a94af98 |
children | b05608a877f6 |
rev | line source |
---|---|
pankso@298 | 1 #!/bin/sh |
pankso@298 | 2 # |
pankso@298 | 3 # GTKdialog interface to manage wireless connection in a simple way. |
pankso@298 | 4 # Use tabs to indent, split commands from the GUI and use functions. |
pankso@298 | 5 # Favotites networks are also supported |
pankso@298 | 6 # |
pankso@298 | 7 # (c) 2009 SliTaz GNU/Linux - GNU gpl v3 |
pankso@298 | 8 # |
pankso@300 | 9 VERSION=20090222 |
pankso@298 | 10 |
pankso@298 | 11 # Export script path and other if needed so we can use them in 'quote'. |
pankso@298 | 12 export BIN=$0 |
pankso@298 | 13 export FAVORITES_WIFI=/etc/wireless |
pankso@298 | 14 . /etc/network.conf |
pankso@298 | 15 |
pankso@298 | 16 # Wifibox is only for root. |
pankso@298 | 17 if test $(id -u) != 0 ; then |
pankso@298 | 18 exec subox wifibox |
pankso@298 | 19 exit 0 |
pankso@298 | 20 fi |
pankso@298 | 21 |
pankso@298 | 22 # Sanity check |
pankso@298 | 23 [ -x /usr/sbin/iwconfig ] || tazpkg get-install wireless_tools |
pankso@298 | 24 [ -d $FAVORITES_WIFI ] || mkdir -p $FAVORITES_WIFI |
pankso@298 | 25 rm -f $FAVORITES_WIFI/any.conf |
pankso@298 | 26 |
pankso@298 | 27 # Catch ESSIDs and format output for GTK tree. We get the list off |
pankso@298 | 28 # network by Cell and without space. |
pankso@298 | 29 detect_wifi_networks() |
pankso@298 | 30 { |
pankso@298 | 31 desktopbox notify "Scanning Wireless interface: $WIFI_INTERFACE" & |
pankso@298 | 32 if [ -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then |
pankso@298 | 33 ifconfig $WIFI_INTERFACE up |
pankso@298 | 34 for i in `iwlist $WIFI_INTERFACE scan | sed s/"Cell "/Cell-/ | grep "Cell-" | awk '{print $1}'` |
pankso@298 | 35 do |
pankso@298 | 36 SCAN=`iwlist $WIFI_INTERFACE scan | sed s/"Cell "/Cell-/ | grep -A 8 "$i"` |
pankso@298 | 37 ESSID=`echo $SCAN | cut -d '"' -f 2` |
pankso@298 | 38 if echo "$SCAN" | grep -q Quality; then |
pankso@298 | 39 QUALITY=`echo $SCAN | sed 's/.*Quality=\([^ ]*\).*/\1/' | sed 's/.*Quality:\([^ ]*\).*/\1/'` |
pankso@298 | 40 else |
pankso@298 | 41 QUALITY="-" |
pankso@298 | 42 fi |
pankso@298 | 43 ENCRYPTION=`echo $SCAN | sed 's/.*key:\([^ ]*\).*/\1/'` |
pankso@298 | 44 # Check encryption type |
pankso@298 | 45 if echo "$SCAN" | grep -q WPA; then |
pankso@298 | 46 ENCRYPTION="${ENCRYPTION} (WPA)" |
pankso@298 | 47 fi |
pankso@298 | 48 # Connected or not connected... |
pankso@298 | 49 if ifconfig | grep -A 1 $WIFI_INTERFACE | \ |
pankso@298 | 50 grep -q inet && iwconfig $WIFI_INTERFACE | \ |
pankso@298 | 51 grep ESSID | grep -q -w "$ESSID"; then |
pankso@298 | 52 STATUS=connected |
pankso@298 | 53 else |
pankso@298 | 54 STATUS="-" |
pankso@298 | 55 fi |
pankso@298 | 56 echo -n "" |
pankso@298 | 57 echo "$ESSID | $QUALITY | $ENCRYPTION | $STATUS" |
pankso@298 | 58 done |
pankso@298 | 59 fi |
pankso@298 | 60 } |
pankso@298 | 61 |
pankso@298 | 62 # cmdline functions |
pankso@298 | 63 |
pankso@298 | 64 # Configure /etc/network.conf and restart connexion with init script. |
pankso@298 | 65 start_wifi_connection() |
pankso@298 | 66 { |
pankso@298 | 67 # Get tmp config created by connect_to_essid() if exist and set |
pankso@298 | 68 # empty value to clean config file. |
pankso@298 | 69 if [ -f /tmp/wifi.conf ]; then |
pankso@298 | 70 . /tmp/wifi.conf |
pankso@298 | 71 WIFI_MODE="" |
pankso@298 | 72 WIFI_IWCONFIG_ARGS="" |
pankso@298 | 73 WIFI_CHANNEL="" |
pankso@298 | 74 fi |
pankso@298 | 75 sed -i "s/`grep ^WIFI= /etc/network.conf`/WIFI=\"yes\"/" \ |
pankso@298 | 76 /etc/network.conf |
pankso@298 | 77 sed -i "s/`grep ^WIFI_INTERFACE= /etc/network.conf`/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" \ |
pankso@298 | 78 /etc/network.conf |
pankso@298 | 79 sed -i "s/`grep ^WIFI_ESSID= /etc/network.conf`/WIFI_ESSID=\"$WIFI_ESSID\"/" \ |
pankso@298 | 80 /etc/network.conf |
pankso@298 | 81 sed -i "s/`grep ^WIFI_KEY= /etc/network.conf`/WIFI_KEY=\"$WIFI_KEY\"/" \ |
pankso@298 | 82 /etc/network.conf |
pankso@298 | 83 sed -i "s/`grep ^WIFI_MODE= /etc/network.conf`/WIFI_MODE=\"$WIFI_MODE\"/" \ |
pankso@298 | 84 /etc/network.conf |
pankso@298 | 85 sed -i "s/`grep ^WIFI_IWCONFIG_ARGS= /etc/network.conf`/WIFI_IWCONFIG_ARGS=\"$WIFI_IWCONFIG_ARGS\"/" \ |
pankso@298 | 86 /etc/network.conf |
pankso@298 | 87 sed -i "s/`grep ^WIFI_KEY_TYPE= /etc/network.conf`/WIFI_KEY_TYPE=\"$WIFI_KEY_TYPE\"/" \ |
pankso@298 | 88 /etc/network.conf |
pankso@298 | 89 sed -i "s/`grep ^WIFI_CHANNEL= /etc/network.conf`/WIFI_CHANNEL=\"$WIFI_CHANNEL\"/" \ |
pankso@298 | 90 /etc/network.conf |
pankso@298 | 91 [ -s /var/run/udhcpc.$WIFI_INTERFACE.pid ] && kill `cat /var/run/udhcpc.$WIFI_INTERFACE.pid` |
pankso@298 | 92 ifconfig $WIFI_INTERFACE down |
pankso@298 | 93 iwconfig $WIFI_INTERFACE txpower auto |
pankso@298 | 94 /etc/init.d/network.sh restart |
pankso@298 | 95 # Remove tmp file (could be use to have wireless profiles) |
pankso@298 | 96 rm -f /tmp/wifi.conf |
pankso@298 | 97 } |
pankso@298 | 98 |
pankso@298 | 99 # We must spleep 4 sec to refresh networks list. |
pankso@298 | 100 stop_wifi_connexion() |
pankso@298 | 101 { |
pankso@298 | 102 sed -i s/`grep ^WIFI= /etc/network.conf`/WIFI=\"no\"/ \ |
pankso@298 | 103 /etc/network.conf |
pankso@298 | 104 [ -x /etc/init.d/wpa_supplicant ] && /etc/init.d/wpa_supplicant stop |
pankso@298 | 105 ifconfig $WIFI_INTERFACE down |
pankso@298 | 106 iwconfig $WIFI_INTERFACE txpower off |
pankso@298 | 107 [ -s /var/run/udhcpc.$WIFI_INTERFACE.pid ] && kill `cat /var/run/udhcpc.$WIFI_INTERFACE.pid` |
pankso@298 | 108 sleep 4 |
pankso@298 | 109 } |
pankso@298 | 110 |
pankso@298 | 111 # Favorites wireless networks use only 3 values: essid. key and type of |
pankso@298 | 112 # key |
pankso@298 | 113 FAVORITES_WIFI_list() |
pankso@298 | 114 { |
pankso@298 | 115 for i in $FAVORITES_WIFI/*.conf |
pankso@298 | 116 do |
pankso@298 | 117 WIFI_ESSID="" |
pankso@298 | 118 WIFI_KEY="" |
pankso@298 | 119 WIFI_KEY_TYPE="" |
pankso@298 | 120 . "$i" |
pankso@298 | 121 [ -z "$WIFI_ESSID" ] && WIFI_ESSID="Bad config file: $i" |
pankso@298 | 122 [ -z "$WIFI_KEY_TYPE" ] && WIFI_KEY_TYPE="-" |
pankso@298 | 123 if [ -n "$WIFI_KEY" ]; then |
pankso@298 | 124 WIFI_KEY="********" |
pankso@298 | 125 else |
pankso@298 | 126 WIFI_KEY="-" |
pankso@298 | 127 fi |
pankso@298 | 128 echo "$WIFI_ESSID | $WIFI_KEY_TYPE | $WIFI_KEY" |
pankso@298 | 129 done |
pankso@298 | 130 } |
pankso@298 | 131 |
pankso@298 | 132 favorite_wifi_actions() |
pankso@298 | 133 { |
pankso@298 | 134 cp -a $FAVORITES_WIFI/"$FAVORITE".conf /tmp/wifi.conf |
pankso@298 | 135 . /tmp/wifi.conf |
pankso@298 | 136 export CONNECT_FAVORITE=" |
pankso@298 | 137 <window title=\"Connect to: $WIFI_ESSID\" icon-name=\"network-wireless\"> |
pankso@298 | 138 <vbox> |
pankso@298 | 139 |
pankso@298 | 140 <text width-chars=\"54\"> |
pankso@298 | 141 <label> |
pankso@298 | 142 \" |
pankso@298 | 143 ESSID name: $WIFI_ESSID |
pankso@298 | 144 \" |
pankso@298 | 145 </label> |
pankso@298 | 146 </text> |
pankso@298 | 147 |
pankso@298 | 148 <hbox> |
pankso@298 | 149 <button> |
pankso@298 | 150 <label>Connect</label> |
pankso@298 | 151 <input file icon=\"forward\"></input> |
pankso@298 | 152 <action>$0 start_wifi_connection</action> |
pankso@298 | 153 <action type=\"exit\">exit</action> |
pankso@298 | 154 </button> |
pankso@298 | 155 <button> |
pankso@298 | 156 <label>Edit settings</label> |
pankso@298 | 157 <input file icon=\"accessories-text-editor\"></input> |
pankso@298 | 158 <action>leafpad $FAVORITES_WIFI/\"$FAVORITE\".conf</action> |
pankso@298 | 159 <action>rm -f /tmp/wifi.conf</action> |
pankso@298 | 160 <action type=\"exit\">exit</action> |
pankso@298 | 161 </button> |
pankso@298 | 162 <button> |
pankso@298 | 163 <label>Delete</label> |
pankso@298 | 164 <input file icon=\"gtk-delete\"></input> |
pankso@298 | 165 <action>rm -f $FAVORITES_WIFI/\"$FAVORITE\".conf</action> |
pankso@298 | 166 <action type=\"exit\">exit</action> |
pankso@298 | 167 </button> |
pankso@298 | 168 <button cancel></button> |
pankso@298 | 169 </hbox> |
pankso@298 | 170 |
pankso@298 | 171 </vbox> |
pankso@298 | 172 </window>" |
pankso@298 | 173 gtkdialog --center --program=CONNECT_FAVORITE >/dev/null |
pankso@298 | 174 } |
pankso@298 | 175 |
pankso@298 | 176 add_favorite_network_box() |
pankso@298 | 177 { |
pankso@298 | 178 ADD_FAVORITE=' |
pankso@298 | 179 <window title="Add new favorite Wireless" icon-name="network-wireless"> |
pankso@298 | 180 <vbox> |
pankso@298 | 181 <text width-chars="54"> |
pankso@298 | 182 <label> |
pankso@298 | 183 " |
pankso@298 | 184 Please configure your new favorite Wireless network |
pankso@298 | 185 " |
pankso@298 | 186 </label> |
pankso@298 | 187 </text> |
pankso@298 | 188 <hbox> |
pankso@298 | 189 <text use-markup="true"> |
pankso@298 | 190 <label>"<b>ESSID:</b>"</label> |
pankso@298 | 191 </text> |
pankso@298 | 192 <entry> |
pankso@298 | 193 <variable>WIFI_ESSID</variable> |
pankso@298 | 194 </entry> |
pankso@298 | 195 </hbox> |
pankso@298 | 196 <hbox> |
pankso@298 | 197 <text use-markup="true"> |
pankso@298 | 198 <label>"<b>Key: </b>"</label> |
pankso@298 | 199 </text> |
pankso@298 | 200 <entry> |
pankso@298 | 201 <variable>WIFI_KEY</variable> |
pankso@298 | 202 </entry> |
pankso@298 | 203 </hbox> |
pankso@298 | 204 <hbox> |
pankso@298 | 205 <text use-markup="true"> |
pankso@298 | 206 <label>"<b>Key type:</b>"</label> |
pankso@298 | 207 </text> |
pankso@298 | 208 <combobox>' |
pankso@298 | 209 tmp="${ADD_FAVORITE}<item>$WIFI_KEY_TYPE</item>" |
pankso@298 | 210 for i in none WEP WPA any; do |
pankso@298 | 211 tmp=${tmp}"<item>$i</item>" |
pankso@298 | 212 done |
pankso@298 | 213 export ADD_FAVORITE=${tmp}' |
pankso@298 | 214 <variable>WIFI_KEY_TYPE</variable> |
pankso@298 | 215 </combobox> |
pankso@298 | 216 </hbox> |
pankso@298 | 217 <hbox> |
pankso@298 | 218 <button> |
pankso@298 | 219 <label>Add to list</label> |
pankso@298 | 220 <input file icon="forward"></input> |
pankso@298 | 221 <action>echo "# Wireless connection configuration." > $FAVORITES_WIFI/"$WIFI_ESSID".conf</action> |
pankso@298 | 222 <action>echo "#" >> /etc/wireless/"$WIFI_ESSID".conf</action> |
pankso@298 | 223 <action>echo "WIFI_ESSID=\"$WIFI_ESSID\"" >> $FAVORITES_WIFI/"$WIFI_ESSID".conf</action> |
pankso@298 | 224 <action>echo "WIFI_KEY=\"$WIFI_KEY\"" >> $FAVORITES_WIFI/"$WIFI_ESSID".conf</action> |
pankso@298 | 225 <action>echo "WIFI_KEY_TYPE=\"$WIFI_KEY_TYPE\"" >> $FAVORITES_WIFI/"$WIFI_ESSID".conf</action> |
pankso@298 | 226 <action type="exit">exit</action> |
pankso@298 | 227 </button> |
pankso@298 | 228 <button cancel></button> |
pankso@298 | 229 </hbox> |
pankso@298 | 230 </vbox> |
pankso@298 | 231 </window>' |
pankso@298 | 232 gtkdialog --center --program=ADD_FAVORITE #>/dev/null |
pankso@298 | 233 } |
pankso@298 | 234 |
pankso@298 | 235 # GUI functions |
pankso@298 | 236 |
pankso@298 | 237 helpbutton() |
pankso@298 | 238 { |
pankso@298 | 239 local label; |
pankso@298 | 240 label="<label>$3</label>" |
pankso@298 | 241 [ -n "$3" ] || label="" |
pankso@298 | 242 cat << EOT |
pankso@298 | 243 <button> |
pankso@298 | 244 <input file icon="help"></input>$label |
pankso@298 | 245 <action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -geometry $2 -title "$1 help" -e "$(which $1) --help ; echo -e \\"----\\nENTER to continue...\\" && read close"</action> |
pankso@298 | 246 </button> |
pankso@298 | 247 EOT |
pankso@298 | 248 } |
pankso@298 | 249 |
pankso@298 | 250 manbutton() |
pankso@298 | 251 { |
pankso@298 | 252 cat << EOT |
pankso@298 | 253 <button> |
pankso@298 | 254 <input file icon="browser"></input> |
pankso@298 | 255 <label>man</label> |
pankso@298 | 256 <action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -geometry 80x24 -title "$2 man (q to quit)" -e ". /etc/profile; man $1 $2"</action> |
pankso@298 | 257 </button> |
pankso@298 | 258 EOT |
pankso@298 | 259 } |
pankso@298 | 260 |
pankso@298 | 261 # Independant dialog to connect on a wireless network. If encryption |
pankso@298 | 262 # is on we ask for the security key. |
pankso@298 | 263 connect_to_essid() |
pankso@298 | 264 { |
pankso@298 | 265 SCAN=`iwlist $WIFI_INTERFACE scanning essid "$ESSID_LIST" | grep -A 6 "ESSID"` |
pankso@298 | 266 WIFI_ESSID="$ESSID_LIST" |
pankso@298 | 267 ENCRYPTION=`echo $SCAN | sed 's/.*key:\([^ ]*\).*/\1/'` |
pankso@298 | 268 # Create tmp file used by active_wifi_connexion() |
pankso@298 | 269 cat > /tmp/wifi.conf << _EOF_ |
pankso@298 | 270 # Wireless connexion configuration file. |
pankso@298 | 271 WIFI_ESSID="$ESSID_LIST" |
pankso@298 | 272 _EOF_ |
pankso@298 | 273 CONNECT_ESSID=" |
pankso@298 | 274 <window title=\"Connect to: $WIFI_ESSID\" icon-name=\"network-wireless\"> |
pankso@298 | 275 <vbox> |
pankso@298 | 276 <text width-chars=\"54\"> |
pankso@298 | 277 <label> |
pankso@298 | 278 \" |
pankso@298 | 279 Connect $WIFI_INTERFACE to: $WIFI_ESSID |
pankso@298 | 280 \" |
pankso@298 | 281 </label> |
pankso@298 | 282 </text>" |
pankso@298 | 283 # We mybe need a key to connect |
pankso@298 | 284 if [ "$ENCRYPTION" = "on" ] && [ "$ESSID_LIST" != "any" ]; then |
pankso@298 | 285 # WPA |
pankso@298 | 286 if echo "$SCAN" | grep -q WPA; then |
pankso@298 | 287 echo 'WIFI_KEY_TYPE="WPA"' >> /tmp/wifi.conf |
pankso@298 | 288 CONNECT_ESSID=${CONNECT_ESSID}' |
pankso@298 | 289 <hbox> |
pankso@298 | 290 <text use-markup="true"> |
pankso@298 | 291 <label>"<b>WPA Key:</b>"</label> |
pankso@298 | 292 </text> |
pankso@298 | 293 <entry> |
pankso@298 | 294 <input>. /etc/network.conf; echo "$WIFI_KEY"</input> |
pankso@298 | 295 <variable>WIFI_KEY</variable> |
pankso@298 | 296 </entry> |
pankso@298 | 297 </hbox>' |
pankso@298 | 298 else |
pankso@298 | 299 # WEP |
pankso@298 | 300 echo 'WIFI_KEY_TYPE="WEP"' >> /tmp/wifi.conf |
pankso@298 | 301 CONNECT_ESSID=${CONNECT_ESSID}' |
pankso@298 | 302 <hbox> |
pankso@298 | 303 <text use-markup="true"> |
pankso@298 | 304 <label>"<b>WEP Key:</b>"</label> |
pankso@298 | 305 </text> |
pankso@298 | 306 <entry> |
pankso@298 | 307 <input>. /etc/network.conf; echo "$WIFI_KEY"</input> |
pankso@298 | 308 <variable>WIFI_KEY</variable> |
pankso@298 | 309 </entry> |
pankso@298 | 310 </hbox>' |
pankso@298 | 311 fi |
pankso@298 | 312 else |
pankso@298 | 313 # No encryption |
pankso@298 | 314 echo 'WIFI_KEY=""' >> /tmp/wifi.conf |
pankso@298 | 315 echo 'WIFI_KEY_TYPE=""' >> /tmp/wifi.conf |
pankso@298 | 316 start_wifi_connection |
pankso@298 | 317 exit 0 |
pankso@298 | 318 fi |
pankso@298 | 319 # Add key to config file so active_wifi_connexion() can use it. |
pankso@298 | 320 # WIFI_KEY is not exported if we quote with --> " |
pankso@298 | 321 export CONNECT_ESSID=${CONNECT_ESSID}' |
pankso@298 | 322 <hbox> |
pankso@298 | 323 <button> |
pankso@298 | 324 <label>Connect</label> |
pankso@298 | 325 <input file icon="forward"></input> |
pankso@298 | 326 <action>echo "WIFI_KEY=\"$WIFI_KEY\"" >> /tmp/wifi.conf</action> |
pankso@298 | 327 <action>$BIN start_wifi_connection</action> |
pankso@298 | 328 <action type="exit">exit</action> |
pankso@298 | 329 </button> |
pankso@298 | 330 <button cancel></button> |
pankso@298 | 331 </hbox> |
pankso@298 | 332 </vbox> |
pankso@298 | 333 </window>' |
pankso@298 | 334 gtkdialog --center --program=CONNECT_ESSID #>/dev/null |
pankso@298 | 335 } |
pankso@298 | 336 |
pankso@298 | 337 # Wifibox start with Networks tab. |
pankso@298 | 338 box() |
pankso@298 | 339 { |
pankso@298 | 340 WIFI_DIALOG=" |
pankso@298 | 341 <window title=\"Wireless manager\" icon-name=\"network-wireless\"> |
pankso@298 | 342 <vbox> |
pankso@298 | 343 |
pankso@298 | 344 <notebook labels=\"Networks|Favorites|Configuration|Drivers\"> |
pankso@298 | 345 |
pankso@298 | 346 <vbox> |
pankso@298 | 347 <tree icon=\"network-wireless\"> |
pankso@298 | 348 <width>500</width><height>160</height> |
pankso@298 | 349 <variable>ESSID_LIST</variable> |
pankso@298 | 350 <label>ESSID|Quality|Encryption|Status</label> |
pankso@298 | 351 <input>$0 detect_wifi_networks</input> |
pankso@298 | 352 <item icon=\"network-wireless\">any | * | off | (auto-connect)</item> |
pankso@298 | 353 <action>$0 connect_to_essid</action> |
pankso@298 | 354 <action>refresh:ESSID_LIST</action> |
pankso@298 | 355 <action>refresh:WIFI_ESSID</action> |
pankso@298 | 356 <action>refresh:WIFI_KEY</action> |
pankso@298 | 357 <action>refresh:WIFI_KEY_TYPE</action> |
pankso@298 | 358 </tree> |
pankso@298 | 359 <hbox> |
pankso@298 | 360 <text width-chars=\"50\"> |
pankso@298 | 361 <label> |
paul@302 | 362 \"Please double click on a network to connect or enter security key\" |
pankso@298 | 363 </label> |
pankso@298 | 364 </text> |
pankso@298 | 365 <button> |
pankso@298 | 366 <label>Refresh list</label> |
pankso@298 | 367 <input file icon=\"reload\"></input> |
pankso@298 | 368 <action>refresh:ESSID_LIST</action> |
pankso@298 | 369 </button> |
pankso@298 | 370 </hbox> |
pankso@298 | 371 </vbox>" |
pankso@298 | 372 |
pankso@298 | 373 # Favorites networks |
pankso@298 | 374 WIFI_DIALOG=${WIFI_DIALOG}" |
pankso@298 | 375 <vbox> |
pankso@298 | 376 <tree icon=\"network-wireless\"> |
pankso@298 | 377 <width>500</width><height>160</height> |
pankso@298 | 378 <variable>FAVORITE</variable> |
pankso@298 | 379 <label>ESSID|Key Type|Key status</label> |
pankso@298 | 380 <input>$0 FAVORITES_WIFI_list</input> |
pankso@298 | 381 <item icon=\"network-wireless\">any | - | -</item> |
pankso@298 | 382 <action>$0 favorite_wifi_actions</action> |
pankso@298 | 383 <action>refresh:FAVORITE</action> |
pankso@298 | 384 <action>refresh:ESSID_LIST</action> |
pankso@298 | 385 <action>refresh:WIFI_ESSID</action> |
pankso@298 | 386 <action>refresh:WIFI_KEY</action> |
pankso@298 | 387 <action>refresh:WIFI_KEY_TYPE</action> |
pankso@298 | 388 </tree> |
pankso@298 | 389 <hbox> |
pankso@298 | 390 <text width-chars=\"50\"> |
pankso@298 | 391 <label> |
paul@302 | 392 \"Please double click on a network to modify or remove it\" |
pankso@298 | 393 </label> |
pankso@298 | 394 </text> |
pankso@298 | 395 <button> |
pankso@298 | 396 <label>Add Network</label> |
pankso@298 | 397 <input file icon=\"gtk-add\"></input> |
pankso@298 | 398 <action>$0 add_favorite_network_box</action> |
pankso@298 | 399 <action>refresh:FAVORITE</action> |
pankso@298 | 400 </button> |
pankso@298 | 401 </hbox> |
pankso@298 | 402 </vbox>" |
pankso@298 | 403 |
pankso@298 | 404 # Configuration tab |
pankso@298 | 405 WIFI_DIALOG=${WIFI_DIALOG}' |
pankso@298 | 406 <vbox> |
paul@302 | 407 <frame Basic> |
pankso@298 | 408 <hbox> |
pankso@298 | 409 <text use-markup="true"> |
pankso@298 | 410 <label>"<b>Interface:</b>"</label> |
pankso@298 | 411 </text> |
pankso@298 | 412 <entry> |
pankso@298 | 413 <input>. /etc/network.conf; echo "$WIFI_INTERFACE"</input> |
pankso@298 | 414 <variable>WIFI_INTERFACE</variable> |
pankso@298 | 415 </entry> |
pankso@298 | 416 </hbox> |
pankso@298 | 417 <hbox> |
pankso@298 | 418 <text use-markup="true"> |
pankso@298 | 419 <label>"<b>ESSID: </b>"</label> |
pankso@298 | 420 </text> |
pankso@298 | 421 <entry> |
pankso@298 | 422 <input>. /etc/network.conf; echo "$WIFI_ESSID"</input> |
pankso@298 | 423 <variable>WIFI_ESSID</variable> |
pankso@298 | 424 </entry> |
pankso@298 | 425 </hbox> |
pankso@298 | 426 <hbox> |
pankso@298 | 427 <text use-markup="true"> |
pankso@298 | 428 <label>"<b>Key: </b>"</label> |
pankso@298 | 429 </text> |
pankso@298 | 430 <entry> |
pankso@298 | 431 <input>. /etc/network.conf; echo "$WIFI_KEY"</input> |
pankso@298 | 432 <variable>WIFI_KEY</variable> |
pankso@298 | 433 </entry> |
pankso@298 | 434 <combobox>' |
pankso@298 | 435 tmp2="${WIFI_DIALOG}<item>$WIFI_KEY_TYPE</item>" |
pankso@298 | 436 for i in none WEP WPA any; do |
pankso@298 | 437 [ "$i" = "$WIFI_KEY_TYPE" ] || tmp2="$tmp2<item>$i</item>" |
pankso@298 | 438 done |
pankso@298 | 439 tmp3=' <variable>WIFI_KEY_TYPE</variable> |
pankso@298 | 440 </combobox> |
pankso@298 | 441 </hbox> |
pankso@298 | 442 </frame> |
pankso@298 | 443 <frame Advanced> |
pankso@298 | 444 <hbox> |
pankso@298 | 445 <text use-markup="true"> |
pankso@298 | 446 <label>"<b>Channel/Mode:</b>"</label> |
pankso@298 | 447 </text> |
pankso@298 | 448 <entry> |
pankso@298 | 449 <input>. /etc/network.conf; echo "$WIFI_CHANNEL"</input> |
pankso@298 | 450 <variable>WIFI_CHANNEL</variable> |
pankso@298 | 451 </entry> |
pankso@298 | 452 |
pankso@298 | 453 <combobox> |
pankso@298 | 454 <variable>WIFI_MODE</variable>' |
pankso@298 | 455 tmp2="$tmp2$tmp3<item>$WIFI_MODE</item>" |
pankso@298 | 456 for i in managed ad-hoc master repeater secondary monitor; do |
pankso@298 | 457 [ "$i" = "$WIFI_MODE" ] || tmp2="$tmp2<item>$i</item>" |
pankso@298 | 458 done |
pankso@298 | 459 tmp3=' </combobox> |
pankso@298 | 460 </hbox> |
pankso@298 | 461 <hbox> |
pankso@298 | 462 <text use-markup="true"> |
pankso@298 | 463 <label>"<b>Iwconfig args:</b>"</label> |
pankso@298 | 464 </text> |
pankso@298 | 465 <entry> |
pankso@298 | 466 <input>. /etc/network.conf; echo "$WIFI_IWCONFIG_ARGS"</input> |
pankso@298 | 467 <variable>WIFI_IWCONFIG_ARGS</variable> |
pankso@298 | 468 </entry>' |
pankso@298 | 469 WIFI_DIALOG="$tmp$tmp2$tmp3 |
pankso@298 | 470 $(helpbutton iwconfig 80x24) |
pankso@298 | 471 $(manbutton 8 iwconfig) |
pankso@298 | 472 </hbox> |
pankso@298 | 473 </frame>" |
pankso@298 | 474 |
pankso@298 | 475 # Start Button for manual configuration. |
pankso@298 | 476 WIFI_DIALOG=${WIFI_DIALOG}' |
pankso@298 | 477 <hbox> |
pankso@298 | 478 <button> |
pankso@298 | 479 <label>Start connection</label> |
pankso@298 | 480 <input file icon="forward"></input> |
pankso@298 | 481 <action>[ "$WIFI_KEY_TYPE" = "WPA" -a ! -x /usr/bin/wpa_supplicant ] && xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -geometry 80x17 -title "wpa_supplicant install" -e "tazpkg get-install wpa_supplicant ; echo -e \"----\n\nENTER to continue...\" && read close"</action> |
pankso@298 | 482 <action>sed -i s/`grep ^WIFI= /etc/network.conf`/WIFI=\"yes\"/ /etc/network.conf</action> |
pankso@298 | 483 <action>sed -i s/`grep ^WIFI_INTERFACE= /etc/network.conf`/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/ /etc/network.conf</action> |
pankso@298 | 484 <action>sed -i s/`grep ^WIFI_ESSID= /etc/network.conf`/WIFI_ESSID=\"$WIFI_ESSID\"/ /etc/network.conf</action> |
pankso@298 | 485 <action>sed -i s/`grep ^WIFI_KEY= /etc/network.conf`/WIFI_KEY=\"$WIFI_KEY\"/ /etc/network.conf</action> |
pankso@298 | 486 <action>sed -i s/`grep ^WIFI_MODE= /etc/network.conf`/WIFI_MODE=\"$WIFI_MODE\"/ /etc/network.conf</action> |
pankso@298 | 487 <action>sed -i "s/`grep ^WIFI_IWCONFIG_ARGS= /etc/network.conf`/WIFI_IWCONFIG_ARGS=\"$WIFI_IWCONFIG_ARGS\"/" /etc/network.conf</action> |
pankso@298 | 488 <action>sed -i s/`grep ^WIFI_KEY_TYPE= /etc/network.conf`/WIFI_KEY_TYPE=\"$WIFI_KEY_TYPE\"/ /etc/network.conf</action> |
pankso@298 | 489 <action>sed -i s/`grep ^WIFI_CHANNEL= /etc/network.conf`/WIFI_CHANNEL=\"$WIFI_CHANNEL\"/ /etc/network.conf</action> |
pankso@298 | 490 <action>[ -s /var/run/udhcpc.$WIFI_INTERFACE.pid ] && kill `cat /var/run/udhcpc.$WIFI_INTERFACE.pid`</action> |
pankso@298 | 491 <action>ifconfig $WIFI_INTERFACE down</action> |
pankso@298 | 492 <action>iwconfig $WIFI_INTERFACE txpower auto</action> |
pankso@298 | 493 <action>/etc/init.d/network.sh restart</action> |
pankso@298 | 494 <action>refresh:ESSID_LIST</action> |
pankso@298 | 495 <action>refresh:WIFI_ESSID</action> |
pankso@298 | 496 <action>refresh:WIFI_KEY</action> |
pankso@298 | 497 <action>refresh:WIFI_KEY_TYPE</action> |
pankso@298 | 498 </button> |
pankso@298 | 499 </hbox> |
pankso@298 | 500 </vbox>' |
pankso@298 | 501 |
pankso@298 | 502 # Kernel Modules, firmware and tazndisbox note + button. |
pankso@298 | 503 WIFI_DIALOG=${WIFI_DIALOG}" |
pankso@298 | 504 <vbox> |
pankso@298 | 505 <hbox> |
pankso@298 | 506 <text width-chars=\"64\"> |
pankso@298 | 507 <label> |
pankso@298 | 508 \" |
paul@302 | 509 Some Wireless Adapters need non-free firmware. Please install the |
paul@302 | 510 firmware before loading the corresponding module. Note: you can use |
paul@302 | 511 Tazhw to automatically detect your PCI, PCMCIA or USB Wireless adapter. |
pankso@298 | 512 \" |
pankso@298 | 513 </label> |
pankso@298 | 514 </text> |
pankso@298 | 515 </hbox> |
pankso@298 | 516 <hbox> |
pankso@298 | 517 <text use-markup=\"true\"> |
pankso@298 | 518 <label>\"<b>Tools:</b>\"</label> |
pankso@298 | 519 </text> |
pankso@298 | 520 <button> |
pankso@298 | 521 <input file icon=\"computer\"></input> |
pankso@298 | 522 <label>Auto detect devices</label> |
pankso@298 | 523 <action>tazhw box</action> |
pankso@298 | 524 <action>refresh:ESSID_LIST</action> |
pankso@298 | 525 </button>" |
pankso@298 | 526 # Display firmware stuff, tazndisbox button if installed and close |
pankso@298 | 527 # tab + notebook |
pankso@298 | 528 if [ -x /usr/bin/tazndisbox ]; then |
pankso@298 | 529 WIFI_DIALOG=${WIFI_DIALOG}" |
pankso@298 | 530 <button> |
pankso@298 | 531 <input file icon=\"system-installer\"></input> |
pankso@298 | 532 <label>Install Windows driver</label> |
pankso@298 | 533 <action>tazndisbox</action> |
pankso@298 | 534 <action>refresh:ESSID_LIST</action> |
pankso@298 | 535 </button>" |
pankso@298 | 536 fi |
pankso@298 | 537 WIFI_DIALOG=${WIFI_DIALOG}" |
pankso@298 | 538 </hbox> |
pankso@298 | 539 <hbox> |
pankso@298 | 540 <text use-markup=\"true\"> |
pankso@298 | 541 <label>\"<b>Module:</b>\"</label> |
pankso@298 | 542 </text> |
pankso@298 | 543 <combobox> |
pankso@298 | 544 <variable>MODULE</variable>" |
pankso@298 | 545 WIFI_DIALOG="${WIFI_DIALOG}$(find /lib/modules/$(uname -r)/kernel/drivers/net/wireless -type f 2> /dev/null | sed 's,/.*/\(.*\).ko.*,<item>\1</item>,')" |
pankso@298 | 546 WIFI_DIALOG=${WIFI_DIALOG}' |
pankso@298 | 547 </combobox> |
pankso@298 | 548 <button> |
pankso@298 | 549 <label>Load</label> |
pankso@298 | 550 <input file icon="forward"></input> |
pankso@298 | 551 <action>modprobe $MODULE</action> |
pankso@298 | 552 </button> |
pankso@298 | 553 <button> |
pankso@298 | 554 <label>Unload</label> |
pankso@298 | 555 <input file icon="undo"></input> |
pankso@298 | 556 <action>modprobe -r $MODULE</action> |
pankso@298 | 557 </button> |
pankso@298 | 558 <button> |
pankso@298 | 559 <label>Lsmod</label> |
pankso@298 | 560 <input file icon="computer"></input> |
pankso@298 | 561 <action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -geometry 80x25 -title "Modules (q to quit)" -e "lsmod | less"</action> |
pankso@298 | 562 </button> |
pankso@298 | 563 </hbox>' |
pankso@298 | 564 # Firmware stuff. |
pankso@298 | 565 tmp=$(for i in /usr/bin/get*firmware; do |
pankso@298 | 566 [ -x $i ] || continue |
pankso@298 | 567 [ "$i" = "/usr/bin/get-wifi-firmware" ] && continue |
pankso@298 | 568 [ -d /var/lib/tazpkg/installed/${i#/usr/bin/get-} ] && continue |
pankso@298 | 569 echo "<item>${i#/usr/bin/get-}</item>"; done) |
pankso@298 | 570 [ -n "$tmp" ] && tmp=" |
pankso@298 | 571 <hbox> |
pankso@298 | 572 <text use-markup=\"true\"> |
pankso@298 | 573 <label>\"<b>Firmware:</b>\"</label> |
pankso@298 | 574 </text> |
pankso@298 | 575 <combobox><variable>FIRMWARE</variable>$tmp</combobox> |
pankso@298 | 576 <button> |
pankso@298 | 577 <label>Install</label> |
pankso@298 | 578 <input file icon=\"go-jump\"></input> |
pankso@298 | 579 <action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -geometry 80x25 -title \"Install \$FIRMWARE\" -e \"get-\$FIRMWARE\"</action> |
pankso@298 | 580 <action>refresh:ESSID_LIST</action> |
pankso@298 | 581 </button> |
pankso@298 | 582 <button> |
pankso@298 | 583 <input file icon=\"system-file-manager\"></input> |
pankso@298 | 584 <label>List files</label> |
pankso@298 | 585 <action>xterm -fa MiscFixed -fs 11 -bg gray93 -fg black -geometry 100x25 -title \"Firmware files (q to quit)\" -e \"find /lib/firmware -exec ls -ld {} \; | less\"</action> |
pankso@298 | 586 <action>refresh:ESSID_LIST</action> |
pankso@298 | 587 </button> |
pankso@298 | 588 </hbox>" |
pankso@298 | 589 |
pankso@298 | 590 # Bottom buttons |
pankso@298 | 591 export WIFI_DIALOG=${WIFI_DIALOG}${tmp}" |
pankso@298 | 592 </vbox> |
pankso@298 | 593 </notebook> |
pankso@298 | 594 <hbox> |
pankso@298 | 595 <button> |
pankso@298 | 596 <label>Stop connection</label> |
pankso@298 | 597 <input file icon=\"stop\"></input> |
pankso@298 | 598 <action>$0 stop_wifi_connexion</action> |
pankso@298 | 599 <action>refresh:ESSID_LIST</action> |
pankso@298 | 600 </button> |
pankso@298 | 601 <button> |
pankso@298 | 602 <label>Exit</label> |
pankso@298 | 603 <input file icon=\"exit\"></input> |
pankso@298 | 604 <action type=\"exit\">Exit</action> |
pankso@298 | 605 </button> |
pankso@298 | 606 </hbox> |
pankso@298 | 607 |
pankso@298 | 608 </vbox> |
pankso@298 | 609 </window>" |
pankso@298 | 610 gtkdialog --center --program=WIFI_DIALOG >/dev/null 2>&1 |
pankso@298 | 611 } |
pankso@298 | 612 |
pankso@298 | 613 if [ -n "$1" ]; then |
pankso@298 | 614 $1 |
pankso@298 | 615 else |
pankso@298 | 616 box |
pankso@298 | 617 fi |
pankso@298 | 618 |
pankso@298 | 619 exit 0 |