feat: Add some more scripts

This commit is contained in:
Nathan Woodburn 2024-10-14 20:19:00 +11:00
parent fd41590ca9
commit 29cafac682
Signed by: nathanwoodburn
GPG Key ID: 203B000478AD0EF1
4 changed files with 175 additions and 3 deletions

83
bt.sh Executable file
View File

@ -0,0 +1,83 @@
#!/bin/bash
# Check if first arg is colour
if [ "$1" = "colour" ]; then
RED='%{F#ff0000}'
GREEN='%{F#ff60d090}'
YELLOW='%{F#ffff00}'
BLUE='%{F#33fdfefe}'
NC='%{F-}'
else
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
fi
# Check if Bluetooth is powered on
bluetooth_status=$(bluetoothctl show | grep "Powered:" | awk '{print $2}')
if [ "$bluetooth_status" == "yes" ]; then
# Check if toggle is passed
if [ "$#" -eq 1 ] && [ "$1" = "toggle" ]; then
echo "Disabling Bluetooth"
bluetoothctl power off
exit 0
fi
# Check if any devices are connected
connected_devices=$(bluetoothctl devices Connected | grep Device | cut -d ' ' -f 2)
if [ -z "$connected_devices" ]; then
# No devices connected, show disconnected icon
echo -en "${GREEN}󰂯${NC}"
else
# Devices are connected, show connected icon
echo -en "${GREEN}󰂱${NC}"
# Loop through the connected devices
for device in $connected_devices; do
# Get the device info
device_info=$(bluetoothctl info "$device")
device_battery_percent=$(echo "$device_info" | grep "Battery Percentage" | awk -F'[()]' '{print $2}')
device_battery_icon=""
device_output=""
device_name=$(echo "$device_info" | grep "Alias" | cut -d ' ' -f 2-)
if [ -z "$device_name" ]; then
device_name=$(echo "$device_info" | grep "Name" | cut -d ' ' -f 2-)
if [ -z "$device_name" ]; then
device_name="Unknown Device"
fi
fi
if [ -n "$device_battery_percent" ]; then
if [ "$device_battery_percent" -gt 90 ]; then
device_battery_icon="${GREEN}"
elif [ "$device_battery_percent" -gt 60 ]; then
device_battery_icon="${GREEN}"
elif [ "$device_battery_percent" -gt 35 ]; then
device_battery_icon="${YELLOW}"
elif [ "$device_battery_percent" -gt 15 ]; then
device_battery_icon="${YELLOW}"
else
device_battery_icon="${RED}"
fi
device_output="$device_battery_icon $device_battery_percent%${NC}"
fi
# Print the device info
echo -en " $device_name ($device_output)"
done
fi
else
# Check if toggle is passed
if [ "$#" -eq 1 ] && [ "$1" = "toggle" ]; then
echo "Enabling Bluetooth"
bluetoothctl power on
exit 0
fi
echo -en "${RED}󰂲${NC}"
fi

24
message.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/bash
message() {
if tty -s; then
echo "$1" >/tmp/message
else
# Get from pipe
cat >/tmp/message
fi
output=$(polybar-msg action message hook 0)
# Check if the output contains Successfully
if [[ $output == *"Successfully"* ]]; then
echo "Message sent successfully"
else
echo "Error sending message"
fi
}
# Call the copy function with the provided arguments or from a pipe
if [ -t 0 ]; then
message "$@"
else
message
fi

View File

@ -50,6 +50,9 @@ brave=""
# Loop through each player and check its status
for player in $players; do
if [ "$verbose" -eq 1 ]; then
echo "Checking player $player"
fi
status=$(playerctl -p "$player" status 2>/dev/null)
# Check if player name contains brave
if [[ "$player" == *"brave"* ]]; then
@ -60,6 +63,9 @@ for player in $players; do
fi
if [[ "$status" == "Playing" || "$status" == "Paused" ]]; then
if [[ $verbose -eq 1 ]]; then
echo "Player $player is active"
fi
active_players+=("$player:$status")
fi
done
@ -78,6 +84,10 @@ truncate_string() {
# Check how many active players we found
active_count=${#active_players[@]}
if [[ $verbose -eq 1 ]]; then
echo "Active players: $active_count"
fi
if [ "$active_count" -eq 1 ]; then
# If exactly one player is active, print its metadata
IFS=":" read -r player status <<<"${active_players[0]}"
@ -123,7 +133,9 @@ elif [ "$active_count" -gt 1 ]; then
truncated_artist=$(truncate_string "$artist" $MAX_ARTIST_LENGTH)
output+="🎵 $truncated_title [$truncated_artist]"
fi
if [ "$verbose" -eq 1 ]; then
echo "Player $player: $title - $artist"
fi
fi
done
if [ "$playing_count" -eq 1 ]; then
@ -142,8 +154,9 @@ elif [ "$active_count" -gt 1 ]; then
fi
else
brave_status=$(playerctl -p "$brave" status 2>/dev/null)
title=$(playerctl -p "$brave" metadata --format '{{title}}')
artist=$(playerctl -p "$brave" metadata --format '{{artist}}')
title=$(playerctl -p "$brave" metadata --format '{{title}}' 2>/dev/null)
artist=$(playerctl -p "$brave" metadata --format '{{artist}}' 2>/dev/null)
# Print the title and artist
if [ "$verbose" -eq 1 ]; then
echo "Brave is playing"
@ -153,6 +166,11 @@ elif [ "$active_count" -gt 1 ]; then
# Check if artist is empty
if [ -z "$artist" ]; then
if [ -z "$title" ]; then
echo "Multiple players playing"
exit 0
fi
truncated_title=$(truncate_string "$title" $(($MAX_TITLE_LENGTH + $MAX_ARTIST_LENGTH)))
if [ "$brave_status" == "Playing" ]; then
echo "🎵 $truncated_title"

47
ts.sh
View File

@ -10,6 +10,7 @@ if [ "$#" -eq 0 ]; then
echo "List: Lists all nodes"
echo "EN: Exit node (clear)"
echo "EN {node}: Use node"
echo "Short: List info short"
exit 1
fi
@ -24,13 +25,59 @@ if [ "$1" = "en" ]; then
tailscale set --exit-node=
exit 0
fi
if [ "$2" = "toggle" ]; then
output=$(tailscale status | grep "; exit node;")
hostname=$(echo "$output" | awk '{print $2}')
# Check if node is exit node
if [ -z "$hostname" ]; then
tailscale set --exit-node=docker01
else
tailscale set --exit-node=
fi
exit 0
fi
echo "Enabling node $2"
tailscale set --exit-node="$2"
exit 0
fi
if [ "$1" = "short" ]; then
# Check if a third arg is sent
if [ -z "$2" ]; then
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
else
RED='%{F#ff0000}'
GREEN='%{F#ff60d090}'
YELLOW='%{F#ffff00}'
BLUE='%{F#0000ff}'
NC='%{F-}'
fi
# Check if connected
output=$(tailscale status)
if [[ "$output" == *"stopped"* ]]; then
echo -e "${RED}󰕥${NC}"
exit 0
fi
output=$(tailscale status | grep "; exit node;")
hostname=$(echo "$output" | awk '{print $2}')
# Check if node is exit node
if [ -z "$hostname" ]; then
echo -e "${GREEN}󰕥${NC}"
exit 0
fi
echo -e "${BLUE}󰕥${NC} $hostname"
exit 0
fi
echo "Usage: ts [list|en|en {node}]"
echo "List: Lists all nodes"
echo "EN: Exit node (clear)"
echo "EN {node}: Use node"
echo "Short: List info short"
exit 1