20240721
This commit is contained in:
parent
17b03778ac
commit
5f1b118ff3
26 changed files with 164 additions and 160 deletions
|
@ -1,10 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
sites=(
|
||||
'https://chat.mistral.ai'
|
||||
'https://discord.com'
|
||||
'https://gmoker.com'
|
||||
'https://login.microsoftonline.com'
|
||||
'https://maby.dev'
|
||||
'https://web.whatsapp.com'
|
||||
)
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
STEPS=16
|
||||
DIR="$(find /sys/class/backlight/* -print -quit)"
|
||||
FILE=/sys/class/backlight/amdgpu_bl1/brightness
|
||||
STEPS=7196
|
||||
MAX=64764
|
||||
|
||||
CUR="$(cat "$DIR/brightness")"
|
||||
MAX=$(cat "$DIR/max_brightness")
|
||||
CUR="$(< "$FILE")"
|
||||
|
||||
case "$1" in
|
||||
+*|-*) CUR=$(((++CUR / STEPS + $1) * STEPS)) ;;
|
||||
|
@ -18,4 +18,4 @@ elif [ "$CUR" -gt "$MAX" ]; then
|
|||
CUR="$MAX"
|
||||
fi
|
||||
|
||||
echo "$CUR" > "$DIR/brightness"
|
||||
echo "$CUR" > "$FILE"
|
||||
|
|
25
.local/bin/mullvad_update
Executable file
25
.local/bin/mullvad_update
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
{ read -r AN; read -r PRV; } < <(pass mullvad | sed -n '1p; s/^Privkey:\s*//p')
|
||||
|
||||
ADDRESS="$(curl 'https://api.mullvad.net/wg/' \
|
||||
-d "account=$AN" --data-urlencode "pubkey=$(wg pubkey <<< "$PRV")")"
|
||||
|
||||
j="$(curl 'https://api.mullvad.net/app/v1/relays/')"
|
||||
q='.wireguard.relays[] | "\(.hostname) \(.ipv4_addr_in) \(.public_key)"'
|
||||
|
||||
DNS="$(jq -r '.wireguard.ipv4_gateway' <<< "$j")"
|
||||
|
||||
while read -r file endpoint pubkey; do
|
||||
cat <<EOF > "$file.conf"
|
||||
[Interface]
|
||||
PrivateKey = $PRV
|
||||
Address = $ADDRESS
|
||||
DNS = $DNS
|
||||
|
||||
[Peer]
|
||||
PublicKey = $pubkey
|
||||
AllowedIPs = 0.0.0.0/0,::0/0
|
||||
Endpoint = $endpoint:51820
|
||||
EOF
|
||||
done < <(jq -r "$q" <<< "$j")
|
|
@ -7,15 +7,15 @@ scrypto() {
|
|||
}
|
||||
|
||||
scpu() {
|
||||
echo " $(awk '{print $1}' /proc/loadavg)" > cpu
|
||||
awk '{print " "$1}' /proc/loadavg > cpu
|
||||
}
|
||||
|
||||
smemory() {
|
||||
echo " $(free -h | awk '/^Mem:/{print $3}')" > memory
|
||||
free -h | awk '/^Mem:/{print " "$3}' > memory
|
||||
}
|
||||
|
||||
sbat() {
|
||||
local cap; cap="$(cat /sys/class/power_supply/BAT0/capacity)"
|
||||
local cap; cap="$(< /sys/class/power_supply/BAT0/capacity)"
|
||||
|
||||
if grep -qv Discharging /sys/class/power_supply/BAT0/status; then
|
||||
echo " $cap%"
|
||||
|
@ -25,7 +25,7 @@ sbat() {
|
|||
}
|
||||
|
||||
svol() {
|
||||
local st v m vol=('' ' ')
|
||||
local st i v m vol=('' ' ')
|
||||
|
||||
mapfile -t st <<< "$(wpctl status | sed -n 's/.*\*.*\[vol: \(.*\)]/\1/p')"
|
||||
for i in "${!vol[@]}"; do
|
||||
|
@ -34,32 +34,27 @@ svol() {
|
|||
break
|
||||
fi
|
||||
v="${vol[$i]} $((10#${v/./}))"
|
||||
if [ -n "$m" ]; then
|
||||
echo -n "${v//?/&$'\U0336'}"
|
||||
else
|
||||
echo -n "$v"
|
||||
fi
|
||||
echo -n "${v//?/&${m:+$'\U0336'}}"
|
||||
done > vol
|
||||
}
|
||||
|
||||
snet() {
|
||||
local dev j ssid sig
|
||||
local if sig
|
||||
|
||||
dev="$(ip route | grep -oP 'default.*dev\s+\K[^\s]+')"
|
||||
j="$(networkctl status "$dev" --json=short)"
|
||||
case "$(jq -r .Type <<< "$j")" in
|
||||
mapfile -t if < <(networkctl --json=short | jq -r '.Interfaces[] | select(.Routes) | select(.Routes[].Gateway) | .Type, .Name, .SSID')
|
||||
case "${if[0]}" in
|
||||
ether)
|
||||
echo "🌐 $dev"
|
||||
echo "🌐 ${if[1]}"
|
||||
;;
|
||||
wlan)
|
||||
ssid="$(jq -r .SSID <<< "$j")"
|
||||
sig="$(awk "/$dev/{printf \"%.0f\", \$3}" /proc/net/wireless)"
|
||||
if [ "$sig" -gt 56 ]; then echo "▂▄▆█ $ssid"
|
||||
elif [ "$sig" -gt 38 ]; then echo "▂▄▆_ $ssid"
|
||||
elif [ "$sig" -gt 21 ]; then echo "▂▄__ $ssid"
|
||||
elif [ "$sig" -gt 3 ]; then echo "▂___ $ssid"
|
||||
else echo "____ $ssid"
|
||||
sig="$(awk "/${if[1]}/{printf \"%.0f\", \$3}" /proc/net/wireless)"
|
||||
if [ "$sig" -gt 56 ]; then sig='▂▄▆█'
|
||||
elif [ "$sig" -gt 38 ]; then sig='▂▄▆_'
|
||||
elif [ "$sig" -gt 21 ]; then sig='▂▄__'
|
||||
elif [ "$sig" -gt 3 ]; then sig='▂___'
|
||||
else sig='____'
|
||||
fi
|
||||
echo "$sig ${if[2]}"
|
||||
;;
|
||||
*)
|
||||
echo '⚠'
|
||||
|
@ -68,33 +63,33 @@ snet() {
|
|||
}
|
||||
|
||||
svpn() {
|
||||
local v; v="$(ip -br link show type wireguard | awk '{print $1}')"
|
||||
|
||||
if [ -n "$v" ]; then
|
||||
echo " 🔒 $v"
|
||||
fi > vpn
|
||||
ip -br link show type wireguard | awk '{print " 🔒 "$1}' > vpn
|
||||
}
|
||||
|
||||
stz() {
|
||||
local tmp ip; ip="$(ip route | grep -oP '^default.*src\s+\K[^\s]+')"
|
||||
_tz() {
|
||||
local j if f="$XDG_CACHE_HOME/tz"
|
||||
|
||||
if ! [ -s tz ] || [ "$ip" != "$(cat ip)" ]; then
|
||||
tmp="$(curl -s --interface wlan0 'https://ipapi.co/timezone')" \
|
||||
&& echo "$tmp" > tz
|
||||
echo "$ip" > ip
|
||||
mapfile -t if < <(ip -j route show default | jq -r '.[] | .prefsrc, .dev')
|
||||
if ! [ -s "$f" ] || [ "${if[0]}" != "$(< ip)" ]; then
|
||||
echo "${if[0]}" > ip
|
||||
if j="$(curl -s 'https://ipapi.co/json')"; then
|
||||
jq -r '.timezone, "\(.latitude):\(.longitude)"' <<< "$j" > "$f"
|
||||
head -1 "$f"
|
||||
fi
|
||||
else
|
||||
head -1 "$f"
|
||||
fi
|
||||
}
|
||||
|
||||
stime() {
|
||||
TZ="$(cat tz)" date '+%a %m-%d %R%:::z' > 'time'
|
||||
TZ="$(_tz)" date '+%a %m-%d %R%:::z' > 'time'
|
||||
}
|
||||
|
||||
display() {
|
||||
declare -A v
|
||||
for f in *; do
|
||||
local - "$f"="$(cat "$f")"
|
||||
v[$f]=$(< "$f")
|
||||
done
|
||||
# shellcheck disable=SC2154
|
||||
xsetroot -name "$crypto | $cpu | $memory | $vol | $net$vpn | $bat | $time"
|
||||
xsetroot -name "${v[crypto]} | ${v[cpu]} | ${v[memory]} | ${v[vol]} | ${v[net]}${v[vpn]} | ${v[bat]} | ${v[time]}"
|
||||
}
|
||||
|
||||
trap "kill 0" INT
|
||||
|
@ -102,13 +97,13 @@ trap "kill 0" INT
|
|||
mkdir -p "$XDG_RUNTIME_DIR/sbar"
|
||||
cd "$XDG_RUNTIME_DIR/sbar" || exit 1
|
||||
|
||||
(while :; do
|
||||
while :; do
|
||||
scrypto
|
||||
stz
|
||||
sleep 300
|
||||
done &)
|
||||
done &
|
||||
|
||||
(while :; do
|
||||
touch ip
|
||||
while :; do
|
||||
scpu
|
||||
smemory
|
||||
sbat
|
||||
|
@ -117,8 +112,8 @@ done &)
|
|||
svpn
|
||||
stime
|
||||
display
|
||||
sleep $((5 - $(date '+%S') % 5))
|
||||
done &)
|
||||
sleep $((5 - 10#$(date '+%S') % 5))
|
||||
done &
|
||||
|
||||
while read -r _ _ f; do
|
||||
"s$f"
|
||||
|
|
|
@ -1,16 +1,13 @@
|
|||
#!/bin/bash -eu
|
||||
|
||||
getmaxram() {
|
||||
local ram; ram="$(free -g | awk '/^Mem:/{print $2 - 2}')"
|
||||
|
||||
if [ "$ram" -le 2 ]; then ram=2
|
||||
elif [ "$ram" -gt 32 ]; then ram=32; fi
|
||||
echo "${ram}G"
|
||||
}
|
||||
|
||||
ISO="$1"; shift
|
||||
DISK="$HOME/${ISO%.*}.qcow2"
|
||||
MAXMEM="$(getmaxram)"
|
||||
RAM="$(free -g | awk '/^Mem:/{t=$2 / 2; print(t < 2 ? 2 : t)"G"}')"
|
||||
|
||||
if ! [ -f "$ISO" ]; then
|
||||
echo "$ISO does not exist" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! [ -f "$DISK" ]; then (set -x
|
||||
qemu-img create -f qcow2 "$DISK" 64G
|
||||
|
@ -21,13 +18,13 @@ qemu-system-x86_64 \
|
|||
-M q35 \
|
||||
-bios /usr/share/edk2/x64/OVMF.4m.fd \
|
||||
-monitor stdio \
|
||||
-cpu host \
|
||||
-m "2G,maxmem=$MAXMEM" \
|
||||
-smp "$(nproc --ignore 4)" \
|
||||
-m "$RAM" \
|
||||
-vga virtio \
|
||||
-audio pipewire,model=hda \
|
||||
-nic model=virtio-net-pci,type=user \
|
||||
-device qemu-xhci \
|
||||
-object "memory-backend-ram,id=mem,size=2G,share=on" \
|
||||
-object "memory-backend-ram,id=mem,size=$RAM,share=on" \
|
||||
-numa node,memdev=mem \
|
||||
-drive "if=virtio,file=$DISK" \
|
||||
-drive "file=$ISO,media=cdrom,readonly=on" \
|
||||
|
|
|
@ -21,8 +21,10 @@ if [ "$1" != off ]; then
|
|||
CMD=(
|
||||
"basename -s.conf '/etc/wireguard/$1'*.conf > '$d/1'"
|
||||
"inotifywait -e close_write '$d/2'"
|
||||
"up=\"\$(cat '$d/2')\""
|
||||
"[ -z \"\$up\" ] && exit"
|
||||
"${CMD[@]}"
|
||||
"wg-quick up \"\$(cat '$d/2')\""
|
||||
"wg-quick up \"\$up\""
|
||||
)
|
||||
fi
|
||||
|
||||
|
|
|
@ -24,13 +24,8 @@ case "$1" in
|
|||
*) exit 1 ;;
|
||||
esac
|
||||
|
||||
dev="$(getdev "${CLASS,,}")"
|
||||
if [ -n "$dev" ]; then
|
||||
devs="$(getdevs "$CLASS" | grep -v "$dev")"$'\n'"* $dev"
|
||||
else
|
||||
devs="$(getdevs "$CLASS")"
|
||||
read -r id <<< "$(getdevs "$CLASS" | sed "s/^\($(getdev "${CLASS,,}")\)$/* \1/" | dmenu -l 16 | sed 's/* //')"
|
||||
if [ -n "$id" ]; then
|
||||
wpctl set-default "$id"
|
||||
touch "$XDG_RUNTIME_DIR/sbar/vol"
|
||||
fi
|
||||
|
||||
read -r id <<< "$(dmenu -l 16 <<< "$devs" | sed 's/*//')"
|
||||
wpctl set-default "$id"
|
||||
touch "$XDG_RUNTIME_DIR/sbar/vol"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue