doppler RADAR statusbar module for Americans
This commit is contained in:
parent
afaca0a0b6
commit
2440ad83e9
1 changed files with 206 additions and 0 deletions
206
.local/bin/statusbar/sb-doppler
Executable file
206
.local/bin/statusbar/sb-doppler
Executable file
|
@ -0,0 +1,206 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Show a Doppler RADAR of an American user's preferred location.
|
||||||
|
|
||||||
|
secs=600 # Download a new doppler radar if one hasn't been downloaded in $secs seconds.
|
||||||
|
radarloc="${XDG_CACHE_HOME:-$HOME/.cache}/radar"
|
||||||
|
doppler="${XDG_CACHE_HOME:-$HOME/.cache}/doppler.gif"
|
||||||
|
|
||||||
|
pickloc() { chosen="$(echo "Northeast
|
||||||
|
Southeast
|
||||||
|
PacNorthWest
|
||||||
|
PacSouthWest
|
||||||
|
UpperMissVly
|
||||||
|
SouthMissVly
|
||||||
|
SouthPlains
|
||||||
|
NorthRockies
|
||||||
|
SouthRockies
|
||||||
|
Alaska
|
||||||
|
Carib
|
||||||
|
Hawaii
|
||||||
|
CentGrLakes
|
||||||
|
Conus-Large
|
||||||
|
KABR: Aberdeen, SD
|
||||||
|
KBIS: Bismarck, ND
|
||||||
|
KFTG: Denver/Boulder, CO
|
||||||
|
KDMX: Des Moines, IA
|
||||||
|
KDTX: Detroit, MI
|
||||||
|
KDDC: Dodge City, KS
|
||||||
|
KDLH: Duluth, MN
|
||||||
|
KCYS: Cheyenne, WY
|
||||||
|
KLOT: Chicago, IL
|
||||||
|
KGLD: Goodland, KS
|
||||||
|
KUEX: Hastings, NE
|
||||||
|
KGJX: Grand Junction, CO
|
||||||
|
KGRR: Grand Rapids, MI
|
||||||
|
KMVX: Fargo/Grand Forks, ND
|
||||||
|
KGRB: Green Bay, WI
|
||||||
|
KIND: Indianapolis, IN
|
||||||
|
KJKL: Jackson, KY
|
||||||
|
KARX: La Crosse, WI
|
||||||
|
KILX: Lincoln/Central Illinois, IL
|
||||||
|
KLVX: Louisville, KY
|
||||||
|
KMQT: Marquette
|
||||||
|
KMKX: Milwaukee, WI
|
||||||
|
KMPX: Minneapolis, MN
|
||||||
|
KAPX: Gaylord/Alpena, MI
|
||||||
|
KLNX: North Platte, NE
|
||||||
|
KIWX: N. Webster/Northern, IN
|
||||||
|
KOAX: Omaha, NE
|
||||||
|
KPAH: Paducah, KY
|
||||||
|
KEAX: Pleasant Hill, MO
|
||||||
|
KPUX: Pueblo, CO
|
||||||
|
KDVN: Quad Cities, IA
|
||||||
|
KUDX: Rapid City, SD
|
||||||
|
KRIW: Riverton, WY
|
||||||
|
KSGF: Springfield, MO
|
||||||
|
KLSX: St. LOUIS, MO
|
||||||
|
KFSD: Sioux Falls, IA
|
||||||
|
KTWX: Topeka, KS
|
||||||
|
KICT: Wichita, KS
|
||||||
|
KVWX: Paducah, KY
|
||||||
|
ICAO: Responsible Wfo
|
||||||
|
KLTX: WILMINGTON, NC
|
||||||
|
KCCX: State College/Central, PA
|
||||||
|
KLWX: Sterling, VA
|
||||||
|
KFCX: Blacksburg/Roanoke, VA
|
||||||
|
KRAX: Raleigh/Durham, NC
|
||||||
|
KGYX: Portland, ME
|
||||||
|
KDIX: Mt Holly/Philadelphia, PA
|
||||||
|
KPBZ: Pittsburgh, PA
|
||||||
|
KAKQ: Wakefield, VA
|
||||||
|
KMHX: Morehead City, NC
|
||||||
|
KGSP: Greer/Greenville/Sprtbg, SC
|
||||||
|
KILN: Wilmington/Cincinnati, OH
|
||||||
|
KCLE: Cleveland, OH
|
||||||
|
KCAE: Columbia, SC
|
||||||
|
KBGM: Binghamton, NY
|
||||||
|
KENX: Albany, NY
|
||||||
|
KBUF: Buffalo, NY
|
||||||
|
KCXX: Burlington, VT
|
||||||
|
KCBW: Caribou, ME
|
||||||
|
KBOX: Boston /Taunton, MA
|
||||||
|
KOKX: New York City, NY
|
||||||
|
KCLX: Charleston, SC
|
||||||
|
KRLX: Charleston, WV
|
||||||
|
ICAO: Responsible WFO
|
||||||
|
KBRO: Brownsville, TX
|
||||||
|
KABX: Albuquerque, NM
|
||||||
|
KAMA: Amarillo, TX
|
||||||
|
KFFC: Peachtree City/Atlanta, GA
|
||||||
|
KEWX: Austin/Sanantonio, TX
|
||||||
|
KBMX: Birmingham, AL
|
||||||
|
KCRP: Corpus Christi, TX
|
||||||
|
KFWS: Dallas / Ft. Worth, TX
|
||||||
|
KEPZ: El Paso, TX
|
||||||
|
KHGX: Houston/ Galveston, TX
|
||||||
|
KJAX: Jacksonville, FL
|
||||||
|
KBYX: Key West, FL
|
||||||
|
KMRX: Morristown/knoxville, TN
|
||||||
|
KLBB: Lubbock, TX
|
||||||
|
KLZK: Little Rock, AR
|
||||||
|
KLCH: Lake Charles, LA
|
||||||
|
KOHX: Nashville, TN
|
||||||
|
KMLB: Melbourne, FL
|
||||||
|
KNQA: Memphis, TN
|
||||||
|
KAMX: Miami, FL
|
||||||
|
KMAF: Midland/odessa, TX
|
||||||
|
KTLX: Norman, OK
|
||||||
|
KHTX: Huntsville, AL
|
||||||
|
KMOB: Mobile, AL
|
||||||
|
KTLH: Tallahassee, FL
|
||||||
|
KTBW: Tampa Bay Area, FL
|
||||||
|
KSJT: San Angelo, TX
|
||||||
|
KINX: Tulsa, OK
|
||||||
|
KSRX: Tulsa, OK
|
||||||
|
KLIX: New Orleans/slidell, LA
|
||||||
|
KDGX: Jackson, MS
|
||||||
|
KSHV: Shreveport, LA
|
||||||
|
ICAO: Responsible WFO
|
||||||
|
KLGX: Seattle / Tacoma, WA
|
||||||
|
KOTX: Spokane, WA
|
||||||
|
KEMX: Tucson, AZ
|
||||||
|
KYUX: Phoenix, AZ
|
||||||
|
KNKX: San Diego, CA
|
||||||
|
KMUX: Monterey/san Francisco, CA
|
||||||
|
KHNX: San Joaquin/hanford, CA
|
||||||
|
KSOX: San Diego, CA
|
||||||
|
KATX: Seattle / Tacoma, WA
|
||||||
|
KIWA: Phoenix, AZ
|
||||||
|
KRTX: Portland, OR
|
||||||
|
KSFX: Pocatello, ID
|
||||||
|
KRGX: Reno, NV
|
||||||
|
KDAX: Sacramento, CA
|
||||||
|
KMTX: Salt Lake City, UT
|
||||||
|
KPDT: Pendleton, OR
|
||||||
|
KMSX: Missoula, MT
|
||||||
|
KESX: Las Vegas, NV
|
||||||
|
KVTX: Los Angeles, CA
|
||||||
|
KMAX: Medford, OR
|
||||||
|
KFSX: Flagstaff, AZ
|
||||||
|
KGGW: Glasgow, MT
|
||||||
|
KLRX: Elko, NV
|
||||||
|
KBHX: Eureka, CA
|
||||||
|
KTFX: Great Falls, MT
|
||||||
|
KCBX: Boise, ID
|
||||||
|
KBLX: Billings, MT
|
||||||
|
KICX: Salt Lake City, UT
|
||||||
|
ICAO: Responsible Wfo W/ MSCF
|
||||||
|
PABC: Anchorage, AK
|
||||||
|
PAPD: Fairbanks, AK
|
||||||
|
PHKM: Honolulu, HI
|
||||||
|
PAHG: Anchorage, AK
|
||||||
|
PAKC: Anchorage, AK
|
||||||
|
PAIH: Anchorage, AK
|
||||||
|
PHMO: Honolulu, HI
|
||||||
|
PAEC: Fairbanks, AK
|
||||||
|
TJUA: San Juan, PR
|
||||||
|
PACG: Juneau, AK
|
||||||
|
PHKI: Honolulu, HI
|
||||||
|
PHWA: Honolulu, HI
|
||||||
|
ICAO: Responsible Wfo W/ MSCF
|
||||||
|
KFDR: Norman, OK
|
||||||
|
PGUA: Guam
|
||||||
|
KBBX: Sacramento, CA
|
||||||
|
KFDX: Albuquerque, NM
|
||||||
|
KGWX: Jackson, MS
|
||||||
|
KDOX: Wakefield, VA
|
||||||
|
KDYX: San Angelo, TX
|
||||||
|
KEYX: Las Vegas, NV
|
||||||
|
KEVX: Mobile, AL
|
||||||
|
KHPX: Paducah, KY
|
||||||
|
KTYX: Burlington, VT
|
||||||
|
KGRK: Dallas / Ft. Worth, TX
|
||||||
|
KPOE: Lake Charles, LA
|
||||||
|
KEOX: Tallahassee, FL
|
||||||
|
KHDX: El Paso, TX
|
||||||
|
KDFX: San Antonio, TX
|
||||||
|
KMXX: Birmingham, AL
|
||||||
|
KMBX: Bismarck, ND
|
||||||
|
KVAX: Jacksonville, FL
|
||||||
|
KJGX: Peachtree City/atlanta, GA
|
||||||
|
KVNX: Norman, OK
|
||||||
|
KVBX: Vandenberg Afb: Orcutt, CA" | dmenu -r -i -l 50 -p "Select a National Weather Service radar to use as default:" | sed "s/:.*//" | tr "[:lower:]" "[:upper:]")"
|
||||||
|
|
||||||
|
# Sanity check of selection and ensure user did not escape.
|
||||||
|
echo "$chosen" | grep -q "^[A-Z]\+$" && echo "$chosen" > "$radarloc" ;}
|
||||||
|
|
||||||
|
getdoppler() {
|
||||||
|
loc="$(cat "$radarloc")"
|
||||||
|
notify-send "🌦️ Doppler RADAR" "Pulling most recent Doppler RADAR for $loc."
|
||||||
|
curl -sL "https://radar.weather.gov/ridge/lite/${loc}_loop.gif" > "$doppler" ;}
|
||||||
|
|
||||||
|
showdoppler() { setsid -f mpv --no-osc --loop=inf --no-terminal "$doppler" ;}
|
||||||
|
|
||||||
|
case $BLOCK_BUTTON in
|
||||||
|
1) [ ! -f "$radarloc" ] && pickloc && getdoppler
|
||||||
|
[ $(($(date '+%s') - $(stat -c %Y "$doppler"))) -gt "$secs" ] && getdoppler
|
||||||
|
showdoppler ;;
|
||||||
|
2) pickloc && getdoppler && showdoppler ;;
|
||||||
|
3) notify-send "🗺️ Doppler RADAR module" "\- Left click for local Doppler RADAR.
|
||||||
|
- Middle click to update change RADAR location.
|
||||||
|
After $secs seconds, new clicks will also automatically update the doppler RADAR." ;;
|
||||||
|
6) "$TERMINAL" -e "$EDITOR" "$0" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo 🗺️
|
Loading…
Reference in a new issue