204 lines
5.9 KiB
Nix
204 lines
5.9 KiB
Nix
|
{ pkgs, config, lib, ... }:
|
||
|
let
|
||
|
cfg = config.lily.waybar;
|
||
|
in
|
||
|
{
|
||
|
options.lily.waybar.enable = lib.mkEnableOption "activate waybar";
|
||
|
config = lib.mkIf cfg.enable {
|
||
|
home.packages = with pkgs; [
|
||
|
pavucontrol
|
||
|
networkmanagerapplet
|
||
|
blueman
|
||
|
];
|
||
|
programs.waybar = {
|
||
|
enable = true;
|
||
|
style = ./style.css;
|
||
|
|
||
|
settings = {
|
||
|
mainBar = {
|
||
|
layer = "top";
|
||
|
position = "top";
|
||
|
mode = "dock";
|
||
|
height = 40;
|
||
|
tray.icon-size = 15;
|
||
|
|
||
|
modules-left = [
|
||
|
"custom/icon"
|
||
|
"custom/separator"
|
||
|
"cpu"
|
||
|
"memory"
|
||
|
"temperature"
|
||
|
"battery"
|
||
|
"custom/separator"
|
||
|
"custom/separator"
|
||
|
"custom/screenshot"
|
||
|
"tray"
|
||
|
"hyprland/workspaces"
|
||
|
];
|
||
|
|
||
|
modules-center = [ "hyprland/window" ];
|
||
|
modules-right = [
|
||
|
"mpris"
|
||
|
"pulseaudio"
|
||
|
"network"
|
||
|
"bluetooth"
|
||
|
"custom/wallchange"
|
||
|
"custom/themechange"
|
||
|
"clock"
|
||
|
];
|
||
|
|
||
|
mpris = {
|
||
|
format = "{player_icon}{status_icon} <small><i>[{position}/{length}]</i></small> {title} - {artist}";
|
||
|
tooltip-format = "{player_icon}{status_icon} [{position}/{length}] {title} - {artist}";
|
||
|
title-len = 20;
|
||
|
artist-len = 10;
|
||
|
interval = 1;
|
||
|
player-icons = {
|
||
|
default = "";
|
||
|
mpv = "🎵 ";
|
||
|
spotify = " ";
|
||
|
};
|
||
|
status-icons = {
|
||
|
playing = "▶";
|
||
|
stopped = "";
|
||
|
paused = "";
|
||
|
};
|
||
|
on-click-middle = "playerctld shift";
|
||
|
};
|
||
|
|
||
|
cpu = {
|
||
|
interval = 10;
|
||
|
format = " {usage}";
|
||
|
max-length = 10;
|
||
|
};
|
||
|
|
||
|
memory = {
|
||
|
interval = 30;
|
||
|
format = " {used:0.1f}G";
|
||
|
max-length = 10;
|
||
|
};
|
||
|
|
||
|
temperatures = {
|
||
|
thermal-zone = 0;
|
||
|
critical-threshold = 90;
|
||
|
format-critical = " {temperatureC}°C";
|
||
|
format = " {temperatureC}°C";
|
||
|
};
|
||
|
|
||
|
battery = {
|
||
|
interval = 30;
|
||
|
states = {
|
||
|
warning = 30;
|
||
|
critical = 15;
|
||
|
};
|
||
|
format = "{icon} {capacity}%";
|
||
|
format-charging = " {icon} {capacity}%";
|
||
|
format-icons = [ " " " " " " " " ];
|
||
|
max-length = 25;
|
||
|
};
|
||
|
|
||
|
pulseaudio = {
|
||
|
format = "{icon} <b>{volume}</b>";
|
||
|
format-bluetooth = " ";
|
||
|
format-bluetooth-muted = " ";
|
||
|
format-muted = "";
|
||
|
format-icons = {
|
||
|
default = [ "" "" "" ];
|
||
|
};
|
||
|
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
|
||
|
};
|
||
|
|
||
|
network = {
|
||
|
format-wifi = " {essid}";
|
||
|
on-click = "${pkgs.networkmanagerapplet}/bin/nm-connection-editor";
|
||
|
format-ethernet = " wired";
|
||
|
format-disconnected = "";
|
||
|
tooltip-format = "{ifname} via {gwaddr} ";
|
||
|
tooltip-format-wifi = "{essid} ({signalStrength}%) ";
|
||
|
tooltip-format-ethernet = "{ifname} ";
|
||
|
tooltip-format-disconnected = "Disconnected";
|
||
|
};
|
||
|
|
||
|
bluetooth = {
|
||
|
tooltip = true;
|
||
|
on-click = "${pkgs.blueman}/bin/blueman-manager";
|
||
|
};
|
||
|
|
||
|
clock = {
|
||
|
format = " {:%d.%m.%y %H:%M}";
|
||
|
};
|
||
|
|
||
|
"custom/icon" = {
|
||
|
format = " ";
|
||
|
# on-click = "${config.lily.wlogout.logoutlaunch}/bin/logoutlaunch";
|
||
|
};
|
||
|
|
||
|
"custom/screenshot" = {
|
||
|
format = " ";
|
||
|
on-click = "GRIM_DEFAULT_DIR=${config.xdg.configHome}/../Pictures/Screenshots ${pkgs.grim}/bin/grim";
|
||
|
};
|
||
|
|
||
|
"custom/separator" = {
|
||
|
format = " ";
|
||
|
};
|
||
|
|
||
|
# "custom/wallchange" = {
|
||
|
# format = " {}";
|
||
|
# tooltip = true;
|
||
|
# exec = "echo ; echo switch wallpaper";
|
||
|
# on-click = "${inputs.wall-utils.packages.${pkgs.system}.wall-utils}/bin/wall-utils next";
|
||
|
# on-click-right = "${inputs.wall-utils.packages.${pkgs.system}.wall-utils}/bin/wall-utils previous";
|
||
|
# on-click-middle = "${inputs.wall-utils.packages.${pkgs.system}.wall-utils}/bin/wall-utils select";
|
||
|
# # interval = 3600; # once every day
|
||
|
# };
|
||
|
|
||
|
"hyprland/workspaces" = {
|
||
|
format = "<span color=\"#b4befe\">{icon}</span>"; # lavender
|
||
|
tooltip = false;
|
||
|
all-outputs = false;
|
||
|
current-only = true;
|
||
|
sort-by-number = true;
|
||
|
persistent-workspaces = {
|
||
|
"1" = "";
|
||
|
"2" = "";
|
||
|
"3" = "";
|
||
|
"4" = "";
|
||
|
"5" = "";
|
||
|
"6" = "";
|
||
|
"7" = "";
|
||
|
"8" = "";
|
||
|
"9" = "";
|
||
|
"10" = "";
|
||
|
};
|
||
|
format-icons = {
|
||
|
"1" = "";
|
||
|
"2" = "";
|
||
|
"3" = "";
|
||
|
"4" = "";
|
||
|
"5" = "";
|
||
|
"6" = "";
|
||
|
"7" = "";
|
||
|
"8" = "";
|
||
|
"9" = "";
|
||
|
"10" = "<span color=\"#74c7ec\"></span>"; # sapphire
|
||
|
urgent = "<span color=\"#74c7ec\"></span>"; # sapphire
|
||
|
active = "<span color=\"#89b4fa\"></span>"; # blue
|
||
|
default = "";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
"hyprland/window" = {
|
||
|
format = "{}";
|
||
|
rewrite = {
|
||
|
"" = "There is no place like ~";
|
||
|
};
|
||
|
max-length = 200;
|
||
|
seperate-outputs = true;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
home.file.".config/waybar/themes/theme.css" = { source = ./themes/Catppuccin-Mocha.css; };
|
||
|
};
|
||
|
}
|