diff --git a/.config/waybar/config.jsonc##hostname.cn-arch b/.config/waybar/config.jsonc##hostname.cn-arch
index 3551be8..3b0cc0c 100644
--- a/.config/waybar/config.jsonc##hostname.cn-arch
+++ b/.config/waybar/config.jsonc##hostname.cn-arch
@@ -4,21 +4,25 @@
"mod": "dock",
"exclusive": true,
"gtk-layer-shell": true,
- "margin-bottom": -1,
"passthrough": false,
"height": 30,
"modules-left": [
"hyprland/workspaces"
],
- "modules-center": [],
+ "modules-center": [
+ "mpris",
+ "privacy"
+ ],
"modules-right": [
+ "custom/alhp",
"cpu",
"memory",
"disk",
- "tray",
+ "bluetooth",
"pulseaudio",
"network",
"battery",
+ "tray",
"clock"
],
"hyprland/language": {
@@ -37,14 +41,6 @@
"format": " {usage}%",
"max-length": 10
},
- "temperature": {
- "hwmon-path-abs": "/sys/devices/platform/coretemp.0/hwmon",
- "input-filename": "temp2_input",
- "critical-threshold": 75,
- "tooltip": false,
- "format-critical": "({temperatureC}°C)",
- "format": "({temperatureC}°C)"
- },
"disk": {
"interval": 30,
"format": " {percentage_used}%",
@@ -74,7 +70,7 @@
"spacing": 3
},
"clock": {
- "format": "{:%R - %d.%m.%Y}",
+ "format": "{:%R | %d.%m.%Y}",
"tooltip-format": "{calendar}",
"calendar": {
"mode": "year",
@@ -99,7 +95,6 @@
}
},
"network": {
- "interface": "eno1",
"format-wifi": "{essid} ({signalStrength}%) {icon}",
"format-ethernet": "{ifname}",
"format-disconnected": "",
@@ -140,9 +135,9 @@
]
},
"pulseaudio": {
- "format": "{volume}% {icon}",
- "format-bluetooth": "{volume}% {icon}",
- "format-muted": "",
+ "format": "{volume}% {icon} ",
+ "format-bluetooth": "{volume}% {icon} ",
+ "format-muted": " ",
"format-icons": {
"alsa_output.pci-0000_00_1f.3.analog-stereo": "",
"alsa_output.pci-0000_00_1f.3.analog-stereo-muted": "",
@@ -163,5 +158,57 @@
"ignored-sinks": [
"Easy Effects Sink"
]
+ },
+ "privacy": {
+ "icon-spacing": 4,
+ "icon-size": 14,
+ "transition-duration": 250,
+ "modules": [
+ {
+ "type": "screenshare",
+ "tooltip": true,
+ "tooltip-icon-size": 12
+ },
+ {
+ "type": "audio-out",
+ "tooltip": true,
+ "tooltip-icon-size": 12
+ },
+ {
+ "type": "audio-in",
+ "tooltip": true,
+ "tooltip-icon-size": 12
+ }
+ ]
+ },
+ "mpris": {
+ "format": "{player_icon} {dynamic}",
+ "format-paused": "{status_icon} {dynamic}",
+ "dynamic-len": 50,
+ "ellipsis": "…",
+ "player-icons": {
+ "default": "▶",
+ "mpv": "🎵"
+ },
+ "status-icons": {
+ "paused": "⏸"
+ }
+ },
+ "bluetooth": {
+ "format": " {status}",
+ "on-click": "overskride",
+ "format-connected": " {device_alias}",
+ "format-connected-battery": " {device_alias} {device_battery_percentage}%",
+ "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
+ "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
+ "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
+ "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%"
+ },
+ "custom/alhp": {
+ "exec": "$HOME/.config/waybar/scripts/alhp.sh",
+ "format": "{} \uEB29 ",
+ "return-type": "json",
+ "interval": 60,
+ "tooltip": true
}
}
diff --git a/.config/waybar/config.jsonc##hostname.cn-mate b/.config/waybar/config.jsonc##hostname.cn-mate
new file mode 100644
index 0000000..3b0cc0c
--- /dev/null
+++ b/.config/waybar/config.jsonc##hostname.cn-mate
@@ -0,0 +1,214 @@
+{
+ "layer": "bottom",
+ "position": "bottom",
+ "mod": "dock",
+ "exclusive": true,
+ "gtk-layer-shell": true,
+ "passthrough": false,
+ "height": 30,
+ "modules-left": [
+ "hyprland/workspaces"
+ ],
+ "modules-center": [
+ "mpris",
+ "privacy"
+ ],
+ "modules-right": [
+ "custom/alhp",
+ "cpu",
+ "memory",
+ "disk",
+ "bluetooth",
+ "pulseaudio",
+ "network",
+ "battery",
+ "tray",
+ "clock"
+ ],
+ "hyprland/language": {
+ "format": "{}",
+ "format-en": "ENG",
+ "format-ru": "РУС"
+ },
+ "hyprland/workspaces": {
+ "icon-size": 32,
+ "spacing": 16,
+ "on-scroll-up": "hyprctl dispatch workspace r+1",
+ "on-scroll-down": "hyprctl dispatch workspace r-1"
+ },
+ "cpu": {
+ "interval": 5,
+ "format": " {usage}%",
+ "max-length": 10
+ },
+ "disk": {
+ "interval": 30,
+ "format": " {percentage_used}%",
+ "path": "/",
+ "tooltip": true,
+ "unit": "GB",
+ "tooltip-format": "Available {free} of {total}"
+ },
+ "memory": {
+ "interval": 10,
+ "format": " {percentage}%",
+ "max-length": 10,
+ "tooltip": true,
+ "tooltip-format": "RAM - {used:0.1f}GiB used"
+ },
+ "wlr/taskbar": {
+ "format": "{icon} {title:.17}",
+ "icon-size": 28,
+ "spacing": 3,
+ "on-click-middle": "close",
+ "tooltip-format": "{title}",
+ "ignore-list": [],
+ "on-click": "activate"
+ },
+ "tray": {
+ "icon-size": 18,
+ "spacing": 3
+ },
+ "clock": {
+ "format": "{:%R | %d.%m.%Y}",
+ "tooltip-format": "{calendar}",
+ "calendar": {
+ "mode": "year",
+ "mode-mon-col": 3,
+ "weeks-pos": "right",
+ "on-scroll": 1,
+ "on-click-right": "mode",
+ "format": {
+ "months": "{}",
+ "days": "{}",
+ "weeks": "W{}",
+ "weekdays": "{}",
+ "today": "{}"
+ }
+ },
+ "actions": {
+ "on-click-right": "mode",
+ "on-click-forward": "tz_up",
+ "on-click-backward": "tz_down",
+ "on-scroll-up": "shift_up",
+ "on-scroll-down": "shift_down"
+ }
+ },
+ "network": {
+ "format-wifi": "{essid} ({signalStrength}%) {icon}",
+ "format-ethernet": "{ifname}",
+ "format-disconnected": "",
+ "tooltip-format": "{ifname} via {gwaddr} ",
+ "tooltip-format-wifi": "{essid} ({signalStrength}%) ",
+ "tooltip-format-ethernet": "{ifname} ",
+ "tooltip-format-disconnected": "Disconnected",
+ "format-icons": [
+ " ",
+ " ",
+ " ",
+ " ",
+ " "
+ ]
+ },
+ "battery": {
+ "states": {
+ "good": 95,
+ "warning": 30,
+ "critical": 20
+ },
+ "format": "{icon} {capacity}%",
+ "format-charging": " {capacity}%",
+ "format-plugged": " {capacity}%",
+ "format-alt": "{time} {icon}",
+ "format-icons": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ "pulseaudio": {
+ "format": "{volume}% {icon} ",
+ "format-bluetooth": "{volume}% {icon} ",
+ "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": "\uF025",
+ "phone": "",
+ "phone-muted": "",
+ "portable": "",
+ "car": "",
+ "default": [
+ "",
+ ""
+ ]
+ },
+ "scroll-step": 5,
+ "on-click": "pwvucontrol",
+ "ignored-sinks": [
+ "Easy Effects Sink"
+ ]
+ },
+ "privacy": {
+ "icon-spacing": 4,
+ "icon-size": 14,
+ "transition-duration": 250,
+ "modules": [
+ {
+ "type": "screenshare",
+ "tooltip": true,
+ "tooltip-icon-size": 12
+ },
+ {
+ "type": "audio-out",
+ "tooltip": true,
+ "tooltip-icon-size": 12
+ },
+ {
+ "type": "audio-in",
+ "tooltip": true,
+ "tooltip-icon-size": 12
+ }
+ ]
+ },
+ "mpris": {
+ "format": "{player_icon} {dynamic}",
+ "format-paused": "{status_icon} {dynamic}",
+ "dynamic-len": 50,
+ "ellipsis": "…",
+ "player-icons": {
+ "default": "▶",
+ "mpv": "🎵"
+ },
+ "status-icons": {
+ "paused": "⏸"
+ }
+ },
+ "bluetooth": {
+ "format": " {status}",
+ "on-click": "overskride",
+ "format-connected": " {device_alias}",
+ "format-connected-battery": " {device_alias} {device_battery_percentage}%",
+ "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
+ "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
+ "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
+ "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%"
+ },
+ "custom/alhp": {
+ "exec": "$HOME/.config/waybar/scripts/alhp.sh",
+ "format": "{} \uEB29 ",
+ "return-type": "json",
+ "interval": 60,
+ "tooltip": true
+ }
+}
diff --git a/.config/waybar/scripts/alhp.sh b/.config/waybar/scripts/alhp.sh
new file mode 100755
index 0000000..5f83b55
--- /dev/null
+++ b/.config/waybar/scripts/alhp.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+
+# Retrieve JSON output from alhp.utils.
+readonly ALHP_OUTPUT=$(alhp.utils -j)
+
+# Extract "total" as a string and read "packages" into a Bash array.
+readonly total=$(echo "$ALHP_OUTPUT" | jq -r '.total | tostring')
+readarray -t packages < <(echo "$ALHP_OUTPUT" | jq -r '.packages[]?')
+
+# Initialize default tooltip and class.
+tooltip=''
+class='good'
+
+# Use arithmetic evaluation to check if total is greater than 0.
+if (( total > 0 )); then
+ class='bad'
+fi
+
+# If there are any packages, join them with newline as separator.
+if (( ${#packages[@]} > 0 )); then
+ tooltip=$(IFS=$'\n'; echo "${packages[*]}")
+else
+ tooltip="All good"
+fi
+
+# Generate compact JSON output (all in one line) with jq.
+jq -nc --arg text "$total" --arg class "$class" --arg tooltip "$tooltip" \
+ '{text: $text, class: $class, tooltip: $tooltip}'
diff --git a/.config/waybar/style.css##hostname.cn-arch b/.config/waybar/style.css##hostname.cn-arch
index 399aea2..338888a 100644
--- a/.config/waybar/style.css##hostname.cn-arch
+++ b/.config/waybar/style.css##hostname.cn-arch
@@ -1,3 +1,22 @@
+
+/*base background color*/
+@define-color bg_main rgba(25, 25, 25, 0.65);
+@define-color bg_main_tooltip rgba(0, 0, 0, 0.7);
+
+
+/*base background color of selections */
+@define-color bg_hover rgba(200, 200, 200, 0.3);
+/*base background color of active elements */
+@define-color bg_active rgba(100, 100, 100, 0.5);
+
+/*base border color*/
+@define-color border_main rgba(255, 255, 255, 0.2);
+
+/*text color for entries, views and content in general */
+@define-color content_main white;
+/*text color for entries that are unselected */
+@define-color content_inactive rgba(255, 255, 255, 0.25);
+
* {
text-shadow: none;
box-shadow: none;
@@ -14,6 +33,7 @@ window#waybar {
}
tooltip {
+ font-size: 14px;
background: @bg_main_tooltip;
border-radius: 5px;
border-width: 1px;
@@ -24,6 +44,11 @@ tooltip label{
color: @content_main;
}
+.module {
+ margin-left: 2px;
+ margin-right: 2px;
+}
+
#workspaces {
color: transparent;
margin-right: 1.5px;
@@ -32,18 +57,16 @@ tooltip label{
#workspaces button {
padding: 3px;
color: @content_inactive;
- transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
}
#workspaces button.active {
- color: @content_main;
- border-bottom: 3px solid white;
+ color: whitesmoke;
+ background: @bg_active;
}
#workspaces button.focused {
color: @bg_active;
}
#workspaces button.urgent {
- background: rgba(255, 200, 0, 0.35);
- border-bottom: 3px dashed @warning_color;
+ background: rgba(255, 200, 0, 0.35);
color: @warning_color;
}
#workspaces button:hover {
@@ -52,26 +75,9 @@ tooltip label{
}
#cpu, #disk, #memory {
- padding: 5px;
-}
-
-#temperature {
- color: transparent;
- font-size: 0px;
- transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
-}
-#temperature.critical {
- padding-right: 3px;
- color: @warning_color;
- font-size: initial;
- border-bottom: 3px dashed @warning_color;
- transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
-}
-
-#window {
- border-radius: 10px;
- margin-left: 20px;
- margin-right: 20px;
+ border-bottom: 1px solid grey;
+ padding-right: 5px;
+ padding-left: 5px;
}
#tray{
@@ -95,9 +101,9 @@ tooltip label{
}
#pulseaudio {
- font-family: "Inconsolata Go Nerd Font";
+ border-bottom: 1px solid grey;
+ padding-right: 5px;
padding-left: 5px;
- padding-right: 1rem;
transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
}
#pulseaudio:hover {
@@ -105,13 +111,9 @@ tooltip label{
}
#network {
- padding-left: 5px;
+ border-bottom: 1px solid grey;
padding-right: 5px;
-}
-
-#language {
padding-left: 5px;
- padding-right: 5px;
}
#clock {
@@ -122,3 +124,79 @@ tooltip label{
#clock:hover {
background: @bg_hover;
}
+
+#privacy {
+}
+#privacy-item {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+#privacy-item.screenshare {
+ background: #850404;
+}
+#privacy-item.audio-in {
+ background: #6c045e;
+}
+#privacy-item.audio-out {
+ background: #02605b;
+}
+
+#mpris {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+#mpris.playing {
+}
+#mpris.paused {
+}
+#mpris.stopped {
+}
+#mpris.firefox {
+ border-bottom: 1px solid #fd8728;
+}
+#mpris.spotify {
+ border-bottom: 1px solid #17d860;
+}
+#mpris.mpv {
+ border-bottom: 1px solid #420042;
+}
+#mpris.chromium {
+ border-bottom: 1px solid #1a73e8;
+}
+
+#bluetooth {
+ padding-right: 5px;
+ padding-left: 5px;
+}
+#bluetooth.disabled {
+ border-bottom: 1px solid grey;
+}
+#bluetooth.off {
+ border-bottom: 1px solid grey;
+}
+#bluetooth.on {
+ border-bottom: 1px solid #0059fd;
+}
+#bluetooth.connected {
+ border-bottom: 1px solid #00b7fa;
+}
+#bluetooth.discoverable {
+}
+#bluetooth.discovering {
+}
+#bluetooth.pairable {
+}
+#bluetooth.no-controller {
+ background: darkred;
+}
+
+#custom-alhp {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+#custom-alhp.good {
+ border-bottom: 1px solid greenyellow;
+}
+#custom-alhp.bad {
+ border-bottom: 1px solid orangered;
+}
diff --git a/.config/waybar/style.css##hostname.cn-mate b/.config/waybar/style.css##hostname.cn-mate
new file mode 100644
index 0000000..338888a
--- /dev/null
+++ b/.config/waybar/style.css##hostname.cn-mate
@@ -0,0 +1,202 @@
+
+/*base background color*/
+@define-color bg_main rgba(25, 25, 25, 0.65);
+@define-color bg_main_tooltip rgba(0, 0, 0, 0.7);
+
+
+/*base background color of selections */
+@define-color bg_hover rgba(200, 200, 200, 0.3);
+/*base background color of active elements */
+@define-color bg_active rgba(100, 100, 100, 0.5);
+
+/*base border color*/
+@define-color border_main rgba(255, 255, 255, 0.2);
+
+/*text color for entries, views and content in general */
+@define-color content_main white;
+/*text color for entries that are unselected */
+@define-color content_inactive rgba(255, 255, 255, 0.25);
+
+* {
+ text-shadow: none;
+ box-shadow: none;
+ border: none;
+ border-radius: 0;
+ font-family: "Inconsolata Go Nerd Font";
+ font-size: 14px;
+}
+
+window#waybar {
+ background: @bg_main;
+ border-top: 1px solid @border_main;
+ color: @content_main;
+}
+
+tooltip {
+ font-size: 14px;
+ background: @bg_main_tooltip;
+ border-radius: 5px;
+ border-width: 1px;
+ border-style: solid;
+ border-color: @border_main;
+}
+tooltip label{
+ color: @content_main;
+}
+
+.module {
+ margin-left: 2px;
+ margin-right: 2px;
+}
+
+#workspaces {
+ color: transparent;
+ margin-right: 1.5px;
+ margin-left: 1.5px;
+}
+#workspaces button {
+ padding: 3px;
+ color: @content_inactive;
+}
+#workspaces button.active {
+ color: whitesmoke;
+ background: @bg_active;
+}
+#workspaces button.focused {
+ color: @bg_active;
+}
+#workspaces button.urgent {
+ background: rgba(255, 200, 0, 0.35);
+ color: @warning_color;
+}
+#workspaces button:hover {
+ background: @bg_hover;
+ color: @content_main;
+}
+
+#cpu, #disk, #memory {
+ border-bottom: 1px solid grey;
+ padding-right: 5px;
+ padding-left: 5px;
+}
+
+#tray{
+ padding-left: 5px;
+ padding-right: 5px;
+}
+#tray > .passive {
+ border-bottom: none;
+}
+#tray > .active {
+
+}
+#tray > .needs-attention {
+ border-bottom: 3px solid @warning_color;
+}
+#tray > widget {
+ transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
+}
+#tray > widget:hover {
+ background: @bg_hover;
+}
+
+#pulseaudio {
+ border-bottom: 1px solid grey;
+ padding-right: 5px;
+ padding-left: 5px;
+ transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
+}
+#pulseaudio:hover {
+ background: @bg_hover;
+}
+
+#network {
+ border-bottom: 1px solid grey;
+ padding-right: 5px;
+ padding-left: 5px;
+}
+
+#clock {
+ padding-right: 5px;
+ padding-left: 5px;
+ transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
+}
+#clock:hover {
+ background: @bg_hover;
+}
+
+#privacy {
+}
+#privacy-item {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+#privacy-item.screenshare {
+ background: #850404;
+}
+#privacy-item.audio-in {
+ background: #6c045e;
+}
+#privacy-item.audio-out {
+ background: #02605b;
+}
+
+#mpris {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+#mpris.playing {
+}
+#mpris.paused {
+}
+#mpris.stopped {
+}
+#mpris.firefox {
+ border-bottom: 1px solid #fd8728;
+}
+#mpris.spotify {
+ border-bottom: 1px solid #17d860;
+}
+#mpris.mpv {
+ border-bottom: 1px solid #420042;
+}
+#mpris.chromium {
+ border-bottom: 1px solid #1a73e8;
+}
+
+#bluetooth {
+ padding-right: 5px;
+ padding-left: 5px;
+}
+#bluetooth.disabled {
+ border-bottom: 1px solid grey;
+}
+#bluetooth.off {
+ border-bottom: 1px solid grey;
+}
+#bluetooth.on {
+ border-bottom: 1px solid #0059fd;
+}
+#bluetooth.connected {
+ border-bottom: 1px solid #00b7fa;
+}
+#bluetooth.discoverable {
+}
+#bluetooth.discovering {
+}
+#bluetooth.pairable {
+}
+#bluetooth.no-controller {
+ background: darkred;
+}
+
+#custom-alhp {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+#custom-alhp.good {
+ border-bottom: 1px solid greenyellow;
+}
+#custom-alhp.bad {
+ border-bottom: 1px solid orangered;
+}