Finally add all dotfiles correctly

This commit is contained in:
2025-07-19 14:24:57 -07:00
parent dc8976a1cd
commit 7cadf88d89
60 changed files with 7509 additions and 0 deletions

489
waybar/config.jsonc Normal file
View File

@@ -0,0 +1,489 @@
{
"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

@@ -0,0 +1,478 @@
{
"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
}
}

80
waybar/scripts/battery-level.sh Executable file
View File

@@ -0,0 +1,80 @@
#!/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

50
waybar/scripts/battery-state.sh Executable file
View File

@@ -0,0 +1,50 @@
#!/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

106
waybar/scripts/bluetooth-menu.sh Executable file
View File

@@ -0,0 +1,106 @@
#!/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

View File

@@ -0,0 +1,92 @@
#!/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}\"}"

67
waybar/scripts/cpu-temp.sh Executable file
View File

@@ -0,0 +1,67 @@
#!/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\"}"

24
waybar/scripts/current-theme.sh Executable file
View File

@@ -0,0 +1,24 @@
#!/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\"}"

30
waybar/scripts/power-menu.sh Executable file
View File

@@ -0,0 +1,30 @@
#!/usr/bin/env bash
config="$HOME/.config/rofi/power-menu.rasi"
actions=$(echo -e " Lock\n Shutdown\n Reboot\n Suspend\n Hibernate\n󰞘 Logout")
# Display logout menu
selected_option=$(echo -e "$actions" | rofi -dmenu -i -config "${config}" || pkill -x rofi)
# Perform actions based on the selected option
case "$selected_option" in
*Lock)
loginctl lock-session
;;
*Shutdown)
systemctl poweroff
;;
*Reboot)
systemctl reboot
;;
*Suspend)
systemctl suspend
;;
*Hibernate)
systemctl hibernate
;;
*Logout)
loginctl kill-session "$XDG_SESSION_ID"
;;
esac

86
waybar/scripts/system-update.sh Executable file
View File

@@ -0,0 +1,86 @@
#!/usr/bin/env bash
# Check release
if [ ! -f /etc/arch-release ]; then
exit 0
fi
pkg_installed() {
local pkg=$1
if pacman -Qi "${pkg}" &>/dev/null; then
return 0
elif pacman -Qi "flatpak" &>/dev/null && flatpak info "${pkg}" &>/dev/null; then
return 0
elif command -v "${pkg}" &>/dev/null; then
return 0
else
return 1
fi
}
get_aur_helper() {
if pkg_installed yay; then
aur_helper="yay"
elif pkg_installed paru; then
aur_helper="paru"
fi
}
get_aur_helper
export -f pkg_installed
# Trigger upgrade
if [ "$1" == "up" ]; then
trap 'pkill -RTMIN+20 waybar' EXIT
command="
$0 upgrade
${aur_helper} -Syu
if pkg_installed flatpak; then flatpak update; fi
printf '\n'
read -n 1 -p 'Press any key to continue...'
"
kitty --title " System Update" sh -c "${command}"
fi
# Check for AUR updates
if [ -n "$aur_helper" ]; then
aur_updates=$(${aur_helper} -Qua | grep -c '^')
else
aur_updates=0
fi
# Check for official repository updates
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

@@ -0,0 +1,54 @@
#!/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 &

123
waybar/scripts/volume-control.sh Executable file
View File

@@ -0,0 +1,123 @@
#!/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

126
waybar/scripts/wifi-menu.sh Executable file
View File

@@ -0,0 +1,126 @@
#!/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

71
waybar/scripts/wifi-status.sh Executable file
View File

@@ -0,0 +1,71 @@
#!/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

@@ -0,0 +1,43 @@
#!/usr/bin/env bash
# WireGuard status using ip command (no wg show needed)
ICON_ACTIVE="󰯄" # Shield with checkmark
ICON_INACTIVE="󰒙" # Shield disabled
# Get all WireGuard interfaces
wg_interfaces=$(ip a | grep -o 'wg[0-9]\+' | sort -u)
active_info=""
tooltip="<b>WireGuard Status</b>"
for interface in $wg_interfaces; do
# Check if interface has an IP address
ip_addr=$(ip -4 addr show dev "$interface" | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
if [ -n "$ip_addr" ]; then
# Interface is active
if [ -z "$active_info" ]; then
active_info="%{F#a3be8c}$ICON_ACTIVE%{F-} $interface:$ip_addr"
else
active_info+=" $interface:$ip_addr"
fi
tooltip+="\n\n<b>$interface</b>"
tooltip+="\n<b>Status:</b> <span color='#a3be8c'>Active</span>"
tooltip+="\n<b>IP:</b> $ip_addr"
else
# Interface exists but inactive
tooltip+="\n\n<b>$interface</b>"
tooltip+="\n<b>Status:</b> <span color='#bf616a'>Inactive</span>"
fi
done
if [ -z "$wg_interfaces" ]; then
# No WireGuard interfaces found
echo "{\"text\":\"$ICON_INACTIVE\",\"tooltip\":\"No WireGuard interfaces configured\"}"
elif [ -z "$active_info" ]; then
# Interfaces exist but none active
echo "{\"text\":\"$ICON_INACTIVE\",\"tooltip\":\"$tooltip\"}"
else
# Active interfaces found
echo "{\"text\":\"$ICON_ACTIVE\",\"tooltip\":\"$tooltip\"}"
fi

476
waybar/style.css Normal file
View File

@@ -0,0 +1,476 @@
@import "theme.css";
* {
min-height: 0;
border: none;
margin: 0;
padding: 0;
}
/* ----------------------------------------------------- MAIN BACKGROUND --- */
window#waybar>box {
background: @main-bg;
margin: 2px;
}
/* --------------------------------------------------------- DROP SHADOW --- */
window#waybar {
background: @shadow;
}
/* ------------------------------------------------------------ TOOLTIPS --- */
tooltip {
background: @main-bg;
border: 1.5px solid @main-br;
border-radius: 8px;
}
tooltip label {
color: @main-fg;
margin: -1.5px 3px;
}
/* ---------------------------------------- WORKSPACE BUTTONS and LABELS --- */
#workspaces button {
color: @module-fg;
border-radius: 8px;
box-shadow: none;
margin: 2px 0;
padding: 0 2px;
transition: none;
}
#workspaces button:hover {
color: @hover-fg;
background: @hover-bg;
text-shadow: none;
}
#workspaces button.active {
color: @active-fg;
background: @active-bg;
text-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.4);
margin: 2px;
padding: 0 6px;
}
/* ------------------------------------------------------------- GENERAL --- */
#custom-ws,
#workspaces,
#window,
#custom-temperature,
#memory,
#cpu,
#idle_inhibitor,
#clock,
#custom-wifi,
#custom-wireguard,
#bluetooth,
#custom-update,
#mpris,
#pulseaudio,
#backlight,
#battery,
#custom-power {
opacity: 1;
color: @module-fg;
padding: 0 4px;
}
#custom-left1,
#custom-left2,
#custom-left3,
#custom-left4,
#custom-left5,
#custom-left6,
#custom-left7,
#custom-left8 {
margin-bottom: 0;
text-shadow: -2px 0 2px rgba(0, 0, 0, 0.5);
}
#custom-right1,
#custom-right2,
#custom-right3,
#custom-right4,
#custom-right5 {
margin-bottom: 0;
padding-right: 3px;
text-shadow: 2px 0 2px rgba(0, 0, 0, 0.5);
}
/* ------------------------------------------------------------- MODULES --- */
/* --------------------------------------------------------- window icon --- */
#custom-ws {
background: @main-bg;
}
#custom-ws:hover {
color: @hover-fg;
}
/* ---------------------------------------------------------- workspaces --- */
#custom-left1 {
color: @workspaces;
background: @main-bg;
margin-bottom: 0;
padding-left: 2px;
}
#workspaces {
background: @workspaces;
}
#custom-right1 {
color: @workspaces;
background: @main-bg;
text-shadow: 3px 0 2px rgba(0, 0, 0, 0.4);
margin-bottom: 0;
}
/* --------------------------------------------------------- temperature --- */
#custom-paddc {
padding-right: 22px;
}
#custom-left2 {
color: @temperature;
background: @main-bg;
padding-left: 3px;
}
#custom-temperature {
background: @temperature;
padding: 0 0 0 1px;
}
/* -------------------------------------------------------------- memory --- */
#custom-left3 {
color: @memory;
background: @temperature;
padding-left: 3px;
}
#memory {
background: @memory;
padding: 0 0 0 1px;
}
#memory.warning {
color: @warning;
}
#memory.critical {
color: @critical;
}
/* ----------------------------------------------------------------- cpu --- */
#custom-left4 {
color: @cpu;
background: @memory;
padding-left: 3px;
}
#cpu {
background: @cpu;
}
#custom-leftin1 {
color: @cpu;
margin-bottom: -1px;
}
/* --------------------------------------------------------- distro icon --- */
#custom-left5 {
color: @distro-bg;
background: @main-bg;
text-shadow: none;
margin-bottom: -2px;
padding-left: 3px;
}
#custom-distro {
color: @distro-fg;
background: @distro-bg;
margin: 0 -1px -2px 0;
padding: 0 0 0 3px;
text-shadow: 0 0 1.5px rgba(0, 0, 0, 1);
}
#custom-right2 {
color: @distro-bg;
background: @main-bg;
text-shadow: none;
margin-bottom: -2px;
}
/* ---------------------------------------------------------------- time --- */
#custom-rightin1 {
color: @time;
margin-bottom: -1px;
}
#idle_inhibitor {
background: @time;
padding: 0 0 0 7px;
}
#idle_inhibitor:hover {
color: @hover-fg;
}
#clock.time {
background: @time;
margin-left: -2px;
padding: 0 3px 0 0;
}
#custom-right3 {
color: @time;
background: @date;
}
/* ---------------------------------------------------------------- date --- */
#clock.date {
background: @date;
}
#clock.date:hover {
color: @hover-fg;
}
#custom-right4 {
color: @date;
background: @tray;
}
/* ---------------------------------------------------------------- tray --- */
#custom-wifi {
background: @tray;
padding: 0 8px 0 5px;
}
#custom-wifi:hover {
color: @hover-fg;
}
#custom-wireguard {
background: @tray;
padding: 0 8px 0 5px;
}
#custom-wireguard:hover {
color: @hover-fg;
}
#bluetooth {
background: @tray;
padding-right: 5px;
}
#bluetooth:hover {
color: @hover-fg;
}
#custom-update {
padding-right: 8px;
background: @tray;
}
#custom-update:hover {
color: @hover-fg;
}
#custom-right5 {
color: @tray;
background: @main-bg;
}
/* ---------------------------------------------------------- media info --- */
#mpris {
background: @main-bg;
padding: 0 8px 0;
}
#mpris:hover {
color: @hover-fg;
}
/*
output device
*/
#custom-left6 {
color: @pulseaudio;
background: @main-bg;
padding-left: 3px;
}
#pulseaudio {
background: @pulseaudio;
}
#pulseaudio:hover {
color: @hover-fg;
}
/* ---------------------------------------------------------- brightness --- */
#custom-left7 {
color: @backlight;
background: @pulseaudio;
padding-left: 2px;
}
#backlight {
background: @backlight;
}
/* ------------------------------------------------------------- battery --- */
#custom-left8 {
color: @battery;
background: @backlight;
padding-left: 2px;
}
#battery {
color: @module-fg;
background: @battery;
}
#battery.warning {
color: @warning;
}
#battery.critical {
color: @critical;
}
#battery.charging {
color: @charging;
}
/* -------------------------------------------------------- power button --- */
#custom-leftin2 {
color: @battery;
background: @main-bg;
margin-bottom: -1px;
}
#custom-power {
color: @main-bg;
background: @power;
text-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.6);
border-radius: 10px;
margin: 2px 4px 2px 0;
padding: 0 6px 0 9px;
}
#custom-power:hover {
color: @hover-fg;
background: @hover-bg;
text-shadow: none;
box-shadow: none;
}
/* ---------------------------------------------------------- FONT SIZES --- */
/*
NOTE: Be careful when changing font sizes, as they
can affect alignment.
Try adjusting whole numbers first, then refine with
decimals.
If you increase or decrease a value, make the same
change to all properties in this section to keep
the layout consistent.
*/
* {
font-family: "JetBrainsMono Nerd Font";
font-size: 10px;
font-weight: bold;
}
tooltip label,
#window label,
#mpris {
font-weight: normal;
}
/* ----------------------------------------------- left and right arrows --- */
#custom-left1,
#custom-left2,
#custom-left3,
#custom-left4,
#custom-left5,
#custom-left6,
#custom-left7,
#custom-left8,
#custom-right1,
#custom-right2,
#custom-right3,
#custom-right4,
#custom-right5 {
font-size: 14.68px;
}
/* ---------------------------------------------- left and right inverse --- */
#custom-leftin1,
#custom-leftin2,
#custom-rightin1 {
font-size: 15.5px;
}
/* -------------------------------------------------------------- distro --- */
#custom-distro {
font-size: 14.6px;
}
#custom-left5,
#custom-right2 {
font-size: 15.68px;
}
/*
Adjust these properties as well to keep the design
consistent.
*/
#workspaces button {
border-radius: 8px;
padding: 0 2px;
}
#workspaces button.active {
padding: 0 6px;
}
#custom-power {
border-radius: 10px;
padding: 0 6px 0 9px;
}

75
waybar/theme.css Normal file
View File

@@ -0,0 +1,75 @@
/* 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

@@ -0,0 +1,75 @@
/* 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

@@ -0,0 +1,75 @@
/* 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

@@ -0,0 +1,75 @@
/* 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

@@ -0,0 +1,75 @@
/* 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

@@ -0,0 +1,75 @@
/* 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

@@ -0,0 +1,75 @@
/* 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

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

View File

@@ -0,0 +1,478 @@
{
"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

@@ -0,0 +1,478 @@
{
"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

@@ -0,0 +1,478 @@
{
"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

@@ -0,0 +1,478 @@
{
"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

@@ -0,0 +1,478 @@
{
"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

@@ -0,0 +1,478 @@
{
"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
}
}