diff options
Diffstat (limited to 'dotfiles/hyprland')
| -rw-r--r-- | dotfiles/hyprland/.config/gammastep/config.ini | 21 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/hypr/hyprland.conf | 64 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/themes/dupre/Xresources | 4 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/themes/dupre/dunstrc | 4 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/themes/dupre/waybar.css | 24 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/themes/hudson/Xresources | 4 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/themes/hudson/dunstrc | 4 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/themes/hudson/waybar.css | 24 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/waybar/config | 10 | ||||
| -rw-r--r-- | dotfiles/hyprland/.config/waybar/style.css | 24 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/focus-restore | 9 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/pinentry-fuzzel | 2 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/screenshot | 23 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/set-theme | 18 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/waybar-disk | 7 | ||||
| -rwxr-xr-x | dotfiles/hyprland/.local/bin/waybar-netspeed | 2 |
16 files changed, 175 insertions, 69 deletions
diff --git a/dotfiles/hyprland/.config/gammastep/config.ini b/dotfiles/hyprland/.config/gammastep/config.ini index f50a701..bbb15ee 100644 --- a/dotfiles/hyprland/.config/gammastep/config.ini +++ b/dotfiles/hyprland/.config/gammastep/config.ini @@ -1,25 +1,8 @@ -[gammastep] -; Color temperature in Kelvin (same as redshift) +[general] temp-day=6500 temp-night=4500 - -; Brightness (1.0 = full, 0.8 = 20% dimmed) brightness-day=1.0 brightness-night=1.0 - -; Gamma correction gamma=1.0 - -; Fade between day/night fade=1 - -; Wayland adjustment method (not randr) -adjustment-method=wayland - -; Location for sunrise/sunset calculation -location-provider=manual - -[manual] -; New Orleans, LA -lat=29.951065 -lon=-90.071533 +location-provider=geoclue2 diff --git a/dotfiles/hyprland/.config/hypr/hyprland.conf b/dotfiles/hyprland/.config/hypr/hyprland.conf index 709865a..15f47ce 100644 --- a/dotfiles/hyprland/.config/hypr/hyprland.conf +++ b/dotfiles/hyprland/.config/hypr/hyprland.conf @@ -15,7 +15,8 @@ exec-once = waybar exec-once = swww-daemon && sleep 1 && swww img ~/pictures/wallpaper/trondheim-norway.jpg exec-once = dunst exec-once = hypridle -exec-once = gammastep-indicator +exec-once = /usr/lib/geoclue-2.0/demos/agent +exec-once = gammastep exec-once = blueman-applet exec-once = /usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP @@ -23,12 +24,13 @@ exec-once = mpd exec-once = signal-desktop --start-in-tray --ozone-platform=wayland exec-once = protonmail-bridge --no-window exec-once = insync start +exec-once = set-theme "$(cat ~/.config/current-theme 2>/dev/null || echo hudson)" # ============================================================================ # Environment Variables # ============================================================================ env = XCURSOR_SIZE,24 -env = XCURSOR_THEME,capitaine-cursors-light +env = XCURSOR_THEME,Bibata-Modern-Ice env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland @@ -62,18 +64,18 @@ decoration { animations { enabled = true bezier = myBezier, 0.05, 0.9, 0.1, 1.05 - animation = windows, 1, 3, myBezier - animation = windowsOut, 1, 3, default, popin 80% - animation = fade, 1, 3, default - animation = workspaces, 1, 3, default - animation = specialWorkspace, 1, 3, default, slidevert + animation = windows, 1, 2, myBezier + animation = windowsOut, 1, 2, default, popin 80% + animation = fade, 1, 2, default + animation = workspaces, 1, 2, default + animation = specialWorkspace, 1, 2, default, slidevert } # ============================================================================ # Layout (master-stack like DWM tile) # ============================================================================ master { - new_status = slave + new_status = master mfact = 0.55 } @@ -100,6 +102,7 @@ input { misc { force_default_wallpaper = 0 disable_hyprland_logo = true + focus_on_activate = true } # ============================================================================ @@ -110,6 +113,27 @@ 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) @@ -130,12 +154,12 @@ bind = $mod, T, exec, foot bind = $mod, E, exec, emacsclient -c -a "" || emacs bind = $mod, W, exec, $BROWSER bind = $mod, P, exec, fuzzel +bind = $mod, F, exec, nautilus # From sxhkdrc bind = $mod, SPACE, exec, fuzzel bind = $mod SHIFT, W, exec, $ALTBROWSER bind = CTRL ALT, W, exec, tor-browser -bind = CTRL ALT, F, exec, nautilus bind = $mod, V, exec, virtualbox bind = $mod SHIFT, L, exec, calibre bind = $mod SHIFT, R, exec, shortwave @@ -173,7 +197,7 @@ bind = $mod, D, layoutmsg, removemaster # Focus mode (xtra-dispatchers plugin) # O = "Only this window" / "bring back Others" / "close Others" bind = $mod, O, exec, hyprctl dispatch plugin:xtd:throwunfocused 10 -bind = $mod SHIFT, O, exec, hyprctl dispatch plugin:xtd:bringallfrom 10 +bind = $mod SHIFT, O, exec, focus-restore bind = $mod CTRL, O, exec, hyprctl dispatch plugin:xtd:closeunfocused # Gaps (from DWM) @@ -229,17 +253,17 @@ workspace = special:term, on-created-empty:foot --app-id foot-term tmux workspace = special:audio, on-created-empty:foot --app-id foot-audio pulsemixer workspace = special:monitor, on-created-empty:foot --app-id foot-monitor gotop workspace = special:music, on-created-empty:foot --app-id foot-music ncmpcpp -workspace = special:files, on-created-empty:foot --app-id foot-files ranger workspace = special:htop, on-created-empty:foot --app-id foot-htop htop workspace = special:network, on-created-empty:foot --app-id foot-network nmtui +workspace = special:effects, on-created-empty:easyeffects # Keybindings (single bind per scratchpad - just toggle visibility) bind = $mod SHIFT, RETURN, togglespecialworkspace, term bind = $mod, A, togglespecialworkspace, audio bind = $mod, M, togglespecialworkspace, monitor bind = $mod, SLASH, togglespecialworkspace, music -bind = $mod, F, togglespecialworkspace, files bind = $mod SHIFT, H, togglespecialworkspace, htop +bind = $mod SHIFT, A, togglespecialworkspace, effects # Window rules (using app-id/class matching, Hyprland 0.53+ syntax) # Terminal scratchpad @@ -262,11 +286,6 @@ windowrule = match:class ^(foot-music)$, float on windowrule = match:class ^(foot-music)$, size (monitor_w*0.6) (monitor_h*0.6) windowrule = match:class ^(foot-music)$, center on -# File manager -windowrule = match:class ^(foot-files)$, float on -windowrule = match:class ^(foot-files)$, size (monitor_w*0.6) (monitor_h*0.6) -windowrule = match:class ^(foot-files)$, center on - # Htop windowrule = match:class ^(foot-htop)$, float on windowrule = match:class ^(foot-htop)$, size (monitor_w*0.6) (monitor_h*0.6) @@ -277,6 +296,11 @@ windowrule = match:class ^(foot-network)$, float on windowrule = match:class ^(foot-network)$, size (monitor_w*0.6) (monitor_h*0.6) windowrule = match:class ^(foot-network)$, center on +# EasyEffects +windowrule = match:class ^(Easy Effects)$, float on +windowrule = match:class ^(Easy Effects)$, size (monitor_w*0.6) (monitor_h*0.6) +windowrule = match:class ^(Easy Effects)$, center on + # Calculator (not a scratchpad, just launches app) bind = $mod, X, exec, qalculate-gtk bind = $mod, C, exec, hyprpicker -a @@ -294,9 +318,9 @@ bind = CTRL ALT, SPACE, exec, amixer set Capture toggle && amixer get Capture | # Bluetooth (from DWM and sxhkdrc) bind = $mod SHIFT, B, exec, blueman-manager -# Screenshots (grim + slurp + satty for annotation) -bind = $mod, S, exec, grim -g "$(slurp)" - | satty --filename - --output-filename ~/pictures/screenshots/$(date +%Y.%m.%d-%H%M%S).png -bind = , Print, exec, grim - | satty --filename - --output-filename ~/pictures/screenshots/$(date +%Y.%m.%d-%H%M%S).png +# Screenshots (grim + slurp + fuzzel menu) +bind = $mod, S, exec, screenshot region +bind = $mod, Print, exec, screenshot fullscreen # Lock screen (from sxhkdrc: super+Escape) bind = $mod, ESCAPE, exec, hyprlock diff --git a/dotfiles/hyprland/.config/themes/dupre/Xresources b/dotfiles/hyprland/.config/themes/dupre/Xresources index be8f7f4..1646b87 100644 --- a/dotfiles/hyprland/.config/themes/dupre/Xresources +++ b/dotfiles/hyprland/.config/themes/dupre/Xresources @@ -4,8 +4,8 @@ !! X Font Settings Xft.dpi: 109 -Xcursor.size: 32 -Xcursor.theme: Vimix-white-cursors +Xcursor.size: 24 +Xcursor.theme: Bibata-Modern-Ice Xft.autohint: 0 Xft.lcdfilter: lcddefault Xft.hintstyle: hintfull diff --git a/dotfiles/hyprland/.config/themes/dupre/dunstrc b/dotfiles/hyprland/.config/themes/dupre/dunstrc index 12ffac0..0847fdf 100644 --- a/dotfiles/hyprland/.config/themes/dupre/dunstrc +++ b/dotfiles/hyprland/.config/themes/dupre/dunstrc @@ -13,7 +13,7 @@ notification_limit = 5 gap_size = 12 padding = 12 horizontal_padding = 20 -frame_width = 2 +frame_width = 0 sort = no corner_radius = 10 @@ -27,7 +27,7 @@ frame_color = "#d7af5f" highlight = "#d7af5f, #ccc768" # Text (size in points, Pango syntax) -font = BerkeleyMono Nerd Font 13 +font = BerkeleyMono Nerd Font 10 markup = full format = "<small>%a</small>\n<b>%s</b>\n%b" alignment = left diff --git a/dotfiles/hyprland/.config/themes/dupre/waybar.css b/dotfiles/hyprland/.config/themes/dupre/waybar.css index e83f851..18ba0f1 100644 --- a/dotfiles/hyprland/.config/themes/dupre/waybar.css +++ b/dotfiles/hyprland/.config/themes/dupre/waybar.css @@ -49,7 +49,7 @@ window#waybar { #cpu, #temperature, #memory, -#disk, +#custom-disk, #custom-netspeed, #battery, #wireplumber, @@ -73,7 +73,7 @@ window#waybar { #cpu:hover, #temperature:hover, #memory:hover, -#disk:hover, +#custom-disk:hover, #custom-netspeed:hover, #wireplumber:hover, #sysmonitor:hover, @@ -90,8 +90,24 @@ window#waybar { color: #969385; } -#wireplumber.muted { - color: #58574e; +#custom-netspeed.disconnected { + color: #d47c59; +} + +#temperature.warning { + color: #d7af5f; +} + +#temperature.critical { + color: #d47c59; +} + +#custom-disk.warning { + color: #d7af5f; +} + +#custom-disk.critical { + color: #d47c59; } #battery.warning { diff --git a/dotfiles/hyprland/.config/themes/hudson/Xresources b/dotfiles/hyprland/.config/themes/hudson/Xresources index 96e4803..4b35809 100644 --- a/dotfiles/hyprland/.config/themes/hudson/Xresources +++ b/dotfiles/hyprland/.config/themes/hudson/Xresources @@ -10,8 +10,8 @@ Xft.hintstyle: hintfull Xft.hinting: 1 Xft.antialias: 1 Xft.rgba: rgb -Xcursor.size: 32 -Xcursor.theme: Vimix-white-cursors +Xcursor.size: 24 +Xcursor.theme: Bibata-Modern-Ice !! Emacs Emacs*toolBar: 0 diff --git a/dotfiles/hyprland/.config/themes/hudson/dunstrc b/dotfiles/hyprland/.config/themes/hudson/dunstrc index 2cbf0e6..f27bd33 100644 --- a/dotfiles/hyprland/.config/themes/hudson/dunstrc +++ b/dotfiles/hyprland/.config/themes/hudson/dunstrc @@ -13,7 +13,7 @@ notification_limit = 5 gap_size = 12 padding = 12 horizontal_padding = 20 -frame_width = 2 +frame_width = 0 sort = no corner_radius = 10 @@ -27,7 +27,7 @@ frame_color = "#daa520" highlight = "#daa520, #f0c674" # Text (size in points, Pango syntax) -font = BerkeleyMono Nerd Font 13 +font = BerkeleyMono Nerd Font 10 markup = full format = "<small>%a</small>\n<b>%s</b>\n%b" alignment = left diff --git a/dotfiles/hyprland/.config/themes/hudson/waybar.css b/dotfiles/hyprland/.config/themes/hudson/waybar.css index 9056529..299f1c2 100644 --- a/dotfiles/hyprland/.config/themes/hudson/waybar.css +++ b/dotfiles/hyprland/.config/themes/hudson/waybar.css @@ -49,7 +49,7 @@ window#waybar { #cpu, #temperature, #memory, -#disk, +#custom-disk, #custom-netspeed, #battery, #wireplumber, @@ -73,7 +73,7 @@ window#waybar { #cpu:hover, #temperature:hover, #memory:hover, -#disk:hover, +#custom-disk:hover, #custom-netspeed:hover, #wireplumber:hover, #sysmonitor:hover, @@ -90,8 +90,24 @@ window#waybar { color: #bbbbbb; } -#wireplumber.muted { - color: #666666; +#custom-netspeed.disconnected { + color: #ff5858; +} + +#temperature.warning { + color: #daa520; +} + +#temperature.critical { + color: #ff5858; +} + +#custom-disk.warning { + color: #daa520; +} + +#custom-disk.critical { + color: #ff5858; } #battery.warning { diff --git a/dotfiles/hyprland/.config/waybar/config b/dotfiles/hyprland/.config/waybar/config index 5b9879e..fdff160 100644 --- a/dotfiles/hyprland/.config/waybar/config +++ b/dotfiles/hyprland/.config/waybar/config @@ -28,7 +28,7 @@ "cpu", "temperature", "memory", - "disk", + "custom/disk", "battery" ] }, @@ -62,6 +62,7 @@ "interval": 10, "hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:18.3/hwmon", "input-filename": "temp1_input", + "warning-threshold": 70, "critical-threshold": 80, "format": "<span size='large'></span> {temperatureC}°C", "format-critical": "<span size='large'></span> {temperatureC}°C", @@ -74,10 +75,11 @@ "on-click": "toggle-scratchpad monitor" }, - "disk": { + "custom/disk": { + "exec": "waybar-disk", + "return-type": "json", "interval": 30, - "format": "<span size='large'></span> {percentage_used}%", - "path": "/", + "format": "<span size='large'></span> {}", "on-click": "toggle-scratchpad monitor" }, diff --git a/dotfiles/hyprland/.config/waybar/style.css b/dotfiles/hyprland/.config/waybar/style.css index 9056529..299f1c2 100644 --- a/dotfiles/hyprland/.config/waybar/style.css +++ b/dotfiles/hyprland/.config/waybar/style.css @@ -49,7 +49,7 @@ window#waybar { #cpu, #temperature, #memory, -#disk, +#custom-disk, #custom-netspeed, #battery, #wireplumber, @@ -73,7 +73,7 @@ window#waybar { #cpu:hover, #temperature:hover, #memory:hover, -#disk:hover, +#custom-disk:hover, #custom-netspeed:hover, #wireplumber:hover, #sysmonitor:hover, @@ -90,8 +90,24 @@ window#waybar { color: #bbbbbb; } -#wireplumber.muted { - color: #666666; +#custom-netspeed.disconnected { + color: #ff5858; +} + +#temperature.warning { + color: #daa520; +} + +#temperature.critical { + color: #ff5858; +} + +#custom-disk.warning { + color: #daa520; +} + +#custom-disk.critical { + color: #ff5858; } #battery.warning { diff --git a/dotfiles/hyprland/.local/bin/focus-restore b/dotfiles/hyprland/.local/bin/focus-restore new file mode 100755 index 0000000..7f87390 --- /dev/null +++ b/dotfiles/hyprland/.local/bin/focus-restore @@ -0,0 +1,9 @@ +#!/bin/sh +# Restore unfocused windows from workspace 10 without disrupting master position. +# Records the focused window, brings all back, then swaps it back to master. + +FOCUSED=$(hyprctl activewindow -j | jq -r '.address') +hyprctl dispatch plugin:xtd:bringallfrom 10 +sleep 0.1 +hyprctl dispatch focuswindow "address:$FOCUSED" +hyprctl dispatch layoutmsg swapwithmaster master diff --git a/dotfiles/hyprland/.local/bin/pinentry-fuzzel b/dotfiles/hyprland/.local/bin/pinentry-fuzzel index 4cbe6b7..5c64968 100755 --- a/dotfiles/hyprland/.local/bin/pinentry-fuzzel +++ b/dotfiles/hyprland/.local/bin/pinentry-fuzzel @@ -83,7 +83,7 @@ while read cmd rest; do else LABEL="reenter: " fi - PASS=$(fuzzel --prompt "$LABEL" --width 25 --lines 0 --cache /dev/null --password --dmenu) + PASS=$(fuzzel --prompt "$LABEL" --width 35 --lines 0 --cache /dev/null --password --dmenu --border-color=d47c59ff) if [ -z "$PASS" ]; then # User cancelled - return error to GPG rm -f "$LASTFILE" diff --git a/dotfiles/hyprland/.local/bin/screenshot b/dotfiles/hyprland/.local/bin/screenshot new file mode 100755 index 0000000..45925c6 --- /dev/null +++ b/dotfiles/hyprland/.local/bin/screenshot @@ -0,0 +1,23 @@ +#!/bin/sh +# Screenshot tool with fuzzel menu +# Usage: screenshot [region|fullscreen] + +DIR="$HOME/pictures/screenshots" +mkdir -p "$DIR" +FILE="$DIR/$(date +%Y-%m-%d_%H%M%S).png" + +# Capture +case "${1:-region}" in + region) grim -g "$(slurp)" "$FILE" || exit 1 ;; + fullscreen) grim "$FILE" || exit 1 ;; +esac + +# Menu +CHOICE=$(printf ' Copy Path\n Copy Image\n Annotate' | \ + fuzzel --dmenu --prompt "Screenshot: " --width 20 --lines 3) + +case "$CHOICE" in + *"Copy Path"*) echo -n "$FILE" | wl-copy --type text/plain ;; + *"Copy Image"*) wl-copy --type image/png < "$FILE" ;; + *"Annotate"*) satty --filename "$FILE" --output-filename "$FILE" --copy-command wl-copy ;; +esac diff --git a/dotfiles/hyprland/.local/bin/set-theme b/dotfiles/hyprland/.local/bin/set-theme index e95b27b..9bbcbd4 100755 --- a/dotfiles/hyprland/.local/bin/set-theme +++ b/dotfiles/hyprland/.local/bin/set-theme @@ -56,8 +56,13 @@ apply_theme() { # 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.inactive "rgba(d0cbc0ff)" - hyprctl keyword plugin:hy3:tabs:col.inactive.text "rgba(d0cbc0ff)" + 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)" ;; @@ -68,8 +73,13 @@ apply_theme() { # 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.inactive "rgba(c5c8c6ff)" - hyprctl keyword plugin:hy3:tabs:col.inactive.text "rgba(c5c8c6ff)" + 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)" ;; diff --git a/dotfiles/hyprland/.local/bin/waybar-disk b/dotfiles/hyprland/.local/bin/waybar-disk new file mode 100755 index 0000000..6050653 --- /dev/null +++ b/dotfiles/hyprland/.local/bin/waybar-disk @@ -0,0 +1,7 @@ +#!/bin/sh +# Waybar disk usage module with warning/critical states +PCT=$(df --output=pcent / | tail -1 | tr -d ' %') +CLASS="" +[ "$PCT" -ge 80 ] && CLASS="warning" +[ "$PCT" -ge 90 ] && CLASS="critical" +printf '{"text": "%s%%", "class": "%s", "tooltip": "Root: %s%% used"}\n' "$PCT" "$CLASS" "$PCT" diff --git a/dotfiles/hyprland/.local/bin/waybar-netspeed b/dotfiles/hyprland/.local/bin/waybar-netspeed index 97e8e5e..a6296b0 100755 --- a/dotfiles/hyprland/.local/bin/waybar-netspeed +++ b/dotfiles/hyprland/.local/bin/waybar-netspeed @@ -6,7 +6,7 @@ INTERFACE=$(ip route | awk '/default/ {print $5; exit}') if [ -z "$INTERFACE" ]; then - echo '{"text": " Disconnected", "tooltip": "No network connection", "class": "disconnected"}' + echo '{"text": " Offline", "tooltip": "No network connection", "class": "disconnected"}' exit 0 fi |
