142 lines
3.4 KiB
Nix
142 lines
3.4 KiB
Nix
{ config, pkgs, ... }: {
|
|
programs.waybar.settings.mainBar.spacing = 4;
|
|
programs.waybar.style = let
|
|
colors = config.lib.stylix.colors.withHashtag;
|
|
accent = colors.base0E;
|
|
scssFile = pkgs.writeText "waybar.scss" /*scss*/ ''
|
|
window#waybar {
|
|
background: ${colors.base00}80;
|
|
color: ${colors.base05};
|
|
font-weight: bold;
|
|
font-size: .85em;
|
|
}
|
|
|
|
#mpris,
|
|
#pulseaudio,
|
|
#network,
|
|
#battery,
|
|
#cpu,
|
|
#temperature,
|
|
#custom-mem,
|
|
#clock {
|
|
background: ${colors.base01};
|
|
padding: 8px;
|
|
}
|
|
|
|
#language { padding: 8px; }
|
|
|
|
#workspaces,
|
|
#tray {
|
|
background: ${colors.base01};
|
|
}
|
|
|
|
#workspaces button {
|
|
color: ${colors.base05};
|
|
padding: 0 2px;
|
|
border-radius: 999px;
|
|
border: 1pt solid transparent;
|
|
min-width: 20px;
|
|
|
|
&:hover { background: ${colors.base02}; }
|
|
|
|
&.active {
|
|
background: ${accent};
|
|
color: ${colors.base00};
|
|
min-width: 30px;
|
|
|
|
&:hover {
|
|
border-color: ${accent};
|
|
background: ${colors.base02};
|
|
color: ${accent};
|
|
}
|
|
}
|
|
}
|
|
|
|
#mpris {
|
|
border-radius: 0 0 20px 20px;
|
|
padding: 10px;
|
|
&:hover { background: ${colors.base02}; }
|
|
&.playing {
|
|
border: 3px solid ${accent};
|
|
border-top-color: transparent;
|
|
padding: calc(10px - 3px);
|
|
}
|
|
}
|
|
|
|
#tray {
|
|
widget {
|
|
border: 1pt solid transparent;
|
|
&:hover { background: ${colors.base02}; }
|
|
& > image { padding: 8px; }
|
|
}
|
|
|
|
& > .passive { border-color: ${colors.base02}; }
|
|
& > .needs-attention { border-color: ${colors.base09}; }
|
|
}
|
|
|
|
#pulseaudio {
|
|
&:hover { background: ${colors.base02}; }
|
|
&.muted {
|
|
background: ${colors.base08};
|
|
color: ${colors.base00};
|
|
|
|
&:hover {
|
|
color: ${colors.base08};
|
|
background: ${colors.base02};
|
|
}
|
|
}
|
|
}
|
|
|
|
#network {
|
|
&:hover { background: ${colors.base02}; }
|
|
&.disconnected {
|
|
color: ${colors.base00};
|
|
background: ${colors.base08};
|
|
}
|
|
}
|
|
|
|
#system .drawer-child > * {
|
|
margin-right: 4px
|
|
}
|
|
|
|
#keyboard-state label.locked {
|
|
color: ${colors.base08};
|
|
}
|
|
|
|
#battery {
|
|
&.plugged { color: ${colors.base0D}; }
|
|
&.charging { color: ${colors.base0B}; }
|
|
&:not(.charging) {
|
|
&.warning {
|
|
color: ${colors.base00};
|
|
background-color: ${colors.base09};
|
|
}
|
|
&.critical {
|
|
background-color: ${colors.base08};
|
|
color: ${colors.base00};
|
|
animation-name: blink;
|
|
animation-duration: 0.5s;
|
|
animation-timing-function: linear;
|
|
animation-iteration-count: infinite;
|
|
animation-direction: alternate;
|
|
}
|
|
}
|
|
&.full {
|
|
color: ${colors.base00};
|
|
background: ${colors.base0B};
|
|
}
|
|
}
|
|
|
|
@keyframes blink {
|
|
to {
|
|
background-color: ${colors.base00};
|
|
color: ${colors.base08};
|
|
}
|
|
}
|
|
'';
|
|
|
|
cssFile = pkgs.runCommand "waybar.css" {
|
|
nativeBuildInputs = [ pkgs.dart-sass ];
|
|
} "sass ${scssFile} $out";
|
|
in builtins.readFile cssFile;
|
|
} |