From 244b4808fa4c67a72287b83a73d41452b53fc63d Mon Sep 17 00:00:00 2001 From: Andrea Date: Sat, 1 Mar 2025 10:49:06 +0100 Subject: [PATCH] chore(waybar): update config --- waybar/config.jsonc | 185 +++++++++++++++++--------------- waybar/scripts/check_battery.sh | 23 ++-- waybar/style.css | 73 ++++++------- 3 files changed, 144 insertions(+), 137 deletions(-) diff --git a/waybar/config.jsonc b/waybar/config.jsonc index b882b6e..6c03705 100644 --- a/waybar/config.jsonc +++ b/waybar/config.jsonc @@ -1,10 +1,9 @@ { - "layer": "bottom", // Waybar at top layer - "position": "bottom", // Waybar position (top|bottom|left|right) - // "height": 30, // Waybar height (to be removed for auto height) + "mode": "dock", + "reload_style_on_change": true, + "layer": "bottom", + "position": "bottom", "margin": "5 5 5 5", - // "width": 1280, // Waybar width - // Choose the order of the modules "modules-left": ["sway/workspaces", "sway/mode"], "modules-center": ["clock", "idle_inhibitor"], "modules-right": [ @@ -14,69 +13,27 @@ "pulseaudio", "backlight", "battery", + "disk", + "memory", "bluetooth", "network" ], - //*************************** - //* Modules configuration * - //*************************** - "sway/workspaces": { - "disable-scroll": true, - "format": "{name}" - }, - - "custom/recorder": { - "format": "", - "return-type": "json", - "interval": 1, - "exec": "echo '{\"class\": \"recording\"}'", - "exec-if": "pgrep wf-recorder" - }, - - "custom/pacman": { - "format": "{} ", - "interval": 3600, // every hour - "exec": "checkupdates | wc -l", // # of updates - "exec-if": "[[ $(checkupdates | wc -l) != 0 ]]", // always run; consider advanced run conditions - "on-click": "alacritty -e 'yay; echo Done - Press enter to exit; read'; pkill -SIGRTMIN+8 waybar", // update system - "signal": 8, - "tooltip": false - }, - - "privacy": { - "icon-spacing": 4, - "icon-size": 18, - "transition-duration": 250, - "modules": [ - { - "type": "screenshare", - "tooltip": true, - "tooltip-icon-size": 24 - }, - { - "type": "audio-out", - "tooltip": true, - "tooltip-icon-size": 24 - }, - { - "type": "audio-in", - "tooltip": true, - "tooltip-icon-size": 24 - } - ] + "format": "{name}", + "disable-scroll": true }, "sway/mode": { - "format": "{}" + "format": "{}" }, "clock": { - "timezone": "Europe/Rome", + "tooltip": true, + "timezones": ["Europe/Rome"], "format": "{:%H:%M}", "format-alt": "{:%Y-%m-%d}", - "tooltip-format": "{calendar}", + "tooltip-format": "{calendar}", "calendar": { "mode": "year", "mode-mon-col": 3, @@ -92,15 +49,12 @@ } }, "actions": { - "on-click-right": "mode", - "on-click-forward": "tz_up", - "on-click-backward": "tz_down", - "on-scroll-up": "shift_up", - "on-scroll-down": "shift_down" + "on-click-right": "mode" } }, "idle_inhibitor": { + "tooltip": true, "format": "{icon}", "format-icons": { "activated": "", @@ -108,69 +62,122 @@ } }, + "custom/pacman": { + "tooltip": false, + "format": "{} ", + "interval": 60, + "exec": "checkupdates | wc -l", + "exec-if": "[[ $(checkupdates | wc -l) != 0 ]]", + "signal": 8 + }, + + "custom/recorder": { + "tooltip": true, + "format": "Recording screen", + "return-type": "json", + "interval": 1, + "exec": "echo '{\"class\": \"recording\"}'", + "exec-if": "pgrep wf-recorder" + }, + + "privacy": { + "icon-spacing": 4, + "icon-size": 18, + "transition-duration": 250, + "modules": [ + { + "tooltip": true, + "type": "screenshare", + "tooltip-icon-size": 24 + }, + { + "tooltip": true, + "type": "audio-out", + "tooltip-icon-size": 24 + }, + { + "tooltip": true, + "type": "audio-in", + "tooltip-icon-size": 24 + } + ] + }, + "pulseaudio": { - // "scroll-step": 1, // %, can be a float - "reverse-scrolling": 1, - "format": "{volume}% {icon} {format_source}", - "format-bluetooth": "{icon} {volume}% {format_source}", - "format-bluetooth-muted": " {icon} {format_source}", - "format-muted": "婢 {format_source}", + "tooltip": true, + "format": "{volume}% {icon} {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": "󰂲 {format_source}", + "format-muted": " {format_source}", "format-source": "{volume}% ", "format-source-muted": "", "format-icons": { "headphone": "", - "hands-free": "", - "headset": "", - "phone": "", - "portable": "", - "car": "", - "default": ["奄", "奔", "墳"] + "hands-free": "󰋎", + "headset": "󰋎", + "default": ["", "", ""] }, "on-click": "pavucontrol", "min-length": 13 }, "backlight": { + "tooltip": true, "device": "intel_backlight", "format": "{percent}% {icon}", - "format-icons": ["", "", "", "", "", "", ""], + "format-icons": ["󰃚", "󰃛", "󰃜", "󰃝", "󰃞", "󰃟", "󰃠"], "min-length": 7 }, "battery": { + "interval": 3, + "tooltip": true, "states": { "warning": 30, "critical": 15 }, "format": "{capacity}% {icon}", - "format-charging": "{capacity}% ", + "format-charging": "{capacity}% 󰂄", "format-plugged": "{capacity}% ", "format-alt": "{time} {icon}", - "format-icons": ["", "", "", "", "", "", "", "", "", ""], + "format-icons": ["󰁻", "󰁼", "󰁾", "󰂀", "󰂂", "󰁹"], + "tooltip-format": "{timeTo}\nCapacity: {capacity}\nPower: {power}w\nCycles: {cycles}\nHealth: {health}%", "on-update": "$HOME/.config/waybar/scripts/check_battery.sh" }, + "disk": { + "interval": 3, + "tooltip": true, + "format": "{used} ", + "path": "/" + }, + + "memory": { + "interval": 3, + "tooltip": true, + "format": "{used}GiB ", + "max-length": 10 + }, + "bluetooth": { - "format": " {status}", - "format-connected": " {device_alias}", - "format-connected-battery": " {device_alias} {device_battery_percentage}%", - // "format-device-preference": [ "device1", "device2" ], // preference list deciding the displayed device + "tooltip": true, + "format": "󰂯 {status}", + "format-connected": "󰂯 {device_alias}", + "format-connected-battery": "󰂯 {device_alias} {device_battery_percentage}%", "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected", - "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}", - "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}", - "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%", "on-click": "blueman-manager" }, "network": { + "interval": 3, + "tooltip": true, "format": "{ifname}", - "format-wifi": "{essid} ", - "format-ethernet": "{ipaddr}/{cidr} 󰊗", - // "format-disconnected": "", //An empty format will hide the module. - "tooltip-format": "{ifname} via {gwaddr} 󰊗", - "tooltip-format-wifi": "{essid} ", - "tooltip-format-ethernet": "{ifname} ", - "tooltip-format-disconnected": "Disconnected", + "format-wifi": "{essid} 󰖩", + "format-ethernet": "{essid} 󰈀", + "tooltip-format": "{ifname} via {gwaddr} 󰈀", + "tooltip-format-wifi": "{ipaddr} on {ifname} via {essid} ", + "tooltip-format-ethernet": "{ipaddr} on {ifname} via {essid} 󰈀", + "tooltip-format-disconnected": "󰖪", "max-length": 50, "on-click": "nm-connection-editor" } diff --git a/waybar/scripts/check_battery.sh b/waybar/scripts/check_battery.sh index 6222418..3784123 100755 --- a/waybar/scripts/check_battery.sh +++ b/waybar/scripts/check_battery.sh @@ -1,18 +1,17 @@ -#!/bin/sh +#! /usr/bin/env bash -bat=/sys/class/power_supply/BAT1 -CRIT=${1:-15} +FILE=~/.config/waybar/scripts/.low_bat -FILE=~/.config/waybar/scripts/notified +bat="/sys/class/power_supply/BAT1" +CRIT="${1:-15}" +stat="$(cat $bat/status)" +perc="$(cat $bat/capacity)" -stat=$(cat $bat/status) -perc=$(cat $bat/capacity) +if [[ $perc -le $CRIT ]] && [[ "$stat" == "Discharging" ]] && [[ ! -f "$FILE" ]]; then + notify-send --urgency=critical --icon=dialog-warning "Battery Low" "Current charge: $perc%" + touch $FILE +fi -if [[ $perc -le $CRIT ]] && [[ $stat == "Discharging" ]]; then - if [[ ! -f "$FILE" ]]; then - notify-send --urgency=critical --icon=dialog-warning "Battery Low" "Current charge: $perc%" - touch $FILE - fi -elif [[ -f "$FILE" ]]; then +if [[ -f "$FILE" ]] && [[ "$stat" == "Charging" ]]; then rm $FILE fi \ No newline at end of file diff --git a/waybar/style.css b/waybar/style.css index b220399..f07662b 100644 --- a/waybar/style.css +++ b/waybar/style.css @@ -1,9 +1,16 @@ * { + all: initial; border: none; border-radius: 0; - /* `otf-font-awesome` is required to be installed for icons */ - font-family: Liberation Mono; min-height: 20px; + font-family: "Symbols Nerd Font", monospace; +} + +button { + padding-top: 4px; + padding-bottom: 4px; + padding-left: 14px; + padding-right: 14px; } window#waybar { @@ -14,24 +21,29 @@ window#waybar.hidden { opacity: 0.2; } +tooltip { + background: #383c4a; + border-radius: 10px; +} + +tooltip label { + color: white; +} + #workspaces { border-radius: 10px; transition: none; background: #383c4a; - margin-right: 8px; } #workspaces button { - transition: none; color: #7c818c; background: transparent; - padding: 5px; font-size: 18px; + min-width: 0; } -/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ #workspaces button:hover { - transition: none; box-shadow: inherit; text-shadow: inherit; border-radius: inherit; @@ -39,16 +51,17 @@ window#waybar.hidden { background: #7c818c; } -#workspaces button.focused { - color: white; -} - #custom-pacman, +#custom-recorder, #mode, #clock, +#privacy, +#privacy-item, #idle_inhibitor, #battery, #pulseaudio, +#disk, +#memory, #bluetooth, #network, #backlight { @@ -58,11 +71,6 @@ window#waybar.hidden { background: #383c4a; } -#custom-pacman { - transition: none; - color: #ffffff; -} - #bluetooth { margin-right: 8px; } @@ -82,10 +90,18 @@ window#waybar.hidden { color: #ffffff; } -#clock { +#custom-pacman, +#custom-recorder, +#clock, +#privacy, +#pulseaudio, +#backlight, +#disk, +#memory, +#battery { + margin-right: 8px; transition: none; color: #ffffff; - margin-right: 8px; } #idle_inhibitor { @@ -97,30 +113,12 @@ window#waybar.hidden { background-color: #26a65b; } -#pulseaudio { - margin-right: 8px; - transition: none; - color: #ffffff; -} - #pulseaudio.muted, #pulseaudio.source-muted { background-color: #90b1b1; color: #2a5c45; } -#backlight { - margin-right: 8px; - transition: none; - color: #ffffff; -} - -#battery { - margin-right: 8px; - transition: none; - color: #ffffff; -} - #battery.charging { color: #ffffff; background-color: #26a65b; @@ -163,3 +161,6 @@ window#waybar.hidden { color: #000000; } } + +/* #privacy-item { +} */