diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf
index 9cf25b8..04f51cf 100644
--- a/hypr/hyprland.conf
+++ b/hypr/hyprland.conf
@@ -50,6 +50,7 @@ exec-once = waybar & disown
exec-once = librewolf & disown
exec-once = swaync & disown
exec-once = hypridle & disown
+exec-once = seventeenlands & disown
exec-once = ~/.config/hypr/scripts/monitor_setup.sh
exec-once = hyprctl dispatch exec "[workspace 3 silent] signal-desktop"
exec-once = hyprctl dispatch exec "[workspace 3 silent] discord"
@@ -142,9 +143,6 @@ animations {
animation = layersOut, 1, 1.5, linear, fade
animation = fadeLayersIn, 1, 1.79, almostLinear
animation = fadeLayersOut, 1, 1.39, almostLinear
- animation = workspaces, 1, 1.94, almostLinear, fade
- animation = workspacesIn, 1, 1.21, almostLinear, fade
- animation = workspacesOut, 1, 1.94, almostLinear, fade
}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
diff --git a/hypr/scripts/monitor_setup.sh b/hypr/scripts/monitor_setup.sh
index 4474d01..af2b738 100755
--- a/hypr/scripts/monitor_setup.sh
+++ b/hypr/scripts/monitor_setup.sh
@@ -82,10 +82,13 @@ if [ -z "$EXTERNAL" ]; then
notify-send -t 3000 "Monitor Setup" "Laptop-only mode\nUsing: $LAPTOP_RES"
hyprctl keyword monitor "$LAPTOP,$LAPTOP_RES,auto,1"
+ # Wait for monitors to be ready
+ sleep 1
+
for ws in {1..5}; do
hyprctl keyword "workspace $ws,monitor:$LAPTOP" >/dev/null 2>&1
hyprctl dispatch workspace "$ws" >/dev/null 2>&1
- hyprctl dispatch moveworkspacetomonitor "$ws $LAPTOP" 2>/dev/null
+ hyprctl dispatch moveworkspacetomonitor $ws $LAPTOP 2>/dev/null
done
exit 0
fi
@@ -96,15 +99,18 @@ if [ "$LID_STATE" = "open" ]; then
hyprctl keyword monitor "$LAPTOP,$LAPTOP_RES,auto,1"
hyprctl keyword monitor "$EXTERNAL,$EXT_RES,auto,1"
+ # Wait for monitors to be ready
+ sleep 1
+
for ws in {1..3}; do
hyprctl keyword "workspace $ws,monitor:$LAPTOP" >/dev/null 2>&1
hyprctl dispatch workspace "$ws" >/dev/null 2>&1
- hyprctl dispatch moveworkspacetomonitor "$ws $LAPTOP" 2>/dev/null
+ hyprctl dispatch moveworkspacetomonitor $ws $LAPTOP 2>/dev/null
done
for ws in {4..5}; do
hyprctl keyword "workspace $ws,monitor:$EXTERNAL" >/dev/null 2>&1
hyprctl dispatch workspace "$ws" >/dev/null 2>&1
- hyprctl dispatch moveworkspacetomonitor "$ws $EXTERNAL" 2>/dev/null
+ hyprctl dispatch moveworkspacetomonitor $ws $EXTERNAL 2>/dev/null
done
# Case 3: External + closed lid
else
@@ -113,10 +119,13 @@ else
hyprctl keyword monitor "$LAPTOP,disable"
hyprctl keyword monitor "$EXTERNAL,$EXT_RES,0x0,1"
+ # Wait for monitors to be ready
+ sleep 1
+
for ws in {1..5}; do
hyprctl keyword "workspace $ws,monitor:$EXTERNAL" >/dev/null 2>&1
hyprctl dispatch workspace "$ws" >/dev/null 2>&1
- hyprctl dispatch moveworkspacetomonitor "$ws $EXTERNAL" 2>/dev/null
+ hyprctl dispatch moveworkspacetomonitor $ws $EXTERNAL 2>/dev/null
done
fi
diff --git a/waybar/config.jsonc.backup b/waybar/config.jsonc.backup
new file mode 100644
index 0000000..fc9305c
--- /dev/null
+++ b/waybar/config.jsonc.backup
@@ -0,0 +1,489 @@
+{
+ "layer": "top",
+ "position": "top",
+ "mode": "dock",
+ "reload_style_on_change": true,
+ "gtk-layer-shell": true,
+
+ // <<--< Positions >-->>
+
+ "modules-left": [
+ "custom/ws", // window icon
+ "custom/left1",
+
+ "hyprland/workspaces", // workspaces
+ "custom/right1",
+
+ "custom/paddw",
+ "hyprland/window" // window title
+ ],
+
+ "modules-center": [
+ "custom/paddc",
+ "custom/left2",
+ "custom/temperature", // temperature
+
+ "custom/left3",
+ "memory", // memory
+
+ "custom/left4",
+ "cpu", // cpu
+ "custom/leftin1",
+
+ "custom/left5",
+ "custom/distro", // distro icon
+ "custom/right2",
+
+ "custom/rightin1",
+ "idle_inhibitor", // idle inhibitor
+ "clock#time", // time
+ "custom/right3",
+
+ "clock#date", // date
+ "custom/right4",
+
+ "custom/wifi", // wi-fi
+ "custom/wireguard", // wireguard
+ "bluetooth", // bluetooth
+ "custom/update", // system update
+ "custom/right5"
+ ],
+
+ "modules-right": [
+ "mpris", // media info
+
+ "custom/left6",
+ "pulseaudio", // output device
+
+ "custom/left7",
+ "backlight", // brightness
+
+ "custom/left8",
+ "battery", // battery
+
+ "custom/leftin2",
+ "custom/power" // power button
+ ],
+
+ // <<--< Modules >-->>
+
+ "custom/ws": {
+ "exec": "~/.config/waybar/scripts/current-theme.sh",
+ "return-type": "json",
+ "format": " ",
+ "on-click": "~/.config/waybar/scripts/theme-switcher.sh",
+ "min-length": 3,
+ "max-length": 3
+ },
+
+ "hyprland/workspaces": {
+ "on-scroll-up": "hyprctl dispatch workspace -1",
+ "on-scroll-down": "hyprctl dispatch workspace +1",
+ "persistent-workspaces": {
+ "1": [],
+ "2": [],
+ "3": [],
+ "4": [],
+ "5": []
+ }
+ },
+
+ "hyprland/window": {
+ "format": "{}",
+ "tooltip": false,
+ "min-length": 5,
+
+ "rewrite": {
+ // Desktop
+ "":
+ " Hyprland",
+
+ // Terminal
+ "~": " Terminal",
+ "zsh": " Terminal",
+ "kitty": " Terminal",
+
+ "tmux(.*)":
+ " Tmux",
+
+ // Browser
+
+ "(.*)Mozilla Firefox":
+ " Firefox",
+ "(.*) — Mozilla Firefox":
+ " $1",
+
+ "(.*)Zen Browser":
+ " Zen Browser",
+ "(.*) — Zen Browser":
+ " $1",
+
+ // Development
+
+ "(.*) - Visual Studio Code":
+ " $1",
+ "(.*)Visual Studio Code":
+ " Visual Studio Code",
+
+ "nvim":
+ " Neovim",
+ "nvim (.*)":
+ " $1",
+
+ "vim":
+ " Vim",
+ "vim (.*)":
+ " $1",
+
+ // Media
+
+ "(.*)Spotify":
+ " Spotify",
+ "(.*)Spotify Premium":
+ " Spotify Premium",
+
+ "OBS(.*)":
+ " OBS Studio",
+
+ "VLC media player":
+ " VLC Media Player",
+ "(.*) - VLC media player":
+ " $1",
+
+ "(.*) - mpv":
+ " $1",
+
+ "qView": " qView",
+
+ "(.*).jpg": " $1.jpg",
+ "(.*).png": " $1.png",
+ "(.*).svg": " $1.svg",
+
+ // Social
+
+ "vesktop":
+ " Discord",
+
+ "• Discord(.*)": "Discord$1",
+ "(.*)Discord(.*)":
+ " $1Discord$2",
+
+ // Documents
+
+ "ONLYOFFICE Desktop Editors":
+ " OnlyOffice Desktop",
+
+ "(.*).docx":
+ " $1.docx",
+ "(.*).xlsx":
+ " $1.xlsx",
+ "(.*).pptx":
+ " $1.pptx",
+ "(.*).pdf":
+ " $1.pdf",
+
+ // System
+ "Authenticate": " Authenticate"
+ }
+ },
+
+ "custom/temperature": {
+ "exec": "~/.config/waybar/scripts/cpu-temp.sh",
+ "return-type": "json",
+ "format": "{}",
+ "interval": 5,
+ "min-length": 8,
+ "max-length": 8
+ },
+
+ "memory": {
+ "states": {
+ "warning": 75,
+ "critical": 90
+ },
+
+ "format": " {percentage}%",
+ "format-critical": " {percentage}%",
+ "tooltip": false,
+ // "tooltip-format": "Memory Used: {used:0.1f} GB / {total:0.1f} GB",
+ "interval": 5,
+ "min-length": 7,
+ "max-length": 7
+ },
+
+ "cpu": {
+ "format": " {usage}%",
+ "tooltip": false,
+ "interval": 5,
+ "min-length": 6,
+ "max-length": 6
+ },
+
+ "custom/distro": {
+ "format": " ",
+ "tooltip": false
+ },
+
+ "idle_inhibitor": {
+ "format": "{icon}",
+
+ "format-icons": {
+ "activated": " ",
+ "deactivated": " "
+ },
+
+ "tooltip-format-activated": "Presentation Mode",
+ "tooltip-format-deactivated": "Idle Mode",
+ "start-activated": false
+ },
+
+ "clock#time": {
+ "format": "{:%H:%M}",
+ "tooltip": false,
+ // "tooltip-format": "Standard Time: {:%I:%M %p}",
+ "min-length": 6,
+ "max-length": 6
+ },
+
+ "clock#date": {
+ "format": " {:%m-%d}",
+ "tooltip-format": "{calendar}",
+
+ "calendar": {
+ "mode": "month",
+ "mode-mon-col": 6,
+ "weeks-pos": "right",
+ "on-click-right": "mode",
+
+ "format": {
+ "months":
+ "{}",
+ "weekdays":
+ "{}",
+ "today":
+ "{}"
+ }
+ },
+
+ "actions": {
+ "on-click": "mode",
+ "on-click-right": "mode"
+ },
+
+ "min-length": 8,
+ "max-length": 8
+ },
+
+ "custom/wifi": {
+ "exec": "~/.config/waybar/scripts/wifi-status.sh",
+ "return-type": "json",
+ "format": "{}",
+ "on-click": "~/.config/waybar/scripts/wifi-menu.sh",
+ "on-click-right": "kitty --title ' Network Manager TUI' bash -c nmtui",
+ "interval": 1,
+ "min-length": 1,
+ "max-length": 1
+ },
+
+ "custom/wireguard": {
+ "format": "{}",
+ "return-type": "json",
+ "interval": 10,
+ "exec": "~/.config/waybar/scripts/wireguard-status.sh",
+ "tooltip": true
+ },
+
+
+ "bluetooth": {
+ "format": "",
+ "format-disabled": "",
+ "format-connected": "",
+ "format-connected-battery": "",
+
+ "tooltip-format":
+ "{num_connections} connected",
+ "tooltip-format-disabled":
+ "Bluetooth Disabled",
+ "tooltip-format-connected":
+ "{device_enumerate}",
+ "tooltip-format-enumerate-connected":
+ "{device_alias}",
+ "tooltip-format-enumerate-connected-battery":
+ ":: {device_alias}: {device_battery_percentage}%",
+
+ "on-click": "~/.config/waybar/scripts/bluetooth-menu.sh",
+ "on-click-right": "kitty --title ' Bluetooth TUI' bash -c bluetui",
+ "interval": 1,
+ "min-length": 1,
+ "max-length": 1
+ },
+
+ "custom/update": {
+ "exec": "~/.config/waybar/scripts/system-update.sh",
+ "return-type": "json",
+ "format": "{}",
+ "on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
+ "interval": 180,
+ "min-length": 1,
+ "max-length": 1
+ },
+
+ "mpris": {
+ "format": "{player_icon} {title} - {artist}",
+ "format-paused": "{status_icon} {title} - {artist}",
+
+ "player-icons": {
+ "default": " ",
+ "spotify": " ",
+ "firefox": " "
+ },
+ "status-icons": {
+ "paused": "\u200A\u200A\u2009\u2009"
+ },
+
+ "tooltip-format": "Playing: {title} - {artist}",
+ "tooltip-format-paused": "Paused: {title} - {artist}",
+ "min-length": 5,
+ "max-length": 35
+ },
+
+ "pulseaudio": {
+ "format": "{icon} {volume}%",
+ "format-muted": " {volume}%",
+
+ "format-icons": {
+ "default": ["", "", ""],
+ "headphone": "",
+ "headset": ""
+ },
+
+ "tooltip-format": "Device: {desc}",
+ "on-click": "~/.config/waybar/scripts/volume-control.sh -o m",
+ "on-scroll-up": "~/.config/waybar/scripts/volume-control.sh -o i",
+ "on-scroll-down": "~/.config/waybar/scripts/volume-control.sh -o d",
+ "min-length": 6,
+ "max-length": 6
+ },
+
+ "backlight": {
+ "format": "{icon} {percent}%",
+ "format-icons": ["", "", "", "", "", "", "", "", ""],
+ "tooltip": false,
+ "on-scroll-up": "~/.config/waybar/scripts/brightness-control.sh -o i",
+ "on-scroll-down": "~/.config/waybar/scripts/brightness-control.sh -o d",
+ "min-length": 6,
+ "max-length": 6
+ },
+
+ "battery": {
+ "states": {
+ "warning": 20,
+ "critical": 10
+ },
+
+ "format": "{icon} {capacity}%",
+ "format-icons": ["", "", "", "", "", "", "", "", "", ""],
+ "format-charging": " {capacity}%",
+
+ "tooltip-format": "Discharging: {time}",
+ "tooltip-format-charging": "Charging: {time}",
+ "interval": 1,
+ "min-length": 6,
+ "max-length": 6
+ },
+
+ "custom/power": {
+ "format": " ",
+ "tooltip": false,
+ // "tooltip-format": "Power Menu",
+ "on-click": "~/.config/waybar/scripts/power-menu.sh"
+ },
+
+ // <<--< Padding >-->>
+
+ "custom/paddw": {
+ "format": " ",
+ "tooltip": false
+ },
+
+ "custom/paddc": {
+ "format": " ",
+ "tooltip": false
+ },
+
+ // Left Arrows
+
+ "custom/left1": {
+ "format": "",
+ "tooltip": false
+ },
+ "custom/left2": {
+ "format": "",
+ "tooltip": false
+ },
+ "custom/left3": {
+ "format": "",
+ "tooltip": false
+ },
+ "custom/left4": {
+ "format": "",
+ "tooltip": false
+ },
+ "custom/left5": {
+ "format": "",
+ "tooltip": false
+ },
+ "custom/left6": {
+ "format": "",
+ "tooltip": false
+ },
+ "custom/left7": {
+ "format": "",
+ "tooltip": false
+ },
+ "custom/left8": {
+ "format": "",
+ "tooltip": false
+ },
+
+ // Right Arrows
+
+ "custom/right1": {
+ "format": "",
+ "tooltip": false
+ },
+ "custom/right2": {
+ "format": "",
+ "tooltip": false
+ },
+ "custom/right3": {
+ "format": "",
+ "tooltip": false
+ },
+ "custom/right4": {
+ "format": "",
+ "tooltip": false
+ },
+ "custom/right5": {
+ "format": "",
+ "tooltip": false
+ },
+
+ // Left Inverse
+
+ "custom/leftin1": {
+ "format": "",
+ "tooltip": false
+ },
+ "custom/leftin2": {
+ "format": "",
+ "tooltip": false
+ },
+
+ // Right Inverse
+
+ "custom/rightin1": {
+ "format": "",
+ "tooltip": false
+ }
+}