changed waybar with backup

This commit is contained in:
2025-11-14 11:51:49 -08:00
parent 71d8044079
commit 03439b983e
76 changed files with 2520 additions and 6381 deletions

View File

@@ -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)"

View File

@@ -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"

126
waybar/.github/README.md vendored Normal file
View File

@@ -0,0 +1,126 @@
<div align="center">
## 🤖 mechabar
A mecha-themed, modular Waybar configuration.
| ![Mechabar](assets/catppuccin-mocha.png) |
| :--------------------------------------: |
<details>
<summary><b>Themes</b></summary>
<br>
**Catppuccin:**
| Mocha _(default)_ |
| :----------------------------------------------: |
| ![Catppuccin Mocha](assets/catppuccin-mocha.png) |
| Macchiato |
| :------------------------------------------------------: |
| ![Catppuccin Macchiato](assets/catppuccin-macchiato.png) |
| Frappe |
| :------------------------------------------------: |
| ![Catppuccin Frappe](assets/catppuccin-frappe.png) |
| Latte |
| :----------------------------------------------: |
| ![Catppuccin Latte](assets/catppuccin-latte.png) |
</details>
</div>
#
### 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<tr></tr> |
| _(bluetoothctl)_ `bluez-utils` | Development and debugging utilities for the bluetooth protocol stack<tr></tr> |
| `brightnessctl` | Lightweight brightness control tool<tr></tr> |
| `fzf` | Command-line fuzzy finder<tr></tr> |
| _(nmcli)_ `networkmanager` | Network connection manager and user applications<tr></tr> |
| _(checkupdates)_ `pacman-contrib` | Contributed scripts and tools for pacman systems<tr></tr> |
| `pipewire-pulse` | Low-latency audio/video router and processor - PulseAudio replacement<tr></tr> |
| `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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

21
waybar/LICENSE Normal file
View File

@@ -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.

View File

@@ -1,489 +1,128 @@
{ {
"layer": "top", /*------------------------------------------------------------
"position": "top", regression: wildcard includes are broken after v0.14.0
"mode": "dock", - https://github.com/Alexays/Waybar/issues/4354
"reload_style_on_change": true, - https://github.com/sejjy/mechabar/issues/31
"gtk-layer-shell": true, ------------------------------------------------------------*/
/*
"include": [
"~/.config/waybar/modules/*.jsonc",
"~/.config/waybar/modules/custom/*.jsonc",
"~/.config/waybar/modules/hyprland/*.jsonc"
// <<--< Positions >-->> // 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": [ "modules-left": [
"custom/ws", // window icon "group/user",
"custom/left1", "custom/left_div#1",
"hyprland/workspaces",
"hyprland/workspaces", // workspaces "custom/right_div#1",
"custom/right1", "hyprland/window"
"custom/paddw",
"hyprland/window" // window title
], ],
"modules-center": [ "modules-center": [
"custom/paddc", "hyprland/windowcount",
"custom/left2", "custom/left_div#2",
"custom/temperature", // temperature "temperature",
"custom/left_div#3",
"custom/left3", "memory",
"memory", // memory "custom/left_div#4",
"cpu",
"custom/left4", "custom/left_inv#1",
"cpu", // cpu "custom/left_div#5",
"custom/leftin1", "custom/distro",
"custom/right_div#2",
"custom/left5", "custom/right_inv#1",
"custom/distro", // distro icon "idle_inhibitor",
"custom/right2", "clock#time",
"custom/right_div#3",
"custom/rightin1", "clock#date",
"idle_inhibitor", // idle inhibitor "custom/right_div#4",
"clock#time", // time "network",
"custom/right3", "bluetooth",
"custom/system_update",
"clock#date", // date "custom/right_div#5"
"custom/right4",
"custom/wifi", // wi-fi
"custom/wireguard", // wireguard
"bluetooth", // bluetooth
"custom/update", // system update
"custom/right5"
], ],
"modules-right": [ "modules-right": [
"mpris", // media info "mpris",
"custom/left_div#6",
"custom/left6", "group/pulseaudio",
"pulseaudio", // output device "custom/left_div#7",
"backlight",
"custom/left7", "custom/left_div#8",
"backlight", // brightness "battery",
"custom/left_inv#2",
"custom/left8", "custom/power_menu"
"battery", // battery
"custom/leftin2",
"custom/power" // power button
], ],
// <<--< Modules >-->> /*-------------
options
-------------*/
"custom/ws": { // "expand-center":
"exec": "~/.config/waybar/scripts/current-theme.sh", // "expand-left":
"return-type": "json", // "expand-right":
"format": " 󰤕 ", "layer": "top",
"on-click": "~/.config/waybar/scripts/theme-switcher.sh", // "output":
"min-length": 3, // "position":
"max-length": 3 "height": 0,
}, "width": 0,
"margin": 0,
"hyprland/workspaces": { // "margin-top":
"on-scroll-up": "hyprctl dispatch workspace -1", // "margin-left":
"on-scroll-down": "hyprctl dispatch workspace +1", // "margin-bottom":
"persistent-workspaces": { // "margin-right":
"1": [], // "no-center":
"2": [], "spacing": 0,
"3": [], // "name":
"4": [], "mode": "dock",
"5": [] // "start_hidden":
} // "modifier-reset":
}, // "exclusive":
// "fixed-center":
"hyprland/window": { // "passthrough":
"format": "{}", // "ipc":
"tooltip": false, // "id":
"min-length": 5, "reload_style_on_change": true
// "on-sigusr1":
"rewrite": { // "on-sigusr2":
// Desktop
"":
"<span foreground='#458588'> </span> Hyprland",
// Terminal
"~": " Terminal",
"zsh": " Terminal",
"kitty": " Terminal",
"tmux(.*)":
"<span foreground='#a6e3a1'> </span> Tmux",
// Browser
"(.*)Mozilla Firefox":
"<span foreground='#cc241d'>󰈹 </span> Firefox",
"(.*) — Mozilla Firefox":
"<span foreground='#cc241d'>󰈹 </span> $1",
"(.*)Zen Browser":
"<span foreground='#d65d0e'>󰺕 </span> Zen Browser",
"(.*) — Zen Browser":
"<span foreground='#d65d0e'>󰺕 </span> $1",
// Development
"(.*) - Visual Studio Code":
"<span foreground='#458588'>󰨞 </span> $1",
"(.*)Visual Studio Code":
"<span foreground='#458588'>󰨞 </span> Visual Studio Code",
"nvim":
"<span foreground='#98971a'> </span> Neovim",
"nvim (.*)":
"<span foreground='#98971a'> </span> $1",
"vim":
"<span foreground='#98971a'> </span> Vim",
"vim (.*)":
"<span foreground='#98971a'> </span> $1",
// Media
"(.*)Spotify":
"<span foreground='#98971a'> </span> Spotify",
"(.*)Spotify Premium":
"<span foreground='#98971a'> </span> Spotify Premium",
"OBS(.*)":
"<span foreground='#d5c4a1'> </span> OBS Studio",
"VLC media player":
"<span foreground='#d65d0e'>󰕼 </span> VLC Media Player",
"(.*) - VLC media player":
"<span foreground='#d65d0e'>󰕼 </span> $1",
"(.*) - mpv":
"<span foreground='#b16286'> </span> $1",
"qView": " qView",
"(.*).jpg": " $1.jpg",
"(.*).png": " $1.png",
"(.*).svg": " $1.svg",
// Social
"vesktop":
"<span foreground='#458588'> </span> Discord",
"• Discord(.*)": "Discord$1",
"(.*)Discord(.*)":
"<span foreground='#458588'> </span> $1Discord$2",
// Documents
"ONLYOFFICE Desktop Editors":
"<span foreground='#cc241d'> </span> OnlyOffice Desktop",
"(.*).docx":
"<span foreground='#458588'> </span> $1.docx",
"(.*).xlsx":
"<span foreground='#98971a'> </span> $1.xlsx",
"(.*).pptx":
"<span foreground='#d65d0e'> </span> $1.pptx",
"(.*).pdf":
"<span foreground='#cc241d'> </span> $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": "<tt>{calendar}</tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 6,
"weeks-pos": "right",
"on-click-right": "mode",
"format": {
"months":
"<span color='#928374'><b>{}</b></span>",
"weekdays":
"<span color='#d5c4a1' font='7'>{}</span>",
"today":
"<span color='#cc241d'><b>{}</b></span>"
}
},
"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": "<span foreground='#98971a'>󰓇 </span>",
"firefox": "<span foreground='#cc241d'>󰗃 </span>"
},
"status-icons": {
"paused": "<span color='#928374'>\u200A\u200A󰏤\u2009\u2009</span>"
},
"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
}
} }

View File

@@ -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
"":
"<span foreground='#458588'> </span> Hyprland",
// Terminal
"~": " Terminal",
"zsh": " Terminal",
"kitty": " Terminal",
"tmux(.*)":
"<span foreground='#a6e3a1'> </span> Tmux",
// Browser
"(.*)Mozilla Firefox":
"<span foreground='#cc241d'>󰈹 </span> Firefox",
"(.*) — Mozilla Firefox":
"<span foreground='#cc241d'>󰈹 </span> $1",
"(.*)Zen Browser":
"<span foreground='#d65d0e'>󰺕 </span> Zen Browser",
"(.*) — Zen Browser":
"<span foreground='#d65d0e'>󰺕 </span> $1",
// Development
"(.*) - Visual Studio Code":
"<span foreground='#458588'>󰨞 </span> $1",
"(.*)Visual Studio Code":
"<span foreground='#458588'>󰨞 </span> Visual Studio Code",
"nvim":
"<span foreground='#98971a'> </span> Neovim",
"nvim (.*)":
"<span foreground='#98971a'> </span> $1",
"vim":
"<span foreground='#98971a'> </span> Vim",
"vim (.*)":
"<span foreground='#98971a'> </span> $1",
// Media
"(.*)Spotify":
"<span foreground='#98971a'> </span> Spotify",
"(.*)Spotify Premium":
"<span foreground='#98971a'> </span> Spotify Premium",
"OBS(.*)":
"<span foreground='#d5c4a1'> </span> OBS Studio",
"VLC media player":
"<span foreground='#d65d0e'>󰕼 </span> VLC Media Player",
"(.*) - VLC media player":
"<span foreground='#d65d0e'>󰕼 </span> $1",
"(.*) - mpv":
"<span foreground='#b16286'> </span> $1",
"qView": " qView",
"(.*).jpg": " $1.jpg",
"(.*).png": " $1.png",
"(.*).svg": " $1.svg",
// Social
"vesktop":
"<span foreground='#458588'> </span> Discord",
"• Discord(.*)": "Discord$1",
"(.*)Discord(.*)":
"<span foreground='#458588'> </span> $1Discord$2",
// Documents
"ONLYOFFICE Desktop Editors":
"<span foreground='#cc241d'> </span> OnlyOffice Desktop",
"(.*).docx":
"<span foreground='#458588'> </span> $1.docx",
"(.*).xlsx":
"<span foreground='#98971a'> </span> $1.xlsx",
"(.*).pptx":
"<span foreground='#d65d0e'> </span> $1.pptx",
"(.*).pdf":
"<span foreground='#cc241d'> </span> $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": "<tt>{calendar}</tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 6,
"weeks-pos": "right",
"on-click-right": "mode",
"format": {
"months":
"<span color='#928374'><b>{}</b></span>",
"weekdays":
"<span color='#d5c4a1' font='7'>{}</span>",
"today":
"<span color='#cc241d'><b>{}</b></span>"
}
},
"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": "<span foreground='#98971a'>󰓇 </span>",
"firefox": "<span foreground='#cc241d'>󰗃 </span>"
},
"status-icons": {
"paused": "<span color='#928374'>\u200A\u200A󰏤\u2009\u2009</span>"
},
"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
}
}

View File

@@ -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
"":
"<span foreground='#8aadf4'> </span> Hyprland",
// Terminal
"~": " Terminal",
"zsh": " Terminal",
"kitty": " Terminal",
"tmux(.*)":
"<span foreground='#a6e3a1'> </span> Tmux",
// Browser
"(.*)Mozilla Firefox":
"<span foreground='#ed8796'>󰈹 </span> Firefox",
"(.*) — Mozilla Firefox":
"<span foreground='#ed8796'>󰈹 </span> $1",
"(.*)Zen Browser":
"<span foreground='#f5a97f'>󰺕 </span> Zen Browser",
"(.*) — Zen Browser":
"<span foreground='#f5a97f'>󰺕 </span> $1",
// Development
"(.*) - Visual Studio Code":
"<span foreground='#8aadf4'>󰨞 </span> $1",
"(.*)Visual Studio Code":
"<span foreground='#8aadf4'>󰨞 </span> Visual Studio Code",
"nvim":
"<span foreground='#a6da95'> </span> Neovim",
"nvim (.*)":
"<span foreground='#a6da95'> </span> $1",
"vim":
"<span foreground='#a6da95'> </span> Vim",
"vim (.*)":
"<span foreground='#a6da95'> </span> $1",
// Media
"(.*)Spotify":
"<span foreground='#a6da95'> </span> Spotify",
"(.*)Spotify Premium":
"<span foreground='#a6da95'> </span> Spotify Premium",
"OBS(.*)":
"<span foreground='#a5adcb'> </span> OBS Studio",
"VLC media player":
"<span foreground='#f5a97f'>󰕼 </span> VLC Media Player",
"(.*) - VLC media player":
"<span foreground='#f5a97f'>󰕼 </span> $1",
"(.*) - mpv":
"<span foreground='#c6a0f6'> </span> $1",
"qView": " qView",
"(.*).jpg": " $1.jpg",
"(.*).png": " $1.png",
"(.*).svg": " $1.svg",
// Social
"vesktop":
"<span foreground='#8aadf4'> </span> Discord",
"• Discord(.*)": "Discord$1",
"(.*)Discord(.*)":
"<span foreground='#8aadf4'> </span> $1Discord$2",
// Documents
"ONLYOFFICE Desktop Editors":
"<span foreground='#ed8796'> </span> OnlyOffice Desktop",
"(.*).docx":
"<span foreground='#8aadf4'> </span> $1.docx",
"(.*).xlsx":
"<span foreground='#a6da95'> </span> $1.xlsx",
"(.*).pptx":
"<span foreground='#f5a97f'> </span> $1.pptx",
"(.*).pdf":
"<span foreground='#ed8796'> </span> $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": "<tt>{calendar}</tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 6,
"on-click-right": "mode",
"format": {
"months":
"<span color='#b7bdf8'><b>{}</b></span>",
"weekdays":
"<span color='#a5adcb' font='7'>{}</span>",
"today":
"<span color='#ed8796'><b>{}</b></span>"
}
},
"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": "<span foreground='#a6da95'>󰓇 </span>",
"firefox": "<span foreground='#ed8796'>󰗃 </span>"
},
"status-icons": {
"paused": "<span color='#b7bdf8'>\u200A\u200A󰏤\u2009\u2009</span>"
},
"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
}
}

54
waybar/install.sh Executable file
View File

@@ -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

View File

@@ -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":
}
}

View File

@@ -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'"
}
}
}

View File

@@ -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":
}
}

View File

@@ -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": "<span alpha='100%'><b>{}</b></span>",
"days": "<span alpha='90%'>{}</span>",
// "weeks":
"weekdays": "<span alpha='80%'><i>{}</i></span>",
"today": "<span alpha='100%'><b><u>{}</u></b></span>"
}
},
"actions": {
"on-click": "mode"
// "on-click-middle":
// "on-click-right":
// "on-scroll-up":
// "on-scroll-down":
}
}
}

27
waybar/modules/cpu.jsonc Normal file
View File

@@ -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":
}
}

View File

@@ -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":
}
}

View File

@@ -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
}
}

View File

@@ -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":
}
}

View File

@@ -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":
}
}

View File

@@ -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":
}
}

View File

@@ -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
}
}

View File

@@ -0,0 +1,13 @@
{
"tray": {
"icon-size": 16,
// "show-passive-items":
// "smooth-scrolling-threshold":
"spacing": 12,
// "reverse-direction":
// "on-update":
// "expand":
// "icons":
"cursor": true
}
}

View File

@@ -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":
}
}

View File

@@ -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":
}
}

View File

@@ -0,0 +1,12 @@
{
"hyprland/windowcount": {
"format": "[{}]",
// "format-empty":
// "format-windowed":
// "format-fullscreen":
// "separate-outputs":
// "min-length":
// "max-length":
"swap-icon-label": false
}
}

View File

@@ -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
}
}

View File

@@ -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: <span text_transform='capitalize'>{status}</span>",
"tooltip-format-deactivated": "Keep Screen On: <span text_transform='capitalize'>{status}</span>",
"start-activated": false
// "timeout":
// "menu":
// "menu-file":
// "menu-actions":
// "expand":
}
}

View File

@@ -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":
}
}

View File

@@ -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":
}
}

View File

@@ -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":
}
}

View File

@@ -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":
}
}

View File

@@ -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":
}
}

66
waybar/scripts/backlight.sh Executable file
View File

@@ -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 <sejjymvm@gmail.com>
# 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 <value> Increase brightness by <value>
down <value> Decrease brightness by <value>
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 "$@"

View File

@@ -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

View File

@@ -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 <username> -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 <username> -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 "<username>" with your username.
# reload udev rules by running the following command:
# sudo udevadm control --reload-rules

View File

@@ -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

120
waybar/scripts/bluetooth.sh Executable file
View File

@@ -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 <sejjymvm@gmail.com>
# 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

View File

@@ -1,92 +0,0 @@
#!/usr/bin/env bash
# Print error message for invalid arguments
print_error() {
cat <<"EOF"
Usage: ./brightnesscontrol.sh <action>
Valid actions are:
i -- <i>ncrease brightness [+2%]
d -- <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}\"}"

View File

@@ -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="<span color='#f38ba8'>${thermo_icon} ${temp}°C</span>"
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\"}"

View File

@@ -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\"}"

82
waybar/scripts/fzf-colors.sh Executable file
View File

@@ -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

99
waybar/scripts/network.sh Executable file
View File

@@ -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 <sejjymvm@gmail.com>
# 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

View File

@@ -1,30 +1,49 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#
# Display a power menu to perform system actions
#
# Requirements:
# - fzf
#
# Author: Jesse Mirabel <sejjymvm@gmail.com>
# 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 local opts=(
selected_option=$(echo -e "$actions" | rofi -dmenu -i -config "${config}" || pkill -x rofi) --border=sharp
--border-label=' Power Menu '
--height=~100%
--highlight-line
--no-input
--pointer=
--reverse
"${COLORS[@]}"
)
# Perform actions based on the selected option local selected
case "$selected_option" in selected=$(printf '%s\n' "${LIST[@]}" | fzf "${opts[@]}")
*Lock)
loginctl lock-session case $selected in
;; 'Lock') loginctl lock-session ;;
*Shutdown) 'Shutdown') systemctl poweroff ;;
systemctl poweroff 'Reboot') systemctl reboot ;;
;; 'Logout') loginctl terminate-session "$XDG_SESSION_ID" ;;
*Reboot) 'Hibernate') systemctl hibernate ;;
systemctl reboot 'Suspend') systemctl suspend ;;
;;
*Suspend)
systemctl suspend
;;
*Hibernate)
systemctl hibernate
;;
*Logout)
loginctl kill-session "$XDG_SESSION_ID"
;;
esac esac
}
main

View File

@@ -1,86 +1,82 @@
#!/usr/bin/env bash #!/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 <sejjymvm@gmail.com>
# Created: August 16, 2025
# License: MIT
# Check release GRN='\033[1;32m'
if [ ! -f /etc/arch-release ]; then BLU='\033[1;34m'
exit 0 RST='\033[0m'
fi
pkg_installed() { TIMEOUT=5
local pkg=$1
if pacman -Qi "${pkg}" &>/dev/null; then check-updates() {
return 0 repo=$(timeout $TIMEOUT checkupdates 2> /dev/null | wc -l)
elif pacman -Qi "flatpak" &>/dev/null && flatpak info "${pkg}" &>/dev/null; then
return 0 if [[ -n $helper ]]; then
elif command -v "${pkg}" &>/dev/null; then aur=$(timeout $TIMEOUT "$helper" -Quaq 2> /dev/null | wc -l)
return 0
else
return 1
fi fi
} }
get_aur_helper() { update-packages() {
if pkg_installed yay; then printf '\n%bUpdating pacman packages...%b\n' "$BLU" "$RST"
aur_helper="yay" sudo pacman -Syu
elif pkg_installed paru; then
aur_helper="paru" 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...'
}
display-module() {
local tooltip="Official: $repo"
if [[ -n $helper ]]; then
tooltip+="\nAUR($helper): $aur"
fi
local total=$((repo + aur))
if ((total == 0)); then
echo "{ \"text\": \"󰸟\", \"tooltip\": \"No updates available\" }"
else
echo "{ \"text\": \"\", \"tooltip\": \"$tooltip\" }"
fi fi
} }
get_aur_helper main() {
export -f pkg_installed local arg=$1
local helpers=(aura paru pikaur trizen yay)
local bin
# Trigger upgrade bin=$(command -v "${helpers[@]}" | head -n 1)
if [ "$1" == "up" ]; then helper=${bin##*/}
trap 'pkill -RTMIN+20 waybar' EXIT repo=0
command=" aur=0
$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
# Check for AUR updates case $arg in
if [ -n "$aur_helper" ]; then 'module')
aur_updates=$(${aur_helper} -Qua | grep -c '^') check-updates
else display-module
aur_updates=0 ;;
fi *)
printf '%bChecking for updates...%b' "$BLU" "$RST"
check-updates
update-packages
;;
esac
}
# Check for official repository updates main "$@"
official_updates=$(
(while pgrep -x checkupdates >/dev/null; do sleep 1; done)
checkupdates | grep -c '^'
)
# Check for Flatpak updates
if pkg_installed flatpak; then
flatpak_updates=$(flatpak remote-ls --updates | grep -c '^')
else
flatpak_updates=0
fi
# Calculate total available updates
total_updates=$((official_updates + aur_updates + flatpak_updates))
# 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
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

View File

@@ -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 &

View File

@@ -1,123 +0,0 @@
#!/usr/bin/env bash
# Define functions
print_error() {
cat <<"EOF"
Usage: ./volumecontrol.sh -[device] <actions>
...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

159
waybar/scripts/volume.sh Executable file
View File

@@ -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 <sejjymvm@gmail.com>
# 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 <value> Raise volume by <value>
lower <value> Lower volume by <value>
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 "$@"

View File

@@ -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

View File

@@ -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}\"}"

View File

@@ -1,476 +1,12 @@
/* ignore GTK theme */
* {
all: initial;
}
@import "theme.css"; @import "theme.css";
@import "styles/fonts.css";
* { @import "styles/global.css";
min-height: 0; @import "styles/modules-center.css";
border: none; @import "styles/modules-left.css";
margin: 0; @import "styles/modules-right.css";
padding: 0; @import "styles/states.css";
}
/* ----------------------------------------------------- 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;
}

28
waybar/styles/fonts.css Normal file
View File

@@ -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;
}

38
waybar/styles/global.css Normal file
View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

37
waybar/styles/states.css Normal file
View File

@@ -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;
}

View File

@@ -1,75 +1,63 @@
/* Gruvbox Dark */ /* catppuccin-mocha */
@define-color bg0_h #1d2021; @define-color rosewater #f5e0dc;
@define-color bg0 #282828; @define-color flamingo #f2cdcd;
@define-color bg1 #3c3836; @define-color pink #f5c2e7;
@define-color bg2 #504945; @define-color mauve #cba6f7;
@define-color bg3 #665c54; @define-color red #f38ba8;
@define-color bg4 #7c6f64; @define-color maroon #eba0ac;
@define-color gray #928374; @define-color peach #fab387;
@define-color fg4 #a89984; @define-color yellow #f9e2af;
@define-color fg3 #bdae93; @define-color green #a6e3a1;
@define-color fg2 #d5c4a1; @define-color teal #94e2d5;
@define-color fg1 #ebdbb2; @define-color sky #89dceb;
@define-color fg0 #fbf1c7; @define-color sapphire #74c7ec;
@define-color red #cc241d; @define-color blue #89b4fa;
@define-color bright_red #fb4934; @define-color lavender #b4befe;
@define-color green #98971a; @define-color text #cdd6f4;
@define-color bright_green #b8bb26; @define-color subtext1 #bac2de;
@define-color yellow #d79921; @define-color subtext0 #a6adc8;
@define-color bright_yellow #fabd2f; @define-color overlay2 #9399b2;
@define-color blue #458588; @define-color overlay1 #7f849c;
@define-color bright_blue #83a598; @define-color overlay0 #6c7086;
@define-color purple #b16286; @define-color surface2 #585b70;
@define-color bright_purple #d3869b; @define-color surface1 #45475a;
@define-color aqua #689d6a; @define-color surface0 #313244;
@define-color bright_aqua #8ec07c; @define-color base #1e1e2e;
@define-color orange #d65d0e; @define-color mantle #181825;
@define-color bright_orange #fe8019; @define-color crust #11111b;
@define-color white #ffffff;
@define-color black #000000;
/* /*
br - border
bg - background bg - background
fg - foreground fg - foreground
br - border
*/ */
/* Main Colors */ /* main colors */
@define-color shadow shade(@bg0_h, 0.5); @define-color accent @lavender;
@define-color main-fg @fg0; @define-color main-br @subtext0;
@define-color main-bg @bg0_h; @define-color main-bg @crust;
@define-color main-br @fg0; @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; /* module colors */
@define-color active-fg @bg0_h;
@define-color hover-bg @bg2; @define-color workspaces @mantle;
@define-color hover-fg alpha(@fg0, 0.75); @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 warning @yellow;
@define-color workspaces @bg0; @define-color critical @red;
@define-color charging @green;
@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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -1 +0,0 @@
/home/saeijou/.config/waybar/themes/css/gruvbox-dark.css

View File

@@ -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
"":
"<span foreground='#8caaee'> </span> Hyprland",
// Terminal
"~": " Terminal",
"zsh": " Terminal",
"kitty": " Terminal",
"tmux(.*)":
"<span foreground='#a6e3a1'> </span> Tmux",
// Browser
"(.*)Mozilla Firefox":
"<span foreground='#e78284'>󰈹 </span> Firefox",
"(.*) — Mozilla Firefox":
"<span foreground='#e78284'>󰈹 </span> $1",
"(.*)Zen Browser":
"<span foreground='#ef9f76'>󰺕 </span> Zen Browser",
"(.*) — Zen Browser":
"<span foreground='#ef9f76'>󰺕 </span> $1",
// Development
"(.*) - Visual Studio Code":
"<span foreground='#8caaee'>󰨞 </span> $1",
"(.*)Visual Studio Code":
"<span foreground='#8caaee'>󰨞 </span> Visual Studio Code",
"nvim":
"<span foreground='#a6d189'> </span> Neovim",
"nvim (.*)":
"<span foreground='#a6d189'> </span> $1",
"vim":
"<span foreground='#a6d189'> </span> Vim",
"vim (.*)":
"<span foreground='#a6d189'> </span> $1",
// Media
"(.*)Spotify":
"<span foreground='#a6d189'> </span> Spotify",
"(.*)Spotify Premium":
"<span foreground='#a6d189'> </span> Spotify Premium",
"OBS(.*)":
"<span foreground='#a5adce'> </span> OBS Studio",
"VLC media player":
"<span foreground='#ef9f76'>󰕼 </span> VLC Media Player",
"(.*) - VLC media player":
"<span foreground='#ef9f76'>󰕼 </span> $1",
"(.*) - mpv":
"<span foreground='#ca9ee6'> </span> $1",
"qView": " qView",
"(.*).jpg": " $1.jpg",
"(.*).png": " $1.png",
"(.*).svg": " $1.svg",
// Social
"vesktop":
"<span foreground='#8caaee'> </span> Discord",
"• Discord(.*)": "Discord$1",
"(.*)Discord(.*)":
"<span foreground='#8caaee'> </span> $1Discord$2",
// Documents
"ONLYOFFICE Desktop Editors":
"<span foreground='#e78284'> </span> OnlyOffice Desktop",
"(.*).docx":
"<span foreground='#8caaee'> </span> $1.docx",
"(.*).xlsx":
"<span foreground='#a6d189'> </span> $1.xlsx",
"(.*).pptx":
"<span foreground='#ef9f76'> </span> $1.pptx",
"(.*).pdf":
"<span foreground='#e78284'> </span> $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": "<tt>{calendar}</tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 6,
"on-click-right": "mode",
"format": {
"months":
"<span color='#babbf1'><b>{}</b></span>",
"weekdays":
"<span color='#a5adce' font='7'>{}</span>",
"today":
"<span color='#e78284'><b>{}</b></span>"
}
},
"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": "<span foreground='#a6d189'>󰓇 </span>",
"firefox": "<span foreground='#e78284'>󰗃 </span>"
},
"status-icons": {
"paused": "<span color='#babbf1'>\u200A\u200A󰏤\u2009\u2009</span>"
},
"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
}
}

View File

@@ -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
"":
"<span foreground='#1e66f5'> </span> Hyprland",
// Terminal
"~": " Terminal",
"zsh": " Terminal",
"kitty": " Terminal",
"tmux(.*)":
"<span foreground='#a6e3a1'> </span> Tmux",
// Browser
"(.*)Mozilla Firefox":
"<span foreground='#d20f39'>󰈹 </span> Firefox",
"(.*) — Mozilla Firefox":
"<span foreground='#d20f39'>󰈹 </span> $1",
"(.*)Zen Browser":
"<span foreground='#fe640b'>󰺕 </span> Zen Browser",
"(.*) — Zen Browser":
"<span foreground='#fe640b'>󰺕 </span> $1",
// Development
"(.*) - Visual Studio Code":
"<span foreground='#1e66f5'>󰨞 </span> $1",
"(.*)Visual Studio Code":
"<span foreground='#1e66f5'>󰨞 </span> Visual Studio Code",
"nvim":
"<span foreground='#40a02b'> </span> Neovim",
"nvim (.*)":
"<span foreground='#40a02b'> </span> $1",
"vim":
"<span foreground='#40a02b'> </span> Vim",
"vim (.*)":
"<span foreground='#40a02b'> </span> $1",
// Media
"(.*)Spotify":
"<span foreground='#40a02b'> </span> Spotify",
"(.*)Spotify Premium":
"<span foreground='#40a02b'> </span> Spotify Premium",
"OBS(.*)":
"<span foreground='#6c6f85'> </span> OBS Studio",
"VLC media player":
"<span foreground='#fe640b'>󰕼 </span> VLC Media Player",
"(.*) - VLC media player":
"<span foreground='#fe640b'>󰕼 </span> $1",
"(.*) - mpv":
"<span foreground='#8839ef'> </span> $1",
"qView": " qView",
"(.*).jpg": " $1.jpg",
"(.*).png": " $1.png",
"(.*).svg": " $1.svg",
// Social
"vesktop":
"<span foreground='#1e66f5'> </span> Discord",
"• Discord(.*)": "Discord$1",
"(.*)Discord(.*)":
"<span foreground='#1e66f5'> </span> $1Discord$2",
// Documents
"ONLYOFFICE Desktop Editors":
"<span foreground='#d20f39'> </span> OnlyOffice Desktop",
"(.*).docx":
"<span foreground='#1e66f5'> </span> $1.docx",
"(.*).xlsx":
"<span foreground='#40a02b'> </span> $1.xlsx",
"(.*).pptx":
"<span foreground='#fe640b'> </span> $1.pptx",
"(.*).pdf":
"<span foreground='#d20f39'> </span> $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": "<tt>{calendar}</tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 6,
"on-click-right": "mode",
"format": {
"months":
"<span color='#7287fd'><b>{}</b></span>",
"weekdays":
"<span color='#6c6f85' font='7'>{}</span>",
"today":
"<span color='#d20f39'><b>{}</b></span>"
}
},
"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": "<span foreground='#40a02b'>󰓇 </span>",
"firefox": "<span foreground='#d20f39'>󰗃 </span>"
},
"status-icons": {
"paused": "<span color='#7287fd'>\u200A\u200A󰏤\u2009\u2009</span>"
},
"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
}
}

View File

@@ -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
"":
"<span foreground='#8aadf4'> </span> Hyprland",
// Terminal
"~": " Terminal",
"zsh": " Terminal",
"kitty": " Terminal",
"tmux(.*)":
"<span foreground='#a6e3a1'> </span> Tmux",
// Browser
"(.*)Mozilla Firefox":
"<span foreground='#ed8796'>󰈹 </span> Firefox",
"(.*) — Mozilla Firefox":
"<span foreground='#ed8796'>󰈹 </span> $1",
"(.*)Zen Browser":
"<span foreground='#f5a97f'>󰺕 </span> Zen Browser",
"(.*) — Zen Browser":
"<span foreground='#f5a97f'>󰺕 </span> $1",
// Development
"(.*) - Visual Studio Code":
"<span foreground='#8aadf4'>󰨞 </span> $1",
"(.*)Visual Studio Code":
"<span foreground='#8aadf4'>󰨞 </span> Visual Studio Code",
"nvim":
"<span foreground='#a6da95'> </span> Neovim",
"nvim (.*)":
"<span foreground='#a6da95'> </span> $1",
"vim":
"<span foreground='#a6da95'> </span> Vim",
"vim (.*)":
"<span foreground='#a6da95'> </span> $1",
// Media
"(.*)Spotify":
"<span foreground='#a6da95'> </span> Spotify",
"(.*)Spotify Premium":
"<span foreground='#a6da95'> </span> Spotify Premium",
"OBS(.*)":
"<span foreground='#a5adcb'> </span> OBS Studio",
"VLC media player":
"<span foreground='#f5a97f'>󰕼 </span> VLC Media Player",
"(.*) - VLC media player":
"<span foreground='#f5a97f'>󰕼 </span> $1",
"(.*) - mpv":
"<span foreground='#c6a0f6'> </span> $1",
"qView": " qView",
"(.*).jpg": " $1.jpg",
"(.*).png": " $1.png",
"(.*).svg": " $1.svg",
// Social
"vesktop":
"<span foreground='#8aadf4'> </span> Discord",
"• Discord(.*)": "Discord$1",
"(.*)Discord(.*)":
"<span foreground='#8aadf4'> </span> $1Discord$2",
// Documents
"ONLYOFFICE Desktop Editors":
"<span foreground='#ed8796'> </span> OnlyOffice Desktop",
"(.*).docx":
"<span foreground='#8aadf4'> </span> $1.docx",
"(.*).xlsx":
"<span foreground='#a6da95'> </span> $1.xlsx",
"(.*).pptx":
"<span foreground='#f5a97f'> </span> $1.pptx",
"(.*).pdf":
"<span foreground='#ed8796'> </span> $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": "<tt>{calendar}</tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 6,
"on-click-right": "mode",
"format": {
"months":
"<span color='#b7bdf8'><b>{}</b></span>",
"weekdays":
"<span color='#a5adcb' font='7'>{}</span>",
"today":
"<span color='#ed8796'><b>{}</b></span>"
}
},
"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": "<span foreground='#a6da95'>󰓇 </span>",
"firefox": "<span foreground='#ed8796'>󰗃 </span>"
},
"status-icons": {
"paused": "<span color='#b7bdf8'>\u200A\u200A󰏤\u2009\u2009</span>"
},
"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
}
}

View File

@@ -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
"":
"<span foreground='#89b4fa'> </span> Hyprland",
// Terminal
"~": " Terminal",
"zsh": " Terminal",
"kitty": " Terminal",
"tmux(.*)":
"<span foreground='#a6e3a1'> </span> Tmux",
// Browser
"(.*)Mozilla Firefox":
"<span foreground='#f38ba8'>󰈹 </span> Firefox",
"(.*) — Mozilla Firefox":
"<span foreground='#f38ba8'>󰈹 </span> $1",
"(.*)Zen Browser":
"<span foreground='#fab387'>󰺕 </span> Zen Browser",
"(.*) — Zen Browser":
"<span foreground='#fab387'>󰺕 </span> $1",
// Development
"(.*) - Visual Studio Code":
"<span foreground='#89b4fa'>󰨞 </span> $1",
"(.*)Visual Studio Code":
"<span foreground='#89b4fa'>󰨞 </span> Visual Studio Code",
"nvim":
"<span foreground='#a6e3a1'> </span> Neovim",
"nvim (.*)":
"<span foreground='#a6e3a1'> </span> $1",
"vim":
"<span foreground='#a6e3a1'> </span> Vim",
"vim (.*)":
"<span foreground='#a6e3a1'> </span> $1",
// Media
"(.*)Spotify":
"<span foreground='#a6e3a1'> </span> Spotify",
"(.*)Spotify Premium":
"<span foreground='#a6e3a1'> </span> Spotify Premium",
"OBS(.*)":
"<span foreground='#a6adc8'> </span> OBS Studio",
"VLC media player":
"<span foreground='#fab387'>󰕼 </span> VLC Media Player",
"(.*) - VLC media player":
"<span foreground='#fab387'>󰕼 </span> $1",
"(.*) - mpv":
"<span foreground='#cba6f7'> </span> $1",
"qView": " qView",
"(.*).jpg": " $1.jpg",
"(.*).png": " $1.png",
"(.*).svg": " $1.svg",
// Social
"vesktop":
"<span foreground='#89b4fa'> </span> Discord",
"• Discord(.*)": "Discord$1",
"(.*)Discord(.*)":
"<span foreground='#89b4fa'> </span> $1Discord$2",
// Documents
"ONLYOFFICE Desktop Editors":
"<span foreground='#f38ba8'> </span> OnlyOffice Desktop",
"(.*).docx":
"<span foreground='#89b4fa'> </span> $1.docx",
"(.*).xlsx":
"<span foreground='#a6e3a1'> </span> $1.xlsx",
"(.*).pptx":
"<span foreground='#fab387'> </span> $1.pptx",
"(.*).pdf":
"<span foreground='#f38ba8'> </span> $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": "<tt>{calendar}</tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 6,
"on-click-right": "mode",
"format": {
"months":
"<span color='#b4befe'><b>{}</b></span>",
"weekdays":
"<span color='#a6adc8' font='7'>{}</span>",
"today":
"<span color='#f38ba8'><b>{}</b></span>"
}
},
"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": "<span foreground='#a6e3a1'>󰓇 </span>",
"firefox": "<span foreground='#f38ba8'>󰗃 </span>"
},
"status-icons": {
"paused": "<span color='#b4befe'>\u200A\u200A󰏤\u2009\u2009</span>"
},
"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
}
}

View File

@@ -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
"":
"<span foreground='#458588'> </span> Hyprland",
// Terminal
"~": " Terminal",
"zsh": " Terminal",
"kitty": " Terminal",
"tmux(.*)":
"<span foreground='#a6e3a1'> </span> Tmux",
// Browser
"(.*)Mozilla Firefox":
"<span foreground='#cc241d'>󰈹 </span> Firefox",
"(.*) — Mozilla Firefox":
"<span foreground='#cc241d'>󰈹 </span> $1",
"(.*)Zen Browser":
"<span foreground='#d65d0e'>󰺕 </span> Zen Browser",
"(.*) — Zen Browser":
"<span foreground='#d65d0e'>󰺕 </span> $1",
// Development
"(.*) - Visual Studio Code":
"<span foreground='#458588'>󰨞 </span> $1",
"(.*)Visual Studio Code":
"<span foreground='#458588'>󰨞 </span> Visual Studio Code",
"nvim":
"<span foreground='#98971a'> </span> Neovim",
"nvim (.*)":
"<span foreground='#98971a'> </span> $1",
"vim":
"<span foreground='#98971a'> </span> Vim",
"vim (.*)":
"<span foreground='#98971a'> </span> $1",
// Media
"(.*)Spotify":
"<span foreground='#98971a'> </span> Spotify",
"(.*)Spotify Premium":
"<span foreground='#98971a'> </span> Spotify Premium",
"OBS(.*)":
"<span foreground='#d5c4a1'> </span> OBS Studio",
"VLC media player":
"<span foreground='#d65d0e'>󰕼 </span> VLC Media Player",
"(.*) - VLC media player":
"<span foreground='#d65d0e'>󰕼 </span> $1",
"(.*) - mpv":
"<span foreground='#b16286'> </span> $1",
"qView": " qView",
"(.*).jpg": " $1.jpg",
"(.*).png": " $1.png",
"(.*).svg": " $1.svg",
// Social
"vesktop":
"<span foreground='#458588'> </span> Discord",
"• Discord(.*)": "Discord$1",
"(.*)Discord(.*)":
"<span foreground='#458588'> </span> $1Discord$2",
// Documents
"ONLYOFFICE Desktop Editors":
"<span foreground='#cc241d'> </span> OnlyOffice Desktop",
"(.*).docx":
"<span foreground='#458588'> </span> $1.docx",
"(.*).xlsx":
"<span foreground='#98971a'> </span> $1.xlsx",
"(.*).pptx":
"<span foreground='#d65d0e'> </span> $1.pptx",
"(.*).pdf":
"<span foreground='#cc241d'> </span> $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": "<tt>{calendar}</tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 6,
"on-click-right": "mode",
"format": {
"months":
"<span color='#928374'><b>{}</b></span>",
"weekdays":
"<span color='#d5c4a1' font='7'>{}</span>",
"today":
"<span color='#cc241d'><b>{}</b></span>"
}
},
"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": "<span foreground='#98971a'>󰓇 </span>",
"firefox": "<span foreground='#cc241d'>󰗃 </span>"
},
"status-icons": {
"paused": "<span color='#928374'>\u200A\u200A󰏤\u2009\u2009</span>"
},
"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
}
}

View File

@@ -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
"":
"<span foreground='#458588'> </span> Hyprland",
// Terminal
"~": " Terminal",
"zsh": " Terminal",
"kitty": " Terminal",
"tmux(.*)":
"<span foreground='#a6e3a1'> </span> Tmux",
// Browser
"(.*)Mozilla Firefox":
"<span foreground='#cc241d'>󰈹 </span> Firefox",
"(.*) — Mozilla Firefox":
"<span foreground='#cc241d'>󰈹 </span> $1",
"(.*)Zen Browser":
"<span foreground='#d65d0e'>󰺕 </span> Zen Browser",
"(.*) — Zen Browser":
"<span foreground='#d65d0e'>󰺕 </span> $1",
// Development
"(.*) - Visual Studio Code":
"<span foreground='#458588'>󰨞 </span> $1",
"(.*)Visual Studio Code":
"<span foreground='#458588'>󰨞 </span> Visual Studio Code",
"nvim":
"<span foreground='#98971a'> </span> Neovim",
"nvim (.*)":
"<span foreground='#98971a'> </span> $1",
"vim":
"<span foreground='#98971a'> </span> Vim",
"vim (.*)":
"<span foreground='#98971a'> </span> $1",
// Media
"(.*)Spotify":
"<span foreground='#98971a'> </span> Spotify",
"(.*)Spotify Premium":
"<span foreground='#98971a'> </span> Spotify Premium",
"OBS(.*)":
"<span foreground='#504945'> </span> OBS Studio",
"VLC media player":
"<span foreground='#d65d0e'>󰕼 </span> VLC Media Player",
"(.*) - VLC media player":
"<span foreground='#d65d0e'>󰕼 </span> $1",
"(.*) - mpv":
"<span foreground='#b16286'> </span> $1",
"qView": " qView",
"(.*).jpg": " $1.jpg",
"(.*).png": " $1.png",
"(.*).svg": " $1.svg",
// Social
"vesktop":
"<span foreground='#458588'> </span> Discord",
"• Discord(.*)": "Discord$1",
"(.*)Discord(.*)":
"<span foreground='#458588'> </span> $1Discord$2",
// Documents
"ONLYOFFICE Desktop Editors":
"<span foreground='#cc241d'> </span> OnlyOffice Desktop",
"(.*).docx":
"<span foreground='#458588'> </span> $1.docx",
"(.*).xlsx":
"<span foreground='#98971a'> </span> $1.xlsx",
"(.*).pptx":
"<span foreground='#d65d0e'> </span> $1.pptx",
"(.*).pdf":
"<span foreground='#cc241d'> </span> $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": "<tt>{calendar}</tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 6,
"on-click-right": "mode",
"format": {
"months":
"<span color='#928374'><b>{}</b></span>",
"weekdays":
"<span color='#504945' font='7'>{}</span>",
"today":
"<span color='#cc241d'><b>{}</b></span>"
}
},
"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": "<span foreground='#98971a'>󰓇 </span>",
"firefox": "<span foreground='#cc241d'>󰗃 </span>"
},
"status-icons": {
"paused": "<span color='#928374'>\u200A\u200A󰏤\u2009\u2009</span>"
},
"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
}
}