222 lines
7.0 KiB
Nix
222 lines
7.0 KiB
Nix
{ config, pkgs, ... }:
|
|
let
|
|
inherit (config.var.theme.bar) position;
|
|
inherit (config.var.theme) rounding border-size gaps-in gaps-out;
|
|
in {
|
|
home.packages = with pkgs; [ playerctl ];
|
|
programs.waybar = {
|
|
enable = true;
|
|
systemd = {
|
|
enable = true;
|
|
target = "hyprland-session";
|
|
};
|
|
settings = [{
|
|
layer = "top";
|
|
position = position;
|
|
modules-left = [ "hyprland/workspaces" "hyprland/window" ];
|
|
modules-center = [ "mpris" ];
|
|
modules-right = [
|
|
"idle_inhibitor"
|
|
"backlight"
|
|
"battery#1"
|
|
"battery#2"
|
|
"cpu"
|
|
"memory"
|
|
"temperature"
|
|
"clock"
|
|
"privacy"
|
|
"custom/cuaca"
|
|
"wireplumber"
|
|
"tray"
|
|
];
|
|
clock = {
|
|
"format" = "{:%d %b %H:%M} ";
|
|
"format-alt" = "{:%A, %d %B %Y (%R)} ";
|
|
"tooltip-format" = ''
|
|
<big>{:%Y %B}</big>
|
|
<tt><small>{calendar}</small></tt>'';
|
|
"calendar" = {
|
|
"mode" = "year";
|
|
"mode-mon-col" = 3;
|
|
"weeks-pos" = "right";
|
|
"on-scroll" = 1;
|
|
"format" = {
|
|
"months" = "<span color='#ffead3'><b>{}</b></span>";
|
|
"days" = "<span color='#ecc6d9'><b>{}</b></span>";
|
|
"weeks" = "<span color='#99ffdd'><b>W{}</b></span>";
|
|
"weekdays" = "<span color='#ffcc66'><b>{}</b></span>";
|
|
"today" = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
|
};
|
|
};
|
|
actions = {
|
|
"on-click-right" = "mode";
|
|
"on-scroll-up" = "shift_up";
|
|
"on-scroll-down" = "shift_down";
|
|
};
|
|
};
|
|
tray = { spacing = gaps-in; };
|
|
cpu = { format = " {usage}"; };
|
|
memory = { format = " {}"; };
|
|
idle_inhibitor = {
|
|
format = "{icon}";
|
|
format-icons = {
|
|
activated = "";
|
|
deactivated = "";
|
|
};
|
|
};
|
|
network = {
|
|
format = "{ifname}";
|
|
format-wifi = "{essid} ({signalStrength}%) ";
|
|
format-ethernet = "{ipaddr}/{cidr} ";
|
|
format-disconnected = "";
|
|
tooltip-format = "{ifname} via {gwaddr} ";
|
|
tooltip-format-wifi = "{essid} ({signalStrength}%) ";
|
|
tooltip-format-ethernet = "{ifname} ";
|
|
tooltip-format-disconnected = "Disconnected";
|
|
max-length = 50;
|
|
};
|
|
temperature = { format = "{temperatureC} "; };
|
|
backlight = {
|
|
device = "intel_backlight";
|
|
format = "{icon}";
|
|
format-icons = [ "" "" "" "" "" "" "" "" "" ];
|
|
};
|
|
"battery#1" = {
|
|
bat = "BAT0";
|
|
interval = 90;
|
|
states = {
|
|
warning = 30;
|
|
critical = 15;
|
|
};
|
|
format = "{capacity}";
|
|
max-length = 2;
|
|
};
|
|
"battery#2" = {
|
|
bat = "BAT1";
|
|
interval = 90;
|
|
states = {
|
|
warning = 30;
|
|
critical = 15;
|
|
};
|
|
format = "{capacity} {icon}";
|
|
format-icons = [ "" "" "" "" "" ];
|
|
max-length = 25;
|
|
};
|
|
"hyprland/window" = {
|
|
format = "{}";
|
|
max-length = 32;
|
|
rewrite = {
|
|
"(.*) — Mozilla Firefox" = " $1";
|
|
"(.*) - kitty" = " [$1]";
|
|
};
|
|
separate-outputs = true;
|
|
};
|
|
"hyprland/workspaces" = { format = "<small>{name}</small>"; };
|
|
mpris = {
|
|
"format" = "{player_icon} {dynamic}";
|
|
"format-paused" = "{status_icon} <i>{dynamic}</i>";
|
|
"player-icons" = {
|
|
"default" = "";
|
|
"mpv" = "";
|
|
};
|
|
"dynamic-len" = 30;
|
|
"status-icons" = { "paused" = ""; };
|
|
"ignored-players" = [ "firefox" ];
|
|
};
|
|
privacy = {
|
|
"icon-spacing" = 4;
|
|
"icon-size" = 18;
|
|
"transition-duration" = 250;
|
|
"modules" = [
|
|
{
|
|
"type" = "screenshare";
|
|
"tooltip" = true;
|
|
"tooltip-icon-size" = 24;
|
|
}
|
|
{
|
|
"type" = "audio-out";
|
|
"tooltip" = true;
|
|
"tooltip-icon-size" = 24;
|
|
}
|
|
{
|
|
"type" = "audio-in";
|
|
"tooltip" = true;
|
|
"tooltip-icon-size" = 24;
|
|
}
|
|
];
|
|
};
|
|
pulseaudio = {
|
|
"format" = "{volume}%{icon}";
|
|
"format-bluetooth" = "{volume}%{icon}";
|
|
"format-muted" = "";
|
|
"format-icons" = {
|
|
"headphone" = "";
|
|
"phone" = "";
|
|
"portable" = "";
|
|
"car" = "";
|
|
"default" = [ "" "" ];
|
|
};
|
|
"scroll-step" = 1;
|
|
"on-click" = "pavucontrol";
|
|
"ignored-sinks" = [ "Easy Effects Sink" ];
|
|
};
|
|
"wireplumber" = {
|
|
"on-click" = "pavucontrol";
|
|
"on-click-right" = "amixer sset Master toggle 1>/dev/null";
|
|
"format" = "<span foreground='#fab387'>{icon}</span>{volume}%";
|
|
"format-muted" = " ";
|
|
"format-source" = "";
|
|
"format-source-muted" = "";
|
|
"format-icons" = {
|
|
"headphone" = " ";
|
|
"hands-free" = " ";
|
|
"headset" = " ";
|
|
"phone" = " ";
|
|
"portable" = " ";
|
|
"car" = " ";
|
|
"default" = [ " " " " " " ];
|
|
};
|
|
};
|
|
"custom/cuaca" = {
|
|
"format" = "{}";
|
|
"format-alt" = "{alt}: {}";
|
|
"format-alt-click" = "click-right";
|
|
"interval" = 3600;
|
|
"exec" = "curl -s 'https://wttr.in/Tangerang?format=1'";
|
|
"exec-if" = "ping wttr.in -c1";
|
|
};
|
|
}];
|
|
|
|
style = ''
|
|
* { border: none; border-radius: 0; }
|
|
window#waybar { background-color: transparent; color: @base05; transition-property: background-color; transition-duration: 0.5s; }
|
|
window#waybar.hidden { opacity: 0.2; }
|
|
label.module { padding: 0 0.5em; }
|
|
#workspaces {
|
|
background-color: @base03;
|
|
border-radius: 1em;
|
|
margin: 0 1em;
|
|
}
|
|
#workspaces button {
|
|
padding: 0 .3em;
|
|
border-radius: 1em;
|
|
background-color: @base03;
|
|
}
|
|
#workspaces button.urgent { background-color: @base09; }
|
|
#workspaces button.empty { background-color: @base03; }
|
|
#workspaces button.visible { background-color: @base04; color: @base01 }
|
|
#workspaces button.active { background-color: @base0A; }
|
|
#window { font-weight:800; color: @base06; background-color: @base00; margin: 0 .5em; padding: 0 1em; border-radius: 0 0 1em 1em;}
|
|
.modules-left { background-color: transparent; border-radius: 0 1em 1em 0; padding-right: 1em; }
|
|
.modules-right { background-color: @base00; border-radius: 0 0 0 1em; padding-left: 1em; }
|
|
label#battery.1 { padding-right: 0; }
|
|
label#battery.2 { padding-left: ${toString gaps-in}px; }
|
|
#privacy, #tray { padding: 0 ${toString gaps-in}px; }
|
|
#tray { background-color: @base03; border-radius: 1em 0 0 1em; }
|
|
#tray > .passive { -gtk-icon-effect: dim; }
|
|
#tray > .needs-attention { -gtk-icon-effect: highlight; background-color: @base08; }
|
|
tooltip { border-radius: ${toString rounding}px; }
|
|
'';
|
|
};
|
|
}
|