Fix: Convert phantom submodules to regular files

This commit is contained in:
jrosh 2025-07-18 15:13:19 +02:00
commit 3a1560efac
237 changed files with 11806 additions and 2 deletions

1
waybar

@ -1 +0,0 @@
Subproject commit cd74b7857adb5c7d975a2c0122032485c2b3803e

238
waybar/config.jsonc Normal file
View file

@ -0,0 +1,238 @@
{
"layer": "top",
"position": "top",
"height": 24,
"spacing": 0,
"modules-left": [
"niri/workspaces",
"tray",
"group/power-wrapper",
"custom/keyboard"
],
"modules-center": ["niri/window"],
"modules-right": [
"network",
"battery",
"bluetooth",
"group/pulseaudio-wrapper",
"group/backlight-wrapper",
"custom/gpu-power",
"temperature",
"memory",
"cpu",
"clock"
],
"niri/workspaces": {
"format": "{icon}",
"format-icons": {
"1": "",
"2": "Ⅱ",
"3": "Ⅲ",
"4": "Ⅳ",
"5": "",
"6": "Ⅵ",
"7": "Ⅶ",
"8": "Ⅷ",
"9": "Ⅸ",
"default": "󰊠"
}
},
"group/power-wrapper": {
"orientation": "horizontal",
"drawer": {
"transition-duration": 300,
"children-class": "power-hidden",
"transition-left-to-right": false,
"click-to-reveal": true
},
"modules": [
"custom/power-button",
"custom/lock",
"custom/reboot",
"custom/power"
]
},
"niri/window": {
"format": "{title}",
"max-length": 50,
"tooltip": false
},
"custom/power-button": {
"format": "󰐥",
"tooltip": true,
"tooltip-format": "Power Menu"
},
"custom/lock": {
"format": "󰍁",
"on-click": "/home/jrosh/.local/bin/waylock",
"tooltip": true,
"tooltip-format": "Lock Screen"
},
"custom/reboot": {
"format": "󰜉",
"on-click": "zenity --question --text='Are you sure you want to reboot?' --icon-name='system-reboot' --title='Reboot System' && sleep 1 && systemctl reboot",
"tooltip": true,
"tooltip-format": "Reboot"
},
"custom/power": {
"format": "󰐥",
"on-click": "zenity --question --text='Are you sure you want to power off?' --icon-name='system-shutdown' --title='Power Off System' && sleep 1 && systemctl poweroff",
"tooltip": true,
"tooltip-format": "Power Off"
},
"custom/keyboard": {
"format": "{}",
"exec": "niri msg keyboard-layouts | grep '\\*' | awk '{print $3}' | cut -d'(' -f1",
"on-click": "niri msg action switch-layout next",
"interval": 1,
"tooltip": false
},
"network": {
"format-wifi": "󰤨 {essid}",
"format-ethernet": "󰈀 Wired",
"tooltip-format": "󰅧 {bandwidthUpBytes} 󰅢 {bandwidthDownBytes}",
"format-linked": "󱘖 {ifname} (No IP)",
"format-disconnected": "󰤭 Disconnected",
"format-alt": "󰤨 {signalStrength}%",
"interval": 1
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": "󰂄 {capacity}%",
"interval": 1,
"format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"],
"tooltip": true
},
"group/pulseaudio-wrapper": {
"orientation": "horizontal",
"drawer": {
"transition-duration": 300,
"children-class": "audio-hidden",
"transition-left-to-right": false,
"click-to-reveal": true
},
"modules": [
"pulseaudio",
"pulseaudio/slider",
"custom/audio-mute",
"custom/audio-settings"
]
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-muted": "󰖁 0%",
"format-icons": {
"headphone": "󰋋",
"hands-free": "󰋎",
"headset": "󰋎",
"phone": "󰄜",
"portable": "󰄜",
"car": "󰄋",
"default": ["󰕿", "󰖀", "󰕾"]
},
// Can't use on click events because it won't trigger drawer
//"on-click": "pavucontrol",
//"on-click-right": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
"tooltip": true,
"tooltip-format": "Volume: {volume}%"
},
"pulseaudio/slider": {
"min": 0,
"max": 100,
"orientation": "horizontal"
},
"custom/audio-settings": {
"format": "",
"tooltip": true,
"tooltip-format": "Audio Settings",
"on-click": "pavucontrol"
},
"custom/audio-mute": {
"format": "󰖁",
"tooltip": true,
"tooltip-format": "Toggle Mute",
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle"
},
"temperature": {
"critical-threshold": 80,
"format": "{icon} {temperatureC}°C",
"format-icons": ["󰜗", "󱃃", "󰸁"],
"interval": 5,
"tooltip": true,
"tooltip-format": "CPU Temperature: {temperatureC}°C"
},
"custom/gpu-power": {
"format": " {}W",
"exec": "nvidia-smi --query-gpu=power.draw --format=csv,noheader,nounits",
"tooltip": true,
"tooltip-format": "GPU Power: {} Watts",
"interval": 5
},
"memory": {
"format": "󰍛 {used:0.1f}G/{total:0.1f}G",
"tooltip": true,
"tooltip-format": "Memory: {used:0.2f}G/{total:0.2f}G"
},
"cpu": {
"format": "󰻠 {usage}%",
"tooltip": true
},
"clock": {
"interval": 1,
"format": "󰃰 {:%a:%H:%M}",
"tooltip": true,
"tooltip-format": "{:L%Y-%m-%d, %A}"
},
"tray": {
"icon-size": 14,
"spacing": 4
},
"group/backlight-wrapper": {
"orientation": "horizontal",
"drawer": {
"transition-duration": 300,
"children-class": "backlight-hidden",
"transition-left-to-right": false,
"click-to-reveal": true
},
"modules": [
"backlight",
"backlight/slider"
]
},
"backlight": {
"device": "intel_backlight",
"format": "{icon} {percent}%",
"tooltip": true,
"tooltip-format": "Brightness: {percent}%",
"format-icons": ["󰃞", "󰃝", "󰃟", "󰃠"]
},
"backlight/slider": {
"min": 1,
"max": 100,
"orientation": "horizontal",
"device": "intel_backlight"
},
"bluetooth": {
"format": "󰂯 {status}",
"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}%",
"on-click": "bluetoothctl power off",
"on-click-right": "alacritty --class floating -e bluetuith"
}
}

439
waybar/style.css Normal file
View file

@ -0,0 +1,439 @@
/* =============================================================================
WAYBAR STYLESHEET - GRUVBOX THEME
A clean, compact design using the Gruvbox color palette
============================================================================= */
/* -----------------------------------------------------------------------------
GRUVBOX COLOR PALETTE (for reference)
----------------------------------------------------------------------------- */
/*
Background: #282828 (bg)
Background 1: #3c3836 (bg1)
Background 2: #504945 (bg2)
Foreground: #ebdbb2 (fg)
Gray: #928374 (gray)
Red: #fb4934 (red)
Green: #b8bb26 (green)
Yellow: #fabd2f (yellow)
Blue: #83a598 (blue)
Purple: #d3869b (purple)
Aqua: #8ec07c (aqua)
Orange: #fe8019 (orange)
Standard padding: 2px 4px
Extended padding: 0px 10px
Standard margin: 4px
Border radius: 6px
*/
/* -----------------------------------------------------------------------------
GLOBAL SETTINGS
----------------------------------------------------------------------------- */
* {
font-family: "BlexMono Nerd Font Mono";
font-weight: 500;
font-size: 13px;
color: #ebdbb2; /* Gruvbox foreground */
}
/* Transparent Waybar background */
#waybar {
background-color: rgba(0, 0, 0, 0);
border: none;
box-shadow: none;
}
/* -----------------------------------------------------------------------------
MODULE LAYOUTS & BACKGROUNDS
----------------------------------------------------------------------------- */
/* Standard modules with full rounded corners */
#workspaces,
#window,
#tray,
#custom-keyboard {
background-color: rgba(60, 56, 54, 0.85); /* bg1 with transparency */
padding: 2px 6px;
margin-top: 2px;
margin-right: 4px;
margin-bottom: 0;
margin-left: 4px;
border-radius: 4px;
border-width: 0px;
font-size: 10px;
}
/* Clock - right-side rounded */
#clock {
background-color: rgba(60, 56, 54, 0.85); /* bg1 with transparency */
margin-top: 2px;
margin-right: 2px;
margin-bottom: 0;
margin-left: 0;
padding: 2px 6px;
border-radius: 0 4px 4px 0;
border-width: 0px;
}
/* Left-side modules - rounded left edge */
#network {
background-color: rgba(60, 56, 54, 0.85); /* bg1 with transparency */
margin-top: 2px;
margin-right: 0;
margin-bottom: 0;
margin-left: 2px;
padding: 2px 8px;
border-radius: 4px 0 0 4px;
border-width: 0px;
}
/* Middle modules - no rounded edges */
#bluetooth,
#battery,
#pulseaudio,
#backlight,
#temperature,
#memory,
#cpu,
#custom-gpu-power,
#custom-audio-settings,
#custom-audio-mute
{
background-color: rgba(60, 56, 54, 0.85); /* bg1 with transparency */
margin-top: 2px;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;
padding: 2px 6px;
border-width: 0px;
min-width: 18px;
}
#pulseaudio-slider,
#backlight-slider {
background-color: rgba(60, 56, 54, 0.85);
margin-top: 2px;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;
padding: 2px 6px;
border-width: 0px;
min-width: 18px;
}
#pulseaudio-slider slider,
#backlight-slider slider{
min-height: 0px;
min-width: 0px;
opacity: 0;
background-image: none;
border: none;
box-shadow: none;
}
#pulseaudio-slider trough,
#backlight-slider trough {
min-height: 8px;
min-width: 80px;
border-radius: 6px;
background-color: #282828; /* bg - darker for contrast */
}
#pulseaudio-slider highlight,
#backlight-slider highlight {
min-width: 4px;
border-radius: 6px;
background-color: #fabd2f; /* yellow - bright and visible */
}
#pulseaudio-slider highlight{
background-color: #8ec07c;
}
#custom-audio-settings,
#custom-audio-mute{
font-size: 16px;
}
/* -----------------------------------------------------------------------------
POWER MANAGEMENT GROUP
----------------------------------------------------------------------------- */
/* Power management drawer toggle button - standalone with full radius */
#custom-power-button {
background-color: rgba(60, 56, 54, 0.85); /* bg1 with transparency */
margin-top: 2px;
margin-right: 2px;
margin-bottom: 0;
margin-left: 2px;
padding: 2px 6px;
border-width: 0px;
border-radius: 4px;
min-width: 18px;
}
/* Lock button - first in power group, left rounded edge */
#custom-lock {
background-color: rgba(60, 56, 54, 0.85); /* bg1 with transparency */
margin-top: 2px;
margin-right: 0;
margin-bottom: 0;
margin-left: 2px;
padding: 2px 6px;
border-radius: 4px 0 0 4px;
border-width: 0px;
}
/* Reboot button - middle button, no rounded edges */
#custom-reboot {
background-color: rgba(60, 56, 54, 0.85); /* bg1 with transparency */
margin-top: 2px;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;
padding: 2px 6px;
border-width: 0px;
border-radius: 0;
min-width: 18px;
}
/* Power button - last in group, right rounded edge */
#custom-power {
background-color: rgba(60, 56, 54, 0.85); /* bg1 with transparency */
margin-top: 2px;
margin-right: 0;
margin-bottom: 0;
margin-left: 0;
padding: 2px 6px;
border-width: 0px;
border-radius: 0 4px 4px 0;
min-width: 18px;
}
.power-hidden:hover,
#custom-power-button:hover .power-hidden,
#custom-reboot:hover .power-hidden,
#custom-power:hover .power-hidden,
.backlight-hidden:hover,
#backlight:hover .backlight-hidden,
#backlight-slider:hover .power-hidden,
.audio-hidden:hover,
#pulseaudio:hover .audio-hidden,
#pulseaudio-slider:hover .audio-hidden {
opacity: 1;
}
/* -----------------------------------------------------------------------------
WORKSPACES (NIRI)
----------------------------------------------------------------------------- */
/* Default workspace buttons */
#workspaces button {
background: transparent;
border: none;
color: #928374; /* Gruvbox gray */
padding: 1px 6px;
margin: 0 1px;
font-weight: 500;
border-radius: 0;
}
/* Hovered workspace */
#workspaces button:hover {
background-color: rgba(131, 165, 152, 0.2); /* Gruvbox aqua with transparency */
padding: 1px 6px;
margin: 0 1px;
border-radius: 6px;
}
/* Active workspace */
#workspaces button.active {
background-color: #83a598; /* Gruvbox blue */
color: #282828; /* Gruvbox bg */
padding: 1px 6px;
margin: 0 1px;
border-radius: 6px;
}
/* Urgent workspace */
#workspaces button.urgent {
background-color: #fb4934; /* Gruvbox red */
color: #282828; /* Gruvbox bg */
padding: 1px 6px;
margin: 0 1px;
border-radius: 6px;
}
/* -----------------------------------------------------------------------------
WINDOW TITLE
----------------------------------------------------------------------------- */
#window {
font-weight: 400;
font-style: italic;
color: #ebdbb2; /* Gruvbox foreground */
}
/* -----------------------------------------------------------------------------
CUSTOM MODULES - COLORS
----------------------------------------------------------------------------- */
/* Lock button */
#custom-lock {
color: #8ec07c; /* Gruvbox aqua */
}
/* Reboot button */
#custom-reboot {
color: #fabd2f; /* Gruvbox yellow */
}
/* Power button */
#custom-power {
color: #fb4934; /* Gruvbox red */
}
/* -----------------------------------------------------------------------------
SYSTEM MODULES - COLORS & STATES
----------------------------------------------------------------------------- */
/* Network */
#network {
color: #8ec07c; /* Gruvbox aqua */
}
/* Battery */
#battery {
color: #b8bb26; /* Gruvbox green */
}
#battery.warning {
color: #fabd2f; /* Gruvbox yellow */
}
#battery.critical {
color: #fb4934; /* Gruvbox red */
}
/* Bluetooth */
#bluetooth {
color: #83a598; /* Gruvbox blue */
}
/* Audio */
#pulseaudio {
color: #8ec07c; /* Gruvbox aqua */
}
#pulseaudio.muted {
color: #fb4934; /* Gruvbox red */
}
/* Backlight */
#backlight {
color: #fabd2f; /* Gruvbox yellow */
}
/* GPU Power */
#custom-gpu-power {
color: #83a598; /* Gruvbox blue */
}
/* Temperature */
#temperature {
color: #fe8019; /* Gruvbox orange */
}
#temperature.warning {
color: #fabd2f; /* Gruvbox yellow */
}
#temperature.critical {
color: #fb4934; /* Gruvbox red */
}
/* Memory */
#memory {
color: #d3869b; /* Gruvbox purple */
}
#memory.warning {
color: #fabd2f; /* Gruvbox yellow */
}
#memory.critical {
color: #fb4934; /* Gruvbox red */
}
/* CPU */
#cpu {
color: #fe8019; /* Gruvbox orange */
}
#cpu.warning {
color: #fabd2f; /* Gruvbox yellow */
}
#cpu.critical {
color: #fb4934; /* Gruvbox red */
}
/* Clock */
#clock {
color: #d3869b; /* Gruvbox purple */
}
/* System tray */
#tray {
background-color: rgba(60, 56, 54, 0.85); /* bg1 with transparency */
padding: 2px 6px;
}
#tray > .passive {
padding: 1px 3px;
margin-top: 0;
margin-right: 1px;
margin-bottom: 0;
margin-left: 1px;
}
#tray > .needs-attention {
padding: 1px 3px;
margin-top: 0;
margin-right: 1px;
margin-bottom: 0;
margin-left: 1px;
background-color: #fb4934; /* Gruvbox red */
color: #282828; /* Gruvbox bg */
border-radius: 3px;
}
#tray > .active {
padding: 1px 3px;
margin-top: 0;
margin-right: 1px;
margin-bottom: 0;
margin-left: 1px;
}
/* -----------------------------------------------------------------------------
HOVER EFFECTS
----------------------------------------------------------------------------- */
#bluetooth:hover,
#network:hover,
#backlight:hover,
#custom-audio-settings:hover,
#custom-audio-mute:hover,
#battery:hover,
#pulseaudio:hover,
#temperature:hover,
#memory:hover,
#cpu:hover,
#clock:hover,
#custom-lock:hover,
#custom-reboot:hover,
#custom-power:hover,
#custom-power-button:hover,
#window:hover {
background-color: rgba(80, 73, 69, 0.9); /* Gruvbox bg2 */
}