From 03648b3d9f177227df40129bed22558f6924b91c Mon Sep 17 00:00:00 2001 From: spl3g Date: Wed, 18 Mar 2026 18:01:41 +0300 Subject: so.. v2 i guess --- modules/homeModules/waybar.nix | 131 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 modules/homeModules/waybar.nix (limited to 'modules/homeModules/waybar.nix') diff --git a/modules/homeModules/waybar.nix b/modules/homeModules/waybar.nix new file mode 100644 index 0000000..b1f6dce --- /dev/null +++ b/modules/homeModules/waybar.nix @@ -0,0 +1,131 @@ +{inputs, ...}: { + flake.homeModules.waybar = { + pkgs, + lib, + config, + ... + }: + with lib; let + cfg = config.customs.waybar; + in { + options.customs = { + waybar = { + enable = mkEnableOption "enable waybar"; + windowManager = mkOption { + description = "WM string to use with /workspaces and /language"; + default = "hyprland"; + type = types.str; + }; + workspaceIcons = mkOption { + default = { + "1" = "α"; + "2" = "β"; + "3" = "γ"; + "4" = "δ"; + "5" = "ε"; + urgent = "λ"; + default = "ω"; + }; + }; + }; + }; + + config = mkIf cfg.enable { + programs.waybar = { + enable = true; + systemd.enable = true; + style = with config.lib.stylix.colors.withHashtag; + '' + @define-color base00 ${base00}; @define-color base01 ${base01}; @define-color base02 ${base02}; @define-color base03 ${base03}; + @define-color base04 ${base04}; @define-color base05 ${base05}; @define-color base06 ${base06}; @define-color base07 ${base07}; + + @define-color base08 ${base08}; @define-color base09 ${base09}; @define-color base0A ${base0A}; @define-color base0B ${base0B}; + @define-color base0C ${base0C}; @define-color base0D ${base0D}; @define-color base0E ${base0E}; @define-color base0F ${base0F}; + '' + + builtins.readFile ./attachments/waybar-style.css; + settings = { + bar = { + layer = "top"; + height = 30; + spacing = 8; + margin-down = 5; + modules-left = ["${cfg.windowManager}/workspaces"]; + modules-center = ["clock"]; + modules-right = ["network" "custom/vpn" "memory" "temperature" "backlight" "pulseaudio" "${cfg.windowManager}/language" "tray" "battery"]; + "${cfg.windowManager}/workspaces" = { + format = "{icon}"; + "format-icons" = cfg.workspaceIcons; + }; + "${cfg.windowManager}/language" = { + format = "{} 󰌌"; + format-ru = "ru"; + format-en = "en"; + }; + "tray" = { + spacing = 10; + }; + "clock" = { + format = "{:%H:%M 󰅐}"; + tooltip-format = "{:%Y %B}\n{calendar}"; + format-alt = "{:%d %h %Y 󰃮}"; + }; + "memory" = { + format = "{}% "; + }; + "temperature" = { + format = "{temperatureC}°C󰔏"; + }; + "backlight" = { + format = "{percent}% {icon}"; + format-icons = ["󰃞" "󰃟" "󰃠"]; + }; + "battery" = { + "states" = { + good = 95; + warning = 30; + critical = 15; + }; + format = "{capacity}% {icon}"; + format-charging = "{capacity}% 󰂄"; + format-plugged = "{capacity}% "; + format-alt = "{icon}"; + format-icons = ["󱃍" "󰁼" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; + }; + "network" = { + interface = "wlp*"; + format-wifi = "{essid} ({signalStrength}%) 󰤨"; + format-ethernet = "{ipaddr}/{cidr} 󰈀"; + tooltip-format = "{ifname} via {gwaddr} 󰩟"; + format-linked = "{ifname} (No IP) 󰩟"; + format-disconnected = "󰤫"; + }; + "custom/vpn" = { + format = "{text}"; + exec = "${./attachments/hypr-scripts/toggle-vpn.sh} waybar"; + return-type = "json"; + }; + "pulseaudio" = { + format = "{volume}% {icon} {format_source}"; + format-bluetooth = "{volume}% 󰥰 {format_source}"; + format-bluetooth-muted = "󰟎 {format_source}"; + format-muted = "󰝟 {format_source}"; + format-source = "{volume}%󰍬"; + format-source-muted = "󰍭"; + + "format-icons" = { + headphone = "󰋋"; + hands-free = ""; + headset = ""; + phone = ""; + portable = ""; + car = ""; + muted-icon = "󰝟"; + default = ["󰕿" "󰖀" "󰕾"]; + }; + }; + }; + }; + }; + }; + }; +} -- cgit v1.2.3