Files
hyprland/config/hypr/scripts/Device_cmd.sh
T
2024-01-20 21:48:25 +05:45

155 lines
4.9 KiB
Bash
Executable File

#!/bin/bash
# Source the configuration file.
CONFIG_FILE=~/.config/hypr/scripts/Ref.sh
source "$CONFIG_FILE"
# Toggle touchpad state. (SUPER SHIFT D)
touchpad() {
local status_file="$STATUS_FILE"
local action
if [[ ! -e "$status_file" ]] || ! $(<"$status_file"); then
echo "true" > "$status_file"
action="enabled"
else
echo "false" > "$status_file"
action="disabled"
fi
notify-send -u low -i "$notif" "Touchpad $action"
hyprctl keyword "device:$HYPRLAND_DEVICE:enabled" "$(cat "$status_file")"
}
# Toggle Wifi
wifi() {
wifi="$(nmcli r wifi | awk 'FNR = 2 {print $1}')"
if [ -n "$wifi" ]; then
rfkill block all &
notify-send -u low -i "$notif" 'Airplane mode: OFF'
else
rfkill unblock all &
notify-send -u low -i "$notif" 'Airplane mode: ON'
fi
}
# Reload Waybar, Rofi, Swaync, and Rainbowborder.sh (SHIFT ALT R)
reload() {
file_exists() {
[ -e "$1" ]
}
processes=("waybar" "rofi" "swaync")
for process in "${processes[@]}"; do
pid=$(pidof "$process")
if [ -n "$pid" ]; then
pkill "$process"
fi
done
sleep 0.3
waybar &
sleep 0.5
swaync > /dev/null 2>&1 &
sleep 1
script_path="${UserSCRIPTSDIR}/RainbowBorders.sh"
if file_exists "$script_path"; then
"$script_path" &
fi
}
# LockScreen with swaylock
lockscreen() {
LOCKCONFIG="$HOME/.config/swaylock/config"
sleep 0.5s
swaylock --config ${LOCKCONFIG} &
disown
}
# Switch Keyboard Layout (ALT F1)
kb() {
layout_f="$HOME/.keyboard_layout"
settings_file="$HOME/.config/your_settings_file" # Replace with the actual path
notif="path_to_notification_icon" # Replace with the actual path
if [ ! -f "$layout_f" ]; then
default_layout=$(grep 'kb_layout=' "$settings_file" | cut -d '=' -f 2 | cut -d ',' -f 1 2>/dev/null)
default_layout=${default_layout:-"us"}
echo "$default_layout" > "$layout_f"
fi
current_layout=$(cat "$layout_f")
if [ -f "$settings_file" ]; then
kb_layout_line=$(grep 'kb_layout=' "$settings_file" | cut -d '=' -f 2)
IFS=',' read -ra layout_mapping <<< "$kb_layout_line"
else
layout_mapping=()
fi
layout_count=${#layout_mapping[@]}
for ((i = 0; i < layout_count; i++)); do
[ "$current_layout" == "${layout_mapping[i]}" ] && current_index=$i && break
done
next_index=$(( (current_index + 1) % layout_count ))
new_layout="${layout_mapping[next_index]}"
hyprctl keyword input:kb_layout "$new_layout"
echo "$new_layout" > "$layout_f"
notify-send -u low -i "$notif" "Keyboard Layout Changed to $new_layout"
}
disable_edp1() {
enable_edp1
sleep 1
hyprctl keyword monitor eDP-1,disable
}
enable_edp1() {
hyprctl keyword monitor eDP-1,preferred,auto,1
}
weather() {
city=kohalpur
cachedir=~/.cache/rbn
cachefile=${0##*/}-$1
mkdir -p $cachedir
touch $cachedir/$cachefile
SAVEIFS=$IFS;IFS=$'\n'
cacheage=$(($(date +%s) - $(stat -c '%Y' "$cachedir/$cachefile")))
[ $cacheage -gt 1740 ] || [ ! -s $cachedir/$cachefile ] && {
data=($(curl -s https://en.wttr.in/"$city"$1\?0qnT 2>&1))
for i in {1..2}; do echo ${data[$i]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile; done
}
IFS=$SAVEIFS
weather=($(cat $cachedir/$cachefile))
temperature=$(echo ${weather[2]} | sed -E 's/([[:digit:]]+)\.\./\1 to /g')
case $(echo ${weather[1]##*,} | tr '[:upper:]' '[:lower:]') in
clear|sunny) condition="" ;;
partly\ cloudy) condition="󰖕" ;;
cloudy) condition="" ;;
overcast) condition="" ;;
fog|freezing\ fog) condition="" ;;
patchy\ rain\ possible|patchy\ light\ drizzle|light\ drizzle|patchy\ light\ rain|light\ rain|light\ rain\ shower|mist|rain) condition="󰼳" ;;
moderate\ rain\ at\ times|moderate\ rain|heavy\ rain\ at\ times|heavy\ rain|moderate\ or\ heavy\ rain\ shower|torrential\ rain\ shower|rain\ shower) condition="" ;;
patchy\ snow\ possible|patchy\ sleet\ possible|patchy\ freezing\ drizzle\ possible|freezing\ drizzle|heavy\ freezing\ drizzle|light\ freezing\ rain|moderate\ or\ heavy\ freezing\ rain|light\ sleet|ice\ pellets|light\ sleet\ showers|moderate\ or\ heavy\ sleet\ showers) condition="󰼴" ;;
blowing\ snow|moderate\ or\ heavy\ sleet|patchy\ light\ snow|light\ snow|light\ snow\ showers) condition="󰙿" ;;
blizzard|patchy\ moderate\ snow|moderate\ snow|patchy\ heavy\ snow|heavy\ snow|moderate\ or\ heavy\ snow\ with\ thunder|moderate\ or\ heavy\ snow\ showers) condition="" ;;
thundery\ outbreaks\ possible|patchy\ light\ rain\ with\ thunder|moderate\ or\ heavy\ rain\ with\ thunder|patchy\ light\ snow\ with\ thunder) condition="" ;;
*) condition="" ;;
esac
echo -e "{\"text\":\""$temperature $condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}"
}