290 lines
7.6 KiB
Nix
290 lines
7.6 KiB
Nix
{lib, config, ...}:
|
|
with lib;
|
|
let
|
|
cfg = config.modules.desktop.sway;
|
|
in
|
|
{
|
|
config = mkIf cfg.enable {
|
|
programs.waybar = {
|
|
enable = true;
|
|
systemd = {
|
|
enable = true;
|
|
target = "sway-session.target";
|
|
};
|
|
settings = {
|
|
mainbar = {
|
|
layer = "top";
|
|
spacing = 6;
|
|
disable-toolptips = true;
|
|
modules-center = [];
|
|
modules-left = [
|
|
"sway/workspaces"
|
|
"sway/mode"
|
|
];
|
|
modules-right = [
|
|
"network"
|
|
"custom/sep"
|
|
] ++ (
|
|
if cfg.waybar.laptop then [
|
|
"backlight"
|
|
"battery"
|
|
"custom/sep"
|
|
]
|
|
else [
|
|
]
|
|
) ++
|
|
[
|
|
|
|
"memory"
|
|
"cpu"
|
|
"temperature"
|
|
"custom/sep"
|
|
] ++ (
|
|
if cfg.waybar.gpuThermal.enable then [
|
|
"temperature#gpu"
|
|
"custom/sep"
|
|
]
|
|
else [
|
|
]
|
|
) ++
|
|
[
|
|
"pulseaudio"
|
|
"custom/sep"
|
|
"clock"
|
|
"custom/sep"
|
|
"tray"
|
|
];
|
|
"clock" = {
|
|
"format-alt" = "{:%Y-%m-%d}";
|
|
"timezone" = "Europe/Paris";
|
|
"tooltip" = false;
|
|
};
|
|
"cpu" = {
|
|
"format" = "{usage}% {icon}";
|
|
"format-icons" = [ "" ];
|
|
"states" = {
|
|
"critical" = 90;
|
|
"warning" = 70;
|
|
};
|
|
"tooltip" = false;
|
|
};
|
|
"custom/sep" = {
|
|
"format" = "|";
|
|
"tooltip" = false;
|
|
};
|
|
"idle_inhibitor" = {
|
|
"format" = "{icon}";
|
|
"format-icons" = {
|
|
"activated" = "";
|
|
"deactivated" = "";
|
|
};
|
|
};
|
|
"memory" = {
|
|
"format" = "{used:0.1f}G/{total:0.1f}G ";
|
|
"interval" = 30;
|
|
"states" = {
|
|
"critical" = 90;
|
|
"warning" = 70;
|
|
};
|
|
};
|
|
"network" = {
|
|
"format-alt" = "{ifname}: {ipaddr}/{cidr}";
|
|
"format-disconnected" = "Disconnected ⚠ ";
|
|
"format-ethernet" = "{ifname}: {ipaddr}/{cidr} ";
|
|
"format-linked" = "{ifname} (No IP) ";
|
|
"format-wifi" = "{essid} ({signalStrength}%) ";
|
|
"tooltip" = false;
|
|
};
|
|
"pulseaudio" = {
|
|
"format" = "{format_source} {volume}% {icon} ";
|
|
"format-bluetooth" = "{volume}% {icon}";
|
|
"format-icons" = {
|
|
"car" = "";
|
|
"default" = "";
|
|
"handsfree" = "";
|
|
"headphones" = "";
|
|
"headset" = "";
|
|
"phone" = "";
|
|
"portable" = "";
|
|
};
|
|
"format-muted" = "{format_source} ";
|
|
"format-source" = "{volume}% ";
|
|
"format-source-muted" = " ";
|
|
"tooltip" = false;
|
|
};
|
|
"sway/mode" = {
|
|
"format" = "<span style=\"italic\">{}</span>";
|
|
};
|
|
"sway/workspace" = {
|
|
"disable-scroll" = true;
|
|
};
|
|
"temperature" = {
|
|
"critical-threshold" = 80;
|
|
"format" = "{temperatureC}°C ";
|
|
"thermal-zone" = mkIf ( cfg.waybar.cpuThermal.thermalZone != "" )
|
|
"${cfg.waybar.cpuThermal.thermalZone}";
|
|
"hwmon-path-abs" = mkIf ( cfg.waybar.cpuThermal.hwmonPathAbs != "" )
|
|
"${cfg.waybar.cpuThermal.hwmonPathAbs}";
|
|
"input-filename" = mkIf ( cfg.waybar.cpuThermal.inputFilename != "" )
|
|
"${cfg.waybar.cpuThermal.inputFilename}";
|
|
};
|
|
"temperature#gpu" = {
|
|
"critical-threshold" = 80;
|
|
"format" = "GPU: {temperatureC}°C ";
|
|
"hwmon-path" = "${cfg.waybar.gpuThermal.hmonPath}";
|
|
};
|
|
"backlight" = {
|
|
"format" = "{percent}% {icon}";
|
|
"format-icons" = [
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
];
|
|
};
|
|
"battery" = {
|
|
"tooltip" = false;
|
|
"states" = {
|
|
"full" = 100;
|
|
"warning" = 30;
|
|
"critical" = 15;
|
|
};
|
|
"format" = "{capacity}% {icon}";
|
|
"format-charging" = "{capacity}% ";
|
|
"format-plugged" = "{capacity}% ";
|
|
"format-alt" = "{time} {icon}";
|
|
"format-icons" = [
|
|
" "
|
|
" "
|
|
" "
|
|
" "
|
|
" "
|
|
];
|
|
};
|
|
};
|
|
};
|
|
style = ''
|
|
@define-color color-base-bg #323232;
|
|
@define-color color-base-fg #ddd;
|
|
|
|
@define-color color-hover #f268b3;
|
|
@define-color color-selected #1cd180;
|
|
|
|
@define-color color-ok #1cd180;
|
|
@define-color color-warning #f2b768;
|
|
@define-color color-critical #f268b3;
|
|
|
|
* {
|
|
border: none;
|
|
border-radius: 0;
|
|
min-height:0;
|
|
}
|
|
|
|
window#waybar {
|
|
background: @color-base-bg ;
|
|
color: @color-base-fg;
|
|
font-family: "Fira Code Nerd Font";
|
|
font-size: 12px;
|
|
}
|
|
|
|
button,
|
|
button:disabled,label:disabled{
|
|
color:inherit;
|
|
}
|
|
|
|
button:hover{
|
|
background:none;
|
|
box-shadow:inherit;
|
|
box-shadow:inherit;
|
|
text-shadow:inherit;
|
|
text-shadow:inherit;
|
|
border-top:none;
|
|
}
|
|
#workspaces {
|
|
color:#fff;
|
|
}
|
|
#workspaces button {
|
|
margin:0 3px;
|
|
padding:4px 4px;
|
|
color:#9c9c9c;
|
|
border-bottom: 1px solid transparent;
|
|
}
|
|
|
|
#workspaces button:hover {
|
|
box-shadow:inherit;
|
|
text-shadow:inherit;
|
|
color: @color-hover;
|
|
border-bottom: 1px solid @color-hover;
|
|
}
|
|
|
|
#workspaces button.focused {
|
|
background: @color-selected;
|
|
color: @color-base-bg;
|
|
}
|
|
#workspaces button.visible:not(.focused) {
|
|
color: @color-selected;
|
|
border-color: @color-selected;
|
|
}
|
|
|
|
#clock,
|
|
#cpu,
|
|
#memory,
|
|
#backlight,
|
|
#network,
|
|
#tray,
|
|
#mode,
|
|
#battery,
|
|
#idle_inhibitor {
|
|
padding: 2px 4px;
|
|
margin: 0;
|
|
background-color: transparent;
|
|
}
|
|
|
|
#mode{
|
|
background:@color-warning;
|
|
font-weight:bold;
|
|
}
|
|
#pulseaudio {}
|
|
#pulseaudio.muted {
|
|
color:@color-critical;
|
|
}
|
|
|
|
#battery.discharging {
|
|
color: @color-base-fg;
|
|
border-bottom: none;
|
|
}
|
|
|
|
#battery.charging, #battery.plugged {
|
|
border-bottom: 1px solid @color-ok;
|
|
color: @color-selected;
|
|
}
|
|
|
|
#battery.critical:not(.charging),
|
|
#cpu.critical,
|
|
#memory.critical{
|
|
border-color: @color-critical;
|
|
color: @color-critical;
|
|
}
|
|
|
|
#battery.warning:not(.charging),
|
|
#cpu.warning,
|
|
#memory.warning{
|
|
border-color: @color-warning;
|
|
color: @color-warning;
|
|
}
|
|
|
|
#tray {
|
|
font-family: "DejaVu sans";
|
|
font-size: 12px;
|
|
}
|
|
'';
|
|
};
|
|
};
|
|
}
|