From 3f18612ee8389cc6a74085dc4af20ec8b789dc98 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 --- README.md | 4 ++ config/hypr/UserConfigs/WindowRules.conf | 5 +- config/hypr/UserScripts/QuickEdit.sh | 39 +++++++------- config/hypr/scripts/Wlogout.sh | 88 ++++++++++++++++---------------- config/rofi/config-edit.rasi | 2 +- copy.sh | 27 +++++++++- 6 files changed, 97 insertions(+), 68 deletions(-) diff --git a/README.md b/README.md index 9a25c63f..a2012af0 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,10 @@ chmod +x upgrade.sh - check out this page [FAQ](https://github.com/JaKooLit/Hyprland-Dots/wiki/FAQ) and [UNSOLVED ISSUES](https://github.com/JaKooLit/Hyprland-Dots/wiki/Known_Issues) +### ‼️ ⁉️ Debian and Ubuntu Users ATTENTION! +- to update your dots, follow [THIS](https://github.com/JaKooLit/Hyprland-Dots/wiki/Install_&_Update#--debian-and-ubuntu-hyprland-dots-updating-notes-) + + #### 🙋 QUESTIONS ?!?! ⁉️ - FAQ! Yes you can use these dotfiles to other distro! Just ensure to install proper packages first! If it makes you feel better, I use same config on my Gentoo:) - QUICK HINT! Click the HINT! Waybar module (note only available in Waybar default and Simple-L [TOP] layout). Can be launched by Keybind `SUPER H` diff --git a/config/hypr/UserConfigs/WindowRules.conf b/config/hypr/UserConfigs/WindowRules.conf index f2f60899..cc31af26 100644 --- a/config/hypr/UserConfigs/WindowRules.conf +++ b/config/hypr/UserConfigs/WindowRules.conf @@ -130,8 +130,9 @@ windowrulev2 = float, class:^(com.heroicgameslauncher.hgl)$, title:negative:(Her windowrulev2 = float, class:^([Ss]team)$, title:negative:^([Ss]team)$ windowrulev2 = float, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*) #windowrulev2 = float, class:(electron), title:(Add Folder to Workspace) -windowrulev2 = float, initialTitle:(Add Folder to Workspace) -windowrulev2 = size 70% 60%, initialTitle:(Add Folder to Workspace) +windowrulev2 = float, title:^(Add Folder to Workspace)$ +windowrulev2 = size 70% 60%, title:^(Add Folder to Workspace)$ +windowrulev2 = center, title:^(Add Folder to Workspace)$ windowrulev2 = float, initialTitle:(Open Files) windowrulev2 = size 70% 60%, initialTitle:(Open Files) 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"]; } diff --git a/copy.sh b/copy.sh index 0127ce2a..5f3919c4 100755 --- a/copy.sh +++ b/copy.sh @@ -30,7 +30,30 @@ if [[ $EUID -eq 0 ]]; then printf "\n%.0s" {1..2} exit 1 fi - + +# Function to print colorful text +print_color() { + printf "%b%s%b\n" "$1" "$2" "$CLEAR" +} + +# Check if dpkg is installed (use to check if Debian or Ubuntu or based distros) +if command -v dpkg &> /dev/null; then + printf "\n%.0s" {1..1} + print_color $WARNING " + █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ + KOOL DOTS version INCOMPATIBLE + █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ + + Debian / Ubuntu detected. Refer to Hyprland-Dots README + For instruction on how to update your KooL Hyprland Dots + + exiting .... + " + printf "\n%.0s" {1..3} + exit 1 +fi + + printf "\n%.0s" {1..1} echo -e "\e[35m ╦╔═┌─┐┌─┐╦ ╔╦╗┌─┐┌┬┐┌─┐ @@ -143,6 +166,7 @@ You need to set it Manually Setting a wrong Keyboard Layout will cause Hyprland to crash If you are not sure, just type ${YELLOW}us${RESET} +${SKYBLUE}You can change later in ~/.config/hypr/UserConfigs/UserSettings.conf${RESET} ${MAGENTA} NOTE:${RESET} • You can also set more than 2 keyboard layouts @@ -190,6 +214,7 @@ You need to set it Manually Setting a wrong Keyboard Layout will cause Hyprland to crash If you are not sure, just type ${YELLOW}us${RESET} +${SKYBLUE}You can change later in ~/.config/hypr/UserConfigs/UserSettings.conf${RESET} ${MAGENTA} NOTE:${RESET} • You can also set more than 2 keyboard layouts -- cgit v1.2.3