From c9795e25142f7497cc7a2d1bb9e2b4b8ff9011fc Mon Sep 17 00:00:00 2001 From: Nikolai Papin Date: Sun, 21 Dec 2025 22:00:37 +0300 Subject: [PATCH] feat(hypr): add nwg-dock autostart and MPD control submap; feat(hypr): add window swallowing for kitty and Steam workspace rules; feat(waybar): create minimal config for gamemode and add notification panel button; refactor(waybar): simplify config, merge memory/swap displays, update workspace icons; refactor(swaync): remove CPU slider and adjust button styling; experiment(hypr): increase vibrancy and change screenshot sound; experiment(rmpc): update progress bar symbols; fix(rofi): add mouse support to all menu configurations; chore(hypr): update gamemode script to toggle minimal waybar --- hypr/hyprland.conf | 67 ++++++++-- hypr/scripts/gamemode.sh | 17 +++ hypr/scripts/toggle_waybar.sh | 10 +- rmpc/themes/kolinux.ron | 2 +- rofi/launchers/type-1/style-7.rasi | 4 + rofi/styles/style-powermenu.rasi | 4 + rofi/styles/style-powermodemenu.rasi | 4 + rofi/styles/style-recorder.rasi | 4 + swaync/config.json | 1 - swaync/style.css | 6 +- waybar/config.jsonc | 134 +++---------------- waybar/config_minimal.jsonc | 193 +++++++++++++++++++++++++++ waybar/style.css | 14 +- 13 files changed, 321 insertions(+), 139 deletions(-) create mode 100644 waybar/config_minimal.jsonc diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index b95c6de..419ff3a 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -25,6 +25,9 @@ $privateBrowser = env GTK_THEME=Adwaita:light zen-browser --private-window $notificationCenter = pkill rofi & swaync-client -t -sw || notify-send --hint int:transient:1 "Error SwayNC is down" $waybar = GTK_THEME="Simply_Circles_Dark" waybar +$mpdpass = kapuchinamusica +$dock = nwg-dock-hyprland -i 25 -w 12 -hi -x -ico view_icon -c "$HOME/.config/rofi/launchers/type-1/launcher.sh" + ################# ### AUTOSTART ### ################# @@ -40,6 +43,7 @@ exec-once = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" exec-once = swww-daemon exec-once = ~/.config/hypr/scripts/autofreeze_swww.sh exec-once = $waybar +exec-once = $dock exec-once = swaync exec-once = hypridle exec-once = hyprsunset @@ -144,7 +148,7 @@ decoration { ignore_opacity = true new_optimizations = true - vibrancy = 0 + vibrancy = 0.5 noise = 0 contrast = 1 } @@ -254,6 +258,7 @@ misc { vfr = true animate_manual_resizes = true enable_swallow = true + swallow_regex = ^(kitty)$ middle_click_paste = false enable_anr_dialog = false } @@ -273,7 +278,7 @@ input { repeat_rate = 25 repeat_delay = 200 - follow_mouse = 0 # 2 + follow_mouse = 2 float_switch_override_focus = 0 # touchpad / canyon @@ -371,10 +376,10 @@ bind = $mainMod SHIFT, S, centerwindow, bind = $mainMod, D, togglesplit, # dwindle # Screenshots -bind = $mainMod SHIFT, Print, exec, grimblast --freeze copysave area ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg && play ~/Templates/Sounds/photo.mp3 -bind = $mainMod, Print, exec, play ~/Templates/Sounds/photo.mp3 & grimblast --freeze copysave output ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg +bind = $mainMod SHIFT, Print, exec, grimblast --freeze copysave area ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg && play ~/Templates/Sounds/camera_shutter1.mp3 +bind = $mainMod, Print, exec, play ~/Templates/Sounds/camera_shutter1.mp3 & grimblast --freeze copysave output ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg bind = $mainMod SHIFT, XF86AudioNext, exec, grimblast --freeze copysave area ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg && play ~/Templates/Sounds/photo.mp3 -bind = $mainMod, XF86AudioNext, exec, play ~/Templates/Sounds/photo.mp3 & grimblast --freeze copysave output ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg +bind = $mainMod, XF86AudioNext, exec, play ~/Templates/Sounds/camera_shutter1.mp3 & grimblast --freeze copysave output ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg # Move focus with mainMod + arrow keys bind = $mainMod, h, movefocus, l @@ -446,13 +451,14 @@ bind = $mainMod SHIFT, k, swapwindow, u # Cycle through windows with mainMod + C bind = $mainMod, C, cyclenext bind = $mainMod SHIFT, C, cyclenext, prev +bind = $mainMod, X, cyclenext, visible floating bind = $mainMod, R, swapnext bind = $mainMod SHIFT, R, swapnext, prev # Go to previous window and back bind = ALT, TAB, focuscurrentorlast -bind = $mainMod, I, focusurgentorlast +bind = $mainMod, I, toggleswallow bindp = $mainMod, Tab, workspace, previous # Resize windows in different directions via keyboard @@ -509,7 +515,7 @@ bindl = , XF86AudioPause, exec, playerctl play-pause bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioPrev, exec, playerctl previous -# Toggle waybar +# Toggle waybar & dock bind = $mainMod SHIFT, B, exec, ~/.config/hypr/scripts/toggle_waybar.sh # Toggle grayscale mode @@ -579,6 +585,7 @@ submap = clean bind = $mainMod, Escape, submap, reset submap = reset + # Easymove submap bind = $mainMod SHIFT, Space, submap, ezmv submap = ezmv @@ -594,6 +601,34 @@ bind = $mainMod, Tab, submap, reset bind = $mainMod, Escape, submap, reset submap = reset + +# Activate MPD submap with $mainMod + U +bind = $mainMod, U, submap, mpd + +# Define the MPD submap +submap = mpd + +# MPD controls (actions that exit submap) +bind = , P, exec, mpc --password $mpdpass toggle +bind = SHIFT, H, exec, mpc --password $mpdpass prev +bind = SHIFT, L, exec, mpc --password $mpdpass next + +# MPD Seek +binde = , H, exec, mpc --password $mpdpass seek "-00:00:5" +binde = , L, exec, mpc --password $mpdpass seek "+00:00:5" + +# Volume controls (remain in submap for repeated adjustments) +bind = , J, exec, mpc --password $mpdpass volume -5 +bind = , K, exec, mpc --password $mpdpass volume +5 + +# Alternative exit methods +bind = , escape, submap, reset +bind = , Return, submap, reset +bind = , Space, submap, reset + +# End the submap definition +submap = reset + ############################## ### WINDOWS AND WORKSPACES ### ############################## @@ -626,6 +661,10 @@ windowrule = group override set always,class:^(vesktop)$ windowrule = workspace 8 silent,class:^(Element)$ windowrule = group override set always,class:^(Element)$ +# Steam +windowrule = workspace 7 silent,class:^(steam)$ +windowrule = group set,class:^(steam)$ + # Screensharing protection source = ~/.config/hypr/privacy.conf windowrule = noscreenshare, tag:privacy @@ -651,13 +690,13 @@ windowrule = suppressevent maximize, class:.* # Fix some dragging issues with XWayland windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 -# Animation for rofi +# rofi layerrule = ignorezero, rofi layerrule = dimaround, rofi layerrule = blur, rofi layerrule = animation slide bottom, rofi -# Animation fpr swaync +# swaync layerrule = blur, swaync-control-center layerrule = blur, swaync-notification-window layerrule = abovelock, swaync-notification-window @@ -666,10 +705,18 @@ layerrule = ignorezero, swaync-control-center layerrule = ignorezero, swaync-notification-window layerrule = animation slideIn right, swaync-control-center layerrule = animation slideIn right, swaync-notification-window -# Waybar blur + +# waybar layerrule = ignorezero, waybar layerrule = blur, waybar layerrule = ignorealpha 0.6, waybar +layerrule = animation slide top, waybar + +# nwg-dock +layerrule = ignorezero, nwg-dock +layerrule = blur, nwg-dock +layerrule = animation slide bottom, nwg-dock + # Adjustments for certain workspaces workspace = special:magic, gapsin:20, gapsout:50, shadow:false workspace = 9, gapsin:15, gapsout:40 diff --git a/hypr/scripts/gamemode.sh b/hypr/scripts/gamemode.sh index 2ea0e4d..4b87c16 100755 --- a/hypr/scripts/gamemode.sh +++ b/hypr/scripts/gamemode.sh @@ -1,11 +1,28 @@ #!/usr/bin/env sh +STATUSBAR="waybar" + HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}') if [ "$HYPRGAMEMODE" = 1 ] ; then hyprctl --batch "\ keyword animations:enabled 0;\ keyword decoration:shadow:enabled 0;\ keyword decoration:blur:enabled 0;\ + keyword decoration:blur:ignore_opacity 1;\ + keyword decoration:blur:new_optimizations 1;\ + keyword decoration:blur:xray 1;\ + keyword decoration:active_opacity 1;\ keyword plugin:hyprfocus:fade_opacity 1" + + if pgrep $STATUSBAR > /dev/null; then + pkill $STATUSBAR + waybar -c "$HOME/.config/waybar/config_minimal.jsonc" & + fi exit fi + +if pgrep $STATUSBAR > /dev/null; then + pkill $STATUSBAR + waybar -c "$HOME/.config/waybar/config.jsonc" & +fi + hyprctl reload diff --git a/hypr/scripts/toggle_waybar.sh b/hypr/scripts/toggle_waybar.sh index 5c09913..9f8036b 100755 --- a/hypr/scripts/toggle_waybar.sh +++ b/hypr/scripts/toggle_waybar.sh @@ -1,9 +1,9 @@ #!/bin/sh -PROGRAM="waybar" - -if pgrep -x "$PROGRAM" > /dev/null; then - pkill -x $PROGRAM +if pgrep -x waybar > /dev/null; then + pkill -x waybar + pkill -x nwg-dock-hyprla else - GTK_THEME="Simply_Circles_Dark" $PROGRAM & + GTK_THEME="Simply_Circles_Dark" waybar & + nwg-dock-hyprland -i 25 -w 12 -hi -x -ico view_icon -c "$HOME/.config/rofi/launchers/type-1/launcher.sh" & fi diff --git a/rmpc/themes/kolinux.ron b/rmpc/themes/kolinux.ron index 55f0c1c..5db4a77 100644 --- a/rmpc/themes/kolinux.ron +++ b/rmpc/themes/kolinux.ron @@ -41,7 +41,7 @@ trace: (fg: "magenta", bg: "black"), ), progress_bar: ( - symbols: ["🬋", " ", "⠔"], + symbols: ["🬋", "● ", "⠔"], track_style: (fg: "blue"), elapsed_style: (fg: "blue"), thumb_style: (fg: "blue"), diff --git a/rofi/launchers/type-1/style-7.rasi b/rofi/launchers/type-1/style-7.rasi index 1d4c146..787d633 100644 --- a/rofi/launchers/type-1/style-7.rasi +++ b/rofi/launchers/type-1/style-7.rasi @@ -228,4 +228,8 @@ configuration { kb-mode-previous: "Shift+Left,H"; kb-page-prev: "K"; kb-page-next: "J"; + me-select-entry: ""; + me-accept-entry: "!MousePrimary"; + kb-cancel: "MousePrimary,Escape"; + hover-select: true; } diff --git a/rofi/styles/style-powermenu.rasi b/rofi/styles/style-powermenu.rasi index 98139bd..f8f57dd 100644 --- a/rofi/styles/style-powermenu.rasi +++ b/rofi/styles/style-powermenu.rasi @@ -104,4 +104,8 @@ configuration { kb-row-right: "l,L"; kb-row-down: "j,J"; kb-row-up: "k,K"; + me-select-entry: ""; + me-accept-entry: "!MousePrimary"; + kb-cancel: "MousePrimary,Escape"; + hover-select: true; } diff --git a/rofi/styles/style-powermodemenu.rasi b/rofi/styles/style-powermodemenu.rasi index 2cda70d..6e2e6cd 100644 --- a/rofi/styles/style-powermodemenu.rasi +++ b/rofi/styles/style-powermodemenu.rasi @@ -105,4 +105,8 @@ configuration { kb-row-down: "j,J"; kb-row-up: "k,K"; kb-row-right: "l,L"; + me-select-entry: ""; + me-accept-entry: "!MousePrimary"; + kb-cancel: "MousePrimary,Escape"; + hover-select: true; } diff --git a/rofi/styles/style-recorder.rasi b/rofi/styles/style-recorder.rasi index 8a6a076..6bcb656 100644 --- a/rofi/styles/style-recorder.rasi +++ b/rofi/styles/style-recorder.rasi @@ -132,4 +132,8 @@ configuration { kb-row-down: "j,J"; kb-row-up: "k,K"; kb-row-right: "l,L"; + me-select-entry: ""; + me-accept-entry: "!MousePrimary"; + kb-cancel: "MousePrimary,Escape"; + hover-select: true; } diff --git a/swaync/config.json b/swaync/config.json index a7c7051..8d63fdd 100644 --- a/swaync/config.json +++ b/swaync/config.json @@ -55,7 +55,6 @@ "buttons-grid", "volume", "slider#brightness", - "slider#cpu", "inhibitors", "title", "notifications", diff --git a/swaync/style.css b/swaync/style.css index 2d12fc1..acd90f7 100644 --- a/swaync/style.css +++ b/swaync/style.css @@ -30,7 +30,7 @@ button { background: none; background-color: var(--button-off); - border-top: 1.5px solid var(--button-top); + border-top: 1px solid var(--button-top); border-radius: 15px; } @@ -495,13 +495,13 @@ button:hover { .widget-buttons-grid flowboxchild > button.toggle:checked { /* style given to the active toggle button */ background-color: var(--noti-bg-selection); - border-top: 1.5px solid var(--button-on-top); + border-top: 1px solid var(--button-on-top); } .widget-buttons-grid flowboxchild > button.toggle:hover { /* style given to the active toggle button */ background-color: var(--bg-selected); - border-top: 1.5px solid var(--button-on-top); + border-top: 1px solid var(--button-on-top); } .widget-menubar > .menu-button-bar > .start { diff --git a/waybar/config.jsonc b/waybar/config.jsonc index 88fe4d8..54eef74 100644 --- a/waybar/config.jsonc +++ b/waybar/config.jsonc @@ -22,12 +22,12 @@ "modules-right": [ "cpu", "memory", - "memory#swap", "pulseaudio", "battery", "network", "tray", - "clock" + "clock", + "custom/panel" ], // Modules configuration "hyprland/workspaces": { @@ -58,45 +58,22 @@ ], "format": "{icon}", "format-icons": { - "1": "1", - "2": "2", - "3": "3", - "4": "4", - "5": "5", - "6": "6", - "7": "7", - "8": "8", - "9": "9", + "1": "", + "2": "󱒔", + "3": "󰙏", + "4": "󰉋", + // "5": "5", + // "6": "6", + "7": "󰊗", + "8": "󰭹", + "9": "", "10": "0", "11": "-", "12": "+", - "default": "", - "empty": "" + "default": "󰽢", + "empty": "󰄰" } }, - "keyboard-state": { - "numlock": true, - "capslock": true, - "format": "{name} {icon}", - "format-icons": { - "locked": "", - "unlocked": "" - } - }, - "hyprland/language": { - "format-ru": "RU", - "format-en": "EN" - }, - "hyprland/mode": { - "format": "{}" - }, - "hyprland/scratchpad": { - "format": "{icon} {count}", - "show-empty": false, - "format-icons": ["", ""], - "tooltip": true, - "tooltip-format": "{app}: {title}" - }, "mpd": { "password": "kapuchinamusica", "artist-len": 30, @@ -116,13 +93,6 @@ "format-stopped": " Stopping player...", "on-click": "mpc toggle --password kapuchinamusica" }, - "idle_inhibitor": { - "format": "{icon}", - "format-icons": { - "activated": "", - "deactivated": "" - } - }, "tray": { // "icon-size": 21, "spacing": 10, @@ -156,37 +126,14 @@ "cpu": { "format": "{max_frequency:1.2f}GHz 󰓅 {usage}%", "tooltip": false, - "interval": 10, + "interval": 15, "format-icons": [ "󰄰", "󰪞", "󰪟", "󰪠", "󰪡", "󰪢", "󰪣", "󰪤", "󰪥" ] }, "memory": { - "format": "󰧑 {percentage}%", - "interval": 10, - "format-icons": [ - "󰄰", "󰪞", "󰪟", "󰪠", "󰪡", "󰪢", "󰪣", "󰪤", "󰪥" - ] - }, - "memory#swap": { - "format": "󰋊 {swapPercentage}%", - "interval": 10, - "format-icons": [ - "󰄰", "󰪞", "󰪟", "󰪠", "󰪡", "󰪢", "󰪣", "󰪤", "󰪥" - ] - }, - "temperature": { - // "thermal-zone": 2, - // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", - "critical-threshold": 80, - // "format-critical": "{temperatureC}°C {icon}", - "format": "{temperatureC}°C {icon}", - "format-icons": ["", "", ""] - }, - "backlight": { - // "device": "acpi_video1", - "format": "{percent} {icon}", - "format-icons": ["", "", "", "", "", "", "", "", ""] + "format": "󰧑 {percentage}% 󰋊 {swapPercentage}%", + "interval": 10 }, "battery": { "full-at": 98, @@ -205,22 +152,7 @@ "format-icons": ["󰂎", "", "", "󰁽", "", "󰁿", "", "󰂁", "󰂂", ""], "tooltip-format": "{capacity}%, draws {power:2.1f}W, time is {time}" }, - "battery#bat2": { - "bat": "BAT2" - }, - "power-profiles-daemon": { - "format": "{icon}", - "tooltip-format": "Power profile: {profile}\nDriver: {driver}", - "tooltip": true, - "format-icons": { - "default": "󰓅", - "performance": "󰓅", - "balanced": "󰾅", - "power-saver": "󰾆" - } - }, "network": { - // "interface": "wlp2*", // (Optional) To force the use of this interface "format-wifi": "{icon}", "format-ethernet": "{ipaddr}/{cidr} ", "tooltip-format": "{essid} {ifname} via {gwaddr} ", @@ -228,8 +160,7 @@ "format-disconnected": "󰤫", "format-icons": [ "󰤯", "󰤟", "󰤢", "󰤥", "󰤨" - ], - "on-click": "hyprctl dispatch exec, [float; move center] kitty -e nmtui" + ] }, "pulseaudio": { // "scroll-step": 1, // %, can be a float @@ -239,9 +170,6 @@ "format-muted": "󰖁", "format-source": "", "format-source-muted": " ", - "format-icons": [ - "󰄰", "󰪞", "󰪟", "󰪠", "󰪡", "󰪢", "󰪣", "󰪤", "󰪥" - ], "on-click": "pwvucontrol" }, "custom/submap": { @@ -254,18 +182,6 @@ "exec": "state=$(hyprctl submap) && [[ $state != 'default' ]] && echo $state", "on-click": "hyprctl dispatch submap reset" }, - "custom/media": { - "format": "{icon} {text}", - "return-type": "json", - "max-length": 40, - "format-icons": { - "spotify": "", - "default": "🎜" - }, - "escape": true, - "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder - // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name - }, "custom/pomodoro": { "format": "{}", "return-type": "json", @@ -273,21 +189,13 @@ "on-click": "~/.local/bin/waybar-module-pomodoro toggle", "on-click-right": "~/.local/bin/waybar-module-pomodoro reset" }, + "custom/panel": { + "format": "", + "on-click": "swaync-client -t -sw" + }, "custom/goal": { "exec": "cat $HOME/.config/waybar/goal.txt", "format": "󱓧 {}", "interval": 60 - }, - "custom/power": { - "format" : "⏻ ", - "tooltip": false, - "menu": "on-click", - "menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder - "menu-actions": { - "shutdown": "shutdown", - "reboot": "reboot", - "suspend": "systemctl suspend", - "hibernate": "systemctl hibernate" - } } } diff --git a/waybar/config_minimal.jsonc b/waybar/config_minimal.jsonc new file mode 100644 index 0000000..3ec1595 --- /dev/null +++ b/waybar/config_minimal.jsonc @@ -0,0 +1,193 @@ +// -*- mode: jsonc -*- +{ + //"output": "eDP-1", + "output": [ + "eDP-1", + "HDMI-A-1" + ], + // "layer": "top", // Waybar at top layer + // "position": "bottom", // Waybar position (top|bottom|left|right) + "height": 30, // Waybar height (to be removed for auto height) + // "width": 1280, // Waybar width + "spacing": 0, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": [ + "hyprland/workspaces" + // "custom/submap" + ], + "modules-center": [ + "mpd" + ], + "modules-right": [ + "pulseaudio", + "battery", + "network", + "tray", + "clock" + ], + // Modules configuration + "hyprland/workspaces": { + "disable-scroll": true, + "all-outputs": false, + "active-only": true, + "warp-on-scroll": false, + "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], + "FUCKOFF": [13,14] + }, + "ignore-workspaces": [ + "*13", + "*14" + ], + "format": "{icon}", + "format-icons": { + "1": "", + "2": "󱒔", + "3": "󰙏", + "4": "󰉋", + // "5": "5", + // "6": "6", + "7": "󰊗", + "8": "󰭹", + "9": "", + "10": "0", + "11": "-", + "12": "+", + "default": "󰽢", + "empty": "󰄰" + } + }, + "mpd": { + "password": "kapuchinamusica", + "artist-len": 30, + "title-len": 65, + "unknown-tag": "n/a", + "format": "{stateIcon} {titleSmart}", + "interval": 1, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)", + "format-stopped": " Stopping player...", + "on-click": "mpc toggle --password kapuchinamusica" + }, + "tray": { + // "icon-size": 21, + "spacing": 10, + "icons": { + "blueman": "bluetooth", + "*": "folder-symbolic" + } + }, + "clock": { + // "timezone": "America/New_York", + "interval": 5, + "tooltip-format": "{:%A ( %B %d )}\n{calendar}", + "format": "{:%H:%M:%S}", + "format-alt": "{:%Y-%m-%d}", + "calendar": { + "mode": "year", + "mode-mon-col": 3, + "weeks-pos": "right", + "format": { + "months": "{}", + "days": "{}", + "weeks": "W{}", + "weekdays": "{}", + "today": "{}" + } + }, + "actions": { + "on-click-right": "mode" + } + }, + "cpu": { + "format": "{max_frequency:1.2f}GHz 󰓅 {usage}%", + "tooltip": false, + "interval": 15, + "format-icons": [ + "󰄰", "󰪞", "󰪟", "󰪠", "󰪡", "󰪢", "󰪣", "󰪤", "󰪥" + ] + }, + "memory": { + "format": "󰧑 {percentage}% 󰋊 {swapPercentage}%", + "interval": 10 + }, + "battery": { + "full-at": 98, + "states": { + "good": 85, + "warning": 30, + "critical": 18 + }, + "format": "{icon} {capacity}%", + "format-full": "{icon} {capacity}%", + "format-charging": "{icon}󱐋{capacity}%", + "format-plugged": "{icon} {capacity}%", + "format-alt": "{time} {icon}", + // "format-good": "", // An empty format will hide the module + "format-full": "󱈏", + "format-icons": ["󰂎", "", "", "󰁽", "", "󰁿", "", "󰂁", "󰂂", ""], + "tooltip-format": "{capacity}%, draws {power:2.1f}W, time is {time}" + }, + "network": { + "format-wifi": "{icon}", + "format-ethernet": "{ipaddr}/{cidr} ", + "tooltip-format": "{essid} {ifname} via {gwaddr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "󰤫", + "format-icons": [ + "󰤯", "󰤟", "󰤢", "󰤥", "󰤨" + ] + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{format_source} {volume}%", + "format-bluetooth": "{format_source}󰂰 {volume}%", + "format-bluetooth-muted": "{format_source} 󰂲", + "format-muted": "󰖁", + "format-source": "", + "format-source-muted": " ", + "on-click": "pwvucontrol" + }, + "custom/submap": { + "format": "{icon} {text}", + "max-length": 10, + "format-icons": { + "default": "󰥻" + }, + "interval": 1, + "exec": "state=$(hyprctl submap) && [[ $state != 'default' ]] && echo $state", + "on-click": "hyprctl dispatch submap reset" + }, + "custom/pomodoro": { + "format": "{}", + "return-type": "json", + "exec": "~/.local/bin/waybar-module-pomodoro --persist -w 20 -s 5 -l 20 -i 3 --autob", + "on-click": "~/.local/bin/waybar-module-pomodoro toggle", + "on-click-right": "~/.local/bin/waybar-module-pomodoro reset" + }, + "custom/goal": { + "exec": "cat $HOME/.config/waybar/goal.txt", + "format": "󱓧 {}", + "interval": 60 + } +} diff --git a/waybar/style.css b/waybar/style.css index c17172d..9ba3902 100644 --- a/waybar/style.css +++ b/waybar/style.css @@ -48,7 +48,6 @@ window#waybar.chromium { #custom-submap, #cpu, #memory, -#memory.swap, #disk, #clock, #battery, @@ -58,6 +57,7 @@ window#waybar.chromium { #pulseaudio, #wireplumber, #custom-media, +#custom-panel, #tray, #mode, #idle_inhibitor, @@ -138,11 +138,6 @@ window#waybar.chromium { } #memory { - border-left: none; - border-right: none; -} - -#memory.swap { border-left: none; border-radius: 0 0 10px 0; } @@ -202,6 +197,7 @@ window#waybar.chromium { #network, #wireplumber, #custom-media, +#custom-panel, #tray, #mode, #idle_inhibitor, @@ -210,6 +206,11 @@ window#waybar.chromium { border-right: none; } +#custom-panel { + padding: 0; + padding-right: 10px; +} + #pulseaudio { border-left: 1px solid @border-color; border-right: none; @@ -245,6 +246,7 @@ window#waybar.chromium { #pulseaudio:hover, #wireplumber:hover, #custom-media:hover, +#custom-panel:hover, #mode:hover, #idle_inhibitor:hover, #scratchpad:hover,