From fff72d3679cf6df5e74c8d3f72c85b8a7bbd39c2 Mon Sep 17 00:00:00 2001 From: goodhumored Date: Mon, 5 Aug 2024 11:36:43 +0300 Subject: [PATCH] waybar player album cover, timebar, pomodoro timer --- .config/waybar/.gitignore | 2 + .config/waybar/config.jsonc | 1 + .config/waybar/custom/placeholder.jpg | Bin 0 -> 9938 bytes .config/waybar/custom/playerctl.sh | 23 +++- .config/waybar/custom/pomodoro.sh | 27 ++++ .config/waybar/modules.json | 181 ++++---------------------- .config/waybar/style.css | 11 +- 7 files changed, 84 insertions(+), 161 deletions(-) create mode 100644 .config/waybar/.gitignore create mode 100644 .config/waybar/custom/placeholder.jpg create mode 100755 .config/waybar/custom/pomodoro.sh diff --git a/.config/waybar/.gitignore b/.config/waybar/.gitignore new file mode 100644 index 0000000..d195669 --- /dev/null +++ b/.config/waybar/.gitignore @@ -0,0 +1,2 @@ +custom/cover.cache +custom/cover.jpg diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc index 2ab8cdb..e0686a2 100644 --- a/.config/waybar/config.jsonc +++ b/.config/waybar/config.jsonc @@ -7,6 +7,7 @@ "modules-left": [ "custom/appmenuicon", "wlr/taskbar", + "custom/pomodoro" ], "modules-center": [ "hyprland/workspaces", diff --git a/.config/waybar/custom/placeholder.jpg b/.config/waybar/custom/placeholder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e0ae243fa37f91f6f877dcdc9c9a5fca982832b3 GIT binary patch literal 9938 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 Qr|OEfhJkuH+%Eio0bMfJZ2$lO literal 0 HcmV?d00001 diff --git a/.config/waybar/custom/playerctl.sh b/.config/waybar/custom/playerctl.sh index 93cd58f..60fc0e4 100755 --- a/.config/waybar/custom/playerctl.sh +++ b/.config/waybar/custom/playerctl.sh @@ -1,6 +1,20 @@ -title=$(playerctl metadata --format '{{markup_escape(artist)}} {{markup_escape(title)}}') +title=$(playerctl metadata --format '{{markup_escape(artist)}} - {{markup_escape(title)}}') position=$(playerctl metadata --format '{{position}}') length=$(playerctl metadata --format '{{mpris:length}}') +artUrl=$(playerctl metadata --format "{{mpris:artUrl}}") + +if [[ -n "$artUrl" ]]; then + cover=$(echo "$artUrl" | sed "s/file:\/\///g") +else + cover="$HOME/.config/waybar/custom/placeholder.jpg" +fi + +if [[ "$cover" != $(cat ~/.config/waybar/custom/cover.cache) ]]; then + echo "$cover" > ~/.config/waybar/custom/cover.cache + cp $cover ~/.config/waybar/custom/cover.jpg + killall waybar && waybar & + exit +fi # Check if both position and length are not empty if [[ -n "$position" && -n "$length" && -n "$title" ]]; then @@ -24,4 +38,9 @@ if [[ -n "$position" && -n "$length" && -n "$title" ]]; then done fi -echo $(playerctl metadata --format "{\"text\": \"$title\r$progress_string\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}}") +if [[ -n "$progress_string" ]]; then + title+="\r$progress_string" +fi + +echo $(playerctl metadata --format "{\"text\": \"$title\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\", \"tooltip\": \"$title ({{ duration(position) }}/{{ duration(mpris:length) }})\"}") + diff --git a/.config/waybar/custom/pomodoro.sh b/.config/waybar/custom/pomodoro.sh new file mode 100755 index 0000000..365b3d4 --- /dev/null +++ b/.config/waybar/custom/pomodoro.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Get the output of the pomodoro command +output=$(pomodoro -g) + +# Extract the timer name and remaining time +timer_name=$(echo $output | awk '{print $1}') +remaining_time=$(echo $output | awk '{print $2}') + +# Convert remaining time to seconds +remaining_seconds=$(( $(echo $remaining_time | awk -F: '{print $1 * 60 + $2}') )) + +# Read the configuration file and get the total time for the current timer +config_file=~/.config/pomodoro/config +total_time=$(grep "^$timer_name" $config_file | awk '{print $2}') + +# Convert total time to MM:SS format +total_minutes=$(( total_time / 60 )) +total_seconds=$(( total_time % 60 )) +total_time_formatted=$(printf "%02d:%02d" $total_minutes $total_seconds) + +# Calculate the progress percentage +progress=$(( (total_time - remaining_seconds) * 100 / total_time )) + +# Echo the timer name and progress +echo "{\"text\": \"$timer_name\", \"tooltip\": \"$timer_name ($remaining_time/$total_time_formatted)\", \"percentage\": $progress}" + diff --git a/.config/waybar/modules.json b/.config/waybar/modules.json index bc1f195..a51000a 100644 --- a/.config/waybar/modules.json +++ b/.config/waybar/modules.json @@ -1,5 +1,4 @@ { - // Workspaces "hyprland/workspaces": { "on-scroll-up": "hyprctl dispatch workspace r-1", "on-scroll-down": "hyprctl dispatch workspace r+1", @@ -11,7 +10,7 @@ "2": "ο„ ", "1": "", "3": "", - "4": "ο†Ό", + "4": "π„ž", "urgent": "οͺ", "focused": "ο†’", "default": "ο„‘" @@ -20,47 +19,15 @@ "*": 5 } }, - "mpd": { - "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) βΈ¨{songPosition}|{queueLength}βΈ© {volume}% ", - "format-disconnected": "Disconnected ", - "format-stopped": "no music", - "unknown-tag": "N/A", - "interval": 5, - "consume-icons": { - "on": " " - }, - "random-icons": { - "off": " ", - "on": " " - }, - "repeat-icons": { - "on": "ο€ž " - }, - "single-icons": { - "on": "ο€ž1 " - }, - "state-icons": { - "paused": "", - "playing": "" - }, - "tooltip-format": "MPD (connected)", - "tooltip-format-disconnected": "MPD (disconnected)" - }, - "custom/playerctl": { - "interval": 1, - "tooltip": false, - "return-type": "json", - "format": "", - "format-icons": { - "Playing": "|>", - "Paused": "||" - }, - "exec": "~/.config/waybar/custom/playerctl.sh", - "on-click-right": "playerctl next", - "on-click": "playerctl play-pause", - "on-scroll-up": "playerctl position 1+", - "on-scroll-down": "playerctl position 1-", - "signal": 5 + "custom/pomodoro": { + "format-icons": ["πŸ•›", "πŸ•", "πŸ•‘", "πŸ•’", "πŸ•“", "πŸ•”", "πŸ••", "πŸ•–", "πŸ•—", "πŸ•˜", "πŸ•™", "πŸ•š"], + "return-type": "json", + "tooltip": true, + "format": "{icon} {}", + "on-click": "pomodoro", + "on-click-right": "pomodoro -k", + "exec": "~/.config/waybar/custom/pomodoro.sh", + "interval": 1 }, "group/playerctl": { "orientation": "inherit", @@ -71,36 +38,31 @@ "custom/playerctl-next", "custom/playerctl-title" ] - - }, - "custom/playerctl-artist": { - "interval": 1, - "format": "{}", - "return-type": "json", - "exec": "playerctl metadata --format '{\"text\": \"{{markup_escape(artist)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}}'", - "on-click": "playerctl play-pause", }, "custom/playerctl-title": { - "interval": 1, + "interval": 2, "format": "{}", + "hide-empty-text": true, "return-type": "json", "exec": "~/.config/waybar/custom/playerctl.sh", "on-click": "playerctl play-pause", - "on-scroll-up": "playerctl position 1+", - "on-scroll-down": "playerctl position 1-", + "on-scroll-up": "playerctl position 1+", + "on-scroll-down": "playerctl position 1-", }, "custom/playerctl-prev": { "interval": 1, "format": "", + "tooltip-format": "previous track", "return-type": "json", "exec": "playerctl metadata --format '{\"alt\": \"{{status}}\", \"class\": \"{{status}}\"}}'", "on-click": "playerctl previous", - "on-scroll-up": "playerctl position 1+", - "on-scroll-down": "playerctl position 1-", + "on-scroll-up": "playerctl position 1+", + "on-scroll-down": "playerctl position 1-", }, "custom/playerctl-pause-play": { "interval": 1, - "format": "{icon}", + "format": "{icon}", + "tooltip-format": "pause/play", "format-icons": { "Playing": "", "Paused": "" @@ -108,21 +70,19 @@ "return-type": "json", "exec": "playerctl metadata --format '{\"alt\": \"{{status}}\", \"class\": \"{{status}}\"}}'", "on-click": "playerctl play-pause", - "on-scroll-up": "playerctl position 1+", - "on-scroll-down": "playerctl position 1-", + "on-scroll-up": "playerctl position 1+", + "on-scroll-down": "playerctl position 1-", }, "custom/playerctl-next": { "interval": 1, "format": "", + "tooltip-format": "next track", "return-type": "json", "exec": "playerctl metadata --format '{\"alt\": \"{{status}}\", \"class\": \"{{status}}\"}}'", "on-click": "playerctl next", - "on-scroll-up": "playerctl position 1+", - "on-scroll-down": "playerctl position 1-", + "on-scroll-up": "playerctl position 1+", + "on-scroll-down": "playerctl position 1-", }, - - - // Taskbar "wlr/taskbar": { "format": "{icon}", @@ -139,7 +99,6 @@ "Foot Server": "Terminal" } }, - // Hyprland Window "hyprland/window": { "rewrite": { @@ -158,29 +117,7 @@ "interval": 1 }, - // ML4W Welcome App - // Empty - "custom/empty": { - "format": "" - }, - - // Empty - "custom/tools": { - "format": "ο—½", - "tooltip-format": "Tools" - }, - - // Rofi Application Launcher - "custom/appmenu": { - // START APPS LABEL - "format": "", - // END APPS LABEL - "on-click": "sleep 0.2;rofi -show drun -replace", - "on-click-right": "~/dotfiles/hypr/scripts/keybindings.sh", - "tooltip-format": "Left: Open the application launcher\nRight: Show all keybindings" - }, - - // Rofi Application Launcher + // Wofi Application Launcher "custom/appmenuicon": { "format": "οŒƒ", "on-click": "wofi --show drun", @@ -195,17 +132,6 @@ "tooltip-format": "Power Menu" }, - // Keyboard State - "keyboard-state": { - "numlock": true, - "capslock": true, - "format": "{name} {icon}", - "format-icons": { - "locked": "ο€£", - "unlocked": "ο‚œ" - } - }, - // System tray "tray": { "icon-size": 21, @@ -222,12 +148,6 @@ // END CLOCK FORMAT }, - // System - "custom/system": { - "format": "ξ‘³", - "tooltip": false - }, - // CPU "cpu": { "format": "/ C {usage}% ", @@ -248,10 +168,6 @@ "on-click": "~/dotfiles/.settings/systeminfo.sh" }, - "hyprland/language": { - "format": "/ K {short}" - }, - // Group Hardware "group/hardware": { "orientation": "inherit", @@ -279,45 +195,6 @@ ] }, - // Group Links - "group/links": { - "orientation": "horizontal", - "modules": [ - "custom/chatgpt", - "custom/empty" - ] - }, - - // Group Settings - "group/settings": { - "orientation": "inherit", - "drawer": { - "transition-duration": 300, - "children-class": "not-memory", - "transition-left-to-right": true - }, - "modules": [ - "custom/settings", - "custom/waybarthemes", - "custom/wallpaper" - ] - }, - - // Network - "network": { - "format": "{ifname}", - "format-wifi": " {signalStrength}%", - "format-ethernet": " {ifname}", - "format-disconnected": "Disconnected", - "tooltip-format": " {ifname} via {gwaddri}", - "tooltip-format-wifi": " {ifname} @ {essid}\nIP: {ipaddr}\nStrength: {signalStrength}%\nFreq: {frequency}MHz\nUp: {bandwidthUpBits} Down: {bandwidthDownBits}", - "tooltip-format-ethernet": "οž– {ifname}\nIP: {ipaddr}\n up: {bandwidthUpBits} down: {bandwidthDownBits}", - "tooltip-format-disconnected": "Disconnected", - "max-length": 50, - "on-click": "alacritty --class=cursor-float -e nmtui", - "on-click-right": "~/dotfiles/.settings/networkmanager.sh" - }, - // Battery "battery": { "states": { @@ -364,14 +241,6 @@ "on-click": "blueman-manager", "format-no-controller": "" }, - - // Other - "user": { - "format": "{user}", - "interval": 60, - "icon": false - }, - // backlight: "backlight": { "format": "{icon} {percent}%", diff --git a/.config/waybar/style.css b/.config/waybar/style.css index 2513397..51084f2 100644 --- a/.config/waybar/style.css +++ b/.config/waybar/style.css @@ -13,7 +13,7 @@ * ----------------------------------------------------- */ * { - font-family: monospace, "Fira", FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-family: "Fira", FontAwesome, Roboto, Helvetica, Arial, sans-serif; border: none; border-radius: 0px; } @@ -70,6 +70,7 @@ tooltip { opacity: 0.8; padding: 20px; margin: 0px; + font-family: "Fira", FontAwesome, Roboto, Helvetica, Arial, sans-serif; } tooltip label { @@ -440,7 +441,7 @@ window#waybar.empty #window { background-color: rgba(0, 0, 0, .2); margin-top: 2px; margin-right: 20px; - padding: 4px 16px 0px; + padding: 4px 16px 4px; border: 0px; font-family: monospace; font-size: 14px; @@ -470,5 +471,9 @@ window#waybar.empty #window { } #custom-playerctl-title { - margin-left: 20px; + margin-left: 10px; + background: url("file:///home/goodhumored/.config/waybar/custom/cover.jpg?v=1"); + background-size: contain; + background-repeat: no-repeat; + padding-left: 40px; }