This commit is contained in:
Michael Moese 2025-07-25 14:19:20 +02:00
parent 07816eb302
commit 09d717fab8
63 changed files with 2945 additions and 34 deletions

View file

@ -0,0 +1,145 @@
{
"layer": "bottom",
"position": "bottom",
"height": 30,
"modules-left": ["sway/workspaces", "sway/mode", "sway/window"],
"modules-center": ["clock"],
"modules-right": ["cpu","memory","temperature", "custom/gpu","tray"],
"clock#time": {
"interval": 1,
"format": "{:%H:%M:%S}",
"tooltip": false
},
"clock#date": {
"interval": 10,
"format": " {:%e %b %Y}", // Icon: calendar-alt
"tooltip-format": "{:%e %B %Y}"
},
"cpu": {
"interval": 5,
"format": " {usage}% ({load})", // Icon: microchip
"states": {
"warning": 70,
"critical": 90
}
},
"custom/keyboard-layout": {
"exec": "swaymsg -t get_inputs | grep -m1 'xkb_active_layout_name' | cut -d '\"' -f4",
// Interval set only as a fallback, as the value is updated by signal
"interval": 30,
"format": " {}", // Icon: keyboard
// Signal sent by Sway key binding (~/.config/sway/key-bindings)
"signal": 1, // SIGHUP
"tooltip": false
},
"memory": {
"interval": 5,
"format": " {}%", // Icon: memory
"states": {
"warning": 70,
"critical": 90
}
},
"network": {
"interface": "tun0",
"interval": 5,
"format": "🔒 VPN up",
"format-disconnected": "🔓 VPN down",
"tooltip-format": "{ifname} {ipaddr}"
},
"sway/mode": {
"format": "<span style=\"italic\"> {}</span>", // Icon: expand-arrows-alt
"tooltip": false
},
"sway/window": {
"format": "{}",
"max-length": 120
},
"sway/workspaces": {
"persistent_workspaces": {
"1": [],
"2": [],
"3": [],
"4": [],
"5": [],
"6": [],
"7": [],
"8": [],
"9": [],
"10": []
},
"disable-scroll": true,
"all-outputs": true,
"format": "{name}",
"on-click": "activate",
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-bluetooth": "{icon} {volume}%",
"format-muted": "",
"format-icons": {
"headphones": "",
"handsfree": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", ""]
},
"on-click": "pavucontrol"
},
"temperature": {
"critical-threshold": 80,
"interval": 5,
"format": "{icon} CPU: {temperatureC}°C",
"format-icons": [
"", // Icon: temperature-empty
"", // Icon: temperature-quarter
"", // Icon: temperature-half
"", // Icon: temperature-three-quarters
"" // Icon: temperature-full
],
"tooltip": true
},
"tray": {
"icon-size": 21,
"spacing": 10
},
"custom/vpn": {
"exec": "~/.config/waybar/scripts/vpn-status.sh",
"interval": 5,
"return-type": "text",
"tooltip": false
},
"custom/gpu": {
"exec": "~/.config/waybar/scripts/gpu-temp.sh",
"interval": 10,
"return-type": "json",
"tooltip": false
},
"custom/powermenu": {
"return-type": "json",
"exec": "/home/michael/.config/waybar/modules/powermenu.sh",
"format": "<span font='Font Awesome 5 Free 9'>{icon}</span> {}",
"format-icons": [""],
"interval": 3600,
"escape": true,
"on-click": "/home/marco/.config/wofi/wofi-power.sh"
},
}

View file

@ -0,0 +1,195 @@
// =============================================================================
//
// Waybar configuration
//
// Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
//
// =============================================================================
{
// -------------------------------------------------------------------------
// Global configuration
// -------------------------------------------------------------------------
"layer": "bottom",
"position": "bottom",
// If height property would be not present, it'd be calculated dynamically
"height": 30,
"modules-left": [
"hyprland/workspaces",
"sway/mode"
],
"modules-center": [
"sway/window"
],
"modules-right": [
"custom/vpn",
"memory",
"cpu",
"custom/gpu",
"temperature",
"clock#date",
"clock#time",
"tray"
],
// -------------------------------------------------------------------------
// Modules
// -------------------------------------------------------------------------
"clock#time": {
"interval": 1,
"format": "{:%H:%M:%S}",
"tooltip": false
},
"clock#date": {
"interval": 10,
"format": " {:%e %b %Y}", // Icon: calendar-alt
"tooltip-format": "{:%e %B %Y}"
},
"cpu": {
"interval": 5,
"format": " {usage}% ({load})", // Icon: microchip
"states": {
"warning": 70,
"critical": 90
}
},
"custom/keyboard-layout": {
"exec": "swaymsg -t get_inputs | grep -m1 'xkb_active_layout_name' | cut -d '\"' -f4",
// Interval set only as a fallback, as the value is updated by signal
"interval": 30,
"format": " {}", // Icon: keyboard
// Signal sent by Sway key binding (~/.config/sway/key-bindings)
"signal": 1, // SIGHUP
"tooltip": false
},
"memory": {
"interval": 5,
"format": " {}%", // Icon: memory
"states": {
"warning": 70,
"critical": 90
}
},
"network": {
"interface": "tun0",
"interval": 5,
"format": "🔒 VPN up",
"format-disconnected": "🔓 VPN down",
"tooltip-format": "{ifname} {ipaddr}"
},
// "network": {
// "interval": 5,
// "format-wifi": " {essid} ({signalStrength}%)", // Icon: wifi
// "format-ethernet": " {ifname}: {ipaddr}/{cidr}", // Icon: ethernet
// "format-disconnected": "⚠ Disconnected",
// "tooltip-format": "{ifname}: {ipaddr}"
// },
"sway/mode": {
"format": "<span style=\"italic\"> {}</span>", // Icon: expand-arrows-alt
"tooltip": false
},
"sway/window": {
"format": "{}",
"max-length": 120
},
"sway/workspaces": {
"persistent_workspaces": {
"1": [],
"2": [],
"3": [],
"4": [],
"5": [],
"6": [],
"7": [],
"8": [],
"9": [],
"10": []
},
"disable-scroll": true,
"all-outputs": false,
// "format": "({name}){icon}",
// "format-icons": {
// "1": "",
// "2": "",
// "3": "",
// "4": "",
// "5": "",
// "1": "",
// "2": "",
// "3": "",
// "4": "🪲 Debug",
// "5": "📁 Files",
// "6": "🎧 Music",
// "7": "⏵ Video",
// "8": "🗨 IRC",
// "9": "Steam",
// "10":"Scratch",
// },
},
"pulseaudio": {
//"scroll-step": 1,
"format": "{icon} {volume}%",
"format-bluetooth": "{icon} {volume}%",
"format-muted": "",
"format-icons": {
"headphones": "",
"handsfree": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", ""]
},
"on-click": "pavucontrol"
},
"temperature": {
"critical-threshold": 80,
"interval": 5,
"format": "{icon} {temperatureC}°C",
"format-icons": [
"", // Icon: temperature-empty
"", // Icon: temperature-quarter
"", // Icon: temperature-half
"", // Icon: temperature-three-quarters
"" // Icon: temperature-full
],
"tooltip": true
},
"tray": {
"icon-size": 21,
"spacing": 10
},
"custom/vpn": {
"exec": "~/.config/waybar/scripts/vpn-status.sh",
"interval": 5,
"return-type": "text",
"tooltip": false
},
"custom/gpu": {
"exec": "~/.config/waybar/scripts/gpu-temp.sh",
"interval": 10,
"return-type": "json",
"tooltip": false
}
}

10
waybar/.config/waybar/launch.sh Executable file
View file

@ -0,0 +1,10 @@
#!/usr/bin/env sh
# Terminate already running bar instances
killall -q waybar
# Wait until the processes have been shut down
while pgrep -x waybar >/dev/null; do sleep 1; done
# Launch main
waybar

View file

@ -0,0 +1,207 @@
// __ __ _ _
// | \/ | ___ __| |_ _| | ___ ___
// | |\/| |/ _ \ / _` | | | | |/ _ \/ __|
// | | | | (_) | (_| | |_| | | __/\__ \
// |_| |_|\___/ \__,_|\__,_|_|\___||___/
//
//
// by Stephan Raabe (2023)
// -----------------------------------------------------
//
{
// Workspaces
"hyprland/workspaces" : {
"on-click": "activate",
"active-only": false,
"all-outputs": true,
"format": "{}",
"format-icons": {
"urgent": "",
"active": "",
"default": ""
},
"persistent-workspaces": {
"*": 5
}
},
// Hyprland Window
"hyprland/window": {
"rewrite": {
"(.*) - Brave": "$1",
"(.*) - Chromium": "$1",
"(.*) - Brave Search": "$1",
"(.*) - Outlook": "$1",
"(.*) Microsoft Teams": "$1"
},
"separate-outputs": true
},
// Rofi Application Launcher
"custom/appmenu": {
"format": "Apps",
"tooltip-format": "Left: Open the application launcher\nRight: Show all keybindings",
"on-click": "rofi -show drun -replace",
"on-click-right": "~/.config/ml4w/scripts/keybindings.sh",
"tooltip": false
},
// Power Menu
"custom/exit": {
"format": "",
"tooltip-format": "Powermenu",
"on-click": "wlogout -b 4",
"tooltip": false
},
// Keyboard State
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{name} {icon}",
"format-icons": {
"locked": "",
"unlocked": ""
}
},
// System tray
"tray": {
// "icon-size": 21,
"spacing": 10
},
// Clock
"clock": {
// "timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}"
},
// System
"custom/system": {
"format": "",
"tooltip": false
},
// CPU
"cpu": {
"format": "/ C {usage}% ",
"on-click": "alacritty -e htop"
},
// Memory
"memory": {
"format": "/ M {}% ",
"on-click": "alacritty -e htop"
},
// Harddisc space used
"disk": {
"interval": 30,
"format": "D {percentage_used}% ",
"path": "/",
"on-click": "alacritty -e htop"
},
"hyprland/language": {
"format": "/ K {short}"
},
// Group Hardware
"group/hardware": {
"orientation": "inherit",
"drawer": {
"transition-duration": 300,
"children-class": "not-memory",
"transition-left-to-right": false
},
"modules": [
"custom/system",
"disk",
"cpu",
"memory",
"hyprland/language"
]
},
// Network
"network": {
"format": "{ifname}",
"format-wifi": " {essid} ({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": "~/.config/ml4w/settings/networkmanager.sh",
"on-click-right": "~/.config/ml4w/scripts/nm-applet.sh toggle",
},
// Battery
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-alt": "{icon} {time}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": [" ", " ", " ", " ", " "]
},
// Pulseaudio
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
// "format": "{icon} {volume}%",
"format": "{icon}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", " ", " "]
},
"on-click": "pavucontrol"
},
// Bluetooth
"bluetooth": {
"format-disabled": "",
"format-off": "",
"interval": 30,
"on-click": "blueman-manager",
"format-no-controller": ""
},
// Other
"user": {
"format": "{user}",
"interval": 60,
"icon": false,
},
// Idle Inhibator
"idle_inhibitor": {
"format": "{icon}",
"tooltip": true,
"format-icons":{
"activated": "",
"deactivated": ""
},
"on-click-right": "hyprlock"
}
}

View file

@ -0,0 +1,7 @@
#!/bin/bash
me=`whoami`
me_name=`getent passwd ${me} | cut -d ':' -f 5 | cut -d ',' -f 1`
class=powermenu
echo -e "{\"text\":\""$me_name"\", \"class\":\""$class"\"}"

View file

@ -0,0 +1,16 @@
{
"layer": "bottom",
"position": "bottom",
"modules-left": ["sway/workspaces"],
"modules-center": ["clock"],
"modules-right": ["network", "pulseaudio", "cpu", "tray"],
"clock": {
"format": "{:%a %d %b %H:%M}"
},
"cpu": {
"format": "{usage}% CPU"
},
"tray": {
"icon-theme": "Papirus"
}
}

View file

@ -0,0 +1,34 @@
* {
font-family: "JetBrains Mono", monospace;
font-size: 11px;
background-color: #121212; /* dunkles Grau/Schwarz */
color: #c0c0c0; /* helles Grau */
}
#sway-workspaces {
background-color: #1f2335; /* dunkles Blau/Grau */
color: #a0a0a0;
padding: 0 12px;
border-radius: 6px;
}
#sway-workspaces > .focused {
background-color: #5c7eae; /* kühles Blau */
color: #1a1a1a;
font-weight: bold;
box-shadow: 0 0 8px 2px rgba(92, 126, 174, 0.8);
border-radius: 6px;
padding: 0 12px;
transition: background-color 0.3s ease;
}
#sway-workspaces .urgent {
background-color: #e06c75; /* rotes Accent */
color: #1a1a1a;
border-radius: 6px;
padding: 0 12px;
}
#clock, #network, #pulseaudio, #battery, #cpu {
padding: 0 12px;
}

View file

@ -0,0 +1,504 @@
/*
* __ __ _ ____ _ _
* \ \ / /_ _ _ _| |__ __ _ _ __ / ___|| |_ _ _| | ___
* \ \ /\ / / _` | | | | '_ \ / _` | '__| \___ \| __| | | | |/ _ \
* \ V V / (_| | |_| | |_) | (_| | | ___) | |_| |_| | | __/
* \_/\_/ \__,_|\__, |_.__/ \__,_|_| |____/ \__|\__, |_|\___|
* |___/ |___/
*
* by Stephan Raabe (2024)
* -----------------------------------------------------
*/
@define-color backgroundlight #FFFFFF;
@define-color backgrounddark #FFFFFF;
@define-color workspacesbackground1 #FFFFFF;
@define-color workspacesbackground2 #CCCCCC;
@define-color bordercolor #FFFFFF;
@define-color textcolor1 #000000;
@define-color textcolor2 #000000;
@define-color textcolor3 #000000;
@define-color iconcolor #FFFFFF;
/* -----------------------------------------------------
* General
* ----------------------------------------------------- */
* {
font-family: "Fira Sans Semibold", "Font Awesome 6 Free", FontAwesome, Roboto, Helvetica, Arial, sans-serif;
border: none;
border-radius: 0px;
}
window#waybar {
background-color: rgba(0,0,0,0.8);
border-bottom: 0px solid #ffffff;
/* color: #FFFFFF; */
background: transparent;
transition-property: background-color;
transition-duration: .5s;
}
/* -----------------------------------------------------
* Workspaces
* ----------------------------------------------------- */
#workspaces {
background: @workspacesbackground1;
margin: 2px 18px 3px 1px;
padding: 0px 2px;
border-radius: 5px 5px 5px 5px;
font-weight: bold;
font-style: normal;
opacity: 1.0;
color: @textcolor1;
}
#workspaces button {
padding: 0px 6px;
margin: 3px 2px;
border-radius: 3px 3px 3px 3px;
color: @textcolor1;
background-color: @workspacesbackground2;
transition: all 0.1s linear;
opacity: 0.4;
}
#workspaces button.active {
color: @textcolor1;
background: @workspacesbackground2;
border-radius: 3px 3px 3px 3px;
min-width: 30px;
transition: all 0.1s linear;
opacity:1.0;
}
#workspaces button:hover {
color: @textcolor1;
background: @workspacesbackground2;
border-radius: 5px 5px 5px 5px;
opacity:0.7;
}
/* -----------------------------------------------------
* Tooltips
* ----------------------------------------------------- */
tooltip {
border-radius: 16px;
background-color: @backgroundlight;
opacity:0.9;
padding:20px;
margin:0px;
}
tooltip label {
color: @textcolor2;
}
/* -----------------------------------------------------
* Window
* ----------------------------------------------------- */
#window {
margin: 3px 15px 3px 0px;
padding: 2px 10px 0px 10px;
border-radius: 5px 5px 5px 5px;
color:white;
font-size:16px;
font-weight:normal;
opacity:1.0;
}
window#waybar.empty #window {
background-color:transparent;
}
/* -----------------------------------------------------
* Taskbar
* ----------------------------------------------------- */
#taskbar {
background: @backgroundlight;
margin: 3px 15px 3px 0px;
padding:0px;
border-radius: 5px 5px 5px 5px;
font-weight: normal;
font-style: normal;
opacity:1.0;
border: 3px solid @backgroundlight;
}
#taskbar button {
margin:0;
border-radius: 5px 5px 5px 5px;
padding: 0px 5px 0px 5px;
}
#taskbar.empty {
background:transparent;
border:0;
padding:0;
margin:0;
}
/* -----------------------------------------------------
* Modules
* ----------------------------------------------------- */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
/* -----------------------------------------------------
* Custom Quicklinks
* ----------------------------------------------------- */
#custom-brave,
#custom-browser,
#custom-keybindings,
#custom-outlook,
#custom-filemanager,
#custom-teams,
#custom-chatgpt,
#custom-calculator,
#custom-windowsvm,
#custom-cliphist,
#custom-settings,
#custom-wallpaper,
#custom-system,
#custom-hyprshade,
#custom-hypridle,
#custom-tools,
#custom-quicklink1,
#custom-quicklink2,
#custom-quicklink3,
#custom-quicklink4,
#custom-quicklink5,
#custom-quicklink6,
#custom-quicklink7,
#custom-quicklink8,
#custom-quicklink9,
#custom-quicklink10,
#custom-quicklink_chromium,
#custom-quicklink_edge,
#custom-quicklink_firefox,
#custom-quicklink_browser,
#custom-quicklink_filemanager,
#custom-quicklink_email,
#custom-quicklink_thunderbird,
#custom-quicklink_calculator,
#custom-waybarthemes {
margin-right: 10px;
font-size: 20px;
font-weight: bold;
opacity: 1.0;
color: @iconcolor;
}
#custom-quicklink1,
#custom-quicklink2,
#custom-quicklink3,
#custom-quicklink4,
#custom-quicklink5,
#custom-quicklink6,
#custom-quicklink7,
#custom-quicklink8,
#custom-quicklink9,
#custom-quicklink10 {
margin-right: 10px;
}
#custom-tools {
margin-right:12px;
}
#custom-hypridle.active {
color: @iconcolor;
}
#custom-hypridle.notactive {
color: #dc2f2f;
}
#custom-ml4w-welcome {
margin-right: 12px;
background-image: url("../assets/ml4w-icon.svg");
background-position: center;
background-repeat: no-repeat;
background-size: contain;
padding-right: 20px;
}
#custom-chatgpt {
margin-right: 16px;
background-image: url("../assets/openai.svg");
background-repeat: no-repeat;
background-position: center;
background-size: contain;
padding-right: 18px;
opacity: 0.8;
}
/* -----------------------------------------------------
* Idle Inhibator
* ----------------------------------------------------- */
#idle_inhibitor {
margin-right: 15px;
font-size: 22px;
font-weight: bold;
opacity: 0.8;
color: @iconcolor;
}
#idle_inhibitor.activated {
margin-right: 15px;
font-size: 20px;
font-weight: bold;
opacity: 0.8;
color: #dc2f2f;
}
/* -----------------------------------------------------
* Custom Modules
* ----------------------------------------------------- */
#custom-appmenu {
background-color: @backgrounddark;
font-size: 16px;
color: @textcolor1;
border-radius: 5px 5px 5px 5px;
padding: 0px 10px 0px 10px;
margin: 2px 17px 2px 0px;
opacity:1.0;
border:3px solid @bordercolor;
}
/* -----------------------------------------------------
* Custom Notification
* ----------------------------------------------------- */
#custom-notification {
margin: 0px 13px 0px 0px;
padding:0px;
font-size:20px;
color: @iconcolor;
opacity: 0.8;
}
/* -----------------------------------------------------
* Custom Exit
* ----------------------------------------------------- */
#custom-exit {
margin: 0px 13px 0px 0px;
padding:0px;
font-size:20px;
color: @iconcolor;
opacity: 0.8;
}
/* -----------------------------------------------------
* Custom Updates
* ----------------------------------------------------- */
#custom-updates {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 5px 5px 5px 5px;
padding: 2px 10px 0px 10px;
margin: 3px 15px 3px 0px;
opacity:1.0;
}
#custom-updates.green {
background-color: @backgroundlight;
}
#custom-updates.yellow {
background-color: #ff9a3c;
color: #FFFFFF;
}
#custom-updates.red {
background-color: #dc2f2f;
color: #FFFFFF;
}
/* -----------------------------------------------------
* Hardware Group
* ----------------------------------------------------- */
#disk,#memory,#cpu,#language {
margin:0px 10px 0px 0px;
padding:0px;
font-size:16px;
color:@iconcolor;
}
#language {
margin-right:10px;
}
/* -----------------------------------------------------
* Power Profiles Daemon
* ----------------------------------------------------- */
#power-profiles-daemon {
margin: 0px 13px 0px 0px;
padding:0px;
font-size:16px;
color:@iconcolor;
}
/* -----------------------------------------------------
* Clock
* ----------------------------------------------------- */
#clock {
background-color: @backgrounddark;
font-size: 16px;
color: @textcolor1;
border-radius: 3px 5px 3px 5px;
padding: 1px 10px 0px 10px;
margin: 3px 10px 3px 0px;
opacity:1.0;
border:3px solid @bordercolor;
}
/* -----------------------------------------------------
* Backlight
* ----------------------------------------------------- */
#backlight {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 5px 5px 5px 5px;
padding: 2px 10px 0px 10px;
margin: 3px 15px 3px 0px;
opacity:1.0;
}
/* -----------------------------------------------------
* Pulseaudio
* ----------------------------------------------------- */
#pulseaudio {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 5px 5px 5px 5px;
padding: 2px 10px 0px 10px;
margin: 3px 15px 3px 0px;
opacity:1.0;
}
#pulseaudio.muted {
background-color: @backgrounddark;
color: @textcolor1;
}
/* -----------------------------------------------------
* Network
* ----------------------------------------------------- */
#network {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 5px 5px 5px 5px;
padding: 2px 10px 0px 10px;
margin: 3px 15px 3px 0px;
opacity:1.0;
}
#network.ethernet {
background-color: @backgroundlight;
color: @textcolor2;
}
#network.wifi {
background-color: @backgroundlight;
color: @textcolor2;
}
/* -----------------------------------------------------
* Bluetooth
* ----------------------------------------------------- */
#bluetooth, #bluetooth.on, #bluetooth.connected {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 5px 5px 5px 5px;
padding: 2px 10px 0px 10px;
margin: 3px 15px 3px 0px;
opacity:1.0;
}
#bluetooth.off {
background-color: transparent;
padding: 0px;
margin: 0px;
}
/* -----------------------------------------------------
* Battery
* ----------------------------------------------------- */
#battery {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 5px 5px 5px 5px;
padding: 2px 15px 0px 10px;
margin: 3px 15px 3px 0px;
opacity:1.0;
}
#battery.charging, #battery.plugged {
color: @textcolor2;
background-color: @backgroundlight;
}
@keyframes blink {
to {
background-color: @backgroundlight;
color: @textcolor2;
}
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: @textcolor3;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
/* -----------------------------------------------------
* Tray
* ----------------------------------------------------- */
#tray {
padding: 0px 15px 0px 0px;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
}

View file

@ -0,0 +1,16 @@
#!/bin/bash
# Junction-Temperatur auslesen
TEMP_RAW=$(sensors | grep 'junction:' | awk '{print $2}' | tr -d '+°C')
TEMP_INT=${TEMP_RAW%.*} # Ganzzahl
# Farbliche Klassifikation
if [ "$TEMP_INT" -lt 55 ]; then
CLASS="cool" # grün
elif [ "$TEMP_INT" -lt 75 ]; then
CLASS="warm" # gelb/orange
else
CLASS="hot" # rot
fi
echo "{\"text\": \"GPU: ${TEMP_RAW}°C\", \"class\": \"${CLASS}\"}"

View file

@ -0,0 +1,7 @@
#!/bin/bash
if nmcli con show --active | grep -qi vpn; then
echo "🔒 VPN connected"
else
echo "🔓 VPN disconnected"
fi

View file

@ -0,0 +1,125 @@
#waybar {
font-family: "JetBrainsMono Nerd Font", monospace;
font-size: 14px;
}
#window {
padding: 0 10px;
}
window#waybar {
border: none;
border-radius: 0;
box-shadow: none;
text-shadow: none;
transition-duration: 0s;
color: rgba(217, 216, 216, 1);
background: #1a1b26;
}
#workspaces {
margin: 0 5px;
}
#workspaces button {
padding: 0 6px;
margin: 0 2px;
border-radius: 4px;
border: none;
background: transparent;
color: #c0caf5; /* normale Textfarbe */
font-weight: normal;
}
#workspaces button.focused {
border-bottom: 2px solid #7aa2f7; /* unterstrichenes aktiviertes WS */
color: #7aa2f7; /* aktive Farbe */
font-weight: bold;
}
#workspaces button.urgent {
color: #f7768e;
}
#workspaces button.empty {
color: #565f89; /* gedimmt für leere */
}
#workspaces button:hover {
box-shadow: inherit;
border-color: #bb9af7;
color: #bb9af7;
}
/* Repeat style here to ensure properties are overwritten as there's no !important and button:hover above resets the colour */
#workspaces button.focused {
color: #7aa2f7;
}
#workspaces button.focused:hover {
color: #bb9af7;
}
#pulseaudio {
/* font-size: 26px; */
}
#custom-recorder {
font-size: 18px;
margin: 2px 7px 0px 7px;
color:#ee2e24;
}
#tray,
#mode,
#battery,
#temperature,
#cpu,
#memory,
#network,
#pulseaudio,
#idle_inhibitor,
#sway-language,
#backlight,
#custom-storage,
#custom-cpu_speed,
#custom-powermenu,
#custom-spotify,
#custom-weather,
#custom-mail,
#custom-media {
margin: 0px 0px 0px 10px;
padding: 0 5px;
/* border-top: 3px solid rgba(217, 216, 216, 0.5); */
}
/* #clock {
margin: 0px 16px 0px 10px;
min-width: 140px;
} */
#battery.warning {
color: rgba(255, 210, 4, 1);
}
#battery.critical {
color: rgba(238, 46, 36, 1);
}
#battery.charging {
color: rgba(217, 216, 216, 1);
}
#custom-storage.warning {
color: rgba(255, 210, 4, 1);
}
#custom-storage.critical {
color: rgba(238, 46, 36, 1);
}
@keyframes blink {
to {
background-color: #ffffff;
color: black;
}
}

View file

@ -0,0 +1,144 @@
* {
border: none;
border-radius: 0;
font-family: VictorMono Nerd Font;
font-weight: 600;
font-size: 12px;
min-height: 0;
}
window#waybar {
background: #12131a;
color: white;
}
#workspaces {
background-color: #1d202e;
margin: 5px;
margin-left: 6px;
border-radius: 5px;
}
#workspaces button {
padding: 2px 8px;
color: #fff;
}
#workspaces button.focused {
color: #24283b;
background-color: #7aa2f7;
border-radius: 5px;
}
#workspaces button:hover {
background-color: #7dcfff;
color: #24283b;
border-radius: 5px;
}
#custom-date,
#clock,
#battery,
#pulseaudio,
#network {
background-color: #1d202e;
padding: 2px 10px;
margin: 5px 0px;
}
#custom-date {
color: #7dcfff;
}
#custom-power {
color: #24283b;
background-color: #db4b4b;
border-radius: 5px;
margin-right: 10px;
margin-top: 5px;
margin-bottom: 5px;
margin-left: 0px;
padding: 3px 10px;
}
#clock {
color: #b48ead;
border-radius: 0px 5px 5px 0px;
margin-right: 6px;
}
#battery {
color: #9ece6a;
}
#battery.charging {
color: #9ece6a;
}
#battery.warning:not(.charging) {
background-color: #f7768e;
color: #24283b;
border-radius: 5px 5px 5px 5px;
}
#network {
color: #f7768e;
border-radius: 5px 0px 0px 5px;
}
#pulseaudio {
color: #e0af68;
}
#temperature {
background-color: #24283b;
margin: 5px 0;
padding: 0 10px;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
color: #82e4ff;
}
#disk {
color: #b9f27c;
margin: 5px 0;
padding-right: 10px;
background-color: #24283b;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
margin-right: 3px;
}
#memory {
margin-left: 5px;
background: #2a3152;
margin: 5px 0;
padding: 0 10px;
margin-left: 3px;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
color: #ff9e64;
}
#cpu {
margin: 5px 0;
padding: 0 10px;
background-color: #2a3152;
color: #ff7a93;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
margin-right: 6px;
}
#tray {
background-color: #455085;
margin: 5px;
margin-left: 0px;
margin-right: 6px;
border-radius: 5px;
padding: 0 10px;
}
#tray > * {
padding: 0 2px;
margin: 0 2px;
}