diff options
Diffstat (limited to 'config/hypr/scripts/Dock.sh')
| -rwxr-xr-x | config/hypr/scripts/Dock.sh | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/config/hypr/scripts/Dock.sh b/config/hypr/scripts/Dock.sh new file mode 100755 index 00000000..c919d573 --- /dev/null +++ b/config/hypr/scripts/Dock.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash +# ================================================== +# KoolDots (2026) +# Project URL: https://github.com/LinuxBeginnings +# License: GNU GPLv3 +# SPDX-License-Identifier: GPL-3.0-or-later +# ================================================== +# nwg-dock-hyprland launcher and toggle script + +DOCK_CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/nwg-dock-hyprland" + +# Ensure dock configuration and wallust directory exist +mkdir -p "$DOCK_CONFIG_DIR/wallust" 2>/dev/null || true + +# Check if nwg-dock-hyprland is installed +if ! command -v nwg-dock-hyprland >/dev/null 2>&1; then + notify-send -u normal "Dock" "nwg-dock-hyprland is not installed" 2>/dev/null || true + exit 1 +fi + +is_dock_running() { + pgrep -x "nwg-dock-hyprla" >/dev/null 2>&1 || pgrep -x "nwg-dock-hyprland" >/dev/null 2>&1 || pgrep -f "nwg-dock-hyprland" >/dev/null 2>&1 +} + +kill_dock() { + pkill -x "nwg-dock-hyprla" 2>/dev/null || true + pkill -x "nwg-dock-hyprland" 2>/dev/null || true + pkill -f "nwg-dock-hyprland" 2>/dev/null || true +} + +start_dock() { + # Dock configuration: + # -p bottom : bottom dock position + # -x : exclusive zone (moves other windows aside) + # -i 32 : icon size 32 + # -g "kitty-dropterm" : ignores dropdown terminal class + # -c : launcher button command (rofi menu) + # (no -d : no auto-hide) + local launcher_cmd="pkill rofi || rofi -show drun -modi drun,filebrowser,run,window" + nwg-dock-hyprland -p bottom -x -i 32 -g "kitty-dropterm" -c "$launcher_cmd" >/dev/null 2>&1 & +} + +case "${1:-toggle}" in + --restart|restart) + kill_dock + sleep 0.2 + start_dock + ;; + --start|start|activate) + if ! is_dock_running; then + start_dock + fi + ;; + --stop|stop|deactivate) + kill_dock + ;; + --toggle|toggle|*) + if is_dock_running; then + kill_dock + else + start_dock + fi + ;; +esac + +exit 0 |
