Add files via upload

This commit is contained in:
churchy 2024-07-19 05:57:02 +03:00 committed by GitHub
parent 2238ea51b3
commit 257e95abe8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -0,0 +1,88 @@
#!/bin/bash
# Function to get the current resolution
get_current_resolution() {
local output
output=$(hyprctl monitors -j)
local width height refreshRate
width=$(echo "$output" | jq -r '.[0].width')
height=$(echo "$output" | jq -r '.[0].height')
refreshRate=$(echo "$output" | jq -r '.[0].refreshRate')
echo "$width $height $refreshRate"
}
# Function to update the Hyprland configuration with the new resolution
update_resolution_config() {
local newWidth="$1"
local newHeight="$2"
local newRefreshRate="$3"
local currentRes
currentRes=$(get_current_resolution)
local width height refreshRate
width=${newWidth:-$(echo "$currentRes" | awk '{print $1}')}
height=${newHeight:-$(echo "$currentRes" | awk '{print $2}')}
refreshRate=${newRefreshRate:-$(echo "$currentRes" | awk '{print $3}')}
local modelineOutput
modelineOutput=$(gtf "$width" "$height" "$refreshRate")
local modeline
modeline=$(echo "$modelineOutput" | grep -oP 'Modeline "\K[^"]+')
if [ -z "$modeline" ]; then
echo "Failed to generate modeline"
exit 1
fi
local configPath="${HOME}/.config/hypr/hyprland/general.conf"
local newConfigContent
newConfigContent=$(sed "s/^monitor=.*$/monitor=eDP-1, $modeline, auto, 1/" "$configPath")
echo "$newConfigContent" > "$configPath"
}
# Main script
echo "Welcome to the Resolution Configurator"
echo ""
echo " +---------------------------+"
echo " | _____ |"
echo " | | | |"
echo " | | | |"
echo " | |_____| |"
echo " | |"
echo " +---------------------------+"
echo ""
echo "Current resolution and refresh rate:"
currentRes=$(get_current_resolution)
width=$(echo "$currentRes" | awk '{print $1}')
height=$(echo "$currentRes" | awk '{print $2}')
refreshRate=$(echo "$currentRes" | awk '{print $3}')
echo "Width: $width px"
echo "Height: $height px"
echo "Refresh Rate: $refreshRate Hz"
echo ""
read -p "Enter new width (or press Enter to keep current width): " newWidth
read -p "Enter new height (or press Enter to keep current height): " newHeight
read -p "Enter new refresh rate (or press Enter to keep current refresh rate): " newRefreshRate
# Validate inputs (if provided)
if [[ ! "$newWidth" =~ ^[0-9]+$ && -n "$newWidth" ]]; then
echo "Invalid width value."
exit 1
fi
if [[ ! "$newHeight" =~ ^[0-9]+$ && -n "$newHeight" ]]; then
echo "Invalid height value."
exit 1
fi
if [[ ! "$newRefreshRate" =~ ^[0-9]+$ && -n "$newRefreshRate" ]]; then
echo "Invalid refresh rate value."
exit 1
fi
update_resolution_config "$newWidth" "$newHeight" "$newRefreshRate"
echo "Resolution updated successfully."