diff --git a/config b/config index 189579d..6dd2df6 100644 --- a/config +++ b/config @@ -1,213 +1,169 @@ +// -*- mode: json -*- + { - "layer": "top", - "position": "top", - "spacing": 4, - "margin-top": 3, - "margin-bottom": 3, - "margin-left": 3, - "margin-right": 5, + "layer": "top", + "position": "top", + "margin": 0, + "spacing": 4, - "modules-left": [ - "custom/icon", - "hyprland/workspaces", - "hyprland/window", - "custom/spotify", - ], + "modules-left": ["hyprland/workspaces","hyprland/window"], - "modules-center": [ - "clock" - ], + "modules-center": ["clock","tray"], - "modules-right": [ - "tray", - "backlight", - "cpu", - "pulseaudio", - "network", - "memory", - "battery", - "idle_inhibitor", - "custom/notification", - "custom/power", - ], + "modules-right": ["pulseaudio","battery","network","group/info","group/power"], - "custom/icon": { - "format": "󰣇", - "on-click-right": "rofi -config $HOME/.config/rofi/ssh-config.rasi -show ssh", - "on-click": "pkill rofi || rofi -show drun -modi drun,filebrowser,run,window,ssh", - "on-click-middle": "nwg-look", - "tooltip": false - }, - - "cpu": { - "interval": 10, - "format": " {usage}%", - "max-length": 10, - "tooltip": false, - "on-click-right": "kitty --class floating -e btop" - }, - - "clock": { - "format": "󰥔 {:%H:%M 󰃭 %d/%m} ", - //"format": "{:%a}", - "tooltip-format": "{calendar}", - "calendar": { - "mode" : "month", - "format": { - "months": "{}", - "days": "{}", - "weeks": "W{}", - "weekdays": "{}", - "today": "{}" - } - }, - }, - - "memory": { - "interval": 30, - "format": " {used}GiB", - "format-alt": " {used:0.1f}G", - "on-click-right": "kitty --class floating -e btop", - "max-length": 10 - }, - - "temperature": { - "format": " {temperatureF}°F" - }, - - "hyprland/window": { - "format": " {}", - "on-click-right": "$HOME/.config/hypr/scripts/screenshot_area", - "rewrite": { - "(.*) - NVIM": " NeoVim", - "(.*) — Mozilla Firefox": "󰈹 Firefox", - " ": "󰇄 Desktop", - "(.*) Spotify Free": "󰓇 Spotify", - "(.*) Spotify": "󰓇 Spotify", - " ~": " pika@home", - "(.*) - Obsidian(.*)": "󱓧 Obsidian", - } - }, - - "hyprland/workspaces" : { - "on-click": "activate", - "active-only": false, - "all-outputs": true, - "format": "{icon}", - "format-icons": { - "urgent": "", - "active": "", - "default": "" + "group/power": { + "orientation": "inherit", + "drawer": { + "transition-duration": 500, + "children-class": "not-power", + "transition-left-to-right": false, + }, + "modules": [ + "custom/power", // First element is the "group leader" and won't ever be hidden + "custom/powerm", + "custom/quit", + "custom/lock", + "custom/reboot", + ] + }, + "custom/quit": { + "format": "󰗼", + "tooltip": false, + "on-click": "hyprctl dispatch exit" + }, + "custom/lock": { + "format": "󰍁", + "tooltip": false, + "on-click": "swaylock" + }, + "custom/reboot": { + "format": "󰜉", + "tooltip": false, + "on-click": "reboot" + }, + "custom/powerm": { + "format": "", + "tooltip": false, + "on-click": "shutdown now" + }, + "group/info": { + "orientation": "inherit", + "drawer": { + "children-class": "info", + "parent-class": "p_info", + "transition-left-to-right": false, + }, + "modules": [ + "memory", "disk", "cpu" + ] }, - "persistent-workspaces": { - "*": 4 - } - }, - "backlight": { - "format": "{icon} {percent}%", - "format-icons": ["󰃞", "󰃟", "󰃠"], - "tooltip": false, - }, + "hyprland/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "format": "{name}: {icon} [ {windows} ]", + "format-icons": { + "1": "󰁕", + "2": "󰁕", + "3": "󰁕", + "4": "󰁕", + "urgent": "󰊰", + "active": "󰢚", + "special": "󰮯", + "default": "󰁕" + }, + "window-rewrite-default": "", + "window-rewrite": { + "nvim": " ", + "foot": " ", + "Thorium": "󰊯 ", + "mercury": " ", + "title<.*youtube.*>": " ", + "title<*netflix.*>": "󰝆", + "Invidious": " ", + "class title<.*github.*>": "", // Windows whose class is "firefox" and title contains "github". Note that "class" always comes first. + }, + }, + "hyprland/window": { + "format": " {}", + "rewrite": { + "(.*) — Mozilla Firefox": "🌎 $1", + }, + "separate-outputs": false + }, - "pulseaudio": { - "format": "{icon} {volume}%", - "format-bluetooth": "{icon}  {volume}%", - "format-bluetooth-muted": "󰝟 ", - "format-muted": " 󰝟 ", - "format-icons": { - "headset": "", - "default": ["󰕿", "󰖀", "󰕾"], - }, - "tooltip": false, - "on-click": "pavucontrol", - }, - - "network": { - "interval": 30, - "on-click": "wl-copy $(ip address show up scope global | grep inet | head -n1 | cut -d/ -f 1 | tr -d [:space:] | cut -c5-)", - "on-click-right": "kitty --class floating $HOME/.config/hypr/scripts/wlan.sh", - "format-wifi": "󰤨 {essid}", - "format-ethernet": "󰈀 Wired", - "fomat-disconnected": "󱚵 Disconnected", - "tooltip-format-wifi": "{essid} ({signalStrength}%)", - "tooltip-format-ethernet": "{ifname} ", - "tooltip-format-disconnected": "Disconnected", - }, - "battery": { - "states": { - "warning": 45, - "critical": 20 - }, - "format": "{icon} {capacity}%", - "format-icons": ["󰂎", "󰁻", "󰁽", "󰁿", "󰂁", "󰁹"], - "max-length": 25, - "tooltip": false, - "on-click-right": "kitty --class floating $HOME/.config/hypr/scripts/wlan.sh", - }, - - - "tray": { - "icon-size": 18, - "spacing": 10, - }, - - "idle_inhibitor": { - "format": "{icon}", - "format-icons": { - "activated": "󰈈 ", - "deactivated": "󰈉 " - }, - }, - - "custom/separator-space": { - "format": " ", - "tooltip": false, - }, - - "custom/separator-gap": { - "format": " ", - "tooltip": false, - }, - - "custom/separator-arrow": { - "format": "  ", - "tooltip": false, - }, - - "custom/power": { - "format": "󰐥", - "on-click": "wlogout", - "tooltip": false, - }, - "custom/notification": { - "tooltip": false, - "format": "{icon}", - "format-icons": { - "notification": "󱅫 ", - "none": "󰂚 ", - "dnd-notification": "󰵙 ", - "dnd-none": "󰂛 ", - "inhibited-notification": "󱅫 ", - "inhibited-none": "󰂚 ", - "dnd-inhibited-notification": "󰵙 ", - "dnd-inhibited-none": "󰂛​ " - }, - "return-type": "json", - "exec-if": "which swaync-client", - "exec": "swaync-client -swb", - "on-click": "swaync-client -t -sw", - "on-click-right": "swaync-client -d -sw", - "escape": true - }, - - "custom/updates": { - "format": " {}", - "tooltip-format": "{}", - "escape": true, - "return-type": "json", - "restart-interval": 60, - "tooltip": false - }, + "clock": { + "format": "{:%H:%M}", + "tooltip": false + }, + "network": { + "interval": 30, + "on-click": "wl-copy $(ip address show up scope global | grep inet | head -n1 | cut -d/ -f 1 | tr -d [:space:] | cut -c5-)", + "on-click-right": "kitty --class floating $HOME/.config/hypr/scripts/wlan.sh", + "format-wifi": "󰤨 {essid}", + "format-ethernet": "󰈀 Wired", + "fomat-disconnected": "󰤯 Disconnected", + "tooltip-format-wifi": "{essid} ({signalStrength}%)", + "tooltip-format-ethernet": "{ifname} ", + "tooltip-format-disconnected": "Disconnected", + }, + "pulseaudio": { + "format": "{icon} {volume}%", + "format-bluetooth": "{icon} {volume}%", + "format-muted": " ", + "format-icons": { + "headphones": " ", + "default": [ + " ", + " " + ] + }, + "scroll-step": 5, + "on-click": "pamixer -t", + "on-click-right": "pavucontrol" + }, + "memory": { + "interval": 8, + "format": "{icon} {avail}GiB", + "format-icons": "󰝪 ", + "on-click": { + "format": "{icon} {avail}GiB/{total}GiB" + }, + }, + "cpu": { + "interval": 2, + "format": "{icon} {load}%", + "format-icons": " " + }, + "battery": { + "states": { + "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{icon} {capacity}%", + "format-icons": [ + "", + "", + "", + "", + "" + ] + }, + "disk": { + "interval": 32, + "format": "Disk {percentage_used:2}%", + "path": "/" + }, + "tray": { + "icon-size": 20, + "spacing": 10 + }, + "custom/power": { + "format": "⏼", + "on-click": "wlogout" + }, + "css-name": "style.css" } diff --git a/config.save b/config.save deleted file mode 100644 index 0c31c56..0000000 --- a/config.save +++ /dev/null @@ -1,152 +0,0 @@ -{ - "layer": "top", - "position": "top", - "spacing": 4, - "margin-top": 5, - "margin-bottom": 0, - "margin-left": 5, - "margin-right": 5, - - "modules-left": [ - "custom/icon", - "custom/separator-gap", - "cpu", - "memory", - "temperature", - "custom/separator-arrow", - "hyprland/window", - ], - - "modules-center": [ - "hyprland/workspaces", - ], - - "modules-right": [ - "backlight", - "pulseaudio", - "network", - "battery", - "tray", - "custom/separator-dot", - "clock", - "custom/power", - ], - - "custom/icon": { - "format": "󰣇" - }, - - "cpu": { - "interval": 10, - "format": " {usage}%", - "max-length": 10, - "tooltip": false - }, - - "memory": { - "interval": 30, - "format": " {used}GiB", - "format-alt": " {used:0.1f}G", - "max-length": 10 - }, - - "temperature": { - "format": " {temperatureF}°F" - }, - - "hyprland/window": { - "format": " {}", - "rewrite": { - "(.*) - NVIM": " NeoVim", - "(.*) — Mozilla Firefox": "󰈹 Mozilla Firefox", - } - }, - - "hyprland/workspaces": { - "all-outputs": true, - "format": "{icon}", - "format-icons": { - "1": "", - "2": "", - "3": "", - "urgent": "", - "active": "", - "default": "" - } - }, - - "backlight": { - "format": "{icon} {percent}", - "format-icons": ["󰃟", "󰃠"], - "tooltip": false, - }, - - "pulseaudio": { - "format": "{icon} {volume}", - "format-bluetooth": "{icon}  {volume}%", - "format-bluetooth-muted": "󰝟 ", - "format-muted": " 󰝟 ", - "format-icons": { - "headph": "", - "default": ["󰝟 ", ""], - }, - "tooltip": false, - "on-click": "pavucontrol", - }, - - "network": { - "interval": 30, - "format-wifi": "󰖩 {essid}", - "format-ethernet": "󰈀 Wired", - "fomat-disconnected": "󱚵 Disconnected", - "tooltip-format-wifi": "{essid} ({signalStrength}%)", - "tooltip-format-ethernet": "{ifname} ", - "tooltip-format-disconnected": "Disconnected", - }, - - "battery": { - "states": { - "warning": 30, - "critical": 15 - }, - "format": "{icon} {capacity}%", - "format-icons": [" ", " ", " ", " ", " "], - "max-length": 25, - "tooltip": false, - }, - - "tray": { - "icon-size": 20, - "spacing": 10, - }, - - "custom/separator-dot": { - "format": "  ", - "tooltip": false, - "on-click": "$HOME/.config/hypr/scripts/random-wallpaper" - }, - - "custom/separator-gap": { - "format": " ", - "tooltip": false, - }, - - "custom/separator-arrow": { - "format": "  ", - "tooltip": false, - }, - - "custom/spotify": { - "exec": "/usr/bin/python3 $HOME/.config/waybar/custom-scripts/mediaplayer.py --player spotify --verbose", - "format": "{} ", - "return-type": "json", - "on-click": "playerctl play-pause", - "on-scroll-up": "playerctl next", - "on-scroll-down": "playerctl previous" - }, - "custom/power": { - "format": "", - "on-click": "~/.config/rofi/bin/powermenu", - "tooltip": false, - }, -} diff --git a/config.save.1 b/config.save.1 deleted file mode 100644 index 6d31d6e..0000000 --- a/config.save.1 +++ /dev/null @@ -1,170 +0,0 @@ -{ - "layer": "top", - "position": "top", - "spacing": 4, - "margin-top": 5, - "margin-bottom": 0, - "margin-left": 5, - "margin-right": 5, - - "modules-left": [ - "custom/icon", - "clock", - "custom/spotify", - ], - - "modules-center": [ - "hyprland/window", - "custom/separator-arrow", - "hyprland/workspaces", - ], - - "modules-right": [ - "backlight", - "pulseaudio", - "network", - "battery", - "tray", - "custom/power", - ], - - "custom/icon": { - "format": "󰣇", - "on-click": "~/.config/rofi/bin/launcher", - "tooltip": false - }, - - "cpu": { - "interval": 10, - "format": " {usage}%", - "max-length": 10, - "tooltip": false - }, - - clock": { - "format": "{: %d-%m-24  %H:%M}", - //"format": "{:%a}", - "tooltip-format": "{calendar}", - "calendar": { - "mode" : "month", - "format": { - "months": "{}", - "days": "{}", - "weeks": "W{}", - "weekdays": "{}", - "today": "{}" - } - }, - }, - - "memory": { - "interval": 30, - "format": " {used}GiB", - "format-alt": " {used:0.1f}G", - "max-length": 10 - }, - - "temperature": { - "format": " {temperatureF}°F" - }, - - "hyprland/window": { - "format": " {}", - "rewrite": { - "(.*) - NVIM": " NeoVim", - "(.*) — Mozilla Firefox": "󰈹 Mozilla Firefox", - " ": "󰇄 Desktop", - "(.*) Spotify Free": "󰓇 Spotify", - "(.*) Spotify": "󰓇 Spotify", - " ~": " l6174@Radon", - "(.*) - Obsidian(.*)": "󱓧 Obsidian", - } - }, - - "hyprland/workspaces": { - "all-outputs": true, - "format": "{icon}", - "format-icons": { - "1": "", - "2": "", - "3": "", - "urgent": "", - "active": "", - "default": "" - } - }, - - "backlight": { - "format": "{icon} {percent}", - "format-icons": ["󰃟", "󰃠"], - "tooltip": false, - }, - - "pulseaudio": { - "format": "{icon} {volume}", - "format-bluetooth": "{icon}  {volume}%", - "format-bluetooth-muted": "󰝟 ", - "format-muted": " 󰝟 ", - "format-icons": { - "headset": "", - "default": ["", ""], - }, - "tooltip": false, - "on-click": "pavucontrol", - }, - - "network": { - "interval": 30, - "format-wifi": "󰖩 {essid}", - "format-ethernet": "󰈀 Wired", - "fomat-disconnected": "󱚵 Disconnected", - "tooltip-format-wifi": "{essid} ({signalStrength}%)", - "tooltip-format-ethernet": "{ifname} ", - "tooltip-format-disconnected": "Disconnected", - }, - "battery": { - "states": { - "warning": 30, - "critical": 15 - }, - "format": "{icon} {capacity}%", - "format-icons": [" ", " ", " ", " ", " "], - "max-length": 25, - "tooltip": false, - }, - - "tray": { - "icon-size": 20, - "spacing": 10, - }, - - "custom/separator-dot": { - "format": "  ", - "tooltip": false, - "on-click": "$HOME/.config/hypr/scripts/random-wallpaper" - }, - - "custom/separator-gap": { - "format": " ", - "tooltip": false, - }, - - "custom/separator-arrow": { - "format": "  ", - "tooltip": false, - }, - - "custom/spotify": { - "exec": "/usr/bin/python3 $HOME/.config/waybar/custom-scripts/mediaplayer.py --player spotify --verbose", - "format": " {}  ", - "return-type": "json", - "on-click": "playerctl play-pause", - "on-scroll-up": "playerctl next", - "on-scroll-down": "playerctl previous" - }, - "custom/power": { - "format": "󰐥", - "on-click": "~/.config/rofi/bin/powermenu", - "tooltip": false, - }, -} diff --git a/config.save.2 b/config.save.2 deleted file mode 100644 index effd104..0000000 --- a/config.save.2 +++ /dev/null @@ -1,207 +0,0 @@ -{ - "layer": "top", - "position": "top", - "spacing": 4, - "margin-top": 5, - "margin-bottom": 0, - "margin-left": 5, - "margin-right": 5, - - "modules-left": [ - "custom/icon", - "custom/separator-space", - "hyprland/workspaces", - "custom/spotify",2 - "custom/separator-arrow", - "hyprland/window", - ], - - "modules-center": [ - "clock" - ], - - "modules-right": [ - "backlight", - "pulseaudio", - "network", - "battery", - "tray", - "custom/inhibitor", - "custom/notification", - "custom/power", - ], - - "custom/icon": { - "format": "󰣇", - "on-click": "~/.config/rofi/bin/launcher", - "tooltip": false - }, - - "cpu": { - "interval": 10, - "format": " {usage}%", - "max-length": 10, - "tooltip": false - }, - - "clock": { - "format": "󰥔 {:%H:%M 󰃭 %d/%m} ", - //"format": "{:%a}", - "tooltip-format": "{calendar}", - "calendar": { - "mode" : "month", - "format": { - "months": "{}", - "days": "{}", - "weeks": "W{}", - "weekdays": "{}", - "today": "{}" - } - }, - }, - - "memory": { - "interval": 30, - "format": " {used}GiB", - "format-alt": " {used:0.1f}G", - "max-length": 10 - }, - - "temperature": { - "format": " {temperatureF}°F" - }, - - "hyprland/window": { - "format": " {}", - "rewrite": { - "(.*) - NVIM": " NeoVim", - "(.*) — Mozilla Firefox": "󰈹 Firefox", - " ": "󰇄 Desktop", - "(.*) Spotify Free": "󰓇 Spotify", - "(.*) Spotify": "󰓇 Spotify", - " ~": " l6174@Radon", - "(.*) - Obsidian(.*)": "󱓧 Obsidian", - } - }, - - "hyprland/workspaces": { - "all-outputs": false, - "format": "{icon}", - "format-icons": { - "urgent": " ", - "persistent": " ", - "active": " ", - "empty": " " - }, - "persistent-workspaces": { - "1": [], - "2": [], - "3": [], - "4": [] - } - }, - - "backlight": { - "format": "{icon} {percent}", - "format-icons": ["󰃞", "󰃟", "󰃠"], - "tooltip": false, - }, - - "pulseaudio": { - "format": "{icon} {volume}", - "format-bluetooth": "{icon}  {volume}%", - "format-bluetooth-muted": "󰝟 ", - "format-muted": " 󰝟 ", - "format-icons": { - "headset": "", - "default": ["󰕿", "󰖀", "󰕾"], - }, - "tooltip": false, - "on-click": "pavucontrol", - }, - - "network": { - "interval": 30, - "format-wifi": "󰤨 {essid}", - "format-ethernet": "󰈀 Wired", - "fomat-disconnected": "󱚵 Disconnected", - "tooltip-format-wifi": "{essid} ({signalStrength}%)", - "tooltip-format-ethernet": "{ifname} ", - "tooltip-format-disconnected": "Disconnected", - }, - "battery": { - "states": { - "warning": 30, - "critical": 15 - }, - "format": "{icon} {capacity}%", - "format-icons": ["󰂎", "󰁻", "󰁽", "󰁿", "󰂁", "󰁹"], - "max-length": 25, - "tooltip": false, - }, - - "tray": { - "icon-size": 20, - "spacing": 10, - }, - - "custom/inhibitor": { - "exec": "~/.local/bin/waybar-inhibitor", - "interval": 5, - "return-type": "json", - "tooltip": true, - "on-click": "~/.local/bin/inhibitor", - "signal": 10 - }, - - - "custom/separator-dot": { - "format": "  ", - "tooltip": false, - "on-click": "$HOME/.config/hypr/scripts/random-wallpaper" - }, - - "custom/separator-gap": { - "format": " ", - "tooltip": false, - }, - - "custom/separator-arrow": { - "format": "  ", - "tooltip": false, - }, - - "custom/spotify": { - "exec": "/usr/bin/python3 $HOME/.config/waybar/custom-scripts/mediaplayer.py --player spotify --verbose", - "format": " {}  ", - "return-type": "json", - "on-click": "playerctl play-pause", - "on-scroll-up": "playerctl next", - "on-scroll-down": "playerctl previous" - }, - "custom/power": { - "format": "󰐥", - "on-click": "~/.config/rofi/bin/powermenu", - "tooltip": false, - }, - "custom/notification": { - "tooltip": false, - "format": "{icon}", - "format-icons": { - "notification": "󱅫 ", - "none": "󰂚 ", - "dnd-notification": "󰵙 ", - "dnd-none": "󰂛 ", - "inhibited-notification": "󱅫 ", - "inhibited-none": "󰂚 ", - "dnd-inhibited-notification": "󰵙 ", - "dnd-inhibited-none": "󰂛​ " - }, - "return-type": "json", - "exec-if": "which swaync-client", - "exec": "swaync-client -swb", - "on-click": "swaync-client -t -sw", - "on-click-right": "swaync-client -d -sw", - "escape": true - }, -} diff --git a/custom-scripts/mediaplayer.py b/custom-scripts/mediaplayer.py deleted file mode 100644 index 3da53e9..0000000 --- a/custom-scripts/mediaplayer.py +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env python3 -import gi -gi.require_version("Playerctl", "2.0") -from gi.repository import Playerctl, GLib -from gi.repository.Playerctl import Player -import argparse -import logging -import sys -import signal -import gi -import json -import os -from typing import List - -logger = logging.getLogger(__name__) - -def signal_handler(sig, frame): - logger.info("Received signal to stop, exiting") - sys.stdout.write("\n") - sys.stdout.flush() - # loop.quit() - sys.exit(0) - - -class PlayerManager: - def __init__(self, selected_player=None): - self.manager = Playerctl.PlayerManager() - self.loop = GLib.MainLoop() - self.manager.connect( - "name-appeared", lambda *args: self.on_player_appeared(*args)) - self.manager.connect( - "player-vanished", lambda *args: self.on_player_vanished(*args)) - - signal.signal(signal.SIGINT, signal_handler) - signal.signal(signal.SIGTERM, signal_handler) - signal.signal(signal.SIGPIPE, signal.SIG_DFL) - self.selected_player = selected_player - - self.init_players() - - def init_players(self): - for player in self.manager.props.player_names: - if self.selected_player is not None and self.selected_player != player.name: - logger.debug(f"{player.name} is not the filtered player, skipping it") - continue - self.init_player(player) - - def run(self): - logger.info("Starting main loop") - self.loop.run() - - def init_player(self, player): - logger.info(f"Initialize new player: {player.name}") - player = Playerctl.Player.new_from_name(player) - player.connect("playback-status", - self.on_playback_status_changed, None) - player.connect("metadata", self.on_metadata_changed, None) - self.manager.manage_player(player) - self.on_metadata_changed(player, player.props.metadata) - - def get_players(self) -> List[Player]: - return self.manager.props.players - - def write_output(self, text, player): - logger.debug(f"Writing output: {text}") - - output = {"text": text, - "class": "custom-" + player.props.player_name, - "alt": player.props.player_name} - - sys.stdout.write(json.dumps(output) + "\n") - sys.stdout.flush() - - def clear_output(self): - sys.stdout.write("\n") - sys.stdout.flush() - - def on_playback_status_changed(self, player, status, _=None): - logger.debug(f"Playback status changed for player {player.props.player_name}: {status}") - self.on_metadata_changed(player, player.props.metadata) - - def get_first_playing_player(self): - players = self.get_players() - logger.debug(f"Getting first playing player from {len(players)} players") - if len(players) > 0: - # if any are playing, show the first one that is playing - # reverse order, so that the most recently added ones are preferred - for player in players[::-1]: - if player.props.status == "Playing": - return player - # if none are playing, show the first one - return players[0] - else: - logger.debug("No players found") - return None - - def show_most_important_player(self): - logger.debug("Showing most important player") - # show the currently playing player - # or else show the first paused player - # or else show nothing - current_player = self.get_first_playing_player() - if current_player is not None: - self.on_metadata_changed(current_player, current_player.props.metadata) - else: - self.clear_output() - - def on_metadata_changed(self, player, metadata, _=None): - logger.debug(f"Metadata changed for player {player.props.player_name}") - player_name = player.props.player_name - title = player.get_title() - - track_info = "" - if player_name == "spotify" and "mpris:trackid" in metadata.keys() and ":ad:" in player.props.metadata["mpris:trackid"]: - track_info = "Advertisement" - else: - track_info = title - - if track_info: - if player.props.status == "Playing": - track_info = " " + track_info - else: - track_info = " " + track_info - # only print output if no other player is playing - current_playing = self.get_first_playing_player() - if current_playing is None or current_playing.props.player_name == player.props.player_name: - self.write_output(track_info, player) - else: - logger.debug(f"Other player {current_playing.props.player_name} is playing, skipping") - - def on_player_appeared(self, _, player): - logger.info(f"Player has appeared: {player.name}") - if player is not None and (self.selected_player is None or player.name == self.selected_player): - self.init_player(player) - else: - logger.debug( - "New player appeared, but it's not the selected player, skipping") - - def on_player_vanished(self, _, player): - logger.info(f"Player {player.props.player_name} has vanished") - self.show_most_important_player() - -def parse_arguments(): - parser = argparse.ArgumentParser() - - # Increase verbosity with every occurrence of -v - parser.add_argument("-v", "--verbose", action="count", default=0) - - # Define for which player we"re listening - parser.add_argument("--player") - - parser.add_argument("--enable-logging", action="store_true") - - return parser.parse_args() - - -def main(): - arguments = parse_arguments() - - # Initialize logging - if arguments.enable_logging: - logfile = os.path.join(os.path.dirname( - os.path.realpath(__file__)), "media-player.log") - logging.basicConfig(filename=logfile, level=logging.DEBUG, - format="%(asctime)s %(name)s %(levelname)s:%(lineno)d %(message)s") - - # Logging is set by default to WARN and higher. - # With every occurrence of -v it's lowered by one - logger.setLevel(max((3 - arguments.verbose) * 10, 0)) - - logger.info("Creating player manager") - if arguments.player: - logger.info(f"Filtering for player: {arguments.player}") - player = PlayerManager(arguments.player) - player.run() - - -if __name__ == "__main__": - main() diff --git a/custom-scripts/update b/custom-scripts/update deleted file mode 100755 index 61a35dc..0000000 --- a/custom-scripts/update +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -sleep 1 -figlet "Update" -sleep 0.5 -echo "." -sleep 0.5 -echo "." -sleep 0.5 -echo "." -sleep 0.5 -arch-update diff --git a/custom-scripts/updates b/custom-scripts/updates deleted file mode 100755 index b6b0be5..0000000 --- a/custom-scripts/updates +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash -# _ _ _ _ -# | | | |_ __ __| | __ _| |_ ___ ___ -# | | | | '_ \ / _` |/ _` | __/ _ \/ __| -# | |_| | |_) | (_| | (_| | || __/\__ \ -# \___/| .__/ \__,_|\__,_|\__\___||___/ -# |_| -# -# by Stephan Raabe (2023) -# ----------------------------------------------------- - -# ----------------------------------------------------- -# Define threshholds for color indicators -# ----------------------------------------------------- - -threshhold_green=0 -threshhold_yellow=25 -threshhold_red=100 - -# ----------------------------------------------------- -# Calculate available updates pacman and aur (with aur) -# ----------------------------------------------------- - -if ! updates_arch=$(checkupdates 2> /dev/null | wc -l ); then - updates_arch=0 -fi - -if ! updates_aur=$(paru -Qua | wc -l); then - updates_aur=0 -fi - -updates=$(("$updates_arch" + "$updates_aur")) - -# ----------------------------------------------------- -# Testing -# ----------------------------------------------------- - -# Overwrite updates with numbers for testing -# updates=50 - -# test JSON output -# printf '{"text": "0", "alt": "0", "tooltip": "0 Updates", "class": "red"}' -# exit - -# ----------------------------------------------------- -# Output in JSON format for Waybar Module custom-updates -# ----------------------------------------------------- - -css_class="green" - -if [ "$updates" -gt $threshhold_yellow ]; then - css_class="yellow" -fi - -if [ "$updates" -gt $threshhold_red ]; then - css_class="red" -fi - -if [ "$updates" -gt $threshhold_green ]; then - printf '{"text": "%s", "alt": "%s", "tooltip": "%s Updates", "class": "%s"}' "$updates" "$updates" "$updates" "$css_class" -else - printf '{"text": "0", "alt": "0", "tooltip": "0 Updates", "class": "green"}' -fi diff --git a/mocha.css b/mocha.css deleted file mode 100644 index 98e218a..0000000 --- a/mocha.css +++ /dev/null @@ -1,37 +0,0 @@ -/* -* -* Catppuccin Mocha palette -* Maintainer: rubyowo -* -*/ - -@define-color base #1e1e2e; -@define-color mantle #181825; -@define-color crust #11111b; - -@define-color text #cdd6f4; -@define-color subtext0 #a6adc8; -@define-color subtext1 #bac2de; - -@define-color surface0 #313244; -@define-color surface1 #45475a; -@define-color surface2 #585b70; - -@define-color overlay0 #6c7086; -@define-color overlay1 #7f849c; -@define-color overlay2 #9399b2; - -@define-color blue #89b4fa; -@define-color lavender #b4befe; -@define-color sapphire #74c7ec; -@define-color sky #89dceb; -@define-color teal #94e2d5; -@define-color green #a6e3a1; -@define-color yellow #f9e2af; -@define-color peach #fab387; -@define-color maroon #eba0ac; -@define-color red #f38ba8; -@define-color mauve #cba6f7; -@define-color pink #f5c2e7; -@define-color flamingo #f2cdcd; -@define-color rosewater #f5e0dc; diff --git a/pywal_style.css b/pywal_style.css deleted file mode 100644 index 8d08a59..0000000 --- a/pywal_style.css +++ /dev/null @@ -1,204 +0,0 @@ -@import "pywal.css"; -@import "mocha.css"; - -* { - padding: 0px; - margin: 0px; - font-family: "Rubik", "JetBrains Mono Nerd Font"; - font-size: 12px; - font-weight: bold; -} - -/* ------ Set a Uniform Border Radius ------ */ -.modules-left, .modules-center, .modules-right, #cpu, #memory, #temperature, #pulseaudio, #backlight, #custom-spotify, #custom-icon, #custom-updates, #network, #battery, #tray, #idle_inhibitor, #custom-power, #custom-notification { - border-radius: 6px; -} - -/* ------ Modules Left ------ */ -.modules-left { - background-color: @base; - padding-right: 5px; - padding-left: 5px; -} - -/* ------ Modules Center ------ */ -.modules-center { - background-color: @base; - padding-right: 5px; - padding-left: 5px; -} - -/* ------ Modules Right ------ */ -.modules-right { - background-color: @base; - padding-right: 5px; - padding-left: 5px; -} - -/* ------ Cpu Usage, Temperature, and Memory ------ */ -#cpu, #temperature, #memory { - background-color: @surface0; - padding: 4px 4px; - margin: 4px 4px; - font-size: 12px; -} - -#cpu { color: @peach; } -#memory { color: @mauve; } -#temperature { color: @maroon; } - -/* ------ Window Title ------ */ -#window { - color: @color7; - padding-right: 4px; -} - -window#waybar { - background-color: rgba(0, 0, 0, 0); - /* border-bottom: 0px solid #ffffff; */ - /* color: #FFFFFF; */ - background: transparent; - transition-property: background-color; - transition-duration: .5s; -} - -/* ----------------------------------------------------- -* Workspaces -* ----------------------------------------------------- */ - -#workspaces button.empty { - color: @color2; - font-family: JetBrainsMono Nerd Font; -} - -#workspaces { - margin: 0px 1px 0px 1px; - padding: 0px 1px; - font-family: JetBrainsMono Nerd Font; -} - -#workspaces button { - padding: 0px 2px; - margin: 4px 2px; - color: @color7; - font-family: JetBrainsMono Nerd Font; -} - -#workspaces button:hover { - opacity:0.5; - color: @color3; -} - -/* ------ Pulseaudio ------ */ -#pulseaudio { - color: @peach; - background-color: @surface0; - padding: 2px 5px; - margin: 4px 2px; -} - -/* ------ Backlight ------ */ -#backlight { - color: @surface1; - background-color: @surface0; - padding: 2px 5px; - margin: 4px 2px; -} - -/* ------ Network ------ */ -#network { - color: @mauve; - background-color: @surface0; - padding: 2px 5px; - margin: 4px 2px; -} - -/* ------ Battery ------ */ -#battery { - color: @maroon; - background-color: @surface0; - padding: 2px 5px; - margin: 4px 2px; -} - -/* ------ Clock ------ */ -#clock { - padding-left: 10px; - color: @color7; - font-weight: bold; - font-size: 13px; -} - -/* ------ System Tray ------ */ -#tray { - background-color: @surface0; - padding: 2px 5px; - margin: 4px 2px; -} - -/* ------ Custom Modules ------ */ -#custom-icon { - font-size: 18px; - color: @color2; - padding-right: 5px; -} - -#custom-separator-arrow { - font-size: 14px; - color: @text; -} - -#custom-separator-dot { - font-size: 15px; - color: @text; -} - -#custom-spotify { - color: @mauve; - background-color: @surface0; - padding: 2px 9px; - margin: 4px 2px; -} -#custom-power { - color: @red; - background-color: @surface0; - padding: 2px 9px; - margin: 4px 2px; - font-size: 15px; -} - -#idle_inhibitor { - color: @green; - background-color: @surface0; - padding: 2px 9px; - margin: 4px 2px; - font-size: 15px; -} - -#custom-updates { - padding: 2px 8px; - margin: 4px 4px; - background-color: @surface0; -} -#custom-updates.green { - color: @text; -} -#custom-updates.yellow { - color: @peach; -} -#custom-updates.red { - color: @red; -} - -#custom-notification { - color: @teal; - background-color: @surface0; - padding: 2px 9px; - margin: 4px 2px; - font-size: 15px; -} - -tooltip { - background: @base; - border: 1px solid @blue; -} diff --git a/style.css b/style.css index 72df28e..0b3d70a 100644 --- a/style.css +++ b/style.css @@ -1,203 +1,171 @@ -@import "mocha.css"; - * { - padding: 0px; - margin: 0px; - font-family: "Rubik", "JetBrains Mono Nerd Font"; - font-size: 12px; - font-weight: bold; + font-size: 1rem; + font-family: Rubik, iMWritingMono Nerd Font; } - -/* ------ Set a Uniform Border Radius ------ */ -.modules-left, .modules-center, .modules-right, #cpu, #memory, #temperature, #pulseaudio, #backlight, #custom-spotify, #custom-icon, #custom-updates, #network, #battery, #tray, #idle_inhibitor, #custom-power, #custom-notification { - border-radius: 6px; +@keyframes urgent-workspace { +from { + color: yellow; } - -/* ------ Modules Left ------ */ -.modules-left { - background-color: @base; - padding-right: 5px; - padding-left: 5px; +to { + color: red; } - -/* ------ Modules Center ------ */ -.modules-center { - background-color: @base; - padding-right: 5px; - padding-left: 5px; } - -/* ------ Modules Right ------ */ -.modules-right { - background-color: @base; - padding-right: 5px; - padding-left: 5px; +@keyframes border-expand { +0% { + border-top: none; + border-left: none; + border-right: none; + border-bottom: solid 2px currentcolor; + border-radius: 100px; } - -/* ------ Cpu Usage, Temperature, and Memory ------ */ -#cpu, #temperature, #memory { - background-color: @surface0; - padding: 4px 4px; - margin: 4px 4px; - font-size: 12px; +33% { + border-top: none; + border-left: solid 2px currentcolor; + border-right: solid 2px currentcolor; + border-bottom: solid 2px currentcolor; + border-radius: 66px; } - -#cpu { color: @peach; } -#memory { color: @mauve; } -#temperature { color: @maroon; } - -/* ------ Window Title ------ */ -#window { - color: @color7; - padding-right: 4px; +66% { + border-top: solid 2px currentcolor; + border-left: solid 2px currentcolor; + border-right: solid 2px currentcolor; + border-bottom: none; + border-radius: 33px; +} +to { + border-top: solid 2px currentcolor; + border-radius: 0; + /* border-radius: 0rem 0rem 1rem 1rem; */ +} +} +tooltip { + border: solid 2px currentcolor; + background: black; + color: white; +} +#p_info, +#info { + border-top: solid 1px #9649cd; + color: #9649cd; + transition: 650ms; +} +#p_info, +#info:hover { + border-bottom: solid 2px #9649cd; + border-top: none; + transition: 150ms; } window#waybar { - background-color: rgba(0, 0, 0, 0); - /* border-bottom: 0px solid #ffffff; */ - /* color: #FFFFFF; */ - background: transparent; - transition-property: background-color; - transition-duration: .5s; + border-top: solid 1px transparent; + background: transparent; + opacity: 0.7; + /* background: rgba(153, 153, 153, 0.3); */ + color: white; } - -/* ----------------------------------------------------- -* Workspaces -* ----------------------------------------------------- */ - -#workspaces button.empty { - color: @lavender; - font-family: JetBrainsMono Nerd Font; +window#waybar.empty { + opacity: 1.125; } - -#workspaces { - margin: 0px 1px 0px 1px; - padding: 0px 1px; - font-family: JetBrainsMono Nerd Font; +window#waybar.fullscreen { + border: solid 2px #d70947; + opacity: 1.0; +} +#window { + padding: 2px; + margin: 4px 4px 0; + color: #fdf6e3; + font-weight: 600; + border-top: solid 1px transparent; + transition: 2s; } #workspaces button { - padding: 0px 2px; - margin: 4px 2px; - color: @mauve; - font-family: JetBrainsMono Nerd Font; + border-top: solid 2px currentcolor; + border-right: solid 2px currentcolor; + margin-top: 4px; + padding: 0; + transition: 200ms; + /* transition: transform 0.4s; */ + border-radius: 0; +} +#workspaces button.empty { + opacity: 0.4; +} +#workspaces button.active { + color: #e44cdf; + padding: 0 10px; + margin-top: 0; + border-right: solid 2px currentcolor; + /* transition: translateY(0.75rem) 400ms; */ +} +#workspaces button.urgent { + color: red; + animation: urgent-workspace ease-out 2s infinite; } -#workspaces button:hover { - opacity:0.5; - color: @blue; -} - -/* ------ Pulseaudio ------ */ #pulseaudio { - color: @peach; - background-color: @surface0; - padding: 2px 5px; - margin: 4px 2px; + color: #cbb643; } - -/* ------ Backlight ------ */ -#backlight { - color: @sky; - background-color: @surface0; - padding: 2px 5px; - margin: 4px 2px; +/* #memory { */ +/* color: #740cbe; */ +/* } */ +#cpu { + color: #a70a3c; } - -/* ------ Network ------ */ -#network { - color: @mauve; - background-color: @surface0; - padding: 2px 5px; - margin: 4px 2px; -} - -/* ------ Battery ------ */ #battery { - color: @maroon; - background-color: @surface0; - padding: 2px 5px; - margin: 4px 2px; + color: #859900; } - -/* ------ Clock ------ */ -#clock { - padding-left: 10px; - color: @red; - font-weight: bold; - font-size: 13px; +#network { + color: #1E90FF; } - -/* ------ System Tray ------ */ -#tray { - background-color: @surface0; - padding: 2px 5px; - margin: 4px 2px; -} - -/* ------ Custom Modules ------ */ -#custom-icon { - font-size: 18px; - color: @teal; - padding-right: 5px; -} - -#custom-separator-arrow { - font-size: 14px; - color: @text; -} - -#custom-separator-dot { - font-size: 15px; - color: @text; -} - -#custom-spotify { - color: @mauve; - background-color: @surface0; - padding: 2px 9px; - margin: 4px 2px; +#disk { + color: #b58900; } +#custom-reboot, +#custom-quit, +#custom-lock, +#custom-powerm, #custom-power { - color: @red; - background-color: @surface0; - padding: 2px 9px; - margin: 4px 2px; - font-size: 15px; + padding: 0.2rem 1rem; + font-weight: 600; + border-top: solid 1px currentcolor; + transition: 350ms; +} +#custom-reboot:hover, +#custom-quit:hover, +#custom-powerm:hover, +#custom-lock:hover, +#custom-power:hover { + border-top: solid 2px red; + transition: 250ms; + /* border-radius: 2rem; */ + font-size: 1.5rem; } -#idle_inhibitor { - color: @green; - background-color: @surface0; - padding: 2px 9px; - margin: 4px 2px; - font-size: 15px; +#pulseaudio, +#memory, +#cpu, +#battery, +#disk, +#clock, +#network, +#not-power, +#tray { + padding: 6px; + margin: 0px 4px 0; + font-weight: 600; + border-top: solid 2px transparent; + transition: 550ms; } -#custom-updates { - padding: 2px 8px; - margin: 4px 4px; - background-color: @surface0; -} -#custom-updates.green { - color: @text; -} -#custom-updates.yellow { - color: @peach; -} -#custom-updates.red { - color: @red; +#pulseaudio:hover, +#memory:hover, +#cpu:hover, +#battery:hover, +#network:hover, +#disk:hover, +#clock:hover { + border-top: solid 2px currentcolor; + transition: 250ms; } -#custom-notification { - color: @teal; - background-color: @surface0; - padding: 2px 9px; - margin: 4px 2px; - font-size: 15px; -} - -tooltip { - background: @base; - border: 1px solid @blue; -}