diff options
| -rwxr-xr-x | config/hypr/UserScripts/QuickEdit.sh | 39 | ||||
| -rwxr-xr-x | config/hypr/scripts/Wlogout.sh | 86 | ||||
| -rw-r--r-- | config/rofi/config-edit.rasi | 2 |
3 files changed, 63 insertions, 64 deletions
diff --git a/config/hypr/UserScripts/QuickEdit.sh b/config/hypr/UserScripts/QuickEdit.sh index c71fb166..09530881 100755 --- a/config/hypr/UserScripts/QuickEdit.sh +++ b/config/hypr/UserScripts/QuickEdit.sh @@ -10,40 +10,41 @@ tty=kitty configs="$HOME/.config/hypr/configs" UserConfigs="$HOME/.config/hypr/UserConfigs" rofi_theme="~/.config/rofi/config-edit.rasi" +msg=' ⁉️ Choose which config to View or Edit ⁉️' # Function to display the menu options menu() { cat <<EOF -1. View / Edit Env-variables -2. View / Edit Window-Rules -3. View / Edit Startup_Apps -4. View / Edit User-Keybinds -5. View / Edit Monitors -6. View / Edit Laptop-Keybinds -7. View / Edit User-Settings -8. View / Edit Decorations -9. View / Edit Animations -10. View / Edit Workspace-Rules -11. View / Edit Default-Keybinds +1. ENV variables +2. Window Rules +3. Monitors +4. User Keybinds +5. User Settings +6. Startup Apps +7. Decorations +8. Animations +9. Workspace Rules +10. Laptop Keybinds +11. Default Keybinds EOF } # Main function to handle menu selection main() { - choice=$(menu | rofi -i -dmenu -config $rofi_theme | cut -d. -f1) + choice=$(menu | rofi -i -dmenu -config $rofi_theme -mesg "$msg" | cut -d. -f1) # Map choices to corresponding files case $choice in 1) file="$UserConfigs/ENVariables.conf" ;; 2) file="$UserConfigs/WindowRules.conf" ;; - 3) file="$UserConfigs/Startup_Apps.conf" ;; + 3) file="$UserConfigs/Monitors.conf" ;; 4) file="$UserConfigs/UserKeybinds.conf" ;; - 5) file="$UserConfigs/Monitors.conf" ;; - 6) file="$UserConfigs/Laptops.conf" ;; - 7) file="$UserConfigs/UserSettings.conf" ;; - 8) file="$UserConfigs/UserDecorations.conf" ;; - 9) file="$UserConfigs/UserAnimations.conf" ;; - 10) file="$UserConfigs/WorkspaceRules.conf" ;; + 5) file="$UserConfigs/UserSettings.conf" ;; + 6) file="$UserConfigs/Startup_Apps.conf" ;; + 7) file="$UserConfigs/UserDecorations.conf" ;; + 8) file="$UserConfigs/UserAnimations.conf" ;; + 9) file="$UserConfigs/WorkspaceRules.conf" ;; + 10) file="$UserConfigs/Laptops.conf" ;; 11) file="$configs/Keybinds.conf" ;; *) return ;; # Do nothing for invalid choices esac diff --git a/config/hypr/scripts/Wlogout.sh b/config/hypr/scripts/Wlogout.sh index ed3606c5..7659008e 100755 --- a/config/hypr/scripts/Wlogout.sh +++ b/config/hypr/scripts/Wlogout.sh @@ -1,57 +1,55 @@ #!/bin/bash -# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## # wlogout (Power, Screen Lock, Suspend, etc) -# Set variables for parameters. First numbers corresponts to Monitor Resolution -# i.e 2160 means 2160p -A_2160=700 -B_2160=700 -A_1600=650 -B_1600=650 -A_1440=450 -B_1440=450 -A_1080=350 -B_1080=350 -A_720=50 -B_720=50 +# Parameters for screen resolutions +declare -A resolutions=( + [2160]=450 + [1600]=450 + [1440]=450 + [1080]=350 + [720]=175 +) -# Check if wlogout is already running +# Check if wlogout is already running, if so, kill it if pgrep -x "wlogout" > /dev/null; then pkill -x "wlogout" exit 0 fi -# Detect monitor resolution and scaling factor -resolution=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true) | .height / .scale' | awk -F'.' '{print $1}') -hypr_scale=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true) | .scale') +# Detect the current monitor's native resolution and scale +monitor_info=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true)') +# extract some info +resolution=$(echo "$monitor_info" | jq -r '.height') +width=$(echo "$monitor_info" | jq -r '.width') +hypr_scale=$(echo "$monitor_info" | jq -r '.scale') -# Set parameters based on screen resolution and scaling factor +# If hypr_scale >= 1.25 or resolution can't be detected, run wlogout with -b 3 +if [[ -z "$resolution" || ! "$resolution" =~ ^[0-9]+$ || -z "$hypr_scale" || $(awk "BEGIN {exit !($hypr_scale >= 1.25)}") -eq 1 ]]; then + echo "Hypr_scale is greater than or equal to 1.25 or resolution could not be detected, running wlogout with -b 3" + wlogout --protocol layer-shell -b 3 -T 100 -B 100 & + exit 0 +fi + +# Determine the appropriate resolution range and calculate T and B values if ((resolution >= 2160)); then - T_val=$(awk "BEGIN {printf \"%.0f\", $A_2160 * 2160 * $hypr_scale / $resolution}") - B_val=$(awk "BEGIN {printf \"%.0f\", $B_2160 * 2160 * $hypr_scale / $resolution}") - echo "Setting parameters for resolution >= 4k" - wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val & -elif ((resolution >= 1600 && resolution < 2160)); then - T_val=$(awk "BEGIN {printf \"%.0f\", $A_1600 * 1600 * $hypr_scale / $resolution}") - B_val=$(awk "BEGIN {printf \"%.0f\", $B_1600 * 1600 * $hypr_scale / $resolution}") - echo "Setting parameters for resolution >= 2.5k and < 4k" - wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val & -elif ((resolution >= 1440 && resolution < 1600)); then - T_val=$(awk "BEGIN {printf \"%.0f\", $A_1440 * 1440 * $hypr_scale / $resolution}") - B_val=$(awk "BEGIN {printf \"%.0f\", $B_1440 * 1440 * $hypr_scale / $resolution}") - echo "Setting parameters for resolution >= 2k and < 2.5k" - wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val & -elif ((resolution >= 1080 && resolution < 1440)); then - T_val=$(awk "BEGIN {printf \"%.0f\", $A_1080 * 1080 * $hypr_scale / $resolution}") - B_val=$(awk "BEGIN {printf \"%.0f\", $B_1080 * 1080 * $hypr_scale / $resolution}") - echo "Setting parameters for resolution >= 1080p and < 2k" - wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val & -elif ((resolution >= 720 && resolution < 1080)); then - T_val=$(awk "BEGIN {printf \"%.0f\", $A_720 * 720 * $hypr_scale / $resolution}") - B_val=$(awk "BEGIN {printf \"%.0f\", $B_720 * 720 * $hypr_scale / $resolution}") - echo "Setting parameters for resolution >= 720p and < 1080p" - wlogout --protocol layer-shell -b 3 -T $T_val -B $B_val & + res_key=2160 +elif ((resolution >= 1600)); then + res_key=1600 +elif ((resolution >= 1440)); then + res_key=1440 +elif ((resolution >= 1080)); then + res_key=1080 else - echo "Setting default parameters" - wlogout & + res_key=720 fi + +# Calculate T and B values based on selected resolution and scale +T_val=$(awk "BEGIN {printf \"%.0f\", ${resolutions[$res_key]} * $res_key * $hypr_scale / $resolution}") +B_val=$(awk "BEGIN {printf \"%.0f\", ${resolutions[$res_key]} * $res_key * $hypr_scale / $resolution}") + +# Output the resolution setting for debugging purposes +echo "Setting parameters for resolution >= $res_key" + +# Run wlogout with -b 6 and calculated T/B values +wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val &
\ No newline at end of file diff --git a/config/rofi/config-edit.rasi b/config/rofi/config-edit.rasi index 60d18e34..1902ab35 100644 --- a/config/rofi/config-edit.rasi +++ b/config/rofi/config-edit.rasi @@ -6,7 +6,7 @@ /* ---- Mainbox ---- */ mainbox { children: - [ "inputbar", "listview"]; + [ "inputbar", "message", "listview"]; } |
