forked from fabian/nix_config
configure sway (this is a huge rice)
This commit is contained in:
parent
4316165e9d
commit
5d1408254a
16 changed files with 381 additions and 799 deletions
172
home/modules/gui/waybar.nix
Normal file
172
home/modules/gui/waybar.nix
Normal file
|
@ -0,0 +1,172 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.local.gui;
|
||||
in {
|
||||
config = mkIf cfg.enable {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 20;
|
||||
spacing = 0;
|
||||
|
||||
modules-left = [
|
||||
"sway/workspaces"
|
||||
"sway/mode"
|
||||
];
|
||||
modules-center = [
|
||||
"clock"
|
||||
];
|
||||
|
||||
modules-right = [
|
||||
"cpu"
|
||||
"memory"
|
||||
"keyboard-state"
|
||||
"tray"
|
||||
];
|
||||
"keyboard-state" = {
|
||||
numlock = true;
|
||||
capslock = true;
|
||||
};
|
||||
"tray" = {
|
||||
icon-size = 13;
|
||||
spacing = 8;
|
||||
};
|
||||
"clock" = {
|
||||
interval = 60;
|
||||
format = "{:%A %B %d %Y %H:%M}";
|
||||
tooltip = true;
|
||||
tooltip-format = "{}";
|
||||
};
|
||||
"cpu" = {
|
||||
format = "cpu {usage}%";
|
||||
tooltip = false;
|
||||
};
|
||||
"memory" = {
|
||||
format = "mem {percentage}%";
|
||||
tooltip = true;
|
||||
tooltip-format = "{used}/{total}";
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
* {
|
||||
font-family: "JetBrains Mono", monospace;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Entire bar: fully transparent, no border */
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
color: #eaeaea;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Optional: small edge breathing room (comment out if you want edge-to-edge) */
|
||||
/* window#waybar { margin: 3px 6px 0 6px; } */
|
||||
|
||||
/* Module containers */
|
||||
.modules-left, .modules-center, .modules-right {
|
||||
padding: 0;
|
||||
margin: 0 6px;
|
||||
}
|
||||
|
||||
/* Subtle separators between modules (no boxes) */
|
||||
.modules-left > widget:not(:first-child),
|
||||
.modules-center > widget:not(:first-child),
|
||||
.modules-right > widget:not(:first-child) {
|
||||
margin-left: 8px;
|
||||
padding-left: 8px;
|
||||
border-left: 1px solid rgba(255, 255, 255, 0.08);
|
||||
}
|
||||
|
||||
/* Tightest possible workspaces */
|
||||
#workspaces { padding: 0; margin: 0; }
|
||||
#workspaces button {
|
||||
margin: 0;
|
||||
padding: 0 3px;
|
||||
min-width: 0;
|
||||
border-radius: 0;
|
||||
background: transparent;
|
||||
color: #cfcfcf;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
background: rgba(255, 255, 255, 0.06);
|
||||
}
|
||||
#workspaces button.active,
|
||||
#workspaces button.focused {
|
||||
background: rgba(255, 255, 255, 0.10);
|
||||
color: #ffffff;
|
||||
border-bottom: 2px solid #ffffff;
|
||||
}
|
||||
#workspaces button.urgent {
|
||||
background: rgba(255, 80, 80, 0.25);
|
||||
border-bottom: 2px solid #ff5050;
|
||||
}
|
||||
|
||||
/* Focused window title: single line, no glow */
|
||||
#window {
|
||||
padding: 0 6px;
|
||||
margin: 0;
|
||||
color: #dedede;
|
||||
}
|
||||
|
||||
/* Sway mode indicator: visible only when active, no bloat */
|
||||
#mode {
|
||||
padding: 0 6px;
|
||||
margin: 0;
|
||||
background: rgba(255, 255, 255, 0.10);
|
||||
color: #ffffff;
|
||||
border-bottom: 2px solid #ffffff;
|
||||
}
|
||||
|
||||
/* Status modules — keep them flat and compact */
|
||||
#clock, #battery, #network, #pulseaudio, #backlight, #cpu, #memory, #temperature, #tray {
|
||||
padding: 0 6px;
|
||||
margin: 0;
|
||||
background: transparent;
|
||||
color: #eaeaea;
|
||||
}
|
||||
|
||||
/* States (battery, network, audio) */
|
||||
#battery.charging { color: #c9ffbf; }
|
||||
#battery.warning:not(.charging) { color: #ffd29a; }
|
||||
#battery.critical:not(.charging) { color: #ff9a9a; }
|
||||
|
||||
#network.disconnected { color: #ffb4b4; }
|
||||
#pulseaudio.muted { color: #9aa0a6; }
|
||||
|
||||
/* Tray: compress icons */
|
||||
#tray > .passive { opacity: 0.6; }
|
||||
#tray > .needs-attention { opacity: 1; }
|
||||
|
||||
/* Tooltips: clean and readable */
|
||||
tooltip {
|
||||
background: rgba(30, 30, 30, 0.95);
|
||||
border: 1px solid rgba(255, 255, 255, 0.08);
|
||||
color: #eaeaea;
|
||||
padding: 6px 8px;
|
||||
}
|
||||
|
||||
/* Remove any leftover borders around everything */
|
||||
#custom-*, #idle_inhibitor, #privacy, #bluetooth {
|
||||
border: none;
|
||||
background: transparent;
|
||||
margin: 0;
|
||||
padding: 0 6px;
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue