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.
+
+|  |
+| :--------------------------------------: |
+
+
+Themes
+
+
+**Catppuccin:**
+
+| Mocha _(default)_ |
+| :----------------------------------------------: |
+|  |
+
+| Macchiato |
+| :------------------------------------------------------: |
+|  |
+
+| Frappe |
+| :------------------------------------------------: |
+|  |
+
+| Latte |
+| :----------------------------------------------: |
+|  |
+
+
+
+
+#
+
+### 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
- }
-}