changed waybar with backup

This commit is contained in:
2025-11-14 11:51:49 -08:00
parent 71d8044079
commit 03439b983e
76 changed files with 2520 additions and 6381 deletions

View File

@@ -1,118 +0,0 @@
#!/usr/bin/env bash
# Robust Monitor Setup with Workspace Assignments
notify-send "Monitor Setup" "Starting configuration..."
# -------------------------------------------------------------------
# Phase 1: Reset State
# -------------------------------------------------------------------
#hyprctl keyword monitor "" # Clear all monitor rules
#hyprctl keyword workspace "" # Clear workspace assignments
#sleep 1
# -------------------------------------------------------------------
# Phase 2: Hardware Detection
# -------------------------------------------------------------------
MONITORS=$(hyprctl monitors -j all)
LAPTOP="eDP-1"
LID_STATE=$(cat /proc/acpi/button/lid/LID0/state | awk '{print $2}')
EXTERNAL_MONITORS=($(echo "$MONITORS" | jq -r '.[] | select(.name != "eDP-1") | .name'))
# -------------------------------------------------------------------
# Phase 3: Configuration
# -------------------------------------------------------------------
# Case 1: No externals - Laptop only
if [ ${#EXTERNAL_MONITORS[@]} -eq 0 ]; then
notify-send "Monitor Setup" "Laptop-only mode"
hyprctl keyword monitor "$LAPTOP,1920x1200@60,0x0,1.5"
sleep 1
# Assign all workspaces to laptop
for ws in {1..10}; do
hyprctl keyword "workspace $ws, monitor:$LAPTOP"
done
# Case 2: Any external monitors
else
# Try to identify known monitors by serial
ULTRAWIDE=$(echo "$MONITORS" | jq -r '.[] | select(.serial == "303NTLE84432") | .name')
STANDARD=$(echo "$MONITORS" | jq -r '.[] | select(.serial == "H4LN801666") | .name')
# Dual monitor setup (known monitors)
if [ -n "$ULTRAWIDE" ] && [ -n "$STANDARD" ]; then
notify-send "Monitor Setup" "Dual monitor mode (Ultrawide + Standard)"
# Configure monitors
hyprctl keyword monitor "$ULTRAWIDE,5120x1440@120,0x1440,1"
sleep 1
hyprctl keyword monitor "$STANDARD,3440x1440@60,840x0,1"
sleep 1
hyprctl dispatch dpms off "$LAPTOP"
# Workspace assignments:
# 1-4 on Ultrawide, 5-10 on Standard
for ws in {1..4}; do
hyprctl keyword "workspace $ws, monitor:$ULTRAWIDE"
hyprctl dispatch moveworkspacetomonitor "$ws $ULTRAWIDE"
done
for ws in {5..9}; do
hyprctl keyword "workspace $ws, monitor:$STANDARD"
hyprctl dispatch moveworkspacetomonitor "$ws $STANDARD"
done
hyprctl keyword "workspace 10, monitor:$LAPTOP"
hyprctl dispatch moveworkspacetomonitor "10 $LAPTOP"
# Single external (any monitor)
else
EXT_MON=${EXTERNAL_MONITORS[0]}
notify-send "Monitor Setup" "Single external: $EXT_MON"
# Get max resolution
MAX_RES=$(echo "$MONITORS" | jq -r ".[] | select(.name == \"$EXT_MON\") | .availableModes[0] | \"\(.width)x\(.height)@\(.refreshRate)\"")
# Check lid state
if [ "$LID_STATE" == "closed" ]; then
# Lid closed - only external monitor
notify-send "Monitor Setup" "Lid closed - using external only"
hyprctl dispatch dpms off "$LAPTOP"
hyprctl keyword monitor "$EXT_MON,$MAX_RES,0x0,1"
sleep 1
hyprctl keyword "workspace 10, monitor:$LAPTOP"
hyprctl dispatch moveworkspacetomonitor "10 $LAPTOP"
# Assign all workspaces to external
for ws in {1..9}; do
hyprctl keyword "workspace $ws, monitor:$EXT_MON"
hyprctl dispatch moveworkspacetomonitor "$ws $EXT_MON"
done
else
# Lid open - both monitors
notify-send "Monitor Setup" "Lid open - using laptop + external"
hyprctl keyword monitor "$LAPTOP,1920x1200@60,0x0,1.5"
sleep 1
hyprctl keyword monitor "$EXT_MON,$MAX_RES,1920x0,1"
sleep 1
# Workspace assignments:
# 1-4 on laptop, 5-10 on external
for ws in {1..4}; do
hyprctl keyword "workspace $ws, monitor:$LAPTOP"
hyprctl dispatch moveworkspacetomonitor "$ws $LAPTOP"
done
for ws in {5..10}; do
hyprctl keyword "workspace $ws, monitor:$EXT_MON"
hyprctl dispatch moveworkspacetomonitor "$ws $EXT_MON"
done
fi
fi
fi
# -------------------------------------------------------------------
# Finalization
# -------------------------------------------------------------------
sleep 1
notify-send "Monitor Setup Complete" "Active configuration:\n$(hyprctl monitors)"

View File

@@ -1,60 +0,0 @@
#!/usr/bin/env bash
# Get all monitor info (including disabled)
MONITORS=$(hyprctl monitors -j all)
ALL_MONITORS=$(echo "$MONITORS" | jq -r '.[] | .name')
EXTERNAL_COUNT=$(echo "$ALL_MONITORS" | grep -v "eDP-1" | wc -l)
#echo $MONITORS
#echo $ALL_MONITORS
#echo $EXTERNAL_COUNT
# Case 1: No externals - laptop only
if [[ $EXTERNAL_COUNT -eq 0 ]]; then
hyprctl keyword monitor "eDP-1,1920x1200@60,0x0,1"
exit 0
fi
# Case 2: Single external monitor
if [[ $EXTERNAL_COUNT -eq 1 ]]; then
EXT_MON=$(echo "$ALL_MONITORS" | grep -v "eDP-1")
MODES=$(echo "$MONITORS" | jq -r ".[] | select(.name == \"$EXT_MON\") | .availableModes | join(\" \")")
MAX_RES=$(echo "$MODES" | grep -oE "[0-9]+x[0-9]+@[0-9.]+" | awk -F'[@x]' '{print $1,$2,$3}' | sort -k1,1nr -k2,2nr -k3,3nr | awk '{print $1"x"$2"@"$3}' | head -n1)
hyprctl keyword monitor "eDP-1,1920x1200@60,0x0,1"
hyprctl keyword monitor "$EXT_MON,$MAX_RES,1920x0,1" # Right of laptop
exit 0
fi
# Identify our specific monitors
ULTRAWIDE=""
STANDARD_ULTRAWIDE=""
for MON in $(echo "$ALL_MONITORS"); do
echo $MON
[[ $MON == "eDP-1" ]] && continue
MODES=$(echo "$MONITORS" | jq -r ".[] | select(.name == \"$MON\") | .availableModes | join(\" \")")
echo $MODES
if [[ $MODES =~ "5120x1440" ]]; then
ULTRAWIDE=$MON
echo "Ultrawide = $ULTRAWIDE"
elif [[ $MODES =~ "3440x1440" ]]; then
STANDARD_ULTRAWIDE=$MON
echo "Standard = $STANDARD_ULTRAWIDE"
fi
done
# Case 3: Dual monitor setup (only if we found both our specific monitors)
if [[ -n "$ULTRAWIDE" && -n "$STANDARD_ULTRAWIDE" ]]; then
echo "dual monitors"
hyprctl keyword monitor "eDP-1,disable"
hyprctl keyword monitor "$ULTRAWIDE,5120x1440@120,0x1440,1" # 49" at bottom
hyprctl keyword monitor "$STANDARD_ULTRAWIDE,3440x1440@60,840x0,1" # 34" at top-left
exit 0
fi
# If we get here, it's an unexpected configuration - do nothing
notify-send "Error detecting monitors, no changes"