aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorJaKooLit <ejhay.games@gmail.com>2025-02-17 14:31:13 +0900
committerJaKooLit <ejhay.games@gmail.com>2025-02-17 14:31:13 +0900
commit68bad271f91fc8f332d852bb57b0f64868bf43fc (patch)
tree195549d4d771d589f594a9d2b698582ffb63c262 /config
parent88cdae74a39fff66d19549a2fcbdddba624d72e4 (diff)
updated wlogout logic and quick edit menu
Diffstat (limited to 'config')
-rwxr-xr-xconfig/hypr/UserScripts/QuickEdit.sh39
-rwxr-xr-xconfig/hypr/scripts/Wlogout.sh86
-rw-r--r--config/rofi/config-edit.rasi2
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"];
}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage