summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--waybar/colors.css1
-rw-r--r--waybar/config.jsonc263
-rwxr-xr-xwaybar/niri-workspacesbin0 -> 700680 bytes
-rwxr-xr-xwaybar/scripts/mediaplayer.py143
-rwxr-xr-xwaybar/scripts/uptime.sh6
-rw-r--r--waybar/style.css123
-rw-r--r--waybar/themes/blacklotus.css8
-rw-r--r--waybar/themes/catppuccin-mocha.css12
-rw-r--r--waybar/themes/dracula.css8
-rw-r--r--waybar/themes/gruvbox-dark.css12
-rw-r--r--waybar/themes/kanagawa.css7
-rw-r--r--waybar/themes/rose-pine.css13
-rw-r--r--waybar/themes/tokyonight.css6
-rw-r--r--waybar/waybar/colors.css1
-rw-r--r--waybar/waybar/config.jsonc281
-rwxr-xr-xwaybar/waybar/scripts/brightness.sh69
-rwxr-xr-xwaybar/waybar/scripts/mediaplayer.py143
-rwxr-xr-xwaybar/waybar/scripts/uptime.sh6
-rw-r--r--waybar/waybar/style.css129
-rw-r--r--waybar/waybar/themes/blacklotus.css8
-rw-r--r--waybar/waybar/themes/catppuccin-mocha.css12
-rw-r--r--waybar/waybar/themes/dracula.css8
-rw-r--r--waybar/waybar/themes/gruvbox-dark.css12
-rw-r--r--waybar/waybar/themes/kanagawa.css7
-rw-r--r--waybar/waybar/themes/rose-pine.css13
-rw-r--r--waybar/waybar/themes/tokyonight.css6
26 files changed, 90 insertions, 1207 deletions
diff --git a/waybar/colors.css b/waybar/colors.css
deleted file mode 100644
index 9e5f3fb..0000000
--- a/waybar/colors.css
+++ /dev/null
@@ -1 +0,0 @@
-@import 'themes/tokyonight.css';
diff --git a/waybar/config.jsonc b/waybar/config.jsonc
index 4c2af10..46467c4 100644
--- a/waybar/config.jsonc
+++ b/waybar/config.jsonc
@@ -1,223 +1,116 @@
-// _*_ mode: jsonc _*_
{
- "reload_style_on_change": true,
"layer": "top",
- "position": "bottom",
+ "position": "top",
"modules-left": [
- "niri/workspaces",
- "custom/uptime",
- "backlight",
- "group/network"
+ "clock",
+ "mpris",
+ "niri/window"
+ ],
+ "modules-center": [
+ "custom/workspaces"
],
- "modules-center": [],
"modules-right": [
- "group/expand-tray",
- "group/hardware",
- "group/audio",
- "group/powerofmachine",
- "clock"
+ "tray",
+ "network",
+ "pulseaudio",
+ "bluetooth",
+ "memory",
+ "battery"
],
"niri/workspaces": {
- "on-click": "activate",
+ "current-only": true,
"format": "{icon}",
- "format-icons": {
- "1": "1",
- "2": "2",
- "3": "3",
- "4": "4",
- "5": "5",
- "6": "6",
- "7": "7",
- "8": "8",
- "9": "9",
- "10": "10"
- }
- },
- // module groups
- "group/hardware": {
- "orientation": "horizontal",
- "modules": [
- "cpu",
- "memory",
- "temperature"
- ]
- },
- "group/audio": {
- "orientation": "horizontal",
- "modules": [
- "bluetooth",
- "pulseaudio"
- ]
+ "all-outputs": false // usually keep false so each monitor shows its own active workspace
},
- "group/network": {
- "orientation": "horizontal",
- "modules": [
- "network",
- "custom/vpn"
- ]
+ "niri/window": {
+ "format": "{app_id}"
},
- "group/powerofmachine": {
- "orientation": "horizontal",
- "modules": [
- "battery"
- ]
- },
- "group/expand-tray": {
- "orientation": "inherit",
- "drawer": {
- "transition-duration": 600,
- "children-class": "tray-group-item"
+ "mpris": {
+ "format": "{status_icon} {artist} - {title}",
+ "format-paused": "{status_icon} <i>{artist} - {title}</i>",
+ "player-icons": {
+ "default": "β–Ά",
+ "mpv": "🎡"
},
- "modules": [
- "custom/expand-icon",
- "tray"
- ]
+ "status-icons": {
+ "paused": "⏸"
+ }
},
- // Individual modules
"clock": {
- "interval": 60,
- "tooltip": true,
- "format": "ο€— {:%R  %d/%m}",
- "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
- "format-alt": "ο„³ {:%a, %d, %b %Y}"
+ "format": "{:%a, %b %d %H:%M}",
+ "format-alt": "{:%Y-%m-%d}"
},
"memory": {
- "interval": 12,
- "format": "ξΏ… {}%"
- },
- "cpu": {
- "interval": 5,
- "format": "ο‹› {usage}%",
- "on-click": "alacritty --class TUI.float -e btop"
- },
- "temperature": {
- // The thermal zone for CPU changes from time to time on MSI Laptops
- "thermal-zone": 5,
- "critical-threshold": 80,
- "format": " {temperatureC}Β°C"
+ "format": "ξΏ… {used}GiB"
},
- "network": {
- "interface": "wlan0",
- "family": "ipv4",
- "format": "{ifname}",
- "format-wifi": "{icon} {essid}",
- "format-ethernet": " {ipaddr}/<span color='#aaaaaa'>{cidr}</span>",
- "format-disconnected": "󰇨 DC'D",
- "format-icons": [
- "σ°€―",
- "󰀟",
- "σ°€’",
- "σ°€₯",
- "󰀨"
- ],
- "tooltip-format": "{ifname} via {gwaddr}",
- "tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇑{bandwidthUpBytes}",
- "tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇑{bandwidthUpBytes}",
- "tooltip-format-disconnected": "Disconnected",
- "interval": 5,
- "on-click": "alacritty --class TUI.float -e wifitui",
- "on-click-right": "rfkill toggle wlan"
- },
- "backlight": {
- "device": "intel_backlight",
- "format": "{icon} {percent}%",
- "format-icons": [
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "ξŽ›"
- ]
+ "battery": {
+ "states": {
+ "good": 95,
+ "warning": 30,
+ "critical": 15
+ },
+ "format": "{icon} {capacity}%",
+ "format-icons": {
+ "default": [
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ "charging": ""
+ },
+ "format-plugged": " {capacity}%"
},
"bluetooth": {
"format": "οŠ” {num_connections}",
"format-disabled": "<span color='#aaaaaa'>σ°‚²</span>",
"format-connected": "οŠ” {num_connections}",
"tooltip-format": "Devices connected: {num_connections}\n{device_alias} at {device_battery_percentage}%",
- "on-click": "alacritty --class=TUI.float -e bluetui",
+ "on-click": "$TERMINAL --app-id=TUI.float -e bluetui",
"on-click-right": "rfkill toggle bluetooth"
},
"pulseaudio": {
"format": "{icon} {volume}%",
- "on-click": "alacritty --class TUI.float -e wiremix",
- "tooltip-format": "{desc}",
- "scroll-step": 5,
- "format-muted": "<span color='#aaaaaa' </span>",
+ "format-bluetooth": "οŠ” {icon} {volume}%",
+ "format-muted": "",
"format-icons": {
+ "alsa_output.pci-0000_00_1f.3.analog-stereo": "",
+ "alsa_output.pci-0000_00_1f.3.analog-stereo-muted": "",
"headphone": "ο€₯",
+ "hands-free": "",
+ "headset": "",
+ "phone": "ο‚•",
+ "phone-muted": "ξ΄—",
+ "portable": "ο‚•",
+ "car": "ο†Ή",
"default": [
- "",
"ο€§",
""
]
- }
- },
- "battery": {
- "format": "{capacity}% {icon}",
- "format-discharging": "{icon} {capacity}%",
- "format-charging": "{icon} {capacity}%",
- "format-plugged": " {capacity}%",
- "format-full": "󰁹 {capacity}%",
- "format-icons": {
- "charging": [
- "󰒜",
- "󰂆",
- "󰂇",
- "σ°‚ˆ",
- "󰒝",
- "󰂉",
- "󰒞",
- "σ°‚Š",
- "σ°‚‹",
- "σ°‚…"
- ],
- "default": [
- "󰁺",
- "󰁻",
- "󰁼",
- "󰁽",
- "󰁾",
- "󰁿",
- "σ°‚€",
- "󰂁",
- "σ°‚‚",
- "󰁹"
- ]
},
- "interval": 5,
- "states": {
- "warning": 20,
- "critical": 10
- }
+ "on-click": "$TERMINAL --app-id=TUI.float -e wiremix",
+ "tooltip-format": "{desc}",
+ "scroll-step": 5
},
- // Tray
- "tray": {
- "icon-size": 10,
- "spacing": 10
+ "network": {
+ "interface": "wlo1",
+ "format": "{ifname}",
+ "format-wifi": " {signalStrength}%",
+ "format-ethernet": " {ipaddr}/{cidr}",
+ "format-disconnected": "σ°–ͺ", //An empty format will hide the module.
+ "tooltip-format": " {ifname} via {gwaddr}",
+ "tooltip-format-wifi": " {essid} {signalStrength}%",
+ "tooltip-format-ethernet": "{ifname}",
+ "tooltip-format-disconnected": "σ°–ͺ",
+ "max-length": 50,
+ "interval": 60,
+ "on-click": "$TERMINAL --app-id TUI.float -e wifitui",
+ "on-click-right": "rfkill toggle wlan"
},
- // Custom modules
- "custom/vpn": {
- "format": "ο€£ VPN",
- "exec": "echo '{\"class\": \"connected\"}'",
- "exec-if": "test -d /proc/sys/net/ipv4/conf/proton0",
+ "custom/workspaces": {
+ "exec": "~/.config/waybar/niri-workspaces",
"return-type": "json",
- "interval": 5
- },
- "custom/expand-icon": {
- "format": "ο‚‹ ",
- "tooltip": false
- },
- "custom/uptime": {
- "format": "{}",
- "format-icon": [
- ""
- ],
- "tooltip": false,
- "interval": 1600,
- "exec": "~/.config/waybar/scripts/uptime.sh"
+ "format": "{}"
}
}
diff --git a/waybar/niri-workspaces b/waybar/niri-workspaces
new file mode 100755
index 0000000..7213da7
--- /dev/null
+++ b/waybar/niri-workspaces
Binary files differ
diff --git a/waybar/scripts/mediaplayer.py b/waybar/scripts/mediaplayer.py
deleted file mode 100755
index 870eabf..0000000
--- a/waybar/scripts/mediaplayer.py
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/usr/bin/env python3
-import argparse
-import logging
-import sys
-import signal
-import gi
-import json
-
-gi.require_version("Playerctl", "2.0")
-from gi.repository import Playerctl, GLib
-
-logger = logging.getLogger(__name__)
-
-
-def write_output(text, player):
- logger.info("Writing output")
-
- 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 on_play(player, status, manager):
- logger.info("Received new playback status")
- on_metadata(player, player.props.metadata, manager)
-
-
-def on_metadata(player, metadata, manager):
- logger.info("Received new metadata")
- track_info = ""
-
- if (
- player.props.player_name == "spotify"
- and "mpris:trackid" in metadata.keys()
- and ":ad:" in player.props.metadata["mpris:trackid"]
- ):
- track_info = "AD PLAYING"
- elif player.get_artist() != "" and player.get_title() != "":
- track_info = "{artist} - {title}".format(
- artist=player.get_artist(), title=player.get_title()
- )
- else:
- track_info = player.get_title()
-
- if player.props.status != "Playing" and track_info:
- track_info = "οŠ‹ " + track_info
- write_output(track_info, player)
-
-
-def on_player_appeared(manager, player, selected_player=None):
- if player is not None and (
- selected_player is None or player.name == selected_player
- ):
- init_player(manager, player)
- else:
- logger.debug("New player appeared, but it's not the selected player, skipping")
-
-
-def on_player_vanished(manager, player):
- logger.info("Player has vanished")
- sys.stdout.write("\n")
- sys.stdout.flush()
-
-
-def init_player(manager, name):
- logger.debug("Initialize player: {player}".format(player=name.name))
- player = Playerctl.Player.new_from_name(name)
- player.connect("playback-status", on_play, manager)
- player.connect("metadata", on_metadata, manager)
- manager.manage_player(player)
- on_metadata(player, player.props.metadata, manager)
-
-
-def signal_handler(sig, frame):
- logger.debug("Received signal to stop, exiting")
- sys.stdout.write("\n")
- sys.stdout.flush()
- # loop.quit()
- sys.exit(0)
-
-
-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")
-
- return parser.parse_args()
-
-
-def main():
- arguments = parse_arguments()
-
- # Initialize logging
- logging.basicConfig(
- stream=sys.stderr,
- level=logging.DEBUG,
- format="%(name)s %(levelname)s %(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))
-
- # Log the sent command line arguments
- logger.debug("Arguments received {}".format(vars(arguments)))
-
- manager = Playerctl.PlayerManager()
- loop = GLib.MainLoop()
-
- manager.connect(
- "name-appeared", lambda *args: on_player_appeared(*args, arguments.player)
- )
- manager.connect("player-vanished", on_player_vanished)
-
- signal.signal(signal.SIGINT, signal_handler)
- signal.signal(signal.SIGTERM, signal_handler)
- signal.signal(signal.SIGPIPE, signal.SIG_DFL)
-
- for player in manager.props.player_names:
- if arguments.player is not None and arguments.player != player.name:
- logger.debug(
- "{player} is not the filtered player, skipping it".format(
- player=player.name
- )
- )
- continue
-
- init_player(manager, player)
-
- loop.run()
-
-
-if __name__ == "__main__":
- main()
diff --git a/waybar/scripts/uptime.sh b/waybar/scripts/uptime.sh
deleted file mode 100755
index 786561f..0000000
--- a/waybar/scripts/uptime.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env bash
-UPTIME_PRETTY=$(uptime -p)
-
-UPTIME_FORMATTED=$(echo "$UPTIME_PRETTY" | sed 's/^up //;s/,*$//;s/minute/m/; s/hour/h/; s/day/d/; s/s//g')
-
-echo " $UPTIME_FORMATTED"
diff --git a/waybar/style.css b/waybar/style.css
index 52f013a..6590d83 100644
--- a/waybar/style.css
+++ b/waybar/style.css
@@ -1,127 +1,28 @@
-@import "colors.css";
-
* {
border: none;
- font-family: "GeistMono Nerd Font Propo, sans-serif";
+ font-family: "JetBrainsMono Nerd Font Propo, monospace";
font-size: 12px;
font-weight: bold;
min-height: 0;
}
-/* Keyframe animations */
-@keyframes urgent-blink {
- 0% {
- color: #eb4d4b;
- }
-
- 50% {
- color: #ffffff;
- }
-
- 100% {
- color: #eb4d4b;
- }
-}
-
window#waybar {
- background-color: @background;
- color: @foreground;
-}
-
-/* Workspaces */
-#workspaces {
- margin-right: 0.75rem;
-}
-
-#workspaces button.active {
- color: @color1;
-}
-
-#workspaces button.empty.active {
- color: @color2;
- /* opacity: 1; */
-}
-
-/* #workspaces button.empty { */
-/* opacity: 0.2; */
-/* } */
-
-/* #workspaces button:not(.empty) { */
-/* opacity: 0.7; */
-/* } */
-
-#workspaces button.urgent {
+ background-color: #000000;
color: #ffffff;
- background-color: rgba(255, 0, 0, 0.5);
- border-radius: 0;
}
-/* Modules */
-#battery,
-#clock {
- margin: 0 0.45rem;
+#workspaces button {
+ padding: 0 6px;
}
-#backlight,
-#bluetooth,
-#cpu,
-#temperature,
+#clock,
+#battery,
+#window,
#memory,
-#pulseaudio {
- margin: 0 0.45rem;
-}
-
+#network,
+#mpris,
+#bluetooth,
+#pulseaudio,
#tray {
- margin-left: 0.25rem;
-}
-
-#bluetooth.connected {
- color: @color1;
-}
-
-#battery:not(.charging).warning {
- color: #FFA500;
-}
-
-#battery:not(.charging).critical {
- color: #FF0000;
-}
-
-#network.disconnected {
- color: #FF0000;
-}
-
-/* Groups */
-#audio,
-#expand-tray,
-#hardware,
-#powerofmachine,
-#network {
- margin: 0 0.55rem;
-}
-
-#power-profiles-daemon.power-saver {
- color: rgba(0, 250, 0, 1);
-}
-
-#power-profiles-daemon.performance {
- color: rgba(200, 0, 0, 1);
-}
-
-/* Custom modules */
-#custom-screenrecording-indicator {
- color: #ff0000;
- animation-name: urgent-blink;
- animation-duration: 1s;
- animation-timing-function: steps(18);
- animation-iteration-count: infinite;
- animation-direction: alternate;
-}
-
-#custom-uptime {
- margin: 0 0.55rem;
-}
-
-#custom-pomodoro {
- margin: 0 0.55rem;
+ padding: 0 8px;
}
diff --git a/waybar/themes/blacklotus.css b/waybar/themes/blacklotus.css
deleted file mode 100644
index 0add7da..0000000
--- a/waybar/themes/blacklotus.css
+++ /dev/null
@@ -1,8 +0,0 @@
-/* BlackLotus Colorscheme */
-@define-color background #0B0A0F;
-@define-color foreground #D7D2E9;
-
-@define-color color1 #A277FF;
-@define-color color3 #E363C9;
-@define-color color2 #6E8CFF;
-@define-color color4 #2EE2D0;
diff --git a/waybar/themes/catppuccin-mocha.css b/waybar/themes/catppuccin-mocha.css
deleted file mode 100644
index 19296d5..0000000
--- a/waybar/themes/catppuccin-mocha.css
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
-* Variant: Catppuccin Mocha
-* Maintainer: https://github.com/catppuccin/waybar.git
-*/
-
-@define-color background #1e1e2e;
-@define-color foreground #cdd6f4;
-
-@define-color color1 #fab387;
-@define-color color2 #f5e0dc;
-@define-color color3 #74c7ec;
-@define-color color4 #f9e2af;
diff --git a/waybar/themes/dracula.css b/waybar/themes/dracula.css
deleted file mode 100644
index 42f7cce..0000000
--- a/waybar/themes/dracula.css
+++ /dev/null
@@ -1,8 +0,0 @@
-@define-color background #282a36;
-@define-color selection #44475a;
-@define-color foreground #f8f8f2;
-
-@define-color color1 #bd93f9;
-@define-color color2 #ffb86c;
-@define-color color3 #ff5555;
-@define-color color4 #50fa7b;
diff --git a/waybar/themes/gruvbox-dark.css b/waybar/themes/gruvbox-dark.css
deleted file mode 100644
index 5dcf4c6..0000000
--- a/waybar/themes/gruvbox-dark.css
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Gruvbox Dark Hard – only 8 colors you’ll ever need */
-@define-color background #1d2021; /* darkest */
-@define-color background0 #282828; /* main background */
-@define-color background1 #3c3836; /* statusbars, selected lines */
-@define-color background2 #504945; /* subtle highlights */
-@define-color foreground #ebdbb2; /* main text */
-@define-color foreground0 #fbf1c7; /* brightest text (rarely used) */
-@define-color accent #fe8019; /* bright orange – main accent */
-@define-color color1 #cc241d; /* dark red */
-@define-color color2 #98971a; /* dark green */
-@define-color color3 #d79921; /* dark yellow */
-@define-color color4 #458588; /* dark blue */
diff --git a/waybar/themes/kanagawa.css b/waybar/themes/kanagawa.css
deleted file mode 100644
index 2a5c343..0000000
--- a/waybar/themes/kanagawa.css
+++ /dev/null
@@ -1,7 +0,0 @@
-@define-color foreground #DCD7BA;
-@define-color background #1F1F28;
-
-@define-color color1 #FF5D62;
-@define-color color2 #7AA89F;
-@define-color color3 #E6C384;
-@define-color color4 #7E9CD8;
diff --git a/waybar/themes/rose-pine.css b/waybar/themes/rose-pine.css
deleted file mode 100644
index e323881..0000000
--- a/waybar/themes/rose-pine.css
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
-* Variant: RosΓ© Pine
-* Maintainer: DankChoir
-* Modified for few colors
-*/
-
-@define-color background #191724;
-@define-color foreground #1f1d2e;
-
-@define-color color1 #eb6f92;
-@define-color color2 #f6c177;
-@define-color color3 #ebbcba;
-@define-color color4 #31748f;
diff --git a/waybar/themes/tokyonight.css b/waybar/themes/tokyonight.css
deleted file mode 100644
index 2f2dcf5..0000000
--- a/waybar/themes/tokyonight.css
+++ /dev/null
@@ -1,6 +0,0 @@
-@define-color background #1a1b26;
-@define-color foreground #c0caf5;
-
-@define-color color1 #7dcfff;
-@define-color color2 #f7768e;
-@define-color color3 #7aa2f7;
diff --git a/waybar/waybar/colors.css b/waybar/waybar/colors.css
deleted file mode 100644
index 9e5f3fb..0000000
--- a/waybar/waybar/colors.css
+++ /dev/null
@@ -1 +0,0 @@
-@import 'themes/tokyonight.css';
diff --git a/waybar/waybar/config.jsonc b/waybar/waybar/config.jsonc
deleted file mode 100644
index d9915be..0000000
--- a/waybar/waybar/config.jsonc
+++ /dev/null
@@ -1,281 +0,0 @@
-// _*_ mode: jsonc _*_
-{
- "reload_style_on_change": true,
- "layer": "top",
- "position": "top",
- "modules-left": [
- "niri/workspaces",
- // "custom/uptime",
- // "backlight",
- // "group/network",
- "mpris",
- "custom/screenrecording-indicator"
- ],
- "modules-center": [],
- "modules-right": [
- "group/expand-tray",
- "backlight",
- "custom/brightness",
- "group/network",
- // "group/hardware",
- "group/audio",
- "group/powerofmachine",
- "clock"
- ],
- "niri/workspaces": {
- "on-click": "activate",
- "format": "{icon}",
- "format-icons": {
- // "1": "1 ο€­",
- // "2": "2 ο…»",
- // "3": "3 ",
- // "4": "4 ο„›",
- // "5": "5 Χ€ΦΌ",
- // "6": "6 ο€­",
- // "7": "7 ο†Ά",
- // "8": "8 ο†Ό",
- // "9": "9 ",
- // "10": "10 ο„‘",
- "1": "1",
- "2": "2",
- "3": "3",
- "4": "4",
- "5": "5",
- "6": "6",
- "7": "7",
- "8": "8",
- "9": "9",
- "10": "10",
- },
- "all-outputs": true,
- },
- // module groups
- "group/hardware": {
- "orientation": "horizontal",
- "modules": [
- "cpu",
- "memory",
- "temperature"
- ]
- },
- "group/audio": {
- "orientation": "horizontal",
- "modules": [
- "bluetooth",
- "pulseaudio"
- ]
- },
- "group/network": {
- "orientation": "horizontal",
- "modules": [
- "network",
- "custom/vpn"
- ]
- },
- "group/powerofmachine": {
- "orientation": "horizontal",
- "modules": [
- // "power-profiles-daemon",
- "battery"
- ]
- },
- "group/expand-tray": {
- "orientation": "inherit",
- "drawer": {
- "transition-duration": 600,
- "children-class": "tray-group-item"
- },
- "modules": [
- "custom/expand-icon",
- "tray"
- ]
- },
- // Individual modules
- "clock": {
- "interval": 60,
- "tooltip": true,
- "format": "ο€— {:%R  %d/%m}",
- "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
- "format-alt": "ο„³ {:%a, %d, %b %Y}"
- },
- "memory": {
- "interval": 12,
- "format": "ξΏ… {}%"
- },
- "cpu": {
- "interval": 5,
- "format": "ο‹› {usage}%",
- "on-click": "$TERMINAL -e btop"
- },
- "temperature": {
- // The thermal zone for CPU changes from time to time on MSI Laptops
- "thermal-zone": 5,
- "critical-threshold": 80,
- "format": " {temperatureC}Β°C"
- },
- "mpris": {
- "format": "{status_icon} {artist} - {title}",
- "format-paused": "{status_icon} {artist} - {title}",
- "player-icons": {
- "default": "β–Ά",
- "mpv": "🎡"
- },
- "status-icons": {
- "paused": "⏸",
- "default": "β–Ά",
- },
- "ignored-players": ["zen"]
- },
- "network": {
- "interface": "wlan0",
- "family": "ipv4",
- "format": "{ifname}",
- "format-wifi": "{icon} {essid}",
- "format-ethernet": " {ipaddr}/<span color='#aaaaaa'>{cidr}</span>",
- "format-disconnected": "󰇨 DC'D",
- "format-icons": [
- "σ°€―",
- "󰀟",
- "σ°€’",
- "σ°€₯",
- "󰀨"
- ],
- "tooltip-format": "{ifname} via {gwaddr}",
- "tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇑{bandwidthUpBytes}",
- "tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇑{bandwidthUpBytes}",
- "tooltip-format-disconnected": "Disconnected",
- "interval": 5,
- "on-click": "$TERMINAL --class Wifitui -e wifitui",
- "on-click-right": "rfkill toggle wlan"
- },
- "backlight": {
- "device": "intel_backlight",
- "format": "{icon} {percent}%",
- "format-icons": [
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "ξŽ›"
- ]
- },
- "bluetooth": {
- "format": "οŠ” {num_connections}",
- "format-disabled": "<span color='#aaaaaa'>σ°‚²</span>",
- "format-connected": "οŠ” {num_connections}",
- "tooltip-format": "Devices connected: {num_connections}\n{device_alias} at {device_battery_percentage}%",
- "on-click": "$TERMINAL --title=Bluetui --class=TUI.float -e bluetui",
- "on-click-right": "rfkill toggle bluetooth"
- },
- "pulseaudio": {
- "format": "{icon} {volume}%",
- "on-click": "$TERMINAL --title=Wiremix --class=TUI.float -e wiremix",
- "tooltip-format": "{desc}",
- "scroll-step": 5,
- "format-muted": "<span color='#aaaaaa' </span>",
- "format-icons": {
- "headphone": "ο€₯",
- "default": [
- "",
- "ο€§",
- ""
- ]
- }
- },
- "battery": {
- "format": "{capacity}% {icon}",
- "format-discharging": "{icon} {capacity}%",
- "format-charging": "{icon} {capacity}%",
- "format-plugged": " {capacity}%",
- "format-full": "󰁹 {capacity}%",
- "format-icons": {
- "charging": [
- "󰒜",
- "󰂆",
- "󰂇",
- "σ°‚ˆ",
- "󰒝",
- "󰂉",
- "󰒞",
- "σ°‚Š",
- "σ°‚‹",
- "σ°‚…"
- ],
- "default": [
- "󰁺",
- "󰁻",
- "󰁼",
- "󰁽",
- "󰁾",
- "󰁿",
- "σ°‚€",
- "󰂁",
- "σ°‚‚",
- "󰁹"
- ]
- },
- "interval": 5,
- "states": {
- "warning": 20,
- "critical": 10
- }
- },
- "power-profiles-daemon": {
- "format": "{icon}",
- "tooltip-format": "Power profile: {profile}\nDriver: {driver}",
- "tooltip": true,
- "format-icons": {
- "default": "",
- "performance": "",
- "balanced": "ο‰Ž",
- "power-saver": ""
- }
- },
- // Tray
- "tray": {
- "icon-size": 10,
- "spacing": 10
- },
- // Custom modules
- "custom/vpn": {
- "format": "ο€£ VPN",
- "exec": "echo '{\"class\": \"connected\"}'",
- "exec-if": "test -d /proc/sys/net/ipv4/conf/proton0",
- "return-type": "json",
- "interval": 5
- },
- "custom/expand-icon": {
- "format": "ο‚‹ ",
- "tooltip": false
- },
- "custom/screenrecording-indicator": {
- "on-click": "~/.local/bin/screenrecord",
- "exec": "~/.local/bin/waybar-screenrecord",
- "signal": 8,
- "return-type": "json"
- },
- "custom/uptime": {
- "format": "{}",
- "format-icon": [
- ""
- ],
- "tooltip": false,
- "interval": 1600,
- "exec": "~/.config/waybar/scripts/uptime.sh"
- },
- "custom/brightness": {
- "format": "β˜€ {}%",
- "tooltip-format": "EXT: β˜€ {}%",
- "interval": "once",
- "signal": 9,
- "exec": "~/.config/waybar/scripts/brightness.sh get",
- "on-scroll-up": "~/.config/waybar/scripts/brightness.sh up",
- "on-scroll-down": "~/.config/waybar/scripts/brightness.sh down",
- "on-click": "~/.config/waybar/scripts/brightness.sh left_click",
- "on-click-right": "~/.config/waybar/scripts/brightness.sh right_click",
- },
-}
diff --git a/waybar/waybar/scripts/brightness.sh b/waybar/waybar/scripts/brightness.sh
deleted file mode 100755
index 138f5ee..0000000
--- a/waybar/waybar/scripts/brightness.sh
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env bash
-
-# --- CONFIGURATION ---
-DISPLAY_NUM=1
-STEP=5
-STATE_FILE="/tmp/waybar_brightness.tmp"
-# ---------------------
-
-# Function to send the actual DDC/CI command in the background
-set_brightness_in_background() {
- pkill -f "ddcutil.*setvcp 10"
- (ddcutil --display $DISPLAY_NUM setvcp 10 $1) &
-}
-
-# Ensure state file exists, or create it by querying the monitor
-if [ ! -f "$STATE_FILE" ]; then
- # ddcutil terse output format: "VCP 10 C <current> <max>"
- initial_brightness=$(ddcutil --display $DISPLAY_NUM getvcp 10 -t 2>/dev/null | awk '{print $4}')
- # Fallback to 50 if ddcutil fails or returns non-numeric
- if ! [[ "$initial_brightness" =~ ^[0-9]+$ ]]; then
- initial_brightness=50
- fi
- echo "$initial_brightness" >"$STATE_FILE"
-fi
-
-current=$(cat "$STATE_FILE")
-# Validate current is a number, fallback to 50 if corrupted
-if ! [[ "$current" =~ ^[0-9]+$ ]]; then
- current=50
- echo "$current" >"$STATE_FILE"
-fi
-
-case "$1" in
-"get")
- echo "$current"
- ;;
-"up")
- new_brightness=$((current + STEP > 100 ? 100 : current + STEP))
- if [ "$current" -ne "$new_brightness" ]; then
- echo "$new_brightness" >"$STATE_FILE"
- set_brightness_in_background "$new_brightness"
- fi
- pkill -RTMIN+9 waybar # Can add whatever RTMIN+n you please, as long as it's an integer. Make sure the signals match between the config and script.
- ;;
-"down")
- new_brightness=$((current - STEP < 0 ? 0 : current - STEP))
- if [ "$current" -ne "$new_brightness" ]; then
- echo "$new_brightness" >"$STATE_FILE"
- set_brightness_in_background "$new_brightness"
- fi
- pkill -RTMIN+9 waybar
- ;;
-"right_click")
- new_brightness=0
- if [ "$current" -ne "$new_brightness" ]; then
- echo "$new_brightness" >"$STATE_FILE"
- set_brightness_in_background "$new_brightness"
- fi
- pkill -RTMIN+9 waybar
- ;;
-"left_click")
- new_brightness=100
- if [ "$current" -ne "$new_brightness" ]; then
- echo "$new_brightness" >"$STATE_FILE"
- set_brightness_in_background "$new_brightness"
- fi
- pkill -RTMIN+9 waybar
- ;;
-esac
diff --git a/waybar/waybar/scripts/mediaplayer.py b/waybar/waybar/scripts/mediaplayer.py
deleted file mode 100755
index 870eabf..0000000
--- a/waybar/waybar/scripts/mediaplayer.py
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/usr/bin/env python3
-import argparse
-import logging
-import sys
-import signal
-import gi
-import json
-
-gi.require_version("Playerctl", "2.0")
-from gi.repository import Playerctl, GLib
-
-logger = logging.getLogger(__name__)
-
-
-def write_output(text, player):
- logger.info("Writing output")
-
- 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 on_play(player, status, manager):
- logger.info("Received new playback status")
- on_metadata(player, player.props.metadata, manager)
-
-
-def on_metadata(player, metadata, manager):
- logger.info("Received new metadata")
- track_info = ""
-
- if (
- player.props.player_name == "spotify"
- and "mpris:trackid" in metadata.keys()
- and ":ad:" in player.props.metadata["mpris:trackid"]
- ):
- track_info = "AD PLAYING"
- elif player.get_artist() != "" and player.get_title() != "":
- track_info = "{artist} - {title}".format(
- artist=player.get_artist(), title=player.get_title()
- )
- else:
- track_info = player.get_title()
-
- if player.props.status != "Playing" and track_info:
- track_info = "οŠ‹ " + track_info
- write_output(track_info, player)
-
-
-def on_player_appeared(manager, player, selected_player=None):
- if player is not None and (
- selected_player is None or player.name == selected_player
- ):
- init_player(manager, player)
- else:
- logger.debug("New player appeared, but it's not the selected player, skipping")
-
-
-def on_player_vanished(manager, player):
- logger.info("Player has vanished")
- sys.stdout.write("\n")
- sys.stdout.flush()
-
-
-def init_player(manager, name):
- logger.debug("Initialize player: {player}".format(player=name.name))
- player = Playerctl.Player.new_from_name(name)
- player.connect("playback-status", on_play, manager)
- player.connect("metadata", on_metadata, manager)
- manager.manage_player(player)
- on_metadata(player, player.props.metadata, manager)
-
-
-def signal_handler(sig, frame):
- logger.debug("Received signal to stop, exiting")
- sys.stdout.write("\n")
- sys.stdout.flush()
- # loop.quit()
- sys.exit(0)
-
-
-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")
-
- return parser.parse_args()
-
-
-def main():
- arguments = parse_arguments()
-
- # Initialize logging
- logging.basicConfig(
- stream=sys.stderr,
- level=logging.DEBUG,
- format="%(name)s %(levelname)s %(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))
-
- # Log the sent command line arguments
- logger.debug("Arguments received {}".format(vars(arguments)))
-
- manager = Playerctl.PlayerManager()
- loop = GLib.MainLoop()
-
- manager.connect(
- "name-appeared", lambda *args: on_player_appeared(*args, arguments.player)
- )
- manager.connect("player-vanished", on_player_vanished)
-
- signal.signal(signal.SIGINT, signal_handler)
- signal.signal(signal.SIGTERM, signal_handler)
- signal.signal(signal.SIGPIPE, signal.SIG_DFL)
-
- for player in manager.props.player_names:
- if arguments.player is not None and arguments.player != player.name:
- logger.debug(
- "{player} is not the filtered player, skipping it".format(
- player=player.name
- )
- )
- continue
-
- init_player(manager, player)
-
- loop.run()
-
-
-if __name__ == "__main__":
- main()
diff --git a/waybar/waybar/scripts/uptime.sh b/waybar/waybar/scripts/uptime.sh
deleted file mode 100755
index 786561f..0000000
--- a/waybar/waybar/scripts/uptime.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env bash
-UPTIME_PRETTY=$(uptime -p)
-
-UPTIME_FORMATTED=$(echo "$UPTIME_PRETTY" | sed 's/^up //;s/,*$//;s/minute/m/; s/hour/h/; s/day/d/; s/s//g')
-
-echo " $UPTIME_FORMATTED"
diff --git a/waybar/waybar/style.css b/waybar/waybar/style.css
deleted file mode 100644
index 15263e1..0000000
--- a/waybar/waybar/style.css
+++ /dev/null
@@ -1,129 +0,0 @@
-@import "colors.css";
-
-* {
- border: none;
- font-family: "JetBrainsMono Nerd Font Propo, sans-serif";
- /* font-family: "SF Mono"; */
- font-size: 12px;
- font-weight: bold;
- min-height: 0;
-}
-
-/* Keyframe animations */
-@keyframes urgent-blink {
- 0% {
- color: #eb4d4b;
- }
-
- 50% {
- color: #ffffff;
- }
-
- 100% {
- color: #eb4d4b;
- }
-}
-
-window#waybar {
- background-color: alpha(@background, 0.7);
- color: @foreground;
-}
-
-/* Workspaces */
-#workspaces {
- margin-right: 0.75rem;
- min-width: 30px;
-}
-
-#workspaces button {
- margin: 0 5px 0 5px;
-}
-
-#workspaces button.active {
- color: @background;
- background-color: @color1;
-}
-
-#workspaces button.urgent {
- color: #ffffff;
- background-color: rgba(255, 0, 0, 0.5);
-}
-
-/* Modules */
-#battery,
-#clock {
- margin: 0 0.45rem;
-}
-
-#backlight,
-#bluetooth,
-#cpu,
-#temperature,
-#memory,
-#mpris,
-#pulseaudio {
- margin: 0 0.45rem;
-}
-
-#tray {
- margin-left: 0.25rem;
-}
-
-#bluetooth.connected {
- color: @color1;
-}
-
-#battery:not(.charging).warning {
- color: #FFA500;
-}
-
-#battery:not(.charging).critical {
- color: #FF0000;
-}
-
-#network.disconnected {
- color: #FF0000;
-}
-
-/* Groups */
-#audio,
-#hardware,
-#powerofmachine,
-#network {
- margin: 0 0.55rem;
-}
-
-#expand-tray {
- margin-right: 1em;
-}
-
-#power-profiles-daemon.power-saver {
- color: rgba(0, 250, 0, 1);
-}
-
-#power-profiles-daemon.performance {
- color: rgba(200, 0, 0, 1);
-}
-
-/* Custom modules */
-#custom-screenrecording-indicator {
- margin: 0 1em;
- color: #ff0000;
- animation-name: urgent-blink;
- animation-duration: 1s;
- animation-timing-function: steps(18);
- animation-iteration-count: infinite;
- animation-direction: alternate;
-}
-
-#custom-uptime {
- margin: 0 0.55rem;
-}
-
-#custom-pomodoro {
- margin: 0 0.55rem;
-}
-
-#custom-brightness {
- margin: 0 0.55rem;
-}
diff --git a/waybar/waybar/themes/blacklotus.css b/waybar/waybar/themes/blacklotus.css
deleted file mode 100644
index 0add7da..0000000
--- a/waybar/waybar/themes/blacklotus.css
+++ /dev/null
@@ -1,8 +0,0 @@
-/* BlackLotus Colorscheme */
-@define-color background #0B0A0F;
-@define-color foreground #D7D2E9;
-
-@define-color color1 #A277FF;
-@define-color color3 #E363C9;
-@define-color color2 #6E8CFF;
-@define-color color4 #2EE2D0;
diff --git a/waybar/waybar/themes/catppuccin-mocha.css b/waybar/waybar/themes/catppuccin-mocha.css
deleted file mode 100644
index 19296d5..0000000
--- a/waybar/waybar/themes/catppuccin-mocha.css
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
-* Variant: Catppuccin Mocha
-* Maintainer: https://github.com/catppuccin/waybar.git
-*/
-
-@define-color background #1e1e2e;
-@define-color foreground #cdd6f4;
-
-@define-color color1 #fab387;
-@define-color color2 #f5e0dc;
-@define-color color3 #74c7ec;
-@define-color color4 #f9e2af;
diff --git a/waybar/waybar/themes/dracula.css b/waybar/waybar/themes/dracula.css
deleted file mode 100644
index 42f7cce..0000000
--- a/waybar/waybar/themes/dracula.css
+++ /dev/null
@@ -1,8 +0,0 @@
-@define-color background #282a36;
-@define-color selection #44475a;
-@define-color foreground #f8f8f2;
-
-@define-color color1 #bd93f9;
-@define-color color2 #ffb86c;
-@define-color color3 #ff5555;
-@define-color color4 #50fa7b;
diff --git a/waybar/waybar/themes/gruvbox-dark.css b/waybar/waybar/themes/gruvbox-dark.css
deleted file mode 100644
index 5dcf4c6..0000000
--- a/waybar/waybar/themes/gruvbox-dark.css
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Gruvbox Dark Hard – only 8 colors you’ll ever need */
-@define-color background #1d2021; /* darkest */
-@define-color background0 #282828; /* main background */
-@define-color background1 #3c3836; /* statusbars, selected lines */
-@define-color background2 #504945; /* subtle highlights */
-@define-color foreground #ebdbb2; /* main text */
-@define-color foreground0 #fbf1c7; /* brightest text (rarely used) */
-@define-color accent #fe8019; /* bright orange – main accent */
-@define-color color1 #cc241d; /* dark red */
-@define-color color2 #98971a; /* dark green */
-@define-color color3 #d79921; /* dark yellow */
-@define-color color4 #458588; /* dark blue */
diff --git a/waybar/waybar/themes/kanagawa.css b/waybar/waybar/themes/kanagawa.css
deleted file mode 100644
index 2a5c343..0000000
--- a/waybar/waybar/themes/kanagawa.css
+++ /dev/null
@@ -1,7 +0,0 @@
-@define-color foreground #DCD7BA;
-@define-color background #1F1F28;
-
-@define-color color1 #FF5D62;
-@define-color color2 #7AA89F;
-@define-color color3 #E6C384;
-@define-color color4 #7E9CD8;
diff --git a/waybar/waybar/themes/rose-pine.css b/waybar/waybar/themes/rose-pine.css
deleted file mode 100644
index e323881..0000000
--- a/waybar/waybar/themes/rose-pine.css
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
-* Variant: RosΓ© Pine
-* Maintainer: DankChoir
-* Modified for few colors
-*/
-
-@define-color background #191724;
-@define-color foreground #1f1d2e;
-
-@define-color color1 #eb6f92;
-@define-color color2 #f6c177;
-@define-color color3 #ebbcba;
-@define-color color4 #31748f;
diff --git a/waybar/waybar/themes/tokyonight.css b/waybar/waybar/themes/tokyonight.css
deleted file mode 100644
index 2f2dcf5..0000000
--- a/waybar/waybar/themes/tokyonight.css
+++ /dev/null
@@ -1,6 +0,0 @@
-@define-color background #1a1b26;
-@define-color foreground #c0caf5;
-
-@define-color color1 #7dcfff;
-@define-color color2 #f7768e;
-@define-color color3 #7aa2f7;