diff --git a/.config/i3blocks/config b/.config/i3blocks/config index dd958b7..0438d1a 100644 --- a/.config/i3blocks/config +++ b/.config/i3blocks/config @@ -1,22 +1,39 @@ -#[click] -#full_text=Click me! -#command=echo "Got clicked with button $button" -#color=#F79494 +command=~/.scripts/blocks/$BLOCK_NAME +separator_block_width=15 +markup=none -# Update hour every 15 mins -[weather] -command=curl -Ss 'https://wttr.in?0&T&Q&M' | cut -c 16- | head -2 | xargs echo -interval=900 -color=#A4C2F4 - -# # Query my default IP address only on startup -[ip] -command=hostname -i | awk '{ print "IP:" $1 }' -interval=once -color=#91E78B - -# # Update time every 1 seconds -[time] -command=date +%T +[volume] +label=πŸ”Š +command=pactl list sinks | grep -e Volume: | head -n 1 | sed -r 's/.* ([0-9]+%).*/\1/' +color=#A8DFEA interval=1 +[media] +label=🎡 +color=#D5A3F7 +interval=1 + +[weather] +command=curl -Ss 'https://wttr.in/?M&format=1' +color=#A4C2F4 +interval=900 + +[ip] +label=πŸ–₯️ +command=hostname -i | awk '{ print $1 }' +color=#b0ecf2 +interval=once + +[date] +label=πŸ“… +command=date "+%a %D" +color=#e4cbf4 +interval=60 + +# Update time every 1 seconds +[time] +label=πŸ•• +command=date "+%H:%M" +color=#A4C2F4 +interval=60 + diff --git a/.config/i3status/config b/.config/i3status/config new file mode 100644 index 0000000..00ab589 --- /dev/null +++ b/.config/i3status/config @@ -0,0 +1,32 @@ +# i3status configuration file +# see "man i3status" for documentation. + +general { + colors = true + color_good = "#BBBBBB" + color_bad = "#CC1616" + color_degraded = "#55858E" + interval = 2 +} + +order += "volume master" +order += "cpu_usage" +order += "tztime local" + +volume master { +# format = " β™ͺ: %volume " + device = "default" + mixer = "Master" + mixer_idx = 0 + # termsyn font + format = " β™ͺ: %volume " +} + +cpu_usage { + format = " CPU: %usage " +} + + +tztime local { + format = " %h-%d %H:%M " +} diff --git a/.config/tmux/.tmux.conf b/.config/tmux/.tmux.conf index 1b28c8b..822263b 100644 --- a/.config/tmux/.tmux.conf +++ b/.config/tmux/.tmux.conf @@ -8,7 +8,7 @@ set -ga terminal-overrides ",*256col*:Tc" set -g "window-style" "bg=default" set -g "window-active-style" "bg=default" -set -g mouse +setw -g mouse # reload config file (change file location to your the tmux.conf you want to use) bind r source-file ~/.config/tmux/.tmux.conf diff --git a/.scripts/blocks/media b/.scripts/blocks/media new file mode 100755 index 0000000..3ea02f9 --- /dev/null +++ b/.scripts/blocks/media @@ -0,0 +1,5 @@ +#!/bin/bash + +pactl list | grep -e media.name | grep -v -e recStream -e playStream | tail -n 1 | \ + sed -r 's/.*"(.*)".*/\1/' + diff --git a/.scripts/statusbar/sb-battery b/.scripts/statusbar/sb-battery deleted file mode 100644 index 93cbe08..0000000 --- a/.scripts/statusbar/sb-battery +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh - -# Prints all batteries, their percentage remaining and an emoji corresponding -# to charge status (πŸ”Œ for plugged up, πŸ”‹ for discharging on battery, etc.). - -case $BLOCK_BUTTON in - 3) notify-send "πŸ”‹ Battery module" "πŸ”‹: discharging -πŸ›‘: not charging -β™»: stagnant charge -πŸ”Œ: charging -⚑: charged -❗: battery very low! -- Scroll to change adjust xbacklight." ;; - 4) xbacklight -inc 10 ;; - 5) xbacklight -dec 10 ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -# Loop through all attached batteries and format the info -for battery in /sys/class/power_supply/BAT?*; do - # If non-first battery, print a space separator. - [ -n "${capacity+x}" ] && printf " " - # Sets up the status and capacity - case "$(cat "$battery/status" 2>&1)" in - "Full") status="⚑" ;; - "Discharging") status="πŸ”‹" ;; - "Charging") status="πŸ”Œ" ;; - "Not charging") status="πŸ›‘" ;; - "Unknown") status="♻️" ;; - *) exit 1 ;; - esac - capacity="$(cat "$battery/capacity" 2>&1)" - # Will make a warn variable if discharging and low - [ "$status" = "πŸ”‹" ] && [ "$capacity" -le 25 ] && warn="❗" - # Prints the info - printf "%s%s%d%%" "$status" "$warn" "$capacity"; unset warn -done && printf "\\n" diff --git a/.scripts/statusbar/sb-clock b/.scripts/statusbar/sb-clock deleted file mode 100644 index d25e8d0..0000000 --- a/.scripts/statusbar/sb-clock +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -clock=$(date '+%I') - -case "$clock" in - "00") icon="πŸ•›" ;; - "01") icon="πŸ•" ;; - "02") icon="πŸ•‘" ;; - "03") icon="πŸ•’" ;; - "04") icon="πŸ•“" ;; - "05") icon="πŸ•”" ;; - "06") icon="πŸ••" ;; - "07") icon="πŸ•–" ;; - "08") icon="πŸ•—" ;; - "09") icon="πŸ•˜" ;; - "10") icon="πŸ•™" ;; - "11") icon="πŸ•š" ;; - "12") icon="πŸ•›" ;; -esac - -case $BLOCK_BUTTON in - 1) notify-send "This Month" "$(cal --color=always | sed "s/..7m//;s/..27m/<\/span><\/b>/")" && notify-send "Appointments" "$(calcurse -d3)" ;; - 2) setsid -f "$TERMINAL" -e calcurse ;; - 3) notify-send "πŸ“… Time/date module" "\- Left click to show upcoming appointments for the next three days via \`calcurse -d3\` and show the month via \`cal\` -- Middle click opens calcurse if installed" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -date "+%Y %b %d (%a) $icon%I:%M%p" diff --git a/.scripts/statusbar/sb-cpu b/.scripts/statusbar/sb-cpu deleted file mode 100644 index 1572b52..0000000 --- a/.scripts/statusbar/sb-cpu +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -case $BLOCK_BUTTON in - 1) notify-send "πŸ–₯ CPU hogs" "$(ps axch -o cmd:15,%cpu --sort=-%cpu | head)\\n(100% per core)" ;; - 2) setsid -f "$TERMINAL" -e htop ;; - 3) notify-send "πŸ–₯ CPU module " "\- Shows CPU temperature. -- Click to show intensive processes. -- Middle click to open htop." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -sensors | awk '/Core 0/ {print "🌑" $3}' diff --git a/.scripts/statusbar/sb-cpubars b/.scripts/statusbar/sb-cpubars deleted file mode 100644 index 297424e..0000000 --- a/.scripts/statusbar/sb-cpubars +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh - -# Module showing CPU load as a changing bars. -# Just like in polybar. -# Each bar represents amount of load on one core since -# last run. - -# Cache in tmpfs to improve speed and reduce SSD load -cache=/tmp/cpubarscache - -case $BLOCK_BUTTON in - 2) setsid -f "$TERMINAL" -e htop ;; - 3) notify-send "πŸͺ¨ CPU load module" "Each bar represents -one CPU core";; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -# id total idle -stats=$(awk '/cpu[0-9]+/ {printf "%d %d %d\n", substr($1,4), ($2 + $3 + $4 + $5), $5 }' /proc/stat) -[ ! -f $cache ] && echo "$stats" > "$cache" -old=$(cat "$cache") -printf "πŸͺ¨" -echo "$stats" | while read -r row; do - id=${row%% *} - rest=${row#* } - total=${rest%% *} - idle=${rest##* } - - case "$(echo "$old" | awk '{if ($1 == id) - printf "%d\n", (1 - (idle - $3) / (total - $2))*100 /12.5}' \ - id="$id" total="$total" idle="$idle")" in - - "0") printf "▁";; - "1") printf "β–‚";; - "2") printf "β–ƒ";; - "3") printf "β–„";; - "4") printf "β–…";; - "5") printf "β–†";; - "6") printf "β–‡";; - "7") printf "β–ˆ";; - "8") printf "β–ˆ";; - esac -done; printf "\\n" -echo "$stats" > "$cache" diff --git a/.scripts/statusbar/sb-disk b/.scripts/statusbar/sb-disk deleted file mode 100644 index e947509..0000000 --- a/.scripts/statusbar/sb-disk +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# Status bar module for disk space -# $1 should be drive mountpoint, otherwise assumed /. - -location=${1:-/} - -[ -d "$location" ] || exit - -case $BLOCK_BUTTON in - 1) notify-send "πŸ’½ Disk space" "$(df -h --output=target,used,size)" ;; - 3) notify-send "πŸ’½ Disk module" "\- Shows used hard drive space. -- Click to show all disk info." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -case "$location" in - "/home"* ) icon="🏠" ;; - "/mnt"* ) icon="πŸ’Ύ" ;; - *) icon="πŸ–₯";; -esac - -printf "%s: %s\n" "$icon" "$(df -h "$location" | awk ' /[0-9]/ {print $3 "/" $2}')" diff --git a/.scripts/statusbar/sb-doppler b/.scripts/statusbar/sb-doppler deleted file mode 100644 index dabf18b..0000000 --- a/.scripts/statusbar/sb-doppler +++ /dev/null @@ -1,260 +0,0 @@ -#!/bin/sh - -# Show a Doppler RADAR of a 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 "US: Northeast -US: Southeast -US: PacNorthWest -US: PacSouthWest -US: UpperMissVly -US: SouthMissVly -US: SouthPlains -US: NorthRockies -US: SouthRockies -US: Alaska -US: Carib -US: Hawaii -US: CentGrLakes -US: Conus-Large -US: KABR: Aberdeen, SD -US: KBIS: Bismarck, ND -US: KFTG: Denver/Boulder, CO -US: KDMX: Des Moines, IA -US: KDTX: Detroit, MI -US: KDDC: Dodge City, KS -US: KDLH: Duluth, MN -US: KCYS: Cheyenne, WY -US: KLOT: Chicago, IL -US: KGLD: Goodland, KS -US: KUEX: Hastings, NE -US: KGJX: Grand Junction, CO -US: KGRR: Grand Rapids, MI -US: KMVX: Fargo/Grand Forks, ND -US: KGRB: Green Bay, WI -US: KIND: Indianapolis, IN -US: KJKL: Jackson, KY -US: KARX: La Crosse, WI -US: KILX: Lincoln/Central Illinois, IL -US: KLVX: Louisville, KY -US: KMQT: Marquette -US: KMKX: Milwaukee, WI -US: KMPX: Minneapolis, MN -US: KAPX: Gaylord/Alpena, MI -US: KLNX: North Platte, NE -US: KIWX: N. Webster/Northern, IN -US: KOAX: Omaha, NE -US: KPAH: Paducah, KY -US: KEAX: Pleasant Hill, MO -US: KPUX: Pueblo, CO -US: KDVN: Quad Cities, IA -US: KUDX: Rapid City, SD -US: KRIW: Riverton, WY -US: KSGF: Springfield, MO -US: KLSX: St. LOUIS, MO -US: KFSD: Sioux Falls, IA -US: KTWX: Topeka, KS -US: KICT: Wichita, KS -US: KVWX: Paducah, KY -US: ICAO: Responsible Wfo -US: KLTX: WILMINGTON, NC -US: KCCX: State College/Central, PA -US: KLWX: Sterling, VA -US: KFCX: Blacksburg/Roanoke, VA -US: KRAX: Raleigh/Durham, NC -US: KGYX: Portland, ME -US: KDIX: Mt Holly/Philadelphia, PA -US: KPBZ: Pittsburgh, PA -US: KAKQ: Wakefield, VA -US: KMHX: Morehead City, NC -US: KGSP: Greer/Greenville/Sprtbg, SC -US: KILN: Wilmington/Cincinnati, OH -US: KCLE: Cleveland, OH -US: KCAE: Columbia, SC -US: KBGM: Binghamton, NY -US: KENX: Albany, NY -US: KBUF: Buffalo, NY -US: KCXX: Burlington, VT -US: KCBW: Caribou, ME -US: KBOX: Boston /Taunton, MA -US: KOKX: New York City, NY -US: KCLX: Charleston, SC -US: KRLX: Charleston, WV -US: ICAO: Responsible WFO -US: KBRO: Brownsville, TX -US: KABX: Albuquerque, NM -US: KAMA: Amarillo, TX -US: KFFC: Peachtree City/Atlanta, GA -US: KEWX: Austin/Sanantonio, TX -US: KBMX: Birmingham, AL -US: KCRP: Corpus Christi, TX -US: KFWS: Dallas / Ft. Worth, TX -US: KEPZ: El Paso, TX -US: KHGX: Houston/ Galveston, TX -US: KJAX: Jacksonville, FL -US: KBYX: Key West, FL -US: KMRX: Morristown/knoxville, TN -US: KLBB: Lubbock, TX -US: KLZK: Little Rock, AR -US: KLCH: Lake Charles, LA -US: KOHX: Nashville, TN -US: KMLB: Melbourne, FL -US: KNQA: Memphis, TN -US: KAMX: Miami, FL -US: KMAF: Midland/odessa, TX -US: KTLX: Norman, OK -US: KHTX: Huntsville, AL -US: KMOB: Mobile, AL -US: KTLH: Tallahassee, FL -US: KTBW: Tampa Bay Area, FL -US: KSJT: San Angelo, TX -US: KINX: Tulsa, OK -US: KSRX: Tulsa, OK -US: KLIX: New Orleans/slidell, LA -US: KDGX: Jackson, MS -US: KSHV: Shreveport, LA -US: ICAO: Responsible WFO -US: KLGX: Seattle / Tacoma, WA -US: KOTX: Spokane, WA -US: KEMX: Tucson, AZ -US: KYUX: Phoenix, AZ -US: KNKX: San Diego, CA -US: KMUX: Monterey/san Francisco, CA -US: KHNX: San Joaquin/hanford, CA -US: KSOX: San Diego, CA -US: KATX: Seattle / Tacoma, WA -US: KIWA: Phoenix, AZ -US: KRTX: Portland, OR -US: KSFX: Pocatello, ID -US: KRGX: Reno, NV -US: KDAX: Sacramento, CA -US: KMTX: Salt Lake City, UT -US: KPDT: Pendleton, OR -US: KMSX: Missoula, MT -US: KESX: Las Vegas, NV -US: KVTX: Los Angeles, CA -US: KMAX: Medford, OR -US: KFSX: Flagstaff, AZ -US: KGGW: Glasgow, MT -US: KLRX: Elko, NV -US: KBHX: Eureka, CA -US: KTFX: Great Falls, MT -US: KCBX: Boise, ID -US: KBLX: Billings, MT -US: KICX: Salt Lake City, UT -US: ICAO: Responsible Wfo W/ MSCF -US: PABC: Anchorage, AK -US: PAPD: Fairbanks, AK -US: PHKM: Honolulu, HI -US: PAHG: Anchorage, AK -US: PAKC: Anchorage, AK -US: PAIH: Anchorage, AK -US: PHMO: Honolulu, HI -US: PAEC: Fairbanks, AK -US: TJUA: San Juan, PR -US: PACG: Juneau, AK -US: PHKI: Honolulu, HI -US: PHWA: Honolulu, HI -US: ICAO: Responsible Wfo W/ MSCF -US: KFDR: Norman, OK -US: PGUA: Guam -US: KBBX: Sacramento, CA -US: KFDX: Albuquerque, NM -US: KGWX: Jackson, MS -US: KDOX: Wakefield, VA -US: KDYX: San Angelo, TX -US: KEYX: Las Vegas, NV -US: KEVX: Mobile, AL -US: KHPX: Paducah, KY -US: KTYX: Burlington, VT -US: KGRK: Dallas / Ft. Worth, TX -US: KPOE: Lake Charles, LA -US: KEOX: Tallahassee, FL -US: KHDX: El Paso, TX -US: KDFX: San Antonio, TX -US: KMXX: Birmingham, AL -US: KMBX: Bismarck, ND -US: KVAX: Jacksonville, FL -US: KJGX: Peachtree City/atlanta, GA -US: KVNX: Norman, OK -US: KVBX: Vandenberg Afb: Orcutt, CA -EU: Europe -EU: GB: Great Brittain -EU: SCAN: Scandinavia -EU: ALPS: The Alps -EU: NL: The Netherlands -EU: DE: Germany -EU: SP: Spain -EU: FR: France -EU: IT: Italy -EU: PL: Poland -EU: GR: Greece -EU: TU: Turkey -EU: RU: Russia -EU: BA: Bahrain -EU: BC: Botswana -EU: SE: Republic of Seychelles -EU: HU: Hungary -EU: UK: Ukraine -AF: AF: Africa -AF: WA: West Africa -AF: ZA: South Africa -AF: DZ: Algeria -AF: CE: Canary Islands -AF: NG: Nigeria -AF: TD: Chad -AF: CG: Democratic Republic of Congo -AF: EG: Egypt -AF: ET: Ethiopia -AF: CM: Cameroon -AF: IS: Israel -AF: LY: Libya -AF: MG: Madagascar -AF: MO: Morocco -AF: BW: Namibia -AF: SA: Saudi Arabia -AF: SO: Somalia -AF: SD: Sudan -AF: TZ: Tanzania -AF: TN: Tunisia -AF: ZM: Zambia -AF: KE: Kenya -AF: AO: Angola" | dmenu -r -i -l 50 -p "Select a radar to use as default:" | tr "[:lower:]" "[:upper:]")" - -# Set continent code and radar code. -continentcode=$(echo "$chosen" | sed "s/:.*//") -radarcode=$(echo "$chosen" | sed "s/..: // ; s/:.*//") - -# Sanity check of selection and ensure user did not escape. -echo "$radarcode" | grep -q "^[A-Z]\+$" && printf "%s,%s\\n" "$continentcode" "$radarcode" > "$radarloc" ;} - -getdoppler() { - cont="$(sed "s/,.*//" "$radarloc")" - loc="$(cut -c 4- "$radarloc")" - notify-send "🌦️ Doppler RADAR" "Pulling most recent Doppler RADAR for $loc." - if [ "$cont" = "US" ] ; then - curl -sL "https://radar.weather.gov/ridge/lite/${loc}_loop.gif" > "$doppler" ; - elif [ "$cont" = "EU" ] ; then - curl -sL "https://api.sat24.com/animated/${loc}/rainTMC/2/" > "$doppler" ; - elif [ "$cont" = "AF" ] ; then - curl -sL "https://api.sat24.com/animated/${loc}/rain/2/" > "$doppler" ; - fi -} - -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 RADAR location. -After $secs seconds, new clicks will also automatically update the doppler RADAR." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -echo πŸ—ΊοΈ diff --git a/.scripts/statusbar/sb-forecast b/.scripts/statusbar/sb-forecast deleted file mode 100644 index 7b8416e..0000000 --- a/.scripts/statusbar/sb-forecast +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -# Displays todays precipication chance (β˜”) and daily low (πŸ₯Ά) and high (🌞). -# Usually intended for the statusbar. - -# If we have internet, get a weather report from wttr.in and store it locally. -# You could set up a shell alias to view the full file in a pager in the -# terminal if desired. This function will only be run once a day when needed. -weatherreport="${XDG_DATA_HOME:-$HOME/.local/share}/weatherreport" -getforecast() { curl -sf "wttr.in/$LOCATION" > "$weatherreport" || exit 1 ;} - -# Some very particular and terse stream manipulation. We get the maximum -# precipitation chance and the daily high and low from the downloaded file and -# display them with coresponding emojis. -showweather() { printf "%s" "$(sed '16q;d' "$weatherreport" | - grep -wo "[0-9]*%" | sort -rn | sed "s/^/β˜”/g;1q" | tr -d '\n')" -sed '13q;d' "$weatherreport" | grep -o "m\\([-+]\\)*[0-9]\\+" | sed 's/+//g' | sort -n -t 'm' -k 2n | sed -e 1b -e '$!d' | tr '\n|m' ' ' | awk '{print " πŸ₯Ά" $1 "Β°","🌞" $2 "Β°"}' ;} - -case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e less -Srf "$weatherreport" ;; - 2) getforecast && showweather ;; - 3) notify-send "🌈 Weather module" "\- Left click for full forecast. -- Middle click to update forecast. -β˜”: Chance of rain/snow -πŸ₯Ά: Daily low -🌞: Daily high" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -# The test if our forcecast is updated to the day. If it isn't download a new -# weather report from wttr.in with the above function. -[ "$(stat -c %y "$weatherreport" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || - getforecast - -showweather diff --git a/.scripts/statusbar/sb-help-icon b/.scripts/statusbar/sb-help-icon deleted file mode 100644 index 8fa4a52..0000000 --- a/.scripts/statusbar/sb-help-icon +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -# The clickable help menu. Middle click to restart wm. - -# If dwm is running, use dwm's readme and restart. -pidof dwm >/dev/null && - READMEFILE=/usr/local/share/dwm/larbs.mom - restartwm() { pkill -HUP dwm ;} || - restartwm() { i3 restart ;} - -case $BLOCK_BUTTON in - 1) groff -mom "${READMEFILE:-${XDG_DATA_HOME:-$HOME/.local/share}/larbs/readme.mom}" -Tpdf | zathura - ;; - 2) restartwm ;; - 3) notify-send "❓ Help module" "\- Left click to open LARBS guide. -- Middle click to refresh window manager." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac; echo "❓" diff --git a/.scripts/statusbar/sb-internet b/.scripts/statusbar/sb-internet deleted file mode 100644 index 94b7da2..0000000 --- a/.scripts/statusbar/sb-internet +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# Show wifi πŸ“Ά and percent strength or πŸ“‘ if none. -# Show 🌐 if connected to ethernet or ❎ if none. -# Show πŸ”’ if a vpn connection is active - -case $BLOCK_BUTTON in - 1) "$TERMINAL" -e nmtui; pkill -RTMIN+4 dwmblocks ;; - 3) notify-send "🌐 Internet module" "\- Click to connect -❌: wifi disabled -πŸ“‘: no wifi connection -πŸ“Ά: wifi connection with quality -❎: no ethernet -🌐: ethernet working -πŸ”’: vpn is active -" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -if grep -xq 'up' /sys/class/net/w*/operstate 2>/dev/null ; then - wifiicon="$(awk '/^\s*w/ { print "πŸ“Ά", int($3 * 100 / 70) "% " }' /proc/net/wireless)" -elif grep -xq 'down' /sys/class/net/w*/operstate 2>/dev/null ; then - grep -xq '0x1003' /sys/class/net/w*/flags && wifiicon="πŸ“‘ " || wifiicon="❌ " -fi - -printf "%s%s%s\n" "$wifiicon" "$(sed "s/down/❎/;s/up/🌐/" /sys/class/net/e*/operstate 2>/dev/null)" "$(sed "s/.*/πŸ”’/" /sys/class/net/tun*/operstate 2>/dev/null)" diff --git a/.scripts/statusbar/sb-iplocate b/.scripts/statusbar/sb-iplocate deleted file mode 100644 index 02adab8..0000000 --- a/.scripts/statusbar/sb-iplocate +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -# Gets your public ip address checks which country you are in and -# displays that information in the statusbar -# -# https://www.maketecheasier.com/ip-address-geolocation-lookups-linux/ - -ifinstalled "geoip" || exit -addr="$(curl ifconfig.me 2>/dev/null)" || exit -grep "flag: " "${XDG_DATA_HOME:-$HOME/.local/share}/larbs/emoji" | grep "$(geoiplookup "$addr" | sed 's/.*, //')" | sed "s/flag: //;s/;.*//" diff --git a/.scripts/statusbar/sb-kbselect b/.scripts/statusbar/sb-kbselect deleted file mode 100644 index f0c923f..0000000 --- a/.scripts/statusbar/sb-kbselect +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -# works on any init system -# requirements: dmenu, xorg-setxkbmap -kb="$(setxkbmap -query | grep -oP 'layout:\s*\K\w+')" || exit 1 - -case $BLOCK_BUTTON in - 1) kb_choice="$(awk '/! layout/{flag=1; next} /! variant/{flag=0} flag {print $2, "- " $1}' /usr/share/X11/xkb/rules/base.lst | dmenu -l 15)" - kb="$(echo "$kb_choice" | awk '{print $3}')" - setxkbmap "$kb" - pkill -RTMIN+30 "${STATUSBAR:-dwmblocks}";; - 3) notify-send "⌨ Keyboard/language module" "$(printf "%s" "\- Current layout: $(setxkbmap -query | grep -oP 'layout:\s*\K\w+')") -- Left click to change keyboard.";; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -echo "$kb" diff --git a/.scripts/statusbar/sb-mailbox b/.scripts/statusbar/sb-mailbox deleted file mode 100644 index 2132184..0000000 --- a/.scripts/statusbar/sb-mailbox +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# Displays number of unread mail and an loading icon if updating. -# When clicked, brings up `neomutt`. - -case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e neomutt ;; - 2) setsid -f mw -Y >/dev/null ;; - 3) notify-send "πŸ“¬ Mail module" "\- Shows unread mail -- Shows πŸ”ƒ if syncing mail -- Left click opens neomutt -- Middle click syncs mail" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -unread="$(find "${XDG_DATA_HOME:-$HOME/.local/share}"/mail/*/[Ii][Nn][Bb][Oo][Xx]/new/* -type f | wc -l 2>/dev/null)" - -pidof mbsync >/dev/null 2>&1 && icon="πŸ”ƒ" - -[ "$unread" = "0" ] && [ "$icon" = "" ] || echo "πŸ“¬$unread$icon" diff --git a/.scripts/statusbar/sb-memory b/.scripts/statusbar/sb-memory deleted file mode 100644 index 01d3daf..0000000 --- a/.scripts/statusbar/sb-memory +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -case $BLOCK_BUTTON in - 1) notify-send "🧠 Memory hogs" "$(ps axch -o cmd:15,%mem --sort=-%mem | head)" ;; - 2) setsid -f "$TERMINAL" -e htop ;; - 3) notify-send "🧠 Memory module" "\- Shows Memory Used/Total. -- Click to show memory hogs. -- Middle click to open htop." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -free --mebi | sed -n '2{p;q}' | awk '{printf ("🧠%2.2fGiB/%2.2fGiB\n", ( $3 / 1024), ($2 / 1024))}' diff --git a/.scripts/statusbar/sb-moonphase b/.scripts/statusbar/sb-moonphase deleted file mode 100644 index fab8b4d..0000000 --- a/.scripts/statusbar/sb-moonphase +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh - -# Shows the current moon phase. - -moonfile="${XDG_DATA_HOME:-$HOME/.local/share}/moonphase" - -[ "$(stat -c %y "$moonfile" 2>/dev/null | cut -d' ' -f1)" = "$(date '+%Y-%m-%d')" ] || - { curl -sf "wttr.in/?format=%m" > "$moonfile" || exit 1 ;} - -icon="$(cat "$moonfile")" - -case "$icon" in - πŸŒ‘) name="New" ;; - πŸŒ’) name="Waxing Crescent" ;; - πŸŒ“) name="First Quarter" ;; - πŸŒ”) name="Waxing Gibbous" ;; - πŸŒ•) name="Full" ;; - πŸŒ–) name="Waning Gibbous" ;; - πŸŒ—) name="Last Quarter" ;; - 🌘) name="Waning Crescent" ;; - *) exit 1 ;; -esac - -echo "${icon-?}" - -case $BLOCK_BUTTON in - 3) notify-send "🌜 Moon phase module" "Displays current moon phase. -- πŸŒ‘: New -- πŸŒ’: Waxing Crescent -- πŸŒ“: First Quarter -- πŸŒ”: Waxing Gibbous -- πŸŒ•: Full -- πŸŒ–: Waning Gibbous -- πŸŒ—: Last Quarter -- 🌘: Waning Crescent" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac diff --git a/.scripts/statusbar/sb-mpdup b/.scripts/statusbar/sb-mpdup deleted file mode 100644 index af81a7d..0000000 --- a/.scripts/statusbar/sb-mpdup +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -# This loop will update the mpd statusbar module whenever a command changes the -# music player's status. mpd must be running on X's start for this to work. - -while : ; do - mpc idle >/dev/null && kill -45 "$(pidof "${STATUSBAR:-dwmblocks}")" || break -done diff --git a/.scripts/statusbar/sb-music b/.scripts/statusbar/sb-music deleted file mode 100644 index 7ea7032..0000000 --- a/.scripts/statusbar/sb-music +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -filter() { mpc | sed "/^volume:/d;s/\\&/&/g;s/\\[paused\\].*/⏸/g;/\\[playing\\].*/d;/^ERROR/Q" | paste -sd ' ' -;} - -pidof -x sb-mpdup >/dev/null 2>&1 || sb-mpdup >/dev/null 2>&1 & - -case $BLOCK_BUTTON in - 1) mpc status | filter ; setsid -f "$TERMINAL" -e ncmpcpp ;; # right click, pause/unpause - 2) mpc toggle | filter ;; # right click, pause/unpause - 3) mpc status | filter ; notify-send "🎡 Music module" "\- Shows mpd song playing. -- ⏸ when paused. -- Left click opens ncmpcpp. -- Middle click pauses. -- Scroll changes track.";; # right click, pause/unpause - 4) mpc prev | filter ;; # scroll up, previous - 5) mpc next | filter ;; # scroll down, next - 6) mpc status | filter ; "$TERMINAL" -e "$EDITOR" "$0" ;; - *) mpc status | filter ;; -esac diff --git a/.scripts/statusbar/sb-nettraf b/.scripts/statusbar/sb-nettraf deleted file mode 100644 index 178f677..0000000 --- a/.scripts/statusbar/sb-nettraf +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# Module showing network traffic. Shows how much data has been received (RX) or -# transmitted (TX) since the previous time this script ran. So if run every -# second, gives network traffic per second. - -case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e bmon ;; - 3) notify-send "🌐 Network traffic module" "πŸ”»: Traffic received -πŸ”Ί: Traffic transmitted" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -update() { - sum=0 - for arg; do - read -r i < "$arg" - sum=$(( sum + i )) - done - cache=/tmp/${1##*/} - [ -f "$cache" ] && read -r old < "$cache" || old=0 - printf %d\\n "$sum" > "$cache" - printf %d\\n $(( sum - old )) -} - -rx=$(update /sys/class/net/[ew]*/statistics/rx_bytes) -tx=$(update /sys/class/net/[ew]*/statistics/tx_bytes) - -printf "πŸ”»%4sB πŸ”Ί%4sB\\n" $(numfmt --to=iec $rx $tx) diff --git a/.scripts/statusbar/sb-news b/.scripts/statusbar/sb-news deleted file mode 100644 index fe701db..0000000 --- a/.scripts/statusbar/sb-news +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -# Displays number of unread news items and an loading icon if updating. -# When clicked, brings up `newsboat`. - -case $BLOCK_BUTTON in - 1) setsid "$TERMINAL" -e newsboat ;; - 2) setsid -f newsup >/dev/null exit ;; - 3) notify-send "πŸ“° News module" "\- Shows unread news items -- Shows πŸ”ƒ if updating with \`newsup\` -- Left click opens newsboat -- Middle click syncs RSS feeds -Note: Only one instance of newsboat (including updates) may be running at a time." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - - cat /tmp/newsupdate 2>/dev/null || echo "$(newsboat -x print-unread | awk '{ if($1>0) print "πŸ“°" $1}')$(cat "${XDG_CONFIG_HOME:-$HOME/.config}"/newsboat/.update 2>/dev/null)" diff --git a/.scripts/statusbar/sb-pacpackages b/.scripts/statusbar/sb-pacpackages deleted file mode 100644 index 37ebed3..0000000 --- a/.scripts/statusbar/sb-pacpackages +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# Displays number of upgradeable packages. -# For this to work, have a `pacman -Sy` command run in the background as a -# cronjob every so often as root. This script will then read those packages. -# When clicked, it will run an upgrade via pacman. -# -# Add the following text as a file in /usr/share/libalpm/hooks/statusbar.hook: -# -# [Trigger] -# Operation = Upgrade -# Type = Package -# Target = * -# -# [Action] -# Description = Updating statusbar... -# When = PostTransaction -# Exec = /usr/bin/pkill -RTMIN+8 dwmblocks # Or i3blocks if using i3. - -case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e sb-popupgrade ;; - 2) notify-send "$(/usr/bin/pacman -Qu)" ;; - 3) notify-send "🎁 Upgrade module" "πŸ“¦: number of upgradable packages -- Left click to upgrade packages -- Middle click to show upgradable packages" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -pacman -Qu | grep -Fcv "[ignored]" | sed "s/^/πŸ“¦/;s/^πŸ“¦0$//g" diff --git a/.scripts/statusbar/sb-tasks b/.scripts/statusbar/sb-tasks deleted file mode 100644 index 586300e..0000000 --- a/.scripts/statusbar/sb-tasks +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# Originally by Andr3as07 -# Some changes by Luke -# Rebuild by Tenyun - -# This block displays the number running background tasks. Requires tsp. - -num=$(tsp -l | awk -v numr=0 -v numq=0 '{if (/running/)numr++; if (/queued/)numq++} END{print numr+numq"("numq")"}') - -# Handle mouse clicks -case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e tsp -l ;; - 3) notify-send "Tasks module" "πŸ€–: number of running/queued background tasks -- Left click opens tsp" ;; # Right click - 2) $EDITOR "$0" ;; # Middle click -esac - -[ "$num" != "0(0)" ] && - echo "πŸ€–$num" diff --git a/.scripts/statusbar/sb-torrent b/.scripts/statusbar/sb-torrent deleted file mode 100644 index 6527005..0000000 --- a/.scripts/statusbar/sb-torrent +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -transmission-remote -l | grep % | - sed " # The letters are for sorting and will not appear. - s/.*Stopped.*/A πŸ›‘/; - s/.*Seeding.*/Z 🌱/; - s/.*100%.*/N βœ…/; - s/.*Idle.*/B πŸ•°οΈ/; - s/.*Uploading.*/L ⬆️/; - s/.*%.*/M ⬇️/" | - sort -h | uniq -c | awk '{print $3 $1}' | paste -sd ' ' - - -case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e tremc ;; - 2) td-toggle ;; - 3) notify-send "🌱 Torrent module" "\- Left click to open tremc. -- Middle click to toggle transmission. -- Shift click to edit script. -Module shows number of torrents: -πŸ›‘: paused -πŸ•°: idle (seeds needed) -πŸ”Ό: uploading (unfinished) -πŸ”½: downloading -βœ…: done -🌱: done and seeding" ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac diff --git a/.scripts/statusbar/sb-volume b/.scripts/statusbar/sb-volume deleted file mode 100644 index 3cfdc45..0000000 --- a/.scripts/statusbar/sb-volume +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh - -# Prints the current volume or πŸ”‡ if muted. - -case $BLOCK_BUTTON in - 1) setsid -f "$TERMINAL" -e pulsemixer ;; - 2) pamixer -t ;; - 4) pamixer --allow-boost -i 1 ;; - 5) pamixer --allow-boost -d 1 ;; - 3) notify-send "πŸ“’ Volume module" "\- Shows volume πŸ”Š, πŸ”‡ if muted. -- Middle click to mute. -- Scroll to change." ;; - 6) "$TERMINAL" -e "$EDITOR" "$0" ;; -esac - -[ $(pamixer --get-mute) = true ] && echo πŸ”‡ && exit - -vol="$(pamixer --get-volume)" - -if [ "$vol" -gt "70" ]; then - icon="πŸ”Š" -elif [ "$vol" -gt "30" ]; then - icon="πŸ”‰" -elif [ "$vol" -gt "0" ]; then - icon="πŸ”ˆ" -else - echo πŸ”‡ && exit -fi - -echo "$icon$vol%"