nixcfg/homeManagerModules/guiApps/waybar/default.nix

146 lines
4.4 KiB
Nix
Raw Normal View History

2024-04-07 22:16:33 -04:00
{
pkgs,
lib,
config,
...
}: {
options = {guiApps.waybar.enable = lib.mkEnableOption "Enables waybar.";};
2024-03-28 19:52:15 -04:00
config = lib.mkIf config.guiApps.waybar.enable {
# Packages that should be installed to the user profile.
home.packages = with pkgs; [
blueberry
pavucontrol
2024-04-07 22:16:33 -04:00
(nerdfonts.override {fonts = ["Noto"];})
];
2024-03-28 19:52:15 -04:00
xdg.configFile."waybar/style.css".source = ./waybar.css;
programs.waybar.enable = true;
programs.waybar.settings = {
mainBar = {
height = 36;
layer = "top";
2024-04-07 22:16:33 -04:00
output = ["*"];
2024-03-28 19:52:15 -04:00
position = "top";
reload_style_on_change = true;
2024-04-07 22:16:33 -04:00
modules-left = ["hyprland/workspaces" "hyprland/submap"];
modules-center = ["hyprland/window"];
2024-03-28 19:52:15 -04:00
modules-right = [
"tray"
"bluetooth"
"network"
"pulseaudio"
# "wireplumber"
"group/power"
"custom/logout"
2024-03-28 19:52:15 -04:00
"clock"
];
"hyprland/workspaces" = {
"all-outputs" = true;
"format" = "{icon}";
"format-icons" = {
"default" = "󰝥";
"active" = "󰪥";
};
2024-04-07 22:16:33 -04:00
"persistent-workspaces" = {"*" = 4;};
2024-03-28 19:52:15 -04:00
};
"hyprland/window" = {
"max-length" = 100;
"separate-outputs" = true;
};
2024-03-28 19:52:15 -04:00
"clock" = {
# "tooltip-format" = "{:%Y-%m-%d | %H:%M}";
2024-03-28 19:52:15 -04:00
"interval" = 60;
"format" = "{:%I:%M%p}";
};
"group/power" = {
"orientation" = "inherit";
"drawer" = {
"transition-duration" = 500;
"children-class" = "not-power";
"transition-left-to-right" = false;
};
"modules" = [
"battery"
"power-profiles-daemon"
"inhibitor"
];
};
2024-03-28 19:52:15 -04:00
"battery" = {
2024-04-07 22:16:33 -04:00
"states" = {"critical" = 20;};
2024-03-28 19:52:15 -04:00
"format" = "{icon}";
"format-icons" = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
2024-03-28 19:52:15 -04:00
"tooltip-format" = ''
{capacity}%: {timeTo}.
Using {power} watts.'';
};
"inhibitor" = {
"what" = "sleep";
"format" = "{icon}";
"format-icons" = {
"activated" = "";
"deactivated" = "";
};
};
2024-03-28 19:52:15 -04:00
"bluetooth" = {
"format" = "󰂯";
2024-03-28 19:52:15 -04:00
"format-disabled" = ""; # an empty format will hide the module
"format-connected" = "󰂯 {num_connections} connected";
"tooltip-format" = "{controller_alias} {controller_address}";
"tooltip-format-connected" = ''
{controller_alias} {controller_address}
{device_enumerate}'';
2024-04-07 22:16:33 -04:00
"tooltip-format-enumerate-connected" = "{device_alias} {device_address}";
"on-click" = "${pkgs.blueberry}/bin/blueberry";
2024-03-28 19:52:15 -04:00
};
"pulseaudio" = {
"format" = "{icon}";
2024-03-28 19:52:15 -04:00
"format-bluetooth" = "{volume}% {icon}󰂯";
"format-muted" = "";
2024-03-28 19:52:15 -04:00
"format-icons" = {
"headphones" = "󰋋";
"handsfree" = "󰋎";
"headset" = "󰋎";
"default" = [ "" "" "" ];
2024-03-28 19:52:15 -04:00
};
"scroll-step" = 5;
2024-04-07 22:16:33 -04:00
"ignored-sinks" = ["Easy Effects Sink"];
"on-click" = "${pkgs.pavucontrol}/bin/pavucontrol -t 3";
2024-03-28 19:52:15 -04:00
};
"network" = {
"format-wifi" = "{icon}";
2024-03-28 19:52:15 -04:00
"format-ethernet" = "󰈀";
"format-disconnected" = "";
"format-icons" = ["󰤟" "󰤢" "󰤥" "󰤨" ];
2024-03-28 19:52:15 -04:00
"tooltip-format" = "{ifname} via {gwaddr} 󰊗";
"tooltip-format-wifi" = "{essid} ({signalStrength}%) {icon}";
2024-03-28 19:52:15 -04:00
"tooltip-format-ethernet" = "{ifname} ";
"tooltip-format-disconnected" = "Disconnected";
2024-04-07 22:16:33 -04:00
"on-click" = "${pkgs.alacritty}/bin/alacritty --class nmtui -e ${pkgs.networkmanager}/bin/nmtui";
2024-03-28 19:52:15 -04:00
};
"tray" = {"spacing" = 15;};
"custom/logout" = {
"on-click" = "${pkgs.wlogout}/bin/wlogout";
"format" = "󰗽";
};
2024-03-28 19:52:15 -04:00
"power-profiles-daemon" = {
"format" = "{icon}";
"tooltip-format" = ''
Profile: {profile}
Driver: {driver}'';
"tooltip" = true;
"format-icons" = {
"default" = "󱐌";
"performance" = "󱐌";
"balanced" = "󰗑";
"power-saver" = "󰌪";
};
};
};
};
};
}