diff --git a/hypr/scripts/monitor_setup.sh.dual-not_working b/hypr/scripts/monitor_setup.sh.dual-not_working deleted file mode 100755 index b4ef309..0000000 --- a/hypr/scripts/monitor_setup.sh.dual-not_working +++ /dev/null @@ -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)" diff --git a/hypr/scripts/monitor_setup.sh.old b/hypr/scripts/monitor_setup.sh.old deleted file mode 100755 index aece268..0000000 --- a/hypr/scripts/monitor_setup.sh.old +++ /dev/null @@ -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" diff --git a/waybar/.github/README.md b/waybar/.github/README.md new file mode 100644 index 0000000..f3e8b31 --- /dev/null +++ b/waybar/.github/README.md @@ -0,0 +1,126 @@ +
+ +## ๐Ÿค– mechabar + +A mecha-themed, modular Waybar configuration. + +| ![Mechabar](assets/catppuccin-mocha.png) | +| :--------------------------------------: | + +
+Themes +
+ +**Catppuccin:** + +| Mocha _(default)_ | +| :----------------------------------------------: | +| ![Catppuccin Mocha](assets/catppuccin-mocha.png) | + +| Macchiato | +| :------------------------------------------------------: | +| ![Catppuccin Macchiato](assets/catppuccin-macchiato.png) | + +| Frappe | +| :------------------------------------------------: | +| ![Catppuccin Frappe](assets/catppuccin-frappe.png) | + +| Latte | +| :----------------------------------------------: | +| ![Catppuccin Latte](assets/catppuccin-latte.png) | + +
+
+ +# + +### Requirements + +1. [Waybar](https://github.com/Alexays/Waybar) + +> [!WARNING] +> **Version 0.14.0** has an [issue](https://github.com/Alexays/Waybar/issues/4354) with wildcard includes. +> Use the `fix/v0.14.0` branch as a temporary workaround. + +2. A terminal emulator _(default: **Kitty**)_ + +> [!IMPORTANT] +> If you use a different terminal emulator (e.g., **Ghostty**), +> you need to replace all instances of `kitty` with your terminal command: +> +> ```diff +> - "on-click": "kitty -e ..." +> + "on-click": "ghostty -e ..." +> ``` + +# + +### Installation + +1. Back up your current configuration: + + ```bash + mv ~/.config/waybar{,.bak} + ``` + +2. Clone the repository: + + ```bash + git clone https://github.com/sejjy/mechabar.git ~/.config/waybar + ``` + + For **Waybar v0.14.0**: + + ```bash + git clone -b fix/v0.14.0 https://github.com/sejjy/mechabar.git ~/.config/waybar + ``` + +3. Run the [install script](/install.sh): + + ```bash + ~/.config/waybar/install.sh + ``` + + This makes the [scripts](/scripts/) executable and installs all dependencies listed below: + + | Package | Description | + | --------------------------------: | ------------------------------------------------------------------------------ | + | `bluez` | Daemons for the bluetooth protocol stack | + | _(bluetoothctl)_ `bluez-utils` | Development and debugging utilities for the bluetooth protocol stack | + | `brightnessctl` | Lightweight brightness control tool | + | `fzf` | Command-line fuzzy finder | + | _(nmcli)_ `networkmanager` | Network connection manager and user applications | + | _(checkupdates)_ `pacman-contrib` | Contributed scripts and tools for pacman systems | + | `pipewire-pulse` | Low-latency audio/video router and processor - PulseAudio replacement | + | `ttf-0xproto-nerd` | Patched font 0xProto from nerd fonts library | + +# + +### Customization + +- To change the theme, copy the file with your preferred theme (e.g., `catppuccin-latte.css`) to `theme.css`: + + ```bash + cd ~/.config/waybar + cp themes/catppuccin-latte.css theme.css + ``` + +# + +### Documentation + +- [Waybar wiki](https://github.com/Alexays/Waybar/wiki) + +- Man page: + + ```bash + man waybar + ``` + +# + +### Credits + +- Font: [0xProto](https://github.com/0xType/0xProto) +- Icons: [Nerd Fonts](https://github.com/ryanoasis/nerd-fonts) +- Themes: [Catppuccin](https://github.com/catppuccin/waybar) diff --git a/waybar/.github/assets/catppuccin-frappe.png b/waybar/.github/assets/catppuccin-frappe.png new file mode 100644 index 0000000..30640f6 Binary files /dev/null and b/waybar/.github/assets/catppuccin-frappe.png differ diff --git a/waybar/.github/assets/catppuccin-latte.png b/waybar/.github/assets/catppuccin-latte.png new file mode 100644 index 0000000..5d877b6 Binary files /dev/null and b/waybar/.github/assets/catppuccin-latte.png differ diff --git a/waybar/.github/assets/catppuccin-macchiato.png b/waybar/.github/assets/catppuccin-macchiato.png new file mode 100644 index 0000000..6dbb312 Binary files /dev/null and b/waybar/.github/assets/catppuccin-macchiato.png differ diff --git a/waybar/.github/assets/catppuccin-mocha.png b/waybar/.github/assets/catppuccin-mocha.png new file mode 100644 index 0000000..2138776 Binary files /dev/null and b/waybar/.github/assets/catppuccin-mocha.png differ diff --git a/waybar/LICENSE b/waybar/LICENSE new file mode 100644 index 0000000..355f2ba --- /dev/null +++ b/waybar/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Jesse Mirabel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/waybar/config.jsonc b/waybar/config.jsonc index fc9305c..604f3f5 100644 --- a/waybar/config.jsonc +++ b/waybar/config.jsonc @@ -1,489 +1,128 @@ { - "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 - } + /*------------------------------------------------------------ + regression: wildcard includes are broken after v0.14.0 + - https://github.com/Alexays/Waybar/issues/4354 + - https://github.com/sejjy/mechabar/issues/31 + ------------------------------------------------------------*/ + /* + "include": [ + "~/.config/waybar/modules/*.jsonc", + "~/.config/waybar/modules/custom/*.jsonc", + "~/.config/waybar/modules/hyprland/*.jsonc" + + // modules that are not included by default: + // "~/.config/waybar/modules/extras/*.jsonc" + ], + */ + + "include": [ + // modules-left + "~/.config/waybar/modules/custom/user.jsonc", + "~/.config/waybar/modules/hyprland/workspaces.jsonc", + "~/.config/waybar/modules/hyprland/window.jsonc", + + // modules-center + "~/.config/waybar/modules/hyprland/windowcount.jsonc", + "~/.config/waybar/modules/temperature.jsonc", + "~/.config/waybar/modules/memory.jsonc", + "~/.config/waybar/modules/cpu.jsonc", + "~/.config/waybar/modules/custom/distro.jsonc", + "~/.config/waybar/modules/idle_inhibitor.jsonc", + "~/.config/waybar/modules/clock.jsonc", + "~/.config/waybar/modules/network.jsonc", + "~/.config/waybar/modules/bluetooth.jsonc", + "~/.config/waybar/modules/custom/system_update.jsonc", + + // modules-right + "~/.config/waybar/modules/mpris.jsonc", + "~/.config/waybar/modules/pulseaudio.jsonc", + "~/.config/waybar/modules/backlight.jsonc", + "~/.config/waybar/modules/battery.jsonc", + "~/.config/waybar/modules/custom/power_menu.jsonc", + + "~/.config/waybar/modules/custom/dividers.jsonc" + + // modules that are not included by default: + // "~/.config/waybar/modules/extras/taskbar.jsonc", + // "~/.config/waybar/modules/extras/tray.jsonc", + // "~/.config/waybar/modules/extras/wireplumber.jsonc" + ], + + /*------------ + layout + ------------*/ + + "modules-left": [ + "group/user", + "custom/left_div#1", + "hyprland/workspaces", + "custom/right_div#1", + "hyprland/window" + ], + "modules-center": [ + "hyprland/windowcount", + "custom/left_div#2", + "temperature", + "custom/left_div#3", + "memory", + "custom/left_div#4", + "cpu", + "custom/left_inv#1", + "custom/left_div#5", + "custom/distro", + "custom/right_div#2", + "custom/right_inv#1", + "idle_inhibitor", + "clock#time", + "custom/right_div#3", + "clock#date", + "custom/right_div#4", + "network", + "bluetooth", + "custom/system_update", + "custom/right_div#5" + ], + "modules-right": [ + "mpris", + "custom/left_div#6", + "group/pulseaudio", + "custom/left_div#7", + "backlight", + "custom/left_div#8", + "battery", + "custom/left_inv#2", + "custom/power_menu" + ], + + /*------------- + options + -------------*/ + + // "expand-center": + // "expand-left": + // "expand-right": + "layer": "top", + // "output": + // "position": + "height": 0, + "width": 0, + "margin": 0, + // "margin-top": + // "margin-left": + // "margin-bottom": + // "margin-right": + // "no-center": + "spacing": 0, + // "name": + "mode": "dock", + // "start_hidden": + // "modifier-reset": + // "exclusive": + // "fixed-center": + // "passthrough": + // "ipc": + // "id": + "reload_style_on_change": true + // "on-sigusr1": + // "on-sigusr2": } diff --git a/waybar/config.jsonc.backup b/waybar/config.jsonc.backup deleted file mode 100644 index fc9305c..0000000 --- a/waybar/config.jsonc.backup +++ /dev/null @@ -1,489 +0,0 @@ -{ - "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 - } -} diff --git a/waybar/config.jsonc.original b/waybar/config.jsonc.original deleted file mode 100644 index 86194e0..0000000 --- a/waybar/config.jsonc.original +++ /dev/null @@ -1,478 +0,0 @@ -{ - "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 - "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, - "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 - }, - - "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": 30, - "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 - } -} diff --git a/waybar/install.sh b/waybar/install.sh new file mode 100755 index 0000000..70a5095 --- /dev/null +++ b/waybar/install.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +RED='\033[1;31m' +GRN='\033[1;32m' +BLU='\033[1;34m' +RST='\033[0m' + +DEPS=( + bluez + bluez-utils # bluetoothctl + brightnessctl + fzf + networkmanager # nmcli + pacman-contrib # checkupdates + pipewire-pulse + ttf-0xproto-nerd +) + +main() { + printf '%bInstalling dependencies...%b\n' "$BLU" "$RST" + + local package + local errors=0 + for package in "${DEPS[@]}"; do + if pacman -Qi "$package" > /dev/null; then + printf '[%b/%b] %s\n' "$GRN" "$RST" "$package" + else + printf '[ ] %s...\n' "$package" + + if sudo pacman -S --noconfirm "$package"; then + printf '[%b+%b] %s\n' "$GRN" "$RST" "$package" + else + printf '[%bx%b] %s\n' "$RED" "$RST" "$package" + ((errors++)) + fi + fi + done + + printf '\n%bMaking scripts executable...%b\n' "$BLU" "$RST" + chmod -v +x ~/.config/waybar/scripts/*.sh + + pkill waybar + waybar &> /dev/null & + disown + + if ((errors > 0)); then + printf '\nInstallation completed with %b%d errors%b\n' \ + "$RED" "$errors" "$RST" + else + printf '\n%bInstallation complete!%b\n' "$GRN" "$RST" + fi +} + +main diff --git a/waybar/modules/backlight.jsonc b/waybar/modules/backlight.jsonc new file mode 100644 index 0000000..d5b53fc --- /dev/null +++ b/waybar/modules/backlight.jsonc @@ -0,0 +1,32 @@ +{ + "backlight": { + // "interval": + "format": "{icon} {percent}%", + "format-icons": [ + "๎Ž", "๎“", "๎‘", "๎", "๎Ž", "๎", "๎Š", "๎ˆ", "๎Ž›" + ], + "min-length": 7, + "max-length": 7, + // "align": + // "justify": + // "rotate": + // "states": + // "on-click": + // "on-click-middle": + // "on-click-right": + // "on-update": + "on-scroll-up": "~/.config/waybar/scripts/backlight.sh up", + "on-scroll-down": "~/.config/waybar/scripts/backlight.sh down", + // "smooth-scrolling-threshold": + // "reverse-scrolling": + // "reverse-mouse-scrolling": + // "scroll-step": + // "min-brightness": + "tooltip": false + // "tooltip-format": + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + } +} diff --git a/waybar/modules/battery.jsonc b/waybar/modules/battery.jsonc new file mode 100644 index 0000000..1df2f70 --- /dev/null +++ b/waybar/modules/battery.jsonc @@ -0,0 +1,45 @@ +{ + "battery": { + // "bat": + // "adapter": + // "design-capacity": + // "full-at": + // "interval": + "states": { + "warning": 20, + "critical": 10 + }, + "format": "{icon} {capacity}%", + "format-time": "{H} hr {M} min", + "format-icons": [ + "๓ฐ‚Ž", "๓ฐป", "๓ฐผ", "๓ฐฝ", "๓ฐพ", "๓ฐฟ", "๓ฐ‚€", "๓ฐ‚", "๓ฐ‚‚", "๓ฐน" + ], + "format-charging": "๓ฐ‰ {capacity}%", + "min-length": 7, + "max-length": 7, + // "align": + // "justify": + // "rotate": + // "on-click": + // "on-click-middle": + // "on-click-right": + // "on-update": + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + // "tooltip": + "tooltip-format": "Discharging: {time}", + "tooltip-format-charging": "Charging: {time}", + // "weighted-average": + // "bat-compatibility": + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + "events": { + "on-discharging-warning": "notify-send 'Battery Low (20%)' -i 'battery-020'", + "on-discharging-critical": "notify-send 'Battery Critical (10%)' -u critical -i 'battery-010'", + "on-charging-100": "notify-send 'Battery Full (100%)' -i 'battery-100-charged'" + } + } +} diff --git a/waybar/modules/bluetooth.jsonc b/waybar/modules/bluetooth.jsonc new file mode 100644 index 0000000..3113870 --- /dev/null +++ b/waybar/modules/bluetooth.jsonc @@ -0,0 +1,38 @@ +{ + "bluetooth": { + // "controller": + // "format-device-preference": + "format": "๓ฐ‚ฏ", + "format-disabled": "๓ฐ‚ฒ", + "format-off": "๓ฐ‚ฒ", + "format-on": "๓ฐ‚ฐ", + "format-connected": "๓ฐ‚ฑ", + // "format-connected-battery": + // "format-no-controller": + // "format-icons": + // "rotate": + "min-length": 2, + "max-length": 2, + // "align": + // "justify": + "on-click": "kitty -e ~/.config/waybar/scripts/bluetooth.sh", + // "on-click-middle": + "on-click-right": "bluetoothctl power off && notify-send 'Bluetooth Off' -i 'network-bluetooth-inactive' -r 1925", + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + // "tooltip": + "tooltip-format": "Device Addr: {device_address}", + "tooltip-format-disabled": "Bluetooth Disabled", + "tooltip-format-off": "Bluetooth Off", + "tooltip-format-on": "Bluetooth Disconnected", + "tooltip-format-connected": "Device: {device_alias}", + "tooltip-format-enumerate-connected": "Device: {device_alias}", + "tooltip-format-connected-battery": "Device: {device_alias}\nBattery: {device_battery_percentage}%", + "tooltip-format-enumerate-connected-battery": "Device: {device_alias}\nBattery: {device_battery_percentage}%" + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + } +} diff --git a/waybar/modules/clock.jsonc b/waybar/modules/clock.jsonc new file mode 100644 index 0000000..13c7edf --- /dev/null +++ b/waybar/modules/clock.jsonc @@ -0,0 +1,71 @@ +{ + "clock#time": { + // "interval": + "format": "{:%H:%M}", + // "timezone": + // "timezones": + // "locale": + "min-length": 5, + "max-length": 5, + // "rotate": 0, + // "on-click": + // "on-click-middle": + // "on-click-right": + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + // "tooltip": + "tooltip-format": "Standard Time: {:%I:%M %p}" + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + }, + + /*-------------- + calendar + --------------*/ + + "clock#date": { + // "interval": + "format": "๓ฐธ— {:%m-%d}", + // "timezone": + // "timezones": + // "locale": + "min-length": 8, + "max-length": 8, + // "rotate": + // "on-click": + // "on-click-middle": + // "on-click-right": + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + // "tooltip": + "tooltip-format": "{calendar}", + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + "calendar": { + "mode": "month", + "mode-mon-col": 6, + // "week-pos": + // "on-scroll": + "format": { + "months": "{}", + "days": "{}", + // "weeks": + "weekdays": "{}", + "today": "{}" + } + }, + "actions": { + "on-click": "mode" + // "on-click-middle": + // "on-click-right": + // "on-scroll-up": + // "on-scroll-down": + } + } +} diff --git a/waybar/modules/cpu.jsonc b/waybar/modules/cpu.jsonc new file mode 100644 index 0000000..67ac8a5 --- /dev/null +++ b/waybar/modules/cpu.jsonc @@ -0,0 +1,27 @@ +{ + "cpu": { + "interval": 10, + "format": "๓ฐ› {usage}%", + "format-warning": "๓ฐ€จ {usage}%", + "format-critical": "๓ฐ€จ {usage}%", + // "format-icons": + "min-length": 7, + "max-length": 7, + // "align": + // "justify": + // "rotate": + "states": { + "warning": 75, + "critical": 90 + }, + // "on-click": + // "on-click-middle": + // "on-click-right": + // "on-update": + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + "tooltip": false + // "expand": + } +} diff --git a/waybar/modules/custom/distro.jsonc b/waybar/modules/custom/distro.jsonc new file mode 100644 index 0000000..62c86ea --- /dev/null +++ b/waybar/modules/custom/distro.jsonc @@ -0,0 +1,33 @@ +{ + "custom/distro": { + // "exec": + // "exec-if": + // "exec-on-event": + // "hide-empty-text": + // "return-type": + // "interval": + // "restart-interval": + // "signal": + "format": "๓ฐฃ‡", + // "format-icons": + // "rotate": + // "min-length": + // "max-length": + // "align": + // "justify": + // "on-click": + // "on-click-middle": + // "on-click-right": + // "on-update": + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + "tooltip": false + // "tooltip-format": + // "escape": + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + } +} diff --git a/waybar/modules/custom/dividers.jsonc b/waybar/modules/custom/dividers.jsonc new file mode 100644 index 0000000..b1944a0 --- /dev/null +++ b/waybar/modules/custom/dividers.jsonc @@ -0,0 +1,79 @@ +{ + /*------------------- + left dividers + -------------------*/ + + "custom/left_div#1": { + "format": "๎‚ฒ", + "tooltip": false + }, + "custom/left_div#2": { + "format": "๎‚ฒ", + "tooltip": false + }, + "custom/left_div#3": { + "format": "๎‚ฒ", + "tooltip": false + }, + "custom/left_div#4": { + "format": "๎‚ฒ", + "tooltip": false + }, + "custom/left_div#5": { + "format": "๎‚ฒ", + "tooltip": false + }, + "custom/left_div#6": { + "format": "๎‚ฒ", + "tooltip": false + }, + "custom/left_div#7": { + "format": "๎‚ฒ", + "tooltip": false + }, + "custom/left_div#8": { + "format": "๎‚ฒ", + "tooltip": false + }, + + // inverse + "custom/left_inv#1": { + "format": "๎ƒ–", + "tooltip": false + }, + "custom/left_inv#2": { + "format": "๎ƒ–", + "tooltip": false + }, + + /*-------------------- + right dividers + --------------------*/ + + "custom/right_div#1": { + "format": "๎‚ฐ", + "tooltip": false + }, + "custom/right_div#2": { + "format": "๎‚ฐ", + "tooltip": false + }, + "custom/right_div#3": { + "format": "๎‚ฐ", + "tooltip": false + }, + "custom/right_div#4": { + "format": "๎‚ฐ", + "tooltip": false + }, + "custom/right_div#5": { + "format": "๎‚ฐ", + "tooltip": false + }, + + // inverse + "custom/right_inv#1": { + "format": "๎ƒ—", + "tooltip": false + } +} diff --git a/waybar/modules/custom/power_menu.jsonc b/waybar/modules/custom/power_menu.jsonc new file mode 100644 index 0000000..c438735 --- /dev/null +++ b/waybar/modules/custom/power_menu.jsonc @@ -0,0 +1,33 @@ +{ + "custom/power_menu": { + // "exec": + // "exec-if": + // "exec-on-event": + // "hide-empty-text": + // "return-type": + // "interval": + // "restart-interval": + // "signal": + "format": "๓ฐค„", + // "format-icons": + // "rotate": + // "min-length": + // "max-length": + // "align": + // "justify": + "on-click": "kitty -e ~/.config/waybar/scripts/power-menu.sh", + // "on-click-middle": + // "on-click-right": + // "on-update": + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + // "tooltip": + "tooltip-format": "Power Menu" + // "escape": + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + } +} diff --git a/waybar/modules/custom/system_update.jsonc b/waybar/modules/custom/system_update.jsonc new file mode 100644 index 0000000..b3106cf --- /dev/null +++ b/waybar/modules/custom/system_update.jsonc @@ -0,0 +1,33 @@ +{ + "custom/system_update": { + "exec": "~/.config/waybar/scripts/system-update.sh module", + // "exec-if": + // "exec-on-event": + // "hide-empty-text": + "return-type": "json", + "interval": 3600, + // "restart-interval": + "signal": 1, + "format": "{}", + // "format-icons": + // "rotate": + // "align": + // "justify": + "min-length": 2, + "max-length": 2, + "on-click": "kitty -e ~/.config/waybar/scripts/system-update.sh" + // "on-click-middle": + // "on-click-right": + // "on-update": + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + // "tooltip": + // "tooltip-format": + // "escape": + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + } +} diff --git a/waybar/modules/custom/user.jsonc b/waybar/modules/custom/user.jsonc new file mode 100644 index 0000000..9046dfe --- /dev/null +++ b/waybar/modules/custom/user.jsonc @@ -0,0 +1,83 @@ +{ + "group/user": { + "orientation": "horizontal", + "modules": [ + "custom/trigger", + "custom/user" + ], + "drawer": { + // "transition-duration": + // "transition-left-to-right": + // "children-class": + // "click-to-reveal": + } + }, + + "custom/trigger": { + // "exec": + // "exec-if": + // "exec-on-event": + // "hide-empty-text": + // "return-type": + // "interval": + // "restart-interval": + // "signal": + "format": "๓ฐœ", + // "format-icons": + // "rotate": + "min-length": 4, + "max-length": 4, + // "align": + // "justify": + // "on-click": + // "on-click-middle": + // "on-click-right": + // "on-update": + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + "tooltip": false + // "tooltip-format": + // "escape": + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + }, + + /*-------------- + username + --------------*/ + + "custom/user": { + "exec": "id -un", + // "exec-if": + // "exec-on-event": + // "hide-empty-text": + // "return-type": + // "interval": + // "restart-interval": + // "signal": + "format": "{}", + // "format-icons": + // "rotate": + // "min-length": + // "max-length": + // "align": + // "justify": + // "on-click": + // "on-click-middle": + // "on-click-right": + // "on-update": + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + "tooltip": false + // "tooltip-format": + // "escape": + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + } +} diff --git a/waybar/modules/extras/taskbar.jsonc b/waybar/modules/extras/taskbar.jsonc new file mode 100644 index 0000000..245ca32 --- /dev/null +++ b/waybar/modules/extras/taskbar.jsonc @@ -0,0 +1,21 @@ +{ + "wlr/taskbar": { + // "all-outputs": + // "format": + // "icon-theme": + // "icon-size": + // "markup": + // "tooltip": + // "tooltip-format": + // "active-first": + // "sort-by-app-id": + "on-click": "activate", + // "on-click-middle": + // "on-click-right": + // "on-update": + "ignore-list": [ "kitty" ], + // "app_ids-mapping": + // "rewrite": + "cursor": true + } +} diff --git a/waybar/modules/extras/tray.jsonc b/waybar/modules/extras/tray.jsonc new file mode 100644 index 0000000..c576fdb --- /dev/null +++ b/waybar/modules/extras/tray.jsonc @@ -0,0 +1,13 @@ +{ + "tray": { + "icon-size": 16, + // "show-passive-items": + // "smooth-scrolling-threshold": + "spacing": 12, + // "reverse-direction": + // "on-update": + // "expand": + // "icons": + "cursor": true + } +} diff --git a/waybar/modules/extras/wireplumber.jsonc b/waybar/modules/extras/wireplumber.jsonc new file mode 100644 index 0000000..7bfc14e --- /dev/null +++ b/waybar/modules/extras/wireplumber.jsonc @@ -0,0 +1,82 @@ +{ + "group/wireplumber": { + "orientation": "horizontal", + "modules": [ + "wireplumber#output", + "wireplumber#input" + ], + "drawer": { + // "transition-duration": + "transition-left-to-right": false + // "children-class": + // "click-to-reveal": + } + }, + + /*------------------- + output device + -------------------*/ + + "wireplumber#output": { + "format": "{icon} {volume}%", + "format-muted": "๓ฐŸ {volume}%", + // "format-source": + // "format-source-muted": + "format-icons": [ + "๓ฐ•ฟ", "๓ฐ–€", "๓ฐ•พ" + ], + // "rotate": + // "states": + "min-length": 7, + "max-length": 7, + // "align": + // "justify": + // "scroll-step": + "on-click": "~/.config/waybar/scripts/volume.sh output mute", + // "on-click-middle": + // "on-click-right": + // "on-update": + "on-scroll-up": "~/.config/waybar/scripts/volume.sh output raise", + "on-scroll-down": "~/.config/waybar/scripts/volume.sh output lower", + // "tooltip": + "tooltip-format": "Device: {node_name}", + // "max-volume": + // "reverse-scrolling": + "node-type": "Audio/Sink" + // "menu": + // "menu-file": + // "menu-actions": + }, + + /*---------------- + microphone + ----------------*/ + + "wireplumber#input": { + "format": "๓ฐฌ {volume}%", + "format-muted": "๓ฐญ {volume}%", + // "format-source": + // "format-source-muted": + // "rotate": + // "states": + "min-length": 7, + "max-length": 7, + // "align": + // "justify": + // "scroll-step": + "on-click": "~/.config/waybar/scripts/volume.sh input mute", + // "on-click-middle": + // "on-click-right": + // "on-update": + "on-scroll-up": "~/.config/waybar/scripts/volume.sh input raise", + "on-scroll-down": "~/.config/waybar/scripts/volume.sh input lower", + // "tooltip": + "tooltip-format": "Device: {node_name}", + // "max-volume": + // "reverse-scrolling": + "node-type": "Audio/Source" + // "menu": + // "menu-file": + // "menu-actions": + } +} diff --git a/waybar/modules/hyprland/window.jsonc b/waybar/modules/hyprland/window.jsonc new file mode 100644 index 0000000..caca1cd --- /dev/null +++ b/waybar/modules/hyprland/window.jsonc @@ -0,0 +1,19 @@ +{ + "hyprland/window": { + "format": "{}", + "rewrite": { + "": "Desktop", + "kitty": "Terminal", + "zsh": "Terminal", + "~": "Terminal" + }, + // "separate-outputs": + // "icon": + // "icon-size": + // "min-length": + // "max-length": + // "tooltip": + "swap-icon-label": false + // "expand": + } +} diff --git a/waybar/modules/hyprland/windowcount.jsonc b/waybar/modules/hyprland/windowcount.jsonc new file mode 100644 index 0000000..65e959d --- /dev/null +++ b/waybar/modules/hyprland/windowcount.jsonc @@ -0,0 +1,12 @@ +{ + "hyprland/windowcount": { + "format": "[{}]", + // "format-empty": + // "format-windowed": + // "format-fullscreen": + // "separate-outputs": + // "min-length": + // "max-length": + "swap-icon-label": false + } +} diff --git a/waybar/modules/hyprland/workspaces.jsonc b/waybar/modules/hyprland/workspaces.jsonc new file mode 100644 index 0000000..864fcac --- /dev/null +++ b/waybar/modules/hyprland/workspaces.jsonc @@ -0,0 +1,38 @@ +{ + "hyprland/workspaces": { + // "active-only": + // "hide-active": + // "all-outputs": + "format": "{icon}", + "format-icons": { + "active": "๎ชซ", + "default": "๎ฎŠ" + }, + "persistent-workspaces": { + "*": 5 + }, + // "persistent-only": + // "show-special": + // "special-visible-only": + // "sort-by": + // "window-rewrite": + // "window-rewrite-default": + // "format-window-separator": + "workspace-taskbar": { + // "enable": + // "update-active-window": + // "format": + // "icon-size": + // "icon-theme": + // "orientation": + // "ignore-list": + // "on-click-window": + }, + // "move-to-monitor": + // "ignore-workspaces": + "on-scroll-up": "hyprctl dispatch workspace +1", + "on-scroll-down": "hyprctl dispatch workspace -1", + // "expand": + "cursor": true + } +} diff --git a/waybar/modules/idle_inhibitor.jsonc b/waybar/modules/idle_inhibitor.jsonc new file mode 100644 index 0000000..36f3186 --- /dev/null +++ b/waybar/modules/idle_inhibitor.jsonc @@ -0,0 +1,30 @@ +{ + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "๓ฐˆˆ", + "deactivated": "๓ฐˆ‰" + }, + // "rotate": + "min-length": 3, + "max-length": 3, + // "align": + // "justify": + // "on-click": + // "on-click-middle": + // "on-click-right": + // "on-update": + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + // "tooltip": + "tooltip-format-activated": "Keep Screen On: {status}", + "tooltip-format-deactivated": "Keep Screen On: {status}", + "start-activated": false + // "timeout": + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + } +} diff --git a/waybar/modules/memory.jsonc b/waybar/modules/memory.jsonc new file mode 100644 index 0000000..e9d6ab8 --- /dev/null +++ b/waybar/modules/memory.jsonc @@ -0,0 +1,31 @@ +{ + "memory": { + "interval": 10, + "format": "๓ฐ˜š {percentage}%", + "format-warning": "๓ฐ€ง {percentage}%", + "format-critical": "๓ฐ€ง {percentage}%", + // "format-icons": + // "rotate": + "states": { + "warning": 75, + "critical": 90 + }, + "min-length": 7, + "max-length": 7, + // "align": + // "justify": + // "on-click": + // "on-click-middle": + // "on-click-right": + // "on-update": + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + // "tooltip": + "tooltip-format": "Memory Used: {used:0.1f} GB / {total:0.1f} GB" + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + } +} diff --git a/waybar/modules/mpris.jsonc b/waybar/modules/mpris.jsonc new file mode 100644 index 0000000..51218b4 --- /dev/null +++ b/waybar/modules/mpris.jsonc @@ -0,0 +1,36 @@ +{ + "mpris": { + // "player": + // "ignored-players": + // "interval": + "format": "{player_icon} {title} - {artist}", + "format-paused": "{status_icon} {title} - {artist}", + "tooltip-format": "Playing: {title} - {artist}", + "tooltip-format-paused": "Paused: {title} - {artist}", + // "enable-tooltip-len-limits": + // "on-click": + // "on-click-middle": + // "on-click-right": + "player-icons": { + "default": "๓ฐŠ" + }, + "status-icons": { + "paused": "๓ฐค" + }, + // "artist-len": + // "album-len": + // "title-len": + // "dynamic-len": + // "dynamic-order": + // "dynamic-separator": + // "dynamic-importance-order": + // "truncate-hours": + // "ellipsis": + // "rotate": + // "min-length": + "max-length": 1000 + // "align": + // "justify": + // "expand": + } +} diff --git a/waybar/modules/network.jsonc b/waybar/modules/network.jsonc new file mode 100644 index 0000000..5095e90 --- /dev/null +++ b/waybar/modules/network.jsonc @@ -0,0 +1,40 @@ +{ + "network": { + // "interface": + // "rfkill": + "interval": 10, + // "family": + "format": "๓ฐคจ", + "format-ethernet": "๓ฐˆ€", + "format-wifi": "{icon}", + // "format-linked": + "format-disconnected": "๓ฐคฏ", + "format-disabled": "๓ฐคฎ", + // "format-alt": + "format-icons": [ + "๓ฐคŸ", "๓ฐคข", "๓ฐคฅ", "๓ฐคจ" + ], + // "rotate": + "min-length": 2, + "max-length": 2, + // "align": + // "justify": + "on-click": "kitty -e ~/.config/waybar/scripts/network.sh", + // "on-click-middle": + "on-click-right": "nmcli radio wifi off && notify-send 'Wi-Fi Disabled' -i 'network-wireless-off' -r 1125", + // "on-update": + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + // "tooltip": + "tooltip-format": "Gateway: {gwaddr}", + "tooltip-format-ethernet": "Interface: {ifname}", + "tooltip-format-wifi": "Network: {essid}\nIP Addr: {ipaddr}/{cidr}\nStrength: {signalStrength}%\nFrequency: {frequency} GHz", + "tooltip-format-disconnected": "Wi-Fi Disconnected", + "tooltip-format-disabled": "Wi-Fi Disabled" + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + } +} diff --git a/waybar/modules/pulseaudio.jsonc b/waybar/modules/pulseaudio.jsonc new file mode 100644 index 0000000..b32c9e2 --- /dev/null +++ b/waybar/modules/pulseaudio.jsonc @@ -0,0 +1,96 @@ +{ + "group/pulseaudio": { + "orientation": "horizontal", + "modules": [ + "pulseaudio#output", + "pulseaudio#input" + ], + "drawer": { + // "transition-duration": + "transition-left-to-right": false + // "children-class": + // "click-to-reveal": + } + }, + + /*------------------- + output device + -------------------*/ + + "pulseaudio#output": { + "format": "{icon} {volume}%", + // "format-bluetooth": + "format-muted": "{icon} {volume}%", + // "format-source": + // "format-source-muted": + "format-icons": { + "default": [ "๓ฐ•ฟ", "๓ฐ–€", "๓ฐ•พ" ], + "default-muted": "๓ฐŸ", + "headphone": "๓ฐ‹‹", + "headphone-muted": "๓ฐŸŽ", + "headset": "๓ฐ‹Ž", + "headset-muted": "๓ฐ‹" + }, + // "rotate": + // "states": + "min-length": 7, + "max-length": 7, + // "align": + // "justify": + // "scroll-step": + "on-click": "~/.config/waybar/scripts/volume.sh output mute", + // "on-click-middle": + // "on-click-right": + // "on-update": + "on-scroll-up": "~/.config/waybar/scripts/volume.sh output raise", + "on-scroll-down": "~/.config/waybar/scripts/volume.sh output lower", + // "smooth-scrolling-threshold": + // "tooltip": + "tooltip-format": "Output Device: {desc}" + // "max-volume": + // "ignored-sinks": + // "reverse-scrolling": + // "reverse-mouse-scrolling": + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + }, + + /*---------------- + microphone + ----------------*/ + + "pulseaudio#input": { + "format": "{format_source}", + // "format-bluetooth": + // "format-muted": + "format-source": "๓ฐฌ {volume}%", + "format-source-muted": "๓ฐญ {volume}%", + // "format-icons": + // "rotate": + // "states": + "min-length": 7, + "max-length": 7, + // "align": + // "justify": + // "scroll-step": + "on-click": "~/.config/waybar/scripts/volume.sh input mute", + // "on-click-middle": + // "on-click-right": + // "on-update": + "on-scroll-up": "~/.config/waybar/scripts/volume.sh input raise", + "on-scroll-down": "~/.config/waybar/scripts/volume.sh input lower", + // "smooth-scrolling-threshold": + // "tooltip": + "tooltip-format": "Input Device: {desc}" + // "max-volume": + // "ignored-sinks": + // "reverse-scrolling": + // "reverse-mouse-scrolling": + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + } +} diff --git a/waybar/modules/temperature.jsonc b/waybar/modules/temperature.jsonc new file mode 100644 index 0000000..78b3707 --- /dev/null +++ b/waybar/modules/temperature.jsonc @@ -0,0 +1,35 @@ +{ + "temperature": { + "thermal-zone": 1, + // "hwmon-path": + // "hwmon-path-abs": + // "input-filename": + // "warning-threshold": + "critical-threshold": 90, + "interval": 10, + // "format-warning": + "format-critical": "๓ฐ€ฆ {temperatureC}ยฐC", + "format": "{icon} {temperatureC}ยฐC", + "format-icons": [ + "๓ฑƒƒ", "๓ฐ”", "๓ฑƒ‚" + ], + // "rotate": + "min-length": 8, + "max-length": 8, + // "align": + // "justify": + // "on-click": + // "on-click-middle": + // "on-click-right": + // "on-update": + // "on-scroll-up": + // "on-scroll-down": + // "smooth-scrolling-threshold": + // "tooltip": + "tooltip-format": "Temp in Fahrenheit: {temperatureF}ยฐF" + // "menu": + // "menu-file": + // "menu-actions": + // "expand": + } +} diff --git a/waybar/scripts/backlight.sh b/waybar/scripts/backlight.sh new file mode 100755 index 0000000..bba254a --- /dev/null +++ b/waybar/scripts/backlight.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash +# +# Adjust screen brightness and send a notification with the current level +# +# Requirements: +# - brightnessctl +# - notify-send (libnotify) +# +# Author: Jesse Mirabel +# Created: August 28, 2025 +# License: MIT + +VALUE=1 + +print-usage() { + local script=${0##*/} + + cat <<- EOF + USAGE: $script [OPTIONS] + + Adjust screen brightness and send a notification with the current level + + OPTIONS: + up Increase brightness by + down Decrease brightness by + Default value: $VALUE + + EXAMPLES: + Increase brightness: + $ $script up + + Decrease brightness by 5: + $ $script down 5 + EOF + + exit 1 +} + +set-brightness() { + local op + case $action in + 'up') op='+' ;; + 'down') op='-' ;; + esac + + brightnessctl -n set "${value}%${op}" &> /dev/null + + local level + level=$(brightnessctl -m | awk -F ',' '{print $4}') + + notify-send "Brightness: $level" -h int:value:"$level" -i 'contrast' -r 2825 +} + +main() { + action=$1 + value=${2:-$VALUE} + + ! ((value > 0)) && print-usage + + case $action in + 'up' | 'down') set-brightness ;; + *) print-usage ;; + esac +} + +main "$@" diff --git a/waybar/scripts/battery-level.sh b/waybar/scripts/battery-level.sh deleted file mode 100755 index ddde6ea..0000000 --- a/waybar/scripts/battery-level.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env bash - -# Original script by Eric Murphy -# https://github.com/ericmurphyxyz/dotfiles/blob/master/.local/bin/battery-alert -# -# Modified by Jesse Mirabel (@sejjy) -# https://github.com/sejjy/mechabar - -# This script sends a notification when the battery is full, low, or critical. -# icon theme used: tela-circle-icon-theme-dracula -# -# (see the bottom of the script for more information) - -export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus" - -# battery levels -WARNING_LEVEL=20 -CRITICAL_LEVEL=10 - -# get the battery state and percentage using upower (waybar dependency) -BAT_PATH=$(upower -e | grep BAT | head -n 1) -BATTERY_STATE=$(upower -i "$BAT_PATH" | awk '/state:/ {print $2}') -BATTERY_LEVEL=$(upower -i "$BAT_PATH" | awk '/percentage:/ {print $2}' | tr -d '%') - -# prevent multiple notifications -FILE_FULL=/tmp/battery-full -FILE_WARNING=/tmp/battery-warning -FILE_CRITICAL=/tmp/battery-critical - -# remove the files if the battery is no longer in that state -if [ "$BATTERY_STATE" == "discharging" ]; then - rm -f $FILE_FULL -elif [ "$BATTERY_STATE" == "charging" ]; then - rm -f "$FILE_WARNING" "$FILE_CRITICAL" -fi - -# if the battery is full and is plugged in -if [ "$BATTERY_LEVEL" -eq 100 ] && [ "$BATTERY_STATE" == "fully-charged" ] && [ ! -f $FILE_FULL ]; then - notify-send -a "state" "Battery Charged (${BATTERY_LEVEL}%)" "You might want to unplug your PC." -i "battery-full" -r 9991 - touch $FILE_FULL - -# if the battery is low and is discharging -elif [ "$BATTERY_LEVEL" -le $WARNING_LEVEL ] && [ "$BATTERY_STATE" == "discharging" ] && [ ! -f $FILE_WARNING ]; then - notify-send -a "state" "Battery Low (${BATTERY_LEVEL}%)" "You might want to plug in your PC." -u critical -i "battery-caution" -r 9991 -h string:fgcolor:\#fab387 -h string:frcolor:\#fab387 - touch $FILE_WARNING - -# if the battery is critical and is discharging -elif [ "$BATTERY_LEVEL" -le $CRITICAL_LEVEL ] && [ "$BATTERY_STATE" == "discharging" ] && [ ! -f $FILE_CRITICAL ]; then - notify-send -a "state" "Battery Critical (${BATTERY_LEVEL}%)" "Plug in your PC now." -u critical -i "battery-empty" -r 9991 - touch $FILE_CRITICAL -fi - -# systemd service -# Add the following to ~/.config/systemd/user/battery-level.service: - -# [Unit] -# Description=Battery Level Checker -# After=graphical.target -# -# [Service] -# ExecStart=%h/.config/waybar/scripts/battery-level.sh -# Type=oneshot - -# systemd timer -# Add the following to ~/.config/systemd/user/battery-level.timer: - -# [Unit] -# Description=Run Battery Level Checker -# -# [Timer] -# OnBootSec=1min -# OnUnitActiveSec=1min -# Unit=battery-level.service -# -# [Install] -# WantedBy=timers.target - -# enable the timer by running the following commands: -# systemctl --user daemon-reload -# systemctl --user enable --now battery-level.timer diff --git a/waybar/scripts/battery-state.sh b/waybar/scripts/battery-state.sh deleted file mode 100755 index d7cf5fc..0000000 --- a/waybar/scripts/battery-state.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env bash - -# Original script by Eric Murphy -# https://github.com/ericmurphyxyz/dotfiles/blob/master/.local/bin/battery-alert -# -# Modified by Jesse Mirabel (@sejjy) -# https://github.com/sejjy/mechabar - -# This script sends a notification when the battery is charging or discharging. -# icon theme used: tela-circle-icon-theme-dracula -# -# (see the bottom of the script for more information) - -export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus" - -# get the battery state from the udev rule -BATTERY_STATE=$1 - -# get the battery percentage using upower (waybar dependency) -BAT_PATH=$(upower -e | grep BAT | head -n 1) -BATTERY_LEVEL=$(upower -i "$BAT_PATH" | awk '/percentage:/ {print $2}' | tr -d '%') - -# set the battery charging state and icon -case "$BATTERY_STATE" in -"charging") - BATTERY_CHARGING="Charging" - BATTERY_ICON="090-charging" - ;; -"discharging") - BATTERY_CHARGING="Disharging" - BATTERY_ICON="090" - ;; -esac - -# send the notification -notify-send -a "state" "Battery ${BATTERY_CHARGING} (${BATTERY_LEVEL}%)" -u normal -i "battery-${BATTERY_ICON}" -r 9991 - -# udev rule -# Add the following to /etc/udev/rules.d/60-power.rules: - -# ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", ENV{DISPLAY}=":0", RUN+="/usr/bin/su -c '$HOME/.config/waybar/scripts/battery-state.sh discharging'" -# ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", ENV{DISPLAY}=":0", RUN+="/usr/bin/su -c '$HOME/.config/waybar/scripts/battery-state.sh charging'" - -# the number 60 in the udev rule can be changed to any number between 0 and 99. -# the lower the number, the higher the priority. -# -# $USER does not work, so you have to replace "" with your username. - -# reload udev rules by running the following command: -# sudo udevadm control --reload-rules diff --git a/waybar/scripts/bluetooth-menu.sh b/waybar/scripts/bluetooth-menu.sh deleted file mode 100755 index 40642fd..0000000 --- a/waybar/scripts/bluetooth-menu.sh +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env bash - -# Author: Jesse Mirabel (@sejjy) -# GitHub: https://github.com/sejjy/mechabar - -# Rofi config -config="$HOME/.config/rofi/bluetooth-menu.rasi" - -# Rofi window override -override_disabled="mainbox { children: [ textbox-custom, listview ]; } listview { lines: 1; padding: 6px 6px 8px; }" - -get_device_icon() { - local device_mac=$1 - device_info=$(bluetoothctl info "$device_mac") - device_icon=$(echo "$device_info" | grep "Icon:" | awk '{print $2}') - - case "$device_icon" in - "audio-headphones" | "audio-headset") echo "๓ฐ‹‹ " ;; # Headphones - "video-display" | "computer") echo "๓ฐน " ;; # Monitor - "audio-input-microphone") echo "๓ฐฌ " ;; # Microphone - "input-keyboard") echo "๓ฐŒŒ " ;; # Keyboard - "audio-speakers") echo "๓ฐ“ƒ " ;; # Speakers - "input-mouse") echo "๓ฐฝ " ;; # Mouse - "phone") echo "๓ฐฒ " ;; # Phone - *) - echo "๓ฐ‚ฑ " # Default - ;; - esac -} - -while true; do - # Get list of paired devices - bluetooth_devices=$(bluetoothctl devices | while read -r line; do - device_mac=$(echo "$line" | awk '{print $2}') - device_name=$(echo "$line" | awk '{$1=$2=""; print substr($0, 3)}') - icon=$(get_device_icon "$device_mac") - echo "$icon $device_name" - done) - - options=$( - echo "๓ฐŒ Scan for devices" - echo "๓ฐ‚ฒ Disable Bluetooth" - echo "$bluetooth_devices" - ) - option="๓ฐ‚ฏ Enable Bluetooth" - - # Get Bluetooth status - bluetooth_status=$(bluetoothctl show | grep "Powered:" | awk '{print $2}') - - if [[ "$bluetooth_status" == "yes" ]]; then - selected_option=$(echo -e "$options" | rofi -dmenu -i -selected-row 1 -config "${config}" -p "๏€‚ " || pkill -x rofi) - else - selected_option=$(echo -e "$option" | rofi -dmenu -i -selected-row 1 -config "${config}" -theme-str "${override_disabled}" -p "๏€‚ " || pkill -x rofi) - fi - - # Exit if no option is selected - if [ -z "$selected_option" ]; then - exit - fi - - # Actions based on selected option - case "$selected_option" in - *"Enable Bluetooth") - notify-send "Bluetooth Enabled" -i "package-installed-outdated" - rfkill unblock bluetooth - bluetoothctl power on - sleep 1 - ;; - *"Disable Bluetooth") - notify-send "Bluetooth Disabled" -i "package-broken" - rfkill block bluetooth - bluetoothctl power off - exit - ;; - *"Scan for devices") - notify-send "Press '?' to show help." -i "package-installed-outdated" - kitty --title '๓ฐ‚ฑ Bluetooth TUI' bash -c "bluetui" # Launch bluetui - ;; - *) - # Extract device name - device_name="${selected_option#* }" - device_name="${device_name## }" - - if [[ -n "$device_name" ]]; then - # Get MAC address - device_mac=$(bluetoothctl devices | grep "$device_name" | awk '{print $2}') - - # Trust and pair device - bluetoothctl trust "$device_mac" >/dev/null 2>&1 - bluetoothctl pair "$device_mac" >/dev/null 2>&1 - - # Connect to device - bluetoothctl connect "$device_mac" & - sleep 3 - connection_status=$(bluetoothctl info "$device_mac" | grep "Connected:" | awk '{print $2}') - - if [[ "$connection_status" == "yes" ]]; then - notify-send "Connected to \"$device_name\"." -i "package-installed-outdated" - exit - else - notify-send "Failed to connect to \"$device_name\"." -i "package-broken" - fi - fi - ;; - esac -done diff --git a/waybar/scripts/bluetooth.sh b/waybar/scripts/bluetooth.sh new file mode 100755 index 0000000..5037204 --- /dev/null +++ b/waybar/scripts/bluetooth.sh @@ -0,0 +1,120 @@ +#!/usr/bin/env bash +# +# Scan, select, pair, and connect to Bluetooth devices +# +# Requirements: +# - bluetoothctl (bluez-utils) +# - fzf +# - notify-send (libnotify) +# +# Author: Jesse Mirabel +# Created: August 19, 2025 +# License: MIT + +RED='\033[1;31m' +RST='\033[0m' + +TIMEOUT=10 + +get-device-list() { + bluetoothctl --timeout $TIMEOUT scan on > /dev/null & + + local i num + for ((i = 1; i <= TIMEOUT; i++)); do + printf '\rScanning for devices... (%d/%d)' $i $TIMEOUT + printf '\n%bPress [q] to stop%b\n\n' "$RED" "$RST" + + num=$(bluetoothctl devices | grep -c Device) + + printf '\rDevices: %s' "$num" + printf '\033[3A' # move cursor up 3 lines + + read -rs -n 1 -t 1 + [[ $REPLY == [Qq] ]] && break + done + + printf '\n%bScanning stopped.%b\n\n' "$RED" "$RST" + + list=$(bluetoothctl devices | grep Device | cut -d ' ' -f 2-) + + if [[ -z $list ]]; then + notify-send 'Bluetooth' 'No devices found' -i 'package-broken' + return 1 + fi +} + +select-device() { + local header + header=$(printf '%-17s %s' 'Address' 'Name') + + # shellcheck disable=SC1090 + . ~/.config/waybar/scripts/fzf-colors.sh 2> /dev/null + + local opts=( + --border=sharp + --border-label=' Bluetooth Devices ' + --ghost='Search' + --header="$header" + --height=~100% + --highlight-line + --info=inline-right + --pointer= + --reverse + "${COLORS[@]}" + ) + + address=$(fzf "${opts[@]}" <<< "$list" | awk '{print $1}') + + [[ -z $address ]] && return 1 + + local connected + connected=$(bluetoothctl info "$address" | grep Connected | + awk '{print $2}') + + if [[ $connected == 'yes' ]]; then + notify-send 'Bluetooth' 'Already connected to this device' \ + -i 'package-install' + return 1 + fi +} + +pair-and-connect() { + local paired + paired=$(bluetoothctl info "$address" | grep Paired | awk '{print $2}') + + if [[ $paired == 'no' ]]; then + printf 'Pairing...' + + if ! timeout $TIMEOUT bluetoothctl pair "$address" > /dev/null; then + notify-send 'Bluetooth' 'Failed to pair' -i 'package-purge' + return 1 + fi + fi + + printf '\nConnecting...' + + if timeout $TIMEOUT bluetoothctl connect "$address" > /dev/null; then + notify-send 'Bluetooth' 'Successfully connected' -i 'package-install' + else + notify-send 'Bluetooth' 'Failed to connect' -i 'package-purge' + fi +} + +main() { + local status + status=$(bluetoothctl show | grep PowerState | awk '{print $2}') + + if [[ $status == 'off' ]]; then + bluetoothctl power on > /dev/null + notify-send 'Bluetooth On' -i 'network-bluetooth-activated' -r 1925 + fi + + tput civis # make cursor invisible + get-device-list || exit 1 + tput cnorm # make cursor visible + + select-device || exit 1 + pair-and-connect || exit 1 +} + +main diff --git a/waybar/scripts/brightness-control.sh b/waybar/scripts/brightness-control.sh deleted file mode 100755 index 28fa223..0000000 --- a/waybar/scripts/brightness-control.sh +++ /dev/null @@ -1,92 +0,0 @@ -#!/usr/bin/env bash - -# Print error message for invalid arguments -print_error() { - cat <<"EOF" -Usage: ./brightnesscontrol.sh -Valid actions are: - i -- ncrease brightness [+2%] - d -- ecrease brightness [-2%] -EOF -} - -# Send a notification with brightness info -send_notification() { - brightness=$(brightnessctl info | grep -oP "(?<=\()\d+(?=%)") - notify-send -a "state" -r 91190 -i "gpm-brightness-lcd" -h int:value:"$brightness" "Brightness: ${brightness}%" -u low -} - -# Get the current brightness percentage and device name -get_brightness() { - brightness=$(brightnessctl -m | grep -o '[0-9]\+%' | head -c-2) - device=$(brightnessctl -m | head -n 1 | awk -F',' '{print $1}' | sed 's/_/ /g; s/\<./\U&/g') # Get device name - current_brightness=$(brightnessctl -m | head -n 1 | awk -F',' '{print $3}') # Get current brightness - max_brightness=$(brightnessctl -m | head -n 1 | awk -F',' '{print $5}') # Get max brightness -} -get_brightness - -# Handle options -while getopts o: opt; do - case "${opt}" in - o) - case $OPTARG in - i) # Increase brightness - if [[ $brightness -lt 10 ]]; then - brightnessctl set +1% - else - brightnessctl set +2% - fi - send_notification - ;; - d) # Decrease brightness - if [[ $brightness -le 1 ]]; then - brightnessctl set 1% - elif [[ $brightness -le 10 ]]; then - brightnessctl set 1%- - else - brightnessctl set 2%- - fi - send_notification - ;; - *) - print_error - ;; - esac - ;; - *) - print_error - ;; - esac -done - -# Determine the icon based on brightness level -get_icon() { - if ((brightness <= 5)); then - icon="๎Ž" - elif ((brightness <= 15)); then - icon="๎“" - elif ((brightness <= 30)); then - icon="๎‘" - elif ((brightness <= 45)); then - icon="๎" - elif ((brightness <= 55)); then - icon="๎Ž" - elif ((brightness <= 65)); then - icon="๎" - elif ((brightness <= 80)); then - icon="๎Š" - elif ((brightness <= 95)); then - icon="๎ˆ" - else - icon="๎Ž›" - fi -} - -# Backlight module and tooltip -get_icon -module="${icon} ${brightness}%" - -tooltip="Device Name: ${device}" -tooltip+="\nBrightness: ${current_brightness} / ${max_brightness}" - -echo "{\"text\": \"${module}\", \"tooltip\": \"${tooltip}\"}" diff --git a/waybar/scripts/cpu-temp.sh b/waybar/scripts/cpu-temp.sh deleted file mode 100755 index b6f2355..0000000 --- a/waybar/scripts/cpu-temp.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env bash - -model=$(awk -F ': ' '/model name/{print $2}' /proc/cpuinfo | head -n 1 | sed 's/@.*//; s/ *\((R)\|(TM)\)//g; s/^[ \t]*//; s/[ \t]*$//') - -# get CPU clock speeds -get_cpu_frequency() { - freqlist=$(awk '/cpu MHz/ {print $4}' /proc/cpuinfo) - maxfreq=$(sed 's/...$//' /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq) - if [ -z "$freqlist" ] || [ -z "$maxfreq" ]; then - echo "--" - return - fi - average_freq=$(echo "$freqlist" | tr ' ' '\n' | awk "{sum+=\$1} END {printf \"%.0f/%s MHz\", sum/NR, $maxfreq}") - echo "$average_freq" -} - -# get CPU temp -get_cpu_temperature() { - temp=$(sensors | awk '/Package id 0/ {print $4}' | awk -F '[+.]' '{print $2}') - if [[ -z "$temp" ]]; then - temp=$(sensors | awk '/Tctl/ {print $2}' | tr -d '+ยฐC') - fi - if [[ -z "$temp" ]]; then - temp="--" - temp_f="--" - else - temp=${temp%.*} - temp_f=$(awk "BEGIN {printf \"%.1f\", ($temp * 9 / 5) + 32}") - fi - # Celsius and Fahrenheit - echo "${temp:---} ${temp_f:---}" -} - -get_temperature_icon() { - temp_value=$1 - if [ "$temp_value" = "--" ]; then - icon="๓ฑ”ฑ" # none - elif [ "$temp_value" -ge 80 ]; then - icon="๓ฐธ" # high - elif [ "$temp_value" -ge 70 ]; then - icon="๓ฑƒ‚" # medium - elif [ "$temp_value" -ge 60 ]; then - icon="๓ฐ”" # normal - else - icon="๓ฑƒƒ" # low - fi - echo "$icon" -} - -cpu_frequency=$(get_cpu_frequency) -read -r temp_info < <(get_cpu_temperature) -temp=$(echo "$temp_info" | awk '{print $1}') -temp_f=$(echo "$temp_info" | awk '{print $2}') -thermo_icon=$(get_temperature_icon "$temp") - -# high temp warning -if [ "$temp" == "--" ] || [ "$temp" -ge 80 ]; then - text_output="${thermo_icon} ${temp}ยฐC" -else - text_output="${thermo_icon} ${temp}ยฐC" -fi - -tooltip=":: ${model}\n" -tooltip+="Clock Speed: ${cpu_frequency}\nTemperature: ${temp_f}ยฐF" - -# module and tooltip -echo "{\"text\": \"$text_output\", \"tooltip\": \"$tooltip\"}" diff --git a/waybar/scripts/current-theme.sh b/waybar/scripts/current-theme.sh deleted file mode 100755 index b7d5db6..0000000 --- a/waybar/scripts/current-theme.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -CURRENT_THEME_FILE="$HOME/.config/waybar/themes/current-theme" - -# Get the current theme -current_theme=$(cat "$CURRENT_THEME_FILE" 2>/dev/null || echo "") -current_theme_name="Default" - -# Get the theme name -if [[ -n "$current_theme" ]]; then - current_theme_name=$(basename "$current_theme" .css) - - # Convert "theme-name" to "Theme Name" - formatted_theme_name="${current_theme_name//-/ }" - formatted_theme_name=$(echo "$formatted_theme_name" | awk '{for(i=1;i<=NF;i++) $i=toupper(substr($i,1,1)) substr($i,2)}1') -else - formatted_theme_name="Default" -fi - -tooltip="Theme: $formatted_theme_name" -tooltip+="\nStyle: Classic" # hard-coded for now - -# Tooltip -echo "{\"tooltip\": \"$tooltip\"}" diff --git a/waybar/scripts/fzf-colors.sh b/waybar/scripts/fzf-colors.sh new file mode 100755 index 0000000..ae577ba --- /dev/null +++ b/waybar/scripts/fzf-colors.sh @@ -0,0 +1,82 @@ +#!/usr/bin/env bash +# +# NOTE: +# The names, maps, and COLORS arrays are all parallel: +# - names[i]: the color name as defined in theme.css +# - maps[i]: variable to store the hex value +# - COLORS: color config passed to fzf +# +# Add themes by defining the names array in def-colors(). + +FILE="$XDG_CONFIG_HOME/waybar/theme.css" + +def-colors() { + local theme + theme=$(sed 1q "$FILE") + + declare -ga names + + # Add themes here: + if [[ $theme == *"catppuccin"* ]]; then + names=( + 'surface0' 'base' 'rosewater' + 'red' 'text' 'red' + 'mauve' 'rosewater' 'lavender' + 'text' 'mauve' 'red' + 'surface1' 'overlay0' 'text' + ) + fi +} + +get-hex() { + local defs + defs=$(sed -n '3,28p' "$FILE") + + local n hex + declare -gA colors + + for n in "${names[@]}"; do + read -r _ _ hex < <(grep " $n " <<< "$defs") + hex=${hex%;} + + colors[$n]=$hex + done +} + +map-colors() { + local -a maps=( + '_cur_bg' '_bg' '_spinner' + '_hl' '_fg' '_header' + '_info' '_pointer' '_marker' + '_cur_fg' '_prompt' '_cur_hl' + '_sel_bg' '_border' '_label' + ) + + local n + local i=0 + + for n in "${names[@]}"; do + declare -g "${maps[i]}"="${colors[$n]}" + ((i++)) + done +} + +main() { + def-colors + get-hex + map-colors + + # shellcheck disable=SC2154 + # These variables are defined dynamically + declare -ga COLORS=( + "--color= bg+:$_cur_bg, bg:$_bg, spinner:$_spinner" + "--color= hl:$_hl, fg:$_fg, header:$_header" + "--color= info:$_info, pointer:$_pointer, marker:$_marker" + "--color= fg+:$_cur_fg, prompt:$_prompt, hl+:$_cur_hl" + "--color=selected-bg:$_sel_bg, border:$_border, label:$_label" + ) + + export COLORS +} + +main diff --git a/waybar/scripts/network.sh b/waybar/scripts/network.sh new file mode 100755 index 0000000..db34eec --- /dev/null +++ b/waybar/scripts/network.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +# +# Scan, select, and connect to Wi-Fi networks +# +# Requirements: +# - nmcli (networkmanager) +# - fzf +# - notify-send (libnotify) +# +# Author: Jesse Mirabel +# Created: August 11, 2025 +# License: MIT + +RED='\033[1;31m' +RST='\033[0m' + +TIMEOUT=5 + +get-network-list() { + nmcli device wifi rescan 2> /dev/null + + local i + for ((i = 1; i <= TIMEOUT; i++)); do + printf '\rScanning for networks... (%d/%d)' $i $TIMEOUT + printf '\033[1A' # move cursor up 1 line + + list=$(timeout 1 nmcli device wifi list) + networks=$(tail -n +2 <<< "$list" | awk '$2 != "--"') + + [[ -n $networks ]] && break + done + + printf '\n%bScanning stopped.%b\n\n' "$RED" "$RST" + + if [[ -z $networks ]]; then + notify-send 'Wi-Fi' 'No networks found' -i 'package-broken' + return 1 + fi +} + +select-network() { + local header + header=$(head -n 1 <<< "$list") + + # shellcheck disable=SC1090 + . ~/.config/waybar/scripts/fzf-colors.sh 2> /dev/null + + local opts=( + --border=sharp + --border-label=' Wi-Fi Networks ' + --ghost='Search' + --header="$header" + --height=~100% + --highlight-line + --info=inline-right + --pointer= + --reverse + "${COLORS[@]}" + ) + + bssid=$(fzf "${opts[@]}" <<< "$networks" | awk '{print $1}') + + if [[ -z $bssid ]]; then + return 1 + elif [[ $bssid == '*' ]]; then + notify-send 'Wi-Fi' 'Already connected to this network' \ + -i 'package-install' + return 1 + fi +} + +connect-to-network() { + printf 'Connecting...\n' + + if nmcli --ask device wifi connect "$bssid"; then + notify-send 'Wi-Fi' 'Successfully connected' -i 'package-install' + else + notify-send 'Wi-Fi' 'Failed to connect' -i 'package-purge' + fi +} + +main() { + local status + status=$(nmcli radio wifi) + + if [[ $status == 'disabled' ]]; then + nmcli radio wifi on + notify-send 'Wi-Fi Enabled' -i 'network-wireless-on' -r 1125 + fi + + tput civis # make cursor invisible + get-network-list || exit 1 + tput cnorm # make cursor visible + + select-network || exit 1 + connect-to-network +} + +main diff --git a/waybar/scripts/power-menu.sh b/waybar/scripts/power-menu.sh index ae971c9..b1430fd 100755 --- a/waybar/scripts/power-menu.sh +++ b/waybar/scripts/power-menu.sh @@ -1,30 +1,49 @@ #!/usr/bin/env bash +# +# Display a power menu to perform system actions +# +# Requirements: +# - fzf +# +# Author: Jesse Mirabel +# Created: August 19, 2025 +# License: MIT -config="$HOME/.config/rofi/power-menu.rasi" +LIST=( + 'Lock' + 'Shutdown' + 'Reboot' + 'Logout' + 'Hibernate' + 'Suspend' +) -actions=$(echo -e "๏”‘ Lock\n๏€‘ Shutdown\n๏€ก Reboot\n๏ŠŒ Suspend\n๏“ฎ Hibernate\n๓ฐž˜ Logout") +main() { + # shellcheck disable=SC1090 + . ~/.config/waybar/scripts/fzf-colors.sh 2> /dev/null -# Display logout menu -selected_option=$(echo -e "$actions" | rofi -dmenu -i -config "${config}" || pkill -x rofi) + local opts=( + --border=sharp + --border-label=' Power Menu ' + --height=~100% + --highlight-line + --no-input + --pointer= + --reverse + "${COLORS[@]}" + ) -# Perform actions based on the selected option -case "$selected_option" in -*Lock) - loginctl lock-session - ;; -*Shutdown) - systemctl poweroff - ;; -*Reboot) - systemctl reboot - ;; -*Suspend) - systemctl suspend - ;; -*Hibernate) - systemctl hibernate - ;; -*Logout) - loginctl kill-session "$XDG_SESSION_ID" - ;; -esac + local selected + selected=$(printf '%s\n' "${LIST[@]}" | fzf "${opts[@]}") + + case $selected in + 'Lock') loginctl lock-session ;; + 'Shutdown') systemctl poweroff ;; + 'Reboot') systemctl reboot ;; + 'Logout') loginctl terminate-session "$XDG_SESSION_ID" ;; + 'Hibernate') systemctl hibernate ;; + 'Suspend') systemctl suspend ;; + esac +} + +main diff --git a/waybar/scripts/system-update.sh b/waybar/scripts/system-update.sh index 2c3c62b..35c4cf9 100755 --- a/waybar/scripts/system-update.sh +++ b/waybar/scripts/system-update.sh @@ -1,86 +1,82 @@ #!/usr/bin/env bash +# +# Check for available updates and optionally upgrade packages on Arch Linux. +# +# Requirements: +# - checkupdates (pacman-contrib) +# - notify-send (libnotify) +# - optional: an AUR helper (aura, paru, pikaur, trizen, yay) +# +# Author: Jesse Mirabel +# Created: August 16, 2025 +# License: MIT -# Check release -if [ ! -f /etc/arch-release ]; then - exit 0 -fi +GRN='\033[1;32m' +BLU='\033[1;34m' +RST='\033[0m' -pkg_installed() { - local pkg=$1 +TIMEOUT=5 - if pacman -Qi "${pkg}" &>/dev/null; then - return 0 - elif pacman -Qi "flatpak" &>/dev/null && flatpak info "${pkg}" &>/dev/null; then - return 0 - elif command -v "${pkg}" &>/dev/null; then - return 0 - else - return 1 - fi +check-updates() { + repo=$(timeout $TIMEOUT checkupdates 2> /dev/null | wc -l) + + if [[ -n $helper ]]; then + aur=$(timeout $TIMEOUT "$helper" -Quaq 2> /dev/null | wc -l) + fi } -get_aur_helper() { - if pkg_installed yay; then - aur_helper="yay" - elif pkg_installed paru; then - aur_helper="paru" - fi +update-packages() { + printf '\n%bUpdating pacman packages...%b\n' "$BLU" "$RST" + sudo pacman -Syu + + printf '\n%bUpdating AUR packages...%b\n' "$BLU" "$RST" + "$helper" -Syu + + # use signal to update the module + pkill -RTMIN+1 waybar + + notify-send 'Update Complete' -i 'package-install' + printf '\n%bUpdate Complete!%b\n' "$GRN" "$RST" + read -rs -n 1 -p 'Press any key to exit...' } -get_aur_helper -export -f pkg_installed +display-module() { + local tooltip="Official: $repo" -# Trigger upgrade -if [ "$1" == "up" ]; then - trap 'pkill -RTMIN+20 waybar' EXIT - command=" - $0 upgrade - ${aur_helper} -Syu - if pkg_installed flatpak; then flatpak update; fi - printf '\n' - read -n 1 -p 'Press any key to continue...' - " - kitty --title "๏‰ System Update" sh -c "${command}" -fi + if [[ -n $helper ]]; then + tooltip+="\nAUR($helper): $aur" + fi -# Check for AUR updates -if [ -n "$aur_helper" ]; then - aur_updates=$(${aur_helper} -Qua | grep -c '^') -else - aur_updates=0 -fi + local total=$((repo + aur)) -# Check for official repository updates -official_updates=$( - (while pgrep -x checkupdates >/dev/null; do sleep 1; done) - checkupdates | grep -c '^' -) + if ((total == 0)); then + echo "{ \"text\": \"๓ฐธŸ\", \"tooltip\": \"No updates available\" }" + else + echo "{ \"text\": \"๏‰\", \"tooltip\": \"$tooltip\" }" + fi +} -# Check for Flatpak updates -if pkg_installed flatpak; then - flatpak_updates=$(flatpak remote-ls --updates | grep -c '^') -else - flatpak_updates=0 -fi +main() { + local arg=$1 + local helpers=(aura paru pikaur trizen yay) + local bin -# Calculate total available updates -total_updates=$((official_updates + aur_updates + flatpak_updates)) + bin=$(command -v "${helpers[@]}" | head -n 1) + helper=${bin##*/} + repo=0 + aur=0 -# Handle formatting based on AUR helper -if [ "$aur_helper" == "yay" ]; then - [ "${1}" == upgrade ] && printf "Official: %-10s\nAUR ($aur_helper): %-10s\nFlatpak: %-10s\n\n" "$official_updates" "$aur_updates" "$flatpak_updates" && exit + case $arg in + 'module') + check-updates + display-module + ;; + *) + printf '%bChecking for updates...%b' "$BLU" "$RST" + check-updates + update-packages + ;; + esac +} - tooltip="Official: $official_updates\nAUR ($aur_helper): $aur_updates\nFlatpak: $flatpak_updates" - -elif [ "$aur_helper" == "paru" ]; then - [ "${1}" == upgrade ] && printf "Official: %-10s\nAUR ($aur_helper): %-10s\nFlatpak: %-10s\n\n" "$official_updates" "$aur_updates" "$flatpak_updates" && exit - - tooltip="Official: $official_updates\nAUR ($aur_helper): $aur_updates\nFlatpak: $flatpak_updates" -fi - -# Module and tooltip -if [ $total_updates -eq 0 ]; then - echo "{\"text\":\"๓ฐธŸ\", \"tooltip\":\"Packages are up to date\"}" -else - echo "{\"text\":\"๏‰\", \"tooltip\":\"${tooltip//\"/\\\"}\"}" -fi +main "$@" diff --git a/waybar/scripts/theme-switcher.sh b/waybar/scripts/theme-switcher.sh deleted file mode 100755 index d5f1aca..0000000 --- a/waybar/scripts/theme-switcher.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env bash - -WAYBAR_CSS_DIR="$HOME/.config/waybar/themes/css" -WAYBAR_CSS_FILE="$HOME/.config/waybar/theme.css" -WAYBAR_JSONC_DIR="$HOME/.config/waybar/themes/jsonc" -WAYBAR_JSONC_FILE="$HOME/.config/waybar/config.jsonc" -ROFI_THEMES_DIR="$HOME/.config/rofi/themes" -ROFI_THEME_FILE="$HOME/.config/rofi/theme.rasi" -CURRENT_THEME_FILE="$HOME/.config/waybar/themes/current-theme" - -for dir in "$WAYBAR_CSS_DIR" "$WAYBAR_JSONC_DIR" "$ROFI_THEMES_DIR"; do - [[ ! -d "$dir" ]] && echo "Error: $dir not found" && exit 1 -done - -# Get all themes -waybar_css=("$WAYBAR_CSS_DIR"/*.css) -waybar_jsonc=("$WAYBAR_JSONC_DIR"/*.jsonc) -rofi_themes=("$ROFI_THEMES_DIR"/*.rasi) - -if [[ ${#waybar_css[@]} -eq 0 || ${#waybar_jsonc[@]} -eq 0 || ${#rofi_themes[@]} -eq 0 ]]; then - echo "Error: No themes found in one of the directories" - exit 1 -fi - -# Get the current theme -current_theme=$(cat "$CURRENT_THEME_FILE" 2>/dev/null || echo "") - -# Find the index of the current theme -next_theme_index=0 -for i in "${!waybar_css[@]}"; do - [[ "${waybar_css[$i]}" == "$current_theme" ]] && next_theme_index=$(((i + 1) % ${#waybar_css[@]})) && break -done - -# Get the new theme -new_waybar_css="${waybar_css[$next_theme_index]}" -new_waybar_jsonc="${waybar_jsonc[$next_theme_index]}" -new_rofi_theme="${rofi_themes[$next_theme_index]}" - -# Save the new theme -echo "$new_waybar_css" >"$CURRENT_THEME_FILE" - -declare -A theme_files=( - ["$new_waybar_css"]="$WAYBAR_CSS_FILE" - ["$new_waybar_jsonc"]="$WAYBAR_JSONC_FILE" - ["$new_rofi_theme"]="$ROFI_THEME_FILE" -) - -for src in "${!theme_files[@]}"; do - cp "$src" "${theme_files[$src]}" -done - -# Restart Waybar to apply changes -killall waybar || true -nohup waybar --config "$HOME/.config/waybar/config.jsonc" --style "$HOME/.config/waybar/style.css" >/dev/null 2>&1 & diff --git a/waybar/scripts/volume-control.sh b/waybar/scripts/volume-control.sh deleted file mode 100755 index 76bb2f7..0000000 --- a/waybar/scripts/volume-control.sh +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/env bash - -# Define functions -print_error() { - cat <<"EOF" -Usage: ./volumecontrol.sh -[device] -...valid devices are... - i -- input device - o -- output device - p -- player application -...valid actions are... - i -- increase volume [+2] - d -- decrease volume [-2] - m -- mute [x] -EOF - exit 1 -} - -icon() { - vol=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | sed 's/%//') - mute=$(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}') - - if [ "$mute" = "yes" ] || [ "$vol" -eq 0 ]; then - icon="volume-level-muted" - elif [ "$vol" -lt 33 ]; then - icon="volume-level-low" - elif [ "$vol" -lt 66 ]; then - icon="volume-level-medium" - else - icon="volume-level-high" - fi -} - -send_notification() { - icon - notify-send -a "state" -r 91190 -i "$icon" -h int:value:"$vol" "Volume: ${vol}%" -u low -} - -notify_mute() { - mute=$(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}') - if [ "$mute" = "yes" ]; then - notify-send -a "state" -r 91190 -i "volume-level-muted" "Volume: Muted" -u low - else - icon - notify-send -a "state" -r 91190 -i "$icon" "Volume: Unmuted" -u low - fi -} - -action_volume() { - case "${1}" in - i) - # Increase volume if below 100 - current_vol=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | sed 's/%//') - if [ "$current_vol" -lt 100 ]; then - new_vol=$((current_vol + 2)) - [ "$new_vol" -gt 100 ] && new_vol=100 - pactl set-sink-volume @DEFAULT_SINK@ "${new_vol}%" - fi - ;; - d) - # Decrease volume if above 0 - current_vol=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | sed 's/%//') - new_vol=$((current_vol - 2)) - [ "$new_vol" -lt 0 ] && new_vol=0 - pactl set-sink-volume @DEFAULT_SINK@ "${new_vol}%" - ;; - esac -} - -select_output() { - if [ "$@" ]; then - desc="$*" - device=$(pactl list sinks | grep -C2 -F "Description: $desc" | grep Name | cut -d: -f2 | xargs) - if pactl set-default-sink "$device"; then - notify-send -r 91190 "Activated: $desc" - else - notify-send -r 91190 "Error activating $desc" - fi - else - pactl list sinks | grep -ie "Description:" | awk -F ': ' '{print $2}' | sort - fi -} - -# Evaluate device option -while getopts iops: DeviceOpt; do - case "${DeviceOpt}" in - i) - nsink=$(pactl list sources short | awk '{print $2}') - [ -z "${nsink}" ] && echo "ERROR: Input device not found..." && exit 0 - srce="--default-source" - ;; - o) - nsink=$(pactl list sinks short | awk '{print $2}') - [ -z "${nsink}" ] && echo "ERROR: Output device not found..." && exit 0 - srce="" - ;; - p) - nsink=$(playerctl --list-all | grep -w "${OPTARG}") - [ -z "${nsink}" ] && echo "ERROR: Player ${OPTARG} not active..." && exit 0 - # shellcheck disable=SC2034 - srce="${nsink}" - ;; - s) - # Select an output device - select_output "$@" - exit - ;; - *) print_error ;; - esac -done - -# Set default variables -shift $((OPTIND - 1)) - -# Execute action -case "${1}" in -i) action_volume i ;; -d) action_volume d ;; -m) pactl set-sink-mute @DEFAULT_SINK@ toggle && notify_mute && exit 0 ;; -*) print_error ;; -esac - -send_notification diff --git a/waybar/scripts/volume.sh b/waybar/scripts/volume.sh new file mode 100755 index 0000000..7105acf --- /dev/null +++ b/waybar/scripts/volume.sh @@ -0,0 +1,159 @@ +#!/usr/bin/env bash +# +# Adjust default device volume and send a notification with the current level +# +# Requirements: +# - pactl (libpulse) +# - notify-send (libnotify) +# +# Author: Jesse Mirabel +# Created: September 07, 2025 +# License: MIT + +VALUE=1 +MIN=0 +MAX=100 +ID=2425 + +print-usage() { + local script=${0##*/} + + cat <<- EOF + USAGE: $script [OPTIONS] + + Adjust default device volume and send a notification with the current level + + OPTIONS: + input Set device as '@DEFAULT_SOURCE@' + output Set device as '@DEFAULT_SINK@' + + mute Toggle device mute + + raise Raise volume by + lower Lower volume by + Default value: $VALUE + + EXAMPLES: + Toggle microphone mute: + $ $script input mute + + Raise speaker volume: + $ $script output raise + + Lower speaker volume by 5: + $ $script output lower 5 + EOF + + exit 1 +} + +check-muted() { + local muted + muted=$(pactl "get-$dev_mute" "$dev" | awk '{print $2}') + + local state + case $muted in + 'yes') state='Muted' ;; + 'no') state='Unmuted' ;; + esac + + echo "$state" +} + +get-volume() { + local vol + vol=$(pactl "get-$dev_vol" "$dev" | awk '{print $5}' | tr -d '%') + + echo "$vol" +} + +get-icon() { + local state vol + state=$(check-muted) + vol=$(get-volume) + + local icon + local new_vol=${1:-$vol} + + if [[ $state == 'Muted' ]]; then + icon="$dev_icon-muted" + else + if ((new_vol < ((MAX * 33) / 100))); then + icon="$dev_icon-low" + elif ((new_vol < ((MAX * 66) / 100))); then + icon="$dev_icon-medium" + else + icon="$dev_icon-high" + fi + fi + + echo "$icon" +} + +toggle-mute() { + pactl "set-$dev_mute" "$dev" toggle + + local state icon + state=$(check-muted) + icon=$(get-icon) + + notify-send "$title: $state" -i "$icon" -r $ID +} + +set-volume() { + local vol + vol=$(get-volume) + + local new_vol + case $action in + 'raise') + new_vol=$((vol + value)) + ((new_vol > MAX)) && new_vol=$MAX + ;; + 'lower') + new_vol=$((vol - value)) + ((new_vol < MIN)) && new_vol=$MIN + ;; + esac + + pactl "set-$dev_vol" "$dev" "${new_vol}%" + + local icon + icon=$(get-icon "$new_vol") + + notify-send "$title: ${new_vol}%" -h int:value:$new_vol -i "$icon" -r $ID +} + +main() { + device=$1 + action=$2 + value=${3:-$VALUE} + + ! ((value > 0)) && print-usage + + case $device in + 'input') + dev='@DEFAULT_SOURCE@' + dev_mute='source-mute' + dev_vol='source-volume' + dev_icon='mic-volume' + title='Microphone' + ;; + 'output') + dev='@DEFAULT_SINK@' + dev_mute='sink-mute' + dev_vol='sink-volume' + dev_icon='audio-volume' + title='Volume' + ;; + *) print-usage ;; + esac + + case $action in + 'mute') toggle-mute ;; + 'raise' | 'lower') set-volume ;; + *) print-usage ;; + esac +} + +main "$@" diff --git a/waybar/scripts/wifi-menu.sh b/waybar/scripts/wifi-menu.sh deleted file mode 100755 index 470722c..0000000 --- a/waybar/scripts/wifi-menu.sh +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env bash - -# Author: Jesse Mirabel (@sejjy) -# GitHub: https://github.com/sejjy/mechabar - -# Rofi config -config="$HOME/.config/rofi/wifi-menu.rasi" - -options=$( - echo "๏„ Manual Entry" - echo "๓ฐคฎ Disable Wi-Fi" -) -option_disabled="๓ฐคฅ Enable Wi-Fi" - -# Rofi window override -override_ssid="entry { placeholder: \"Enter SSID\"; } listview { lines: 0; padding: 20px 6px; }" -override_password="entry { placeholder: \"Enter password\"; } listview { lines: 0; padding: 20px 6px; }" -override_disabled="mainbox { children: [ textbox-custom, listview ]; } listview { lines: 1; padding: 6px 6px 8px; }" - -# Prompt for password -get_password() { - rofi -dmenu -password -config "${config}" -theme-str "${override_password}" -p "๎ธ™ " || pkill -x rofi -} - -while true; do - wifi_list() { - nmcli --fields "SECURITY,SSID" device wifi list | - tail -n +2 | # Skip the header line from nmcli output - sed 's/ */ /g' | # Replace multiple spaces with a single space - sed -E "s/WPA*.?\S/๓ฐคช /g" | # Replace 'WPA*' with a Wi-Fi lock icon - sed "s/^--/๓ฐคจ /g" | # Replace '--' (open networks) with an open Wi-Fi icon - sed "s/๓ฐคช ๓ฐคช/๓ฐคช/g" | # Remove duplicate Wi-Fi lock icons - sed "/--/d" | # Remove lines containing '--' (empty SSIDs) - awk '!seen[$0]++' # Filter out duplicate SSIDs - } - - # Get Wi-Fi status - wifi_status=$(nmcli -fields WIFI g) - - case "$wifi_status" in - *"enabled"*) - selected_option=$(echo "$options"$'\n'"$(wifi_list)" | - rofi -dmenu -i -selected-row 1 -config "${config}" -p "๏€‚ " || pkill -x rofi) - ;; - *"disabled"*) - selected_option=$(echo "$option_disabled" | - rofi -dmenu -i -config "${config}" -theme-str "${override_disabled}" || pkill -x rofi) - ;; - esac - - # Extract selected SSID - read -r selected_ssid <<<"${selected_option:3}" - - # Actions based on selected option - case "$selected_option" in - "") - exit - ;; - *"Enable Wi-Fi") - notify-send "Scanning for networks..." -i "package-installed-outdated" - nmcli radio wifi on - nmcli device wifi rescan - sleep 3 - ;; - *"Disable Wi-Fi") - notify-send "Wi-Fi Disabled" -i "package-broken" - nmcli radio wifi off - exit - ;; - *"Manual Entry") - # Prompt for SSID - manual_ssid=$(rofi -dmenu -config "${config}" -theme-str "${override_ssid}" -p "๎ธ™ " || pkill -x rofi) - - # Exit if no option is selected - if [ -z "$manual_ssid" ]; then - exit - fi - - # Prompt for Wi-Fi password - wifi_password=$(get_password) - - if [ -z "$wifi_password" ]; then - # Without password - if nmcli device wifi connect "$manual_ssid" | grep -q "successfully"; then - notify-send "Connected to \"$manual_ssid\"." -i "package-installed-outdated" - exit - else - notify-send "Failed to connect to \"$manual_ssid\"." -i "package-broken" - fi - else - # With password - if nmcli device wifi connect "$manual_ssid" password "$wifi_password" | grep -q "successfully"; then - notify-send "Connected to \"$manual_ssid\"." -i "package-installed-outdated" - exit - else - notify-send "Failed to connect to \"$manual_ssid\"." -i "package-broken" - fi - fi - ;; - *) - # Get saved connections - saved_connections=$(nmcli -g NAME connection) - - if echo "$saved_connections" | grep -qw "$selected_ssid"; then - if nmcli connection up id "$selected_ssid" | grep -q "successfully"; then - notify-send "Connected to \"$selected_ssid\"." -i "package-installed-outdated" - exit - else - notify-send "Failed to connect to \"$selected_ssid\"." -i "package-broken" - fi - else - # Handle secure network connection - if [[ "$selected_option" =~ ^"๓ฐคช" ]]; then - wifi_password=$(get_password) - fi - - if nmcli device wifi connect "$selected_ssid" password "$wifi_password" | grep -q "successfully"; then - notify-send "Connected to \"$selected_ssid\"." -i "package-installed-outdated" - exit - else - notify-send "Failed to connect to \"$selected_ssid\"." -i "package-broken" - fi - fi - ;; - esac -done diff --git a/waybar/scripts/wifi-status.sh b/waybar/scripts/wifi-status.sh deleted file mode 100755 index 7a13711..0000000 --- a/waybar/scripts/wifi-status.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env bash - -if ! command -v nmcli &>/dev/null; then - echo "{\"text\": \"๓ฐคซ\", \"tooltip\": \"nmcli utility is missing\"}" - exit 1 -fi - -# Check if Wi-Fi is enabled -wifi_status=$(nmcli radio wifi) - -if [ "$wifi_status" = "disabled" ]; then - echo "{\"text\": \"๓ฐคฎ\", \"tooltip\": \"Wi-Fi Disabled\"}" - exit 0 -fi - -wifi_info=$(nmcli -t -f active,ssid,signal,security dev wifi | grep "^yes") - -# If no ESSID is found, set a default value -if [ -z "$wifi_info" ]; then - essid="No Connection" - signal=0 - tooltip="No Connection" -else - # Some defaults - ip_address="127.0.0.1" - security=$(echo "$wifi_info" | awk -F: '{print $4}') - signal=$(echo "$wifi_info" | awk -F: '{print $3}') - - # Get active WiFi device, ignoring WireGuard interfaces (wg0, wg1, wg2) - active_device=$(nmcli -t -f DEVICE,TYPE,STATE device status | - grep -E 'wifi:connected$' | - grep -v -E '^(wg0|wg1|wg2):' | - awk -F: '{print $1}') - - if [ -n "$active_device" ]; then - output=$(nmcli -e no -g ip4.address,ip4.gateway,general.hwaddr device show "$active_device") - - ip_address=$(echo "$output" | sed -n '1p') - - line=$(nmcli -e no -t -f active,bssid,chan,freq device wifi | grep "^yes") - - chan=$(echo "$line" | awk -F':' '{print $8}') - freq=$(echo "$line" | awk -F':' '{print $9}') - chan="$chan ($freq)" - - # Get the current Wi-Fi ESSID - essid=$(echo "$wifi_info" | awk -F: '{print $2}') - - tooltip=":: ${essid}" - tooltip+="\nIP Address: ${ip_address}" - tooltip+="\nSecurity: ${security}" - tooltip+="\nChannel: ${chan}" - tooltip+="\nStrength: ${signal} / 100" - fi -fi - -# Determine Wi-Fi icon based on signal strength -if [ "$signal" -ge 80 ]; then - icon="๓ฐคจ" # Strong signal -elif [ "$signal" -ge 60 ]; then - icon="๓ฐคฅ" # Good signal -elif [ "$signal" -ge 40 ]; then - icon="๓ฐคข" # Weak signal -elif [ "$signal" -ge 20 ]; then - icon="๓ฐคŸ" # Very weak signal -else - icon="๓ฐคฏ" # No signal -fi - -# Module and tooltip -echo "{\"text\": \"${icon}\", \"tooltip\": \"${tooltip}\"}" diff --git a/waybar/style.css b/waybar/style.css index 0a44cfe..d988247 100644 --- a/waybar/style.css +++ b/waybar/style.css @@ -1,476 +1,12 @@ +/* ignore GTK theme */ +* { + all: initial; +} + @import "theme.css"; - -* { - min-height: 0; - border: none; - margin: 0; - padding: 0; -} - -/* ----------------------------------------------------- MAIN BACKGROUND --- */ - -window#waybar>box { - background: @main-bg; - margin: 2px; -} - -/* --------------------------------------------------------- DROP SHADOW --- */ - -window#waybar { - background: @shadow; -} - -/* ------------------------------------------------------------ TOOLTIPS --- */ - -tooltip { - background: @main-bg; - border: 1.5px solid @main-br; - border-radius: 8px; -} - -tooltip label { - color: @main-fg; - margin: -1.5px 3px; -} - -/* ---------------------------------------- WORKSPACE BUTTONS and LABELS --- */ - -#workspaces button { - color: @module-fg; - border-radius: 8px; - box-shadow: none; - margin: 2px 0; - padding: 0 2px; - transition: none; -} - -#workspaces button:hover { - color: @hover-fg; - background: @hover-bg; - text-shadow: none; -} - -#workspaces button.active { - color: @active-fg; - background: @active-bg; - text-shadow: 0 0 2px rgba(0, 0, 0, 0.6); - box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.4); - margin: 2px; - padding: 0 6px; -} - -/* ------------------------------------------------------------- GENERAL --- */ - -#custom-ws, -#workspaces, -#window, -#custom-temperature, -#memory, -#cpu, -#idle_inhibitor, -#clock, -#custom-wifi, -#custom-wireguard, -#bluetooth, -#custom-update, -#mpris, -#pulseaudio, -#backlight, -#battery, -#custom-power { - opacity: 1; - color: @module-fg; - padding: 0 4px; -} - -#custom-left1, -#custom-left2, -#custom-left3, -#custom-left4, -#custom-left5, -#custom-left6, -#custom-left7, -#custom-left8 { - margin-bottom: 0; - text-shadow: -2px 0 2px rgba(0, 0, 0, 0.5); -} - -#custom-right1, -#custom-right2, -#custom-right3, -#custom-right4, -#custom-right5 { - margin-bottom: 0; - padding-right: 3px; - text-shadow: 2px 0 2px rgba(0, 0, 0, 0.5); -} - -/* ------------------------------------------------------------- MODULES --- */ - -/* --------------------------------------------------------- window icon --- */ - -#custom-ws { - background: @main-bg; -} - -#custom-ws:hover { - color: @hover-fg; -} - -/* ---------------------------------------------------------- workspaces --- */ - -#custom-left1 { - color: @workspaces; - background: @main-bg; - margin-bottom: 0; - padding-left: 2px; -} - -#workspaces { - background: @workspaces; -} - -#custom-right1 { - color: @workspaces; - background: @main-bg; - text-shadow: 3px 0 2px rgba(0, 0, 0, 0.4); - margin-bottom: 0; -} - -/* --------------------------------------------------------- temperature --- */ - -#custom-paddc { - padding-right: 22px; -} - -#custom-left2 { - color: @temperature; - background: @main-bg; - padding-left: 3px; -} - -#custom-temperature { - background: @temperature; - padding: 0 0 0 1px; -} - -/* -------------------------------------------------------------- memory --- */ - -#custom-left3 { - color: @memory; - background: @temperature; - padding-left: 3px; -} - -#memory { - background: @memory; - padding: 0 0 0 1px; -} - -#memory.warning { - color: @warning; -} - -#memory.critical { - color: @critical; -} - -/* ----------------------------------------------------------------- cpu --- */ - -#custom-left4 { - color: @cpu; - background: @memory; - padding-left: 3px; -} - -#cpu { - background: @cpu; -} - -#custom-leftin1 { - color: @cpu; - margin-bottom: -1px; -} - -/* --------------------------------------------------------- distro icon --- */ - -#custom-left5 { - color: @distro-bg; - background: @main-bg; - text-shadow: none; - margin-bottom: -2px; - padding-left: 3px; -} - -#custom-distro { - color: @distro-fg; - background: @distro-bg; - margin: 0 -1px -2px 0; - padding: 0 0 0 3px; - text-shadow: 0 0 1.5px rgba(0, 0, 0, 1); -} - -#custom-right2 { - color: @distro-bg; - background: @main-bg; - text-shadow: none; - margin-bottom: -2px; -} - -/* ---------------------------------------------------------------- time --- */ - -#custom-rightin1 { - color: @time; - margin-bottom: -1px; -} - -#idle_inhibitor { - background: @time; - padding: 0 0 0 7px; -} - -#idle_inhibitor:hover { - color: @hover-fg; -} - -#clock.time { - background: @time; - margin-left: -2px; - padding: 0 3px 0 0; -} - -#custom-right3 { - color: @time; - background: @date; -} - -/* ---------------------------------------------------------------- date --- */ - -#clock.date { - background: @date; -} - -#clock.date:hover { - color: @hover-fg; -} - -#custom-right4 { - color: @date; - background: @tray; -} - -/* ---------------------------------------------------------------- tray --- */ - -#custom-wifi { - background: @tray; - padding: 0 8px 0 5px; -} - -#custom-wifi:hover { - color: @hover-fg; -} - -#custom-wireguard { - background: @tray; - padding: 0 8px 0 5px; -} - -#custom-wireguard:hover { - color: @hover-fg; -} - -#bluetooth { - background: @tray; - padding-right: 5px; -} - -#bluetooth:hover { - color: @hover-fg; -} - -#custom-update { - padding-right: 8px; - background: @tray; -} - -#custom-update:hover { - color: @hover-fg; -} - -#custom-right5 { - color: @tray; - background: @main-bg; -} - -/* ---------------------------------------------------------- media info --- */ - -#mpris { - background: @main-bg; - padding: 0 8px 0; -} - -#mpris:hover { - color: @hover-fg; -} - -/* - output device -*/ - -#custom-left6 { - color: @pulseaudio; - background: @main-bg; - padding-left: 3px; -} - -#pulseaudio { - background: @pulseaudio; -} - -#pulseaudio:hover { - color: @hover-fg; -} - -/* ---------------------------------------------------------- brightness --- */ - -#custom-left7 { - color: @backlight; - background: @pulseaudio; - padding-left: 2px; -} - -#backlight { - background: @backlight; -} - -/* ------------------------------------------------------------- battery --- */ - -#custom-left8 { - color: @battery; - background: @backlight; - padding-left: 2px; -} - -#battery { - color: @module-fg; - background: @battery; -} - -#battery.warning { - color: @warning; -} - -#battery.critical { - color: @critical; -} - -#battery.charging { - color: @charging; -} - -/* -------------------------------------------------------- power button --- */ - -#custom-leftin2 { - color: @battery; - background: @main-bg; - margin-bottom: -1px; -} - -#custom-power { - color: @main-bg; - background: @power; - text-shadow: 0 0 2px rgba(0, 0, 0, 0.6); - box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.6); - border-radius: 10px; - margin: 2px 4px 2px 0; - padding: 0 6px 0 9px; -} - -#custom-power:hover { - color: @hover-fg; - background: @hover-bg; - text-shadow: none; - box-shadow: none; -} - -/* ---------------------------------------------------------- FONT SIZES --- */ - -/* - NOTE: Be careful when changing font sizes, as they - can affect alignment. - - Try adjusting whole numbers first, then refine with - decimals. - - If you increase or decrease a value, make the same - change to all properties in this section to keep - the layout consistent. -*/ - -* { - font-family: "JetBrainsMono Nerd Font"; - font-size: 10px; - font-weight: bold; -} - -tooltip label, -#window label, -#mpris { - font-weight: normal; -} - -/* ----------------------------------------------- left and right arrows --- */ - -#custom-left1, -#custom-left2, -#custom-left3, -#custom-left4, -#custom-left5, -#custom-left6, -#custom-left7, -#custom-left8, -#custom-right1, -#custom-right2, -#custom-right3, -#custom-right4, -#custom-right5 { - font-size: 14.68px; -} - -/* ---------------------------------------------- left and right inverse --- */ - -#custom-leftin1, -#custom-leftin2, -#custom-rightin1 { - font-size: 15.5px; -} - -/* -------------------------------------------------------------- distro --- */ - -#custom-distro { - font-size: 14.6px; -} - -#custom-left5, -#custom-right2 { - font-size: 15.68px; -} - -/* - Adjust these properties as well to keep the design - consistent. -*/ - -#workspaces button { - border-radius: 8px; - padding: 0 2px; -} - -#workspaces button.active { - padding: 0 6px; -} - -#custom-power { - border-radius: 10px; - padding: 0 6px 0 9px; -} +@import "styles/fonts.css"; +@import "styles/global.css"; +@import "styles/modules-center.css"; +@import "styles/modules-left.css"; +@import "styles/modules-right.css"; +@import "styles/states.css"; diff --git a/waybar/styles/fonts.css b/waybar/styles/fonts.css new file mode 100644 index 0000000..0fd69f9 --- /dev/null +++ b/waybar/styles/fonts.css @@ -0,0 +1,28 @@ +* { + font-family: "0xProto Nerd Font"; + font-weight: bold; + font-size: 16px; +} + +#custom-user, +#window label, +#mpris, +tooltip label { + font-weight: normal; +} + +#workspaces button.active label, +#custom-distro { + font-size: 22px; +} + +#custom-power_menu { + font-size: 19px; +} + +#custom-left_div, +#custom-left_inv, +#custom-right_div, +#custom-right_inv { + font-size: 22px; +} diff --git a/waybar/styles/global.css b/waybar/styles/global.css new file mode 100644 index 0000000..e0d2daf --- /dev/null +++ b/waybar/styles/global.css @@ -0,0 +1,38 @@ +* { + color: @main-fg; +} + +#waybar { + background-color: @outline; +} +#waybar > box { + margin: 4px; + background-color: @main-bg; +} + +button { + border-radius: 16px; + min-width: 16px; + padding: 0 10px; +} +button:hover { + background-color: @hover-bg; + color: @hover-fg; +} + +tooltip { + border: 2px solid @main-br; + border-radius: 10px; + background-color: @main-bg; +} +tooltip > box { + padding: 0 6px; +} + +.module, +#custom-left_div, +#custom-left_inv, +#custom-right_div, +#custom-right_inv { + margin-bottom: -1px; +} diff --git a/waybar/styles/modules-center.css b/waybar/styles/modules-center.css new file mode 100644 index 0000000..8647310 --- /dev/null +++ b/waybar/styles/modules-center.css @@ -0,0 +1,119 @@ +/*------------------ + window count +------------------*/ + +#windowcount { + margin-right: 12px; +} +#windowcount label { + color: @hover-fg; +} + +/*----------------- + temperature +-----------------*/ + +#custom-left_div.2 { + color: @temperature; +} +#temperature { + background-color: @temperature; +} + +/*------------ + memory +------------*/ + +#custom-left_div.3 { + background-color: @temperature; + color: @memory; +} +#memory { + background-color: @memory; +} + +/*--------- + cpu +---------*/ + +#custom-left_div.4 { + background-color: @memory; + color: @cpu; +} +#cpu { + background-color: @cpu; +} +#custom-left_inv.1 { + color: @cpu; +} + +/*----------------- + distro icon +-----------------*/ + +#custom-left_div.5, +#custom-right_div.2 { + color: @accent; +} +#custom-distro { + padding: 0 10px 0 5px; + background-color: @accent; + color: @main-bg; +} + +/*-------------------- + idle inhibitor +--------------------*/ + +#custom-right_inv.1 { + color: @time; +} +#idle_inhibitor { + background-color: @time; +} + +/*---------- + time +----------*/ + +#clock.time { + padding-right: 6px; + background-color: @time; +} +#custom-right_div.3 { + background-color: @date; + color: @time; +} + +/*---------- + date +----------*/ + +#clock.date { + padding-left: 6px; + background-color: @date; +} +#custom-right_div.4 { + background-color: @tray; + color: @date; +} + +/*----------------- + system tray +-----------------*/ + +#network { + background-color: @tray; + padding: 0 6px 0 4px; +} +#bluetooth { + background-color: @tray; + padding: 0 5px; +} +#custom-system_update { + background-color: @tray; + padding: 0 8px 0 2px; +} +#custom-right_div.5 { + color: @tray; +} diff --git a/waybar/styles/modules-left.css b/waybar/styles/modules-left.css new file mode 100644 index 0000000..45b2959 --- /dev/null +++ b/waybar/styles/modules-left.css @@ -0,0 +1,31 @@ +/*-------------- + username +--------------*/ + +#custom-user { + padding-right: 12px; +} + +/*---------------- + workspaces +----------------*/ + +#custom-left_div.1, +#custom-right_div.1 { + color: @workspaces; +} +#workspaces { + padding: 0 1px; + background-color: @workspaces; +} +#workspaces button.active label { + color: @accent; +} + +/*------------------ + window title +------------------*/ + +#window { + margin-left: 12px; +} diff --git a/waybar/styles/modules-right.css b/waybar/styles/modules-right.css new file mode 100644 index 0000000..50f2598 --- /dev/null +++ b/waybar/styles/modules-right.css @@ -0,0 +1,59 @@ +/*---------------- + media info +----------------*/ + +#mpris { + padding: 0 12px; +} + +/*------------ + volume +------------*/ + +#custom-left_div.6 { + color: @volume; +} +#pulseaudio, +#wireplumber { + background-color: @volume; +} + +/*---------------- + brightness +----------------*/ + +#custom-left_div.7 { + background-color: @volume; + color: @backlight; +} +#backlight { + background-color: @backlight; +} + +/*------------- + battery +-------------*/ + +#custom-left_div.8 { + background-color: @backlight; + color: @battery; +} +#battery { + background-color: @battery; +} +#custom-left_inv.2 { + color: @battery; +} + +/*---------------- + power menu +----------------*/ + +#custom-power_menu { + border-radius: 16px; + padding: 0 19px 0 16px; + color: @accent; +} +#custom-power_menu:hover { + background-color: @hover-bg; +} diff --git a/waybar/styles/states.css b/waybar/styles/states.css new file mode 100644 index 0000000..a1c52f8 --- /dev/null +++ b/waybar/styles/states.css @@ -0,0 +1,37 @@ +#custom-trigger:hover, +#idle_inhibitor:hover, +#clock.date:hover, +#network:hover, +#bluetooth:hover, +#custom-system_update:hover, +#mpris:hover, +#pulseaudio:hover, +#wireplumber:hover { + color: @hover-fg; +} + +/* inactive state */ +#idle_inhibitor.deactivated, +#mpris.paused, +#pulseaudio.output.muted, +#pulseaudio.input.source-muted, +#wireplumber.muted { + color: @hover-fg; +} + +#memory.warning, +#cpu.warning, +#battery.warning { + color: @warning; +} + +#temperature.critical, +#memory.critical, +#cpu.critical, +#battery.critical { + color: @critical; +} + +#battery.charging { + color: @charging; +} diff --git a/waybar/theme.css b/waybar/theme.css index 32ce8d7..68f2927 100644 --- a/waybar/theme.css +++ b/waybar/theme.css @@ -1,75 +1,63 @@ -/* Gruvbox Dark */ +/* catppuccin-mocha */ -@define-color bg0_h #1d2021; -@define-color bg0 #282828; -@define-color bg1 #3c3836; -@define-color bg2 #504945; -@define-color bg3 #665c54; -@define-color bg4 #7c6f64; -@define-color gray #928374; -@define-color fg4 #a89984; -@define-color fg3 #bdae93; -@define-color fg2 #d5c4a1; -@define-color fg1 #ebdbb2; -@define-color fg0 #fbf1c7; -@define-color red #cc241d; -@define-color bright_red #fb4934; -@define-color green #98971a; -@define-color bright_green #b8bb26; -@define-color yellow #d79921; -@define-color bright_yellow #fabd2f; -@define-color blue #458588; -@define-color bright_blue #83a598; -@define-color purple #b16286; -@define-color bright_purple #d3869b; -@define-color aqua #689d6a; -@define-color bright_aqua #8ec07c; -@define-color orange #d65d0e; -@define-color bright_orange #fe8019; +@define-color rosewater #f5e0dc; +@define-color flamingo #f2cdcd; +@define-color pink #f5c2e7; +@define-color mauve #cba6f7; +@define-color red #f38ba8; +@define-color maroon #eba0ac; +@define-color peach #fab387; +@define-color yellow #f9e2af; +@define-color green #a6e3a1; +@define-color teal #94e2d5; +@define-color sky #89dceb; +@define-color sapphire #74c7ec; +@define-color blue #89b4fa; +@define-color lavender #b4befe; +@define-color text #cdd6f4; +@define-color subtext1 #bac2de; +@define-color subtext0 #a6adc8; +@define-color overlay2 #9399b2; +@define-color overlay1 #7f849c; +@define-color overlay0 #6c7086; +@define-color surface2 #585b70; +@define-color surface1 #45475a; +@define-color surface0 #313244; +@define-color base #1e1e2e; +@define-color mantle #181825; +@define-color crust #11111b; -@define-color white #ffffff; -@define-color black #000000; - -/* - bg - background - fg - foreground - br - border +/* + br - border + bg - background + fg - foreground */ -/* Main Colors */ +/* main colors */ -@define-color shadow shade(@bg0_h, 0.5); -@define-color main-fg @fg0; -@define-color main-bg @bg0_h; -@define-color main-br @fg0; +@define-color accent @lavender; +@define-color main-br @subtext0; +@define-color main-bg @crust; +@define-color main-fg @text; +@define-color hover-bg @base; +@define-color hover-fg alpha(@main-fg, 0.75); +@define-color outline shade(@main-bg, 0.5); -@define-color active-bg @yellow; -@define-color active-fg @bg0_h; +/* module colors */ -@define-color hover-bg @bg2; -@define-color hover-fg alpha(@fg0, 0.75); +@define-color workspaces @mantle; +@define-color temperature @mantle; +@define-color memory @base; +@define-color cpu @surface0; +@define-color time @surface0; +@define-color date @base; +@define-color tray @mantle; +@define-color volume @mantle; +@define-color backlight @base; +@define-color battery @surface0; -/* Module Colors */ +/* state colors */ -@define-color module-fg @fg0; -@define-color workspaces @bg0; - -@define-color temperature @bg0; -@define-color memory @bg1; -@define-color cpu @bg2; -@define-color distro-fg @black; -@define-color distro-bg @yellow; -@define-color time @bg2; -@define-color date @bg1; -@define-color tray @bg0; - -@define-color pulseaudio @bg0; -@define-color backlight @bg1; -@define-color battery @bg2; -@define-color power @yellow; - -/* State Colors */ - -@define-color warning @bright_orange; -@define-color critical @bright_red; -@define-color charging @fg0; +@define-color warning @yellow; +@define-color critical @red; +@define-color charging @green; diff --git a/waybar/themes/catppuccin-frappe.css b/waybar/themes/catppuccin-frappe.css new file mode 100644 index 0000000..d83c7bd --- /dev/null +++ b/waybar/themes/catppuccin-frappe.css @@ -0,0 +1,63 @@ +/* catppuccin-frappe */ + +@define-color rosewater #f2d5cf; +@define-color flamingo #eebebe; +@define-color pink #f4b8e4; +@define-color mauve #ca9ee6; +@define-color red #e78284; +@define-color maroon #ea999c; +@define-color peach #ef9f76; +@define-color yellow #e5c890; +@define-color green #a6d189; +@define-color teal #81c8be; +@define-color sky #99d1db; +@define-color sapphire #85c1dc; +@define-color blue #8caaee; +@define-color lavender #babbf1; +@define-color text #c6d0f5; +@define-color subtext1 #b5bfe2; +@define-color subtext0 #a5adce; +@define-color overlay2 #949cbb; +@define-color overlay1 #838ba7; +@define-color overlay0 #737994; +@define-color surface2 #626880; +@define-color surface1 #51576d; +@define-color surface0 #414559; +@define-color base #303446; +@define-color mantle #292c3c; +@define-color crust #232634; + +/* + br - border + bg - background + fg - foreground +*/ + +/* main colors */ + +@define-color accent @lavender; +@define-color main-br @subtext0; +@define-color main-bg @crust; +@define-color main-fg @text; +@define-color hover-bg @base; +@define-color hover-fg alpha(@main-fg, 0.75); +@define-color outline shade(@main-bg, 0.5); + +/* module colors */ + +@define-color workspaces @mantle; +@define-color temperature @mantle; +@define-color memory @base; +@define-color cpu @surface0; +@define-color time @surface0; +@define-color date @base; +@define-color tray @mantle; +@define-color volume @mantle; +@define-color backlight @base; +@define-color battery @surface0; + +/* state colors */ + +@define-color warning @yellow; +@define-color critical @red; +@define-color charging @green; diff --git a/waybar/themes/catppuccin-latte.css b/waybar/themes/catppuccin-latte.css new file mode 100644 index 0000000..fa1aaf8 --- /dev/null +++ b/waybar/themes/catppuccin-latte.css @@ -0,0 +1,63 @@ +/* catppuccin-latte */ + +@define-color rosewater #dc8a78; +@define-color flamingo #dd7878; +@define-color pink #ea76cb; +@define-color mauve #8839ef; +@define-color red #d20f39; +@define-color maroon #e64553; +@define-color peach #fe640b; +@define-color yellow #df8e1d; +@define-color green #40a02b; +@define-color teal #179299; +@define-color sky #04a5e5; +@define-color sapphire #209fb5; +@define-color blue #1e66f5; +@define-color lavender #7287fd; +@define-color text #4c4f69; +@define-color subtext1 #5c5f77; +@define-color subtext0 #6c6f85; +@define-color overlay2 #7c7f93; +@define-color overlay1 #8c8fa1; +@define-color overlay0 #9ca0b0; +@define-color surface2 #acb0be; +@define-color surface1 #bcc0cc; +@define-color surface0 #ccd0da; +@define-color base #eff1f5; +@define-color mantle #e6e9ef; +@define-color crust #dce0e8; + +/* + br - border + bg - background + fg - foreground +*/ + +/* main colors */ + +@define-color accent @lavender; +@define-color main-br @subtext0; +@define-color main-bg @crust; +@define-color main-fg @text; +@define-color hover-bg @base; +@define-color hover-fg alpha(@main-fg, 0.75); +@define-color outline shade(@main-bg, 0.5); + +/* module colors */ + +@define-color workspaces @mantle; +@define-color temperature @mantle; +@define-color memory @base; +@define-color cpu @surface0; +@define-color time @surface0; +@define-color date @base; +@define-color tray @mantle; +@define-color volume @mantle; +@define-color backlight @base; +@define-color battery @surface0; + +/* state colors */ + +@define-color warning @yellow; +@define-color critical @red; +@define-color charging @green; diff --git a/waybar/themes/catppuccin-macchiato.css b/waybar/themes/catppuccin-macchiato.css new file mode 100644 index 0000000..97b3be9 --- /dev/null +++ b/waybar/themes/catppuccin-macchiato.css @@ -0,0 +1,63 @@ +/* catppuccin-macchiato */ + +@define-color rosewater #f4dbd6; +@define-color flamingo #f0c6c6; +@define-color pink #f5bde6; +@define-color mauve #c6a0f6; +@define-color red #ed8796; +@define-color maroon #ee99a0; +@define-color peach #f5a97f; +@define-color yellow #eed49f; +@define-color green #a6da95; +@define-color teal #8bd5ca; +@define-color sky #91d7e3; +@define-color sapphire #7dc4e4; +@define-color blue #8aadf4; +@define-color lavender #b7bdf8; +@define-color text #cad3f5; +@define-color subtext1 #b8c0e0; +@define-color subtext0 #a5adcb; +@define-color overlay2 #939ab7; +@define-color overlay1 #8087a2; +@define-color overlay0 #6e738d; +@define-color surface2 #5b6078; +@define-color surface1 #494d64; +@define-color surface0 #363a4f; +@define-color base #24273a; +@define-color mantle #1e2030; +@define-color crust #181926; + +/* + br - border + bg - background + fg - foreground +*/ + +/* main colors */ + +@define-color accent @lavender; +@define-color main-br @subtext0; +@define-color main-bg @crust; +@define-color main-fg @text; +@define-color hover-bg @base; +@define-color hover-fg alpha(@main-fg, 0.75); +@define-color outline shade(@main-bg, 0.5); + +/* module colors */ + +@define-color workspaces @mantle; +@define-color temperature @mantle; +@define-color memory @base; +@define-color cpu @surface0; +@define-color time @surface0; +@define-color date @base; +@define-color tray @mantle; +@define-color volume @mantle; +@define-color backlight @base; +@define-color battery @surface0; + +/* state colors */ + +@define-color warning @yellow; +@define-color critical @red; +@define-color charging @green; diff --git a/waybar/themes/catppuccin-mocha.css b/waybar/themes/catppuccin-mocha.css new file mode 100644 index 0000000..68f2927 --- /dev/null +++ b/waybar/themes/catppuccin-mocha.css @@ -0,0 +1,63 @@ +/* catppuccin-mocha */ + +@define-color rosewater #f5e0dc; +@define-color flamingo #f2cdcd; +@define-color pink #f5c2e7; +@define-color mauve #cba6f7; +@define-color red #f38ba8; +@define-color maroon #eba0ac; +@define-color peach #fab387; +@define-color yellow #f9e2af; +@define-color green #a6e3a1; +@define-color teal #94e2d5; +@define-color sky #89dceb; +@define-color sapphire #74c7ec; +@define-color blue #89b4fa; +@define-color lavender #b4befe; +@define-color text #cdd6f4; +@define-color subtext1 #bac2de; +@define-color subtext0 #a6adc8; +@define-color overlay2 #9399b2; +@define-color overlay1 #7f849c; +@define-color overlay0 #6c7086; +@define-color surface2 #585b70; +@define-color surface1 #45475a; +@define-color surface0 #313244; +@define-color base #1e1e2e; +@define-color mantle #181825; +@define-color crust #11111b; + +/* + br - border + bg - background + fg - foreground +*/ + +/* main colors */ + +@define-color accent @lavender; +@define-color main-br @subtext0; +@define-color main-bg @crust; +@define-color main-fg @text; +@define-color hover-bg @base; +@define-color hover-fg alpha(@main-fg, 0.75); +@define-color outline shade(@main-bg, 0.5); + +/* module colors */ + +@define-color workspaces @mantle; +@define-color temperature @mantle; +@define-color memory @base; +@define-color cpu @surface0; +@define-color time @surface0; +@define-color date @base; +@define-color tray @mantle; +@define-color volume @mantle; +@define-color backlight @base; +@define-color battery @surface0; + +/* state colors */ + +@define-color warning @yellow; +@define-color critical @red; +@define-color charging @green; diff --git a/waybar/themes/css/catppuccin-frappe.css b/waybar/themes/css/catppuccin-frappe.css deleted file mode 100644 index a079f18..0000000 --- a/waybar/themes/css/catppuccin-frappe.css +++ /dev/null @@ -1,75 +0,0 @@ -/* Catppuccin Frappe */ - -@define-color rosewater #f2d5cf; -@define-color flamingo #eebebe; -@define-color pink #f4b8e4; -@define-color mauve #ca9ee6; -@define-color red #e78284; -@define-color maroon #ea999c; -@define-color peach #ef9f76; -@define-color yellow #e5c890; -@define-color green #a6d189; -@define-color teal #81c8be; -@define-color sky #99d1db; -@define-color sapphire #85c1dc; -@define-color blue #8caaee; -@define-color lavender #babbf1; -@define-color text #c6d0f5; -@define-color subtext1 #b5bfe2; -@define-color subtext0 #a5adce; -@define-color overlay2 #949cbb; -@define-color overlay1 #838ba7; -@define-color overlay0 #737994; -@define-color surface2 #626880; -@define-color surface1 #51576d; -@define-color surface0 #414559; -@define-color base #303446; -@define-color mantle #292c3c; -@define-color crust #232634; - -@define-color white #ffffff; -@define-color black #000000; - -/* - bg - background - fg - foreground - br - border -*/ - -/* Main Colors */ - -@define-color shadow shade(@crust, 0.5); -@define-color main-fg @text; -@define-color main-bg @crust; -@define-color main-br @text; - -@define-color active-bg @overlay2; -@define-color active-fg @crust; - -@define-color hover-bg @surface0; -@define-color hover-fg alpha(@text, 0.75); - -/* Module Colors */ - -@define-color module-fg @text; -@define-color workspaces @mantle; - -@define-color temperature @mantle; -@define-color memory @base; -@define-color cpu @surface0; -@define-color distro-fg @black; -@define-color distro-bg @overlay2; -@define-color time @surface0; -@define-color date @base; -@define-color tray @mantle; - -@define-color pulseaudio @mantle; -@define-color backlight @base; -@define-color battery @surface0; -@define-color power @overlay2; - -/* State Colors */ - -@define-color warning @yellow; -@define-color critical @red; -@define-color charging @text; diff --git a/waybar/themes/css/catppuccin-latte.css b/waybar/themes/css/catppuccin-latte.css deleted file mode 100644 index ecd734f..0000000 --- a/waybar/themes/css/catppuccin-latte.css +++ /dev/null @@ -1,75 +0,0 @@ -/* Catppuccin Latte */ - -@define-color rosewater #dc8a78; -@define-color flamingo #dd7878; -@define-color pink #ea76cb; -@define-color mauve #8839ef; -@define-color red #d20f39; -@define-color maroon #e64553; -@define-color peach #fe640b; -@define-color yellow #df8e1d; -@define-color green #40a02b; -@define-color teal #179299; -@define-color sky #04a5e5; -@define-color sapphire #209fb5; -@define-color blue #1e66f5; -@define-color lavender #7287fd; -@define-color text #4c4f69; -@define-color subtext1 #5c5f77; -@define-color subtext0 #6c6f85; -@define-color overlay2 #7c7f93; -@define-color overlay1 #8c8fa1; -@define-color overlay0 #9ca0b0; -@define-color surface2 #acb0be; -@define-color surface1 #bcc0cc; -@define-color surface0 #ccd0da; -@define-color base #eff1f5; -@define-color mantle #e6e9ef; -@define-color crust #dce0e8; - -@define-color white #ffffff; -@define-color black #000000; - -/* - bg - background - fg - foreground - br - border -*/ - -/* Main Colors */ - -@define-color shadow shade(@crust, 0.5); -@define-color main-fg @text; -@define-color main-bg @crust; -@define-color main-br @text; - -@define-color active-bg @overlay2; -@define-color active-fg @crust; - -@define-color hover-bg @surface0; -@define-color hover-fg alpha(@text, 0.75); - -/* Module Colors */ - -@define-color module-fg @text; -@define-color workspaces @mantle; - -@define-color temperature @mantle; -@define-color memory @base; -@define-color cpu @surface0; -@define-color distro-fg @black; -@define-color distro-bg @overlay2; -@define-color time @surface0; -@define-color date @base; -@define-color tray @mantle; - -@define-color pulseaudio @mantle; -@define-color backlight @base; -@define-color battery @surface0; -@define-color power @overlay2; - -/* State Colors */ - -@define-color warning @yellow; -@define-color critical @red; -@define-color charging @text; diff --git a/waybar/themes/css/catppuccin-macchiato.css b/waybar/themes/css/catppuccin-macchiato.css deleted file mode 100644 index cdc4737..0000000 --- a/waybar/themes/css/catppuccin-macchiato.css +++ /dev/null @@ -1,75 +0,0 @@ -/* Catppuccin Macchiato */ - -@define-color rosewater #f4dbd6; -@define-color flamingo #f0c6c6; -@define-color pink #f5bde6; -@define-color mauve #c6a0f6; -@define-color red #ed8796; -@define-color maroon #ee99a0; -@define-color peach #f5a97f; -@define-color yellow #eed49f; -@define-color green #a6da95; -@define-color teal #8bd5ca; -@define-color sky #91d7e3; -@define-color sapphire #7dc4e4; -@define-color blue #8aadf4; -@define-color lavender #b7bdf8; -@define-color text #cad3f5; -@define-color subtext1 #b8c0e0; -@define-color subtext0 #a5adcb; -@define-color overlay2 #939ab7; -@define-color overlay1 #8087a2; -@define-color overlay0 #6e738d; -@define-color surface2 #5b6078; -@define-color surface1 #494d64; -@define-color surface0 #363a4f; -@define-color base #24273a; -@define-color mantle #1e2030; -@define-color crust #181926; - -@define-color white #ffffff; -@define-color black #000000; - -/* - bg - background - fg - foreground - br - border -*/ - -/* Main Colors */ - -@define-color shadow shade(@crust, 0.5); -@define-color main-fg @text; -@define-color main-bg @crust; -@define-color main-br @text; - -@define-color active-bg @overlay2; -@define-color active-fg @crust; - -@define-color hover-bg @surface0; -@define-color hover-fg alpha(@text, 0.75); - -/* Module Colors */ - -@define-color module-fg @text; -@define-color workspaces @mantle; - -@define-color temperature @mantle; -@define-color memory @base; -@define-color cpu @surface0; -@define-color distro-fg @black; -@define-color distro-bg @overlay2; -@define-color time @surface0; -@define-color date @base; -@define-color tray @mantle; - -@define-color pulseaudio @mantle; -@define-color backlight @base; -@define-color battery @surface0; -@define-color power @overlay2; - -/* State Colors */ - -@define-color warning @yellow; -@define-color critical @red; -@define-color charging @text; diff --git a/waybar/themes/css/catppuccin-mocha.css b/waybar/themes/css/catppuccin-mocha.css deleted file mode 100644 index 244598f..0000000 --- a/waybar/themes/css/catppuccin-mocha.css +++ /dev/null @@ -1,75 +0,0 @@ -/* Catppuccin Mocha */ - -@define-color rosewater #f5e0dc; -@define-color flamingo #f2cdcd; -@define-color pink #f5c2e7; -@define-color mauve #cba6f7; -@define-color red #f38ba8; -@define-color maroon #eba0ac; -@define-color peach #fab387; -@define-color yellow #f9e2af; -@define-color green #a6e3a1; -@define-color teal #94e2d5; -@define-color sky #89dceb; -@define-color sapphire #74c7ec; -@define-color blue #89b4fa; -@define-color lavender #b4befe; -@define-color text #cdd6f4; -@define-color subtext1 #bac2de; -@define-color subtext0 #a6adc8; -@define-color overlay2 #9399b2; -@define-color overlay1 #7f849c; -@define-color overlay0 #6c7086; -@define-color surface2 #585b70; -@define-color surface1 #45475a; -@define-color surface0 #313244; -@define-color base #1e1e2e; -@define-color mantle #181825; -@define-color crust #11111b; - -@define-color white #ffffff; -@define-color black #000000; - -/* - bg - background - fg - foreground - br - border -*/ - -/* Main Colors */ - -@define-color shadow shade(@crust, 0.5); -@define-color main-fg @text; -@define-color main-bg @crust; -@define-color main-br @text; - -@define-color active-bg @overlay2; -@define-color active-fg @crust; - -@define-color hover-bg @surface0; -@define-color hover-fg alpha(@text, 0.75); - -/* Module Colors */ - -@define-color module-fg @text; -@define-color workspaces @mantle; - -@define-color temperature @mantle; -@define-color memory @base; -@define-color cpu @surface0; -@define-color distro-fg @black; -@define-color distro-bg @overlay2; -@define-color time @surface0; -@define-color date @base; -@define-color tray @mantle; - -@define-color pulseaudio @mantle; -@define-color backlight @base; -@define-color battery @surface0; -@define-color power @overlay2; - -/* State Colors */ - -@define-color warning @yellow; -@define-color critical @red; -@define-color charging @text; diff --git a/waybar/themes/css/gruvbox-dark.css b/waybar/themes/css/gruvbox-dark.css deleted file mode 100644 index 32ce8d7..0000000 --- a/waybar/themes/css/gruvbox-dark.css +++ /dev/null @@ -1,75 +0,0 @@ -/* Gruvbox Dark */ - -@define-color bg0_h #1d2021; -@define-color bg0 #282828; -@define-color bg1 #3c3836; -@define-color bg2 #504945; -@define-color bg3 #665c54; -@define-color bg4 #7c6f64; -@define-color gray #928374; -@define-color fg4 #a89984; -@define-color fg3 #bdae93; -@define-color fg2 #d5c4a1; -@define-color fg1 #ebdbb2; -@define-color fg0 #fbf1c7; -@define-color red #cc241d; -@define-color bright_red #fb4934; -@define-color green #98971a; -@define-color bright_green #b8bb26; -@define-color yellow #d79921; -@define-color bright_yellow #fabd2f; -@define-color blue #458588; -@define-color bright_blue #83a598; -@define-color purple #b16286; -@define-color bright_purple #d3869b; -@define-color aqua #689d6a; -@define-color bright_aqua #8ec07c; -@define-color orange #d65d0e; -@define-color bright_orange #fe8019; - -@define-color white #ffffff; -@define-color black #000000; - -/* - bg - background - fg - foreground - br - border -*/ - -/* Main Colors */ - -@define-color shadow shade(@bg0_h, 0.5); -@define-color main-fg @fg0; -@define-color main-bg @bg0_h; -@define-color main-br @fg0; - -@define-color active-bg @yellow; -@define-color active-fg @bg0_h; - -@define-color hover-bg @bg2; -@define-color hover-fg alpha(@fg0, 0.75); - -/* Module Colors */ - -@define-color module-fg @fg0; -@define-color workspaces @bg0; - -@define-color temperature @bg0; -@define-color memory @bg1; -@define-color cpu @bg2; -@define-color distro-fg @black; -@define-color distro-bg @yellow; -@define-color time @bg2; -@define-color date @bg1; -@define-color tray @bg0; - -@define-color pulseaudio @bg0; -@define-color backlight @bg1; -@define-color battery @bg2; -@define-color power @yellow; - -/* State Colors */ - -@define-color warning @bright_orange; -@define-color critical @bright_red; -@define-color charging @fg0; diff --git a/waybar/themes/css/gruvbox-light.css b/waybar/themes/css/gruvbox-light.css deleted file mode 100644 index 01db6d1..0000000 --- a/waybar/themes/css/gruvbox-light.css +++ /dev/null @@ -1,75 +0,0 @@ -/* Gruvbox Light */ - -@define-color bg0_h #f9f5d7; -@define-color bg0 #fbf1c7; -@define-color bg1 #ebdbb2; -@define-color bg2 #d5c4a1; -@define-color bg3 #bdae93; -@define-color bg4 #a89984; -@define-color gray #928374; -@define-color fg4 #7c6f64; -@define-color fg3 #665c54; -@define-color fg2 #504945; -@define-color fg1 #3c3836; -@define-color fg0 #282828; -@define-color red #cc241d; -@define-color bright_red #9d0006; -@define-color green #98971a; -@define-color bright_green #79740e; -@define-color yellow #d79921; -@define-color bright_yellow #b57614; -@define-color blue #458588; -@define-color bright_blue #076678; -@define-color purple #b16286; -@define-color bright_purple #8f3f71; -@define-color aqua #689d6a; -@define-color bright_aqua #427b58; -@define-color orange #d65d0e; -@define-color bright_orange #af3a03; - -@define-color white #ffffff; -@define-color black #000000; - -/* - bg - background - fg - foreground - br - border -*/ - -/* Main Colors */ - -@define-color shadow shade(@bg0_h, 0.5); -@define-color main-fg @fg0; -@define-color main-bg @bg0_h; -@define-color main-br @fg0; - -@define-color active-bg @yellow; -@define-color active-fg @bg0_h; - -@define-color hover-bg @bg2; -@define-color hover-fg alpha(@fg0, 0.75); - -/* Module Colors */ - -@define-color module-fg @fg0; -@define-color workspaces @bg0; - -@define-color temperature @bg0; -@define-color memory @bg1; -@define-color cpu @bg2; -@define-color distro-fg @black; -@define-color distro-bg @yellow; -@define-color time @bg2; -@define-color date @bg1; -@define-color tray @bg0; - -@define-color pulseaudio @bg0; -@define-color backlight @bg1; -@define-color battery @bg2; -@define-color power @yellow; - -/* State Colors */ - -@define-color warning @bright_orange; -@define-color critical @bright_red; -@define-color charging @fg0; diff --git a/waybar/themes/current-theme b/waybar/themes/current-theme deleted file mode 100644 index 6a7a63c..0000000 --- a/waybar/themes/current-theme +++ /dev/null @@ -1 +0,0 @@ -/home/saeijou/.config/waybar/themes/css/gruvbox-dark.css diff --git a/waybar/themes/jsonc/catppuccin-frappe.jsonc b/waybar/themes/jsonc/catppuccin-frappe.jsonc deleted file mode 100644 index d740ef9..0000000 --- a/waybar/themes/jsonc/catppuccin-frappe.jsonc +++ /dev/null @@ -1,478 +0,0 @@ -{ - "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 - "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, - "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 - }, - - "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": 30, - "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 - } -} diff --git a/waybar/themes/jsonc/catppuccin-latte.jsonc b/waybar/themes/jsonc/catppuccin-latte.jsonc deleted file mode 100644 index a76e81f..0000000 --- a/waybar/themes/jsonc/catppuccin-latte.jsonc +++ /dev/null @@ -1,478 +0,0 @@ -{ - "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 - "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, - "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 - }, - - "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": 30, - "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 - } -} diff --git a/waybar/themes/jsonc/catppuccin-macchiato.jsonc b/waybar/themes/jsonc/catppuccin-macchiato.jsonc deleted file mode 100644 index 86194e0..0000000 --- a/waybar/themes/jsonc/catppuccin-macchiato.jsonc +++ /dev/null @@ -1,478 +0,0 @@ -{ - "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 - "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, - "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 - }, - - "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": 30, - "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 - } -} diff --git a/waybar/themes/jsonc/catppuccin-mocha.jsonc b/waybar/themes/jsonc/catppuccin-mocha.jsonc deleted file mode 100644 index 4125b3d..0000000 --- a/waybar/themes/jsonc/catppuccin-mocha.jsonc +++ /dev/null @@ -1,478 +0,0 @@ -{ - "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 - "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, - "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 - }, - - "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": 30, - "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 - } -} diff --git a/waybar/themes/jsonc/gruvbox-dark.jsonc b/waybar/themes/jsonc/gruvbox-dark.jsonc deleted file mode 100644 index 64dad16..0000000 --- a/waybar/themes/jsonc/gruvbox-dark.jsonc +++ /dev/null @@ -1,478 +0,0 @@ -{ - "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 - "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, - "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 - }, - - "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": 30, - "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 - } -} diff --git a/waybar/themes/jsonc/gruvbox-light.jsonc b/waybar/themes/jsonc/gruvbox-light.jsonc deleted file mode 100644 index 42e5f7d..0000000 --- a/waybar/themes/jsonc/gruvbox-light.jsonc +++ /dev/null @@ -1,478 +0,0 @@ -{ - "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 - "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, - "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 - }, - - "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": 30, - "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 - } -}