From 68bad271f91fc8f332d852bb57b0f64868bf43fc Mon Sep 17 00:00:00 2001 From: JaKooLit Date: Mon, 17 Feb 2025 14:31:13 +0900 Subject: updated wlogout logic and quick edit menu --- config/hypr/UserScripts/QuickEdit.sh | 39 ++++++++-------- config/hypr/scripts/Wlogout.sh | 88 ++++++++++++++++++------------------ config/rofi/config-edit.rasi | 2 +- 3 files changed, 64 insertions(+), 65 deletions(-) (limited to 'config') 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 < /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') + +# 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 -# Set parameters based on screen resolution and scaling factor +# 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"]; } -- cgit v1.2.3