Files
dotfiles/waybar/config_top.jsonc
Nikolai Papin a89e680872 refactor(waybar): reorganize top bar with groups and add new modules
- config_top.jsonc:
  - Group modules into traygroup, pomodorogroup, bench, general
  - Add weather, language, CPU, memory, temperature modules with icons and states
  - Add pomodoro preset buttons (10m,20m,30m,1h,1h30m)
  - Split battery into #watt (power draw) and #charge (charge level)
  - Add invisible separators for spacing
- config_bottom.jsonc:
  - Remove unused modules from left/right, add margin-top
- style_top.css:
  - Style new groups and modules, define state-based colors for CPU/memory/temperature
  - Add hover effects and critical animation for paused pomodoro
- style_bottom.css:
  - Style minimized taskbar buttons
  - Fix side panel group selector (use #group)
2026-03-19 02:21:29 +03:00

316 lines
8.9 KiB
JSON

// -*- mode: jsonc -*-
{
"output": [
"eDP-1",
"HDMI-A-1"
],
"height": 30,
"margin-left": 5,
"margin-right": 5,
"margin-top": 5,
"margin-bottom": 5,
"position": "top",
"layer": "top",
"spacing": 0,
"reload_style_on_change": true,
"modules-left": [
"custom/weather",
"custom/separator_invisible",
"group/pomodorogroup",
"custom/separator_invisible",
"mpd"
],
"modules-center": [
"hyprland/workspaces"
],
"modules-right": [
"group/traygroup",
"custom/separator_invisible",
"group/bench",
"custom/separator_invisible",
"group/general"
],
"group/traygroup": {
"orientation": "inherit",
"modules": [
"hyprland/language",
"tray"
]
},
"group/pomodorogroup": {
"orientation": "inherit",
"modules": [
"custom/pomodoro",
"custom/pomodoro10",
"custom/pomodoro20",
"custom/pomodoro30",
"custom/pomodoro60",
"custom/pomodoro90"
],
"drawer": {
}
},
"group/bench": {
"orientation": "inherit",
"modules": [
"battery#watt",
"cpu",
"memory",
"temperature"
]
},
"group/general": {
"orientation": "inherit",
"modules": [
"pulseaudio",
"pulseaudio/slider",
"battery#charge",
"network",
"clock"
]
},
"hyprland/language": {
"format": "{}",
"format-en": "🇬🇧",
"format-ru": "🇷🇺"
},
"battery#watt": {
"interval": 5,
"format": "{power:.0f}W |",
"on-click": "sh -c 'swaync-client -cp & ~/.config/rofi/scripts/dmenu_powermodemenu.sh'"
},
"cpu": {
"format": "{icon}",
"tooltip": true,
"interval": 3,
"format-icons": [
"󰄰", "󰪞", "󰪟", "󰪠", "󰪡", "󰪢", "󰪣", "󰪤", "󰪥"
],
"states": {
"s1": 0,
"s2": 10,
"s3": 30,
"s4": 50,
"s5": 70
},
"on-click": "kitty btop"
},
"memory": {
"format": "{icon}",
"interval": 3,
"format-icons": [
"󰄰", "󰪞", "󰪟", "󰪠", "󰪡", "󰪢", "󰪣", "󰪤", "󰪥"
],
"states": {
"s1": 20,
"s2": 30,
"s3": 50,
"s4": 60,
"s4": 70
},
"tooltip-format": "{used:0.1f}GiB used",
"tooltip": true,
"on-click": "kitty btop"
},
"temperature": {
"format": "{icon}",
"interval": 10,
"format-icons": [
"󰄰", "󰄰", "󰄰", "󰄰", "󰄰", "󰪞", "󰪟", "󰪠", "󰪡", "󰪢", "󰪣", "󰪤", "󰪥"
],
"warning-threshold": 60,
"critical-threshold": 80,
"on-click": "kitty btop"
},
"tray": {
"icon-size": 18,
"spacing": 10,
"icons": {
"blueman": "bluetooth",
"TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"
}
},
"hyprland/workspaces": {
"persistent-only": true,
"disable-scroll": true,
"warp-on-scroll": false,
"move-to-monitor": true,
"persistent-workspaces": {
"1": [],
"2": [],
"3": [],
"4": [],
"5": [],
"6": [],
"7": [],
"8": [],
"9": [],
"10": [],
"11": [],
"12": [],
// "eDP-1": [1,2,3,4,5,6,7,8,9],
// "HDMI-A-1": [10,11,12],
"IGNORED": [13,14]
},
"ignore-workspaces": [
"13",
"14"
],
"format": "{icon}",
"format-icons": {
"1": "󰆋",
"2": "",
"3": "󰄫",
"4": "󰅡",
"5": "󰐌",
"6": "󰲪",
"7": "󰓓",
"8": "",
"9": "󱡝",
"10": "󰥱",
"11": "󰍶",
"12": "󰐗",
"default": "󰽢"
}
},
"mpd": {
// "password": "kapuchinamusica",
"artist-len": 30,
"title-len": 50,
"unknown-tag": "n/a",
"format": "{stateIcon} {titleSmart}",
"interval": 1,
"single-icons": {
"on": "1 "
},
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected) | MMB - toggle, LMB/RMB - next/prev, scroll - volume",
"tooltip-format-disconnected": "MPD (disconnected) | MMB - toggle, LMB/RMB - next/prev, scroll - volume",
"format-stopped": " Stopping player...",
"on-click-right": "mpc next",
"on-click-middle": "mpc prev",
"on-click": "mpc toggle",
"on-scroll-down": "mpc volume +1",
"on-scroll-up": "mpc volume -1"
},
"mpris": {
"format": "{player_icon} {dynamic}",
"format-paused": "{status_icon} <i>{dynamic}</i>",
"dynamic-order": ["artist", "title"],
"player-icons": {
"default": "▶"
},
"status-icons": {
"paused": "⏸"
}
},
"clock": {
"timezone": "Europe/Moscow",
"interval": 5,
"tooltip-format": "<big>{:%A ( %B %d )}</big>\n<tt><small>{calendar}</small></tt>",
"format": "{:%H:%M}",
"format-alt": "{:%H:%M %d.%m.%Y}",
"calendar": {
"mode": "year",
"mode-mon-col": 3,
"weeks-pos": "right",
"format": {
"months": "<span color='#ffead3'><b>{}</b></span>",
"days": "<span color='#ac8699'><b>{}</b></span>",
"weeks": "<span color='#BC4056'><b>W{}</b></span>",
"weekdays": "<span color='#F8B5CE'><b>{}</b></span>",
"today": "<span color='#00FFFF'><b><u>{}</u></b></span>"
}
},
"actions": {
"on-click-right": "mode"
}
},
"battery#charge": {
"full-at": 98,
"states": {
"good": 85,
"warning": 30,
"critical": 18
},
"format": "{icon}",
"format-full": "󱈏",
"format-charging": "{icon}󱐋",
"format-plugged": "{icon}",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
"format-icons": ["󰂎", "", "", "󰁽", "", "󰁿", "", "󰂁", "󰂂"],
"tooltip-format": "{capacity}%, draws {power:2.1f}W, time is {time}",
"on-click": "gnome-power-statistics"
},
"network": {
"format-wifi": "{icon}",
"format-ethernet": "{ipaddr}/{cidr} ",
"tooltip-format": "{essid} {ifname} via {gwaddr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "󰤫",
"format-icons": [
"󰤯", "󰤟", "󰤢", "󰤥", "󰤨"
],
"on-click": "kitty nmtui-connect"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{format_source} ",
"format-muted": "{format_source} ",
"format-bluetooth": "{format_source} 󰂰",
"format-bluetooth-muted": "{format_source} 󰂲",
"format-source": "󰍬",
"format-source-muted": "󰍭",
"on-click": "pwvucontrol"
},
"pulseaudio/slider": {
"min": 0,
"max": 100,
"orientation": "horizontal"
},
"custom/separator_invisible": {
"format": " ",
"interval": "once",
"tooltip": false
},
"custom/weather": {
"format": "{}°C",
"tooltip": true,
"interval": 3600,
"exec": "wttrbar --location Moskau --nerd --mph --date-format %d.%m.%Y",
"return-type": "json"
},
"custom/pomodoro": {
"format": "{}",
"return-type": "json",
"exec": "~/.local/bin/waybar-module-pomodoro --persist -w 20 -s 5 -l 20 -i 3 -p '' -a '' --autob",
"on-click": "~/.local/bin/waybar-module-pomodoro toggle",
"on-click-right": "~/.local/bin/waybar-module-pomodoro reset"
},
"custom/pomodoro10": {
"format": "10m",
"on-click": "~/.local/bin/waybar-module-pomodoro set-work 10"
},
"custom/pomodoro20": {
"format": "20m",
"on-click": "~/.local/bin/waybar-module-pomodoro set-work 20"
},
"custom/pomodoro30": {
"format": "30m",
"on-click": "~/.local/bin/waybar-module-pomodoro set-work 30"
},
"custom/pomodoro60": {
"format": "1h",
"on-click": "~/.local/bin/waybar-module-pomodoro set-work 60"
},
"custom/pomodoro90": {
"format": "1h30m",
"on-click": "~/.local/bin/waybar-module-pomodoro set-work 90"
}
}