diff options
Diffstat (limited to 'dotfiles')
| -rw-r--r-- | dotfiles/hyprland/.config/hypr/hyprland.conf | 33 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/pypr/config.toml | 7 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/waybar/config | 14 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/cycle-layout | 7 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/hyprland-plugins-setup | 16 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/layout-navigate | 15 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/set-theme | 24 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/toggle-scratchpad | 40 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/waybar-layout | 5 |
9 files changed, 24 insertions, 137 deletions
diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf index 3abf43f..d79738d 100644 --- a/dotfiles/hyprland/.config/hypr/hyprland.conf +++ b/dotfiles/hyprland/.config/hypr/hyprland.conf @@ -11,7 +11,7 @@ monitor=,preferred,auto,auto # Startup Applications # ============================================================================ # Portal and D-Bus setup FIRST (other apps depend on these) -exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE exec-once = systemctl --user start xdg-desktop-portal-hyprland xdg-desktop-portal # Core services @@ -99,6 +99,10 @@ dwindle { # ============================================================================ # Input # ============================================================================ +cursor { + no_warps = true +} + input { kb_layout = us kb_options = ctrl:nocaps @@ -132,27 +136,6 @@ xwayland { } # ============================================================================ -# Plugins -# ============================================================================ -plugin { - hy3 { - tabs { - col.active = rgba(444444ff) - col.active.text = rgba(bbbbbbff) - col.active.border = rgba(daa520ff) - col.focused = rgba(444444ff) - col.focused.text = rgba(bbbbbbff) - col.focused.border = rgba(daa520ff) - col.inactive = rgba(333333ff) - col.inactive.text = rgba(888888ff) - col.inactive.border = rgba(333333ff) - col.urgent = rgba(cc6666ff) - col.locked = rgba(8abeb7ff) - } - } -} - -# ============================================================================ # Window Rules (Hyprland 0.53+ syntax: match:CONDITION, RULE) # ============================================================================ # Floating windows (from DWM rules) @@ -187,7 +170,7 @@ bind = $mod, Y, exec, set-theme --toggle bind = $mod SHIFT, Y, exec, set-theme --pick # Window management (from DWM) -# Layout-aware navigation (works across master, scrolling, hy3) +# Layout-aware navigation (works across master, scrolling) bind = $mod, J, exec, layout-navigate next bind = $mod, K, exec, layout-navigate prev bind = $mod SHIFT, J, exec, layout-navigate next move @@ -199,10 +182,9 @@ bind = $mod, G, centerwindow bind = $mod, TAB, workspace, previous bind = $mod SHIFT, C, killactive -# Layouts: master -> tab group (monocle) -> scrolling -> floating +# Layouts: master -> scrolling -> floating # Click waybar layout icon to cycle, or use direct keybindings: bind = $mod SHIFT, T, exec, hyprctl keyword general:layout master && hyprctl keyword master:orientation left -bind = $mod SHIFT, M, exec, hyprctl keyword general:layout hy3 && hyprctl dispatch hy3:changegroup tab bind = $mod SHIFT, S, exec, hyprctl keyword general:layout scrolling bind = $mod SHIFT, F, togglefloating bind = $mod SHIFT, SPACE, togglefloating @@ -268,6 +250,7 @@ bind = $mod SHIFT, RETURN, exec, pypr toggle term bind = $mod, I, exec, pypr toggle term2 bind = $mod, A, exec, pypr toggle audio bind = $mod, M, exec, pypr toggle monitor +bind = $mod, N, exec, pypr toggle network bind = $mod, SLASH, exec, pypr toggle music # Magnify (zoom) diff --git a/dotfiles/hyprland/.config/pypr/config.toml b/dotfiles/hyprland/.config/pypr/config.toml index e496cd9..9db048f 100644 --- a/dotfiles/hyprland/.config/pypr/config.toml +++ b/dotfiles/hyprland/.config/pypr/config.toml @@ -53,3 +53,10 @@ class = "foot-music" size = "60% 60%" position = "20% 20%" animation = "fromBottom" + +[scratchpads.network] +command = "foot --app-id foot-network nmtui" +class = "foot-network" +size = "60% 60%" +position = "20% 20%" +animation = "fromBottom" diff --git a/dotfiles/hyprland/.config/waybar/config b/dotfiles/hyprland/.config/waybar/config index 7853326..422096f 100644 --- a/dotfiles/hyprland/.config/waybar/config +++ b/dotfiles/hyprland/.config/waybar/config @@ -55,7 +55,7 @@ "cpu": { "interval": 10, "format": "<span size='large'></span> {}%", - "on-click": "toggle-scratchpad monitor" + "on-click": "pypr toggle monitor" }, "temperature": { @@ -66,13 +66,13 @@ "critical-threshold": 80, "format": "<span size='large'></span> {temperatureC}°C", "format-critical": "<span size='large'></span> {temperatureC}°C", - "on-click": "toggle-scratchpad monitor" + "on-click": "pypr toggle monitor" }, "memory": { "interval": 30, "format": "<span size='large'></span> {}%", - "on-click": "toggle-scratchpad monitor" + "on-click": "pypr toggle monitor" }, "custom/disk": { @@ -80,14 +80,14 @@ "return-type": "json", "interval": 30, "format": "<span size='large'></span> {}", - "on-click": "toggle-scratchpad monitor" + "on-click": "pypr toggle monitor" }, "custom/netspeed": { "exec": "waybar-netspeed", "return-type": "json", "interval": 2, - "on-click": "toggle-scratchpad network" + "on-click": "pypr toggle network" }, "battery": { @@ -105,7 +105,7 @@ "tray": { "icon-size": 22, - "spacing": 10 + "spacing": 4 }, "clock": { @@ -123,7 +123,7 @@ "format-muted": "<span size='large'></span> Muted", "format-icons": {"default": ["", "", ""]}, "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", - "on-click-right": "toggle-scratchpad audio", + "on-click-right": "pypr toggle audio", "on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +5%", "on-scroll-down": "pactl set-sink-volume @DEFAULT_SINK@ -5%" }, diff --git a/dotfiles/hyprland/.local/bin/cycle-layout b/dotfiles/hyprland/.local/bin/cycle-layout index ebfd2e0..a632142 100755 --- a/dotfiles/hyprland/.local/bin/cycle-layout +++ b/dotfiles/hyprland/.local/bin/cycle-layout @@ -1,6 +1,6 @@ #!/bin/sh # Cycle through Hyprland layouts -# Cycle: master -> hy3 (tab/monocle) -> scrolling -> floating -> master +# Cycle: master -> scrolling -> floating -> master LAYOUT=$(hyprctl getoption general:layout -j | jq -r '.str') FLOATING=$(hyprctl activewindow -j 2>/dev/null | jq -r '.floating // false') @@ -8,11 +8,6 @@ FLOATING=$(hyprctl activewindow -j 2>/dev/null | jq -r '.floating // false') # Check if we're in "all floating" mode by checking layout case "$LAYOUT" in master) - hyprctl keyword general:layout hy3 - # Create tab group for monocle behavior - hyprctl dispatch hy3:changegroup tab - ;; - hy3) hyprctl keyword general:layout scrolling ;; scrolling) diff --git a/dotfiles/hyprland/.local/bin/hyprland-plugins-setup b/dotfiles/hyprland/.local/bin/hyprland-plugins-setup index f0181c8..e780cb7 100755 --- a/dotfiles/hyprland/.local/bin/hyprland-plugins-setup +++ b/dotfiles/hyprland/.local/bin/hyprland-plugins-setup @@ -37,22 +37,6 @@ for plugin in hyprscrolling xtra-dispatchers; do fi done -# Add hy3 repository -log "Adding hy3 repository..." -if hyprpm add https://github.com/outfoxxed/hy3 2>&1 | tee -a "$LOGFILE"; then - log "hy3 repository added" -else - log "Failed to add hy3 repository" -fi - -# Enable hy3 -log "Enabling hy3..." -if hyprpm enable hy3 2>&1 | tee -a "$LOGFILE"; then - log "hy3 enabled" -else - log "Failed to enable hy3" -fi - # Reload plugins into Hyprland log "Reloading plugins..." hyprpm reload 2>&1 | tee -a "$LOGFILE" diff --git a/dotfiles/hyprland/.local/bin/layout-navigate b/dotfiles/hyprland/.local/bin/layout-navigate index 4fc02c2..085df22 100755 --- a/dotfiles/hyprland/.local/bin/layout-navigate +++ b/dotfiles/hyprland/.local/bin/layout-navigate @@ -25,21 +25,6 @@ case "$LAYOUT" in fi fi ;; - hy3) - if [ "$MOVE" = "move" ]; then - if [ "$DIR" = "next" ]; then - hyprctl dispatch hy3:movewindow r - else - hyprctl dispatch hy3:movewindow l - fi - else - if [ "$DIR" = "next" ]; then - hyprctl dispatch hy3:movefocus r - else - hyprctl dispatch hy3:movefocus l - fi - fi - ;; *) # master, dwindle, etc. if [ "$MOVE" = "move" ]; then diff --git a/dotfiles/hyprland/.local/bin/set-theme b/dotfiles/hyprland/.local/bin/set-theme index 9bbcbd4..075e47b 100755 --- a/dotfiles/hyprland/.local/bin/set-theme +++ b/dotfiles/hyprland/.local/bin/set-theme @@ -53,35 +53,11 @@ apply_theme() { # Window borders hyprctl keyword general:col.active_border "rgba(d7af5fff)" hyprctl keyword general:col.inactive_border "rgba(474544ff)" - # hy3 tab bar (monocle mode) - hyprctl keyword plugin:hy3:tabs:col.active "rgba(474544ff)" - hyprctl keyword plugin:hy3:tabs:col.active.text "rgba(969385ff)" - hyprctl keyword plugin:hy3:tabs:col.active.border "rgba(d7af5fff)" - hyprctl keyword plugin:hy3:tabs:col.focused "rgba(474544ff)" - hyprctl keyword plugin:hy3:tabs:col.focused.text "rgba(969385ff)" - hyprctl keyword plugin:hy3:tabs:col.focused.border "rgba(d7af5fff)" - hyprctl keyword plugin:hy3:tabs:col.inactive "rgba(2a2725ff)" - hyprctl keyword plugin:hy3:tabs:col.inactive.text "rgba(6c6a60ff)" - hyprctl keyword plugin:hy3:tabs:col.inactive.border "rgba(2a2725ff)" - hyprctl keyword plugin:hy3:tabs:col.urgent "rgba(d47c59ff)" - hyprctl keyword plugin:hy3:tabs:col.locked "rgba(8a9496ff)" ;; hudson) # Window borders hyprctl keyword general:col.active_border "rgba(daa520ff)" hyprctl keyword general:col.inactive_border "rgba(444444ff)" - # hy3 tab bar (monocle mode) - hyprctl keyword plugin:hy3:tabs:col.active "rgba(444444ff)" - hyprctl keyword plugin:hy3:tabs:col.active.text "rgba(bbbbbbff)" - hyprctl keyword plugin:hy3:tabs:col.active.border "rgba(daa520ff)" - hyprctl keyword plugin:hy3:tabs:col.focused "rgba(444444ff)" - hyprctl keyword plugin:hy3:tabs:col.focused.text "rgba(bbbbbbff)" - hyprctl keyword plugin:hy3:tabs:col.focused.border "rgba(daa520ff)" - hyprctl keyword plugin:hy3:tabs:col.inactive "rgba(333333ff)" - hyprctl keyword plugin:hy3:tabs:col.inactive.text "rgba(888888ff)" - hyprctl keyword plugin:hy3:tabs:col.inactive.border "rgba(333333ff)" - hyprctl keyword plugin:hy3:tabs:col.urgent "rgba(cc6666ff)" - hyprctl keyword plugin:hy3:tabs:col.locked "rgba(8abeb7ff)" ;; esac diff --git a/dotfiles/hyprland/.local/bin/toggle-scratchpad b/dotfiles/hyprland/.local/bin/toggle-scratchpad deleted file mode 100755 index b3da6b4..0000000 --- a/dotfiles/hyprland/.local/bin/toggle-scratchpad +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -# Toggle a special workspace from waybar click -# Tracks state to handle focus-loss auto-close issue -# Usage: toggle-scratchpad <name> - -NAME="$1" -if [ -z "$NAME" ]; then - echo "Usage: toggle-scratchpad <name>" - exit 1 -fi - -# Auto-detect current Hyprland socket if env var is stale -if ! hyprctl version >/dev/null 2>&1; then - # Find the most recent Hyprland instance with a socket - for dir in /run/user/"$(id -u)"/hypr/*/; do - if [ -S "${dir}.socket.sock" ]; then - export HYPRLAND_INSTANCE_SIGNATURE="$(basename "$dir")" - break - fi - done -fi - -STATEFILE="/tmp/scratchpad-$NAME-open" -NOW=$(date +%s) - -# If state file exists and recent, scratchpad was open and just closed by focus loss -# Don't reopen it - user intended to close -if [ -f "$STATEFILE" ]; then - LAST=$(cat "$STATEFILE") - AGE=$((NOW - LAST)) - rm -f "$STATEFILE" - if [ "$AGE" -lt 2 ]; then - # Was just open, user clicked to close - don't reopen - exit 0 - fi -fi - -# Opening the scratchpad - mark timestamp -echo "$NOW" > "$STATEFILE" -hyprctl dispatch togglespecialworkspace "$NAME" diff --git a/dotfiles/hyprland/.local/bin/waybar-layout b/dotfiles/hyprland/.local/bin/waybar-layout index 62470aa..1750eff 100755 --- a/dotfiles/hyprland/.local/bin/waybar-layout +++ b/dotfiles/hyprland/.local/bin/waybar-layout @@ -1,7 +1,7 @@ #!/bin/sh # Hyprland layout indicator for waybar # Shows current layout with nerd font icons -# Layouts: master -> tab group (monocle) -> scrolling -> floating +# Layouts: master -> scrolling -> floating # Check if hyprctl is reachable if ! hyprctl version >/dev/null 2>&1; then @@ -22,9 +22,6 @@ if [ "$LAYOUT" = "master" ] && echo "$WSRULES" | grep -q "allfloat"; then elif [ "$LAYOUT" = "scrolling" ]; then ICON="" TOOLTIP="Scrolling" -elif [ "$LAYOUT" = "hy3" ]; then - ICON="" - TOOLTIP="Tab Group (Monocle)" elif [ "$LAYOUT" = "master" ]; then ICON="" TOOLTIP="Master" |
