diff options
| author | spl3g <notspl3g@duck.com> | 2026-03-18 18:01:41 +0300 |
|---|---|---|
| committer | spl3g <notspl3g@duck.com> | 2026-03-18 18:01:59 +0300 |
| commit | 03648b3d9f177227df40129bed22558f6924b91c (patch) | |
| tree | 8a22eda142beeafd9002a8d5901ba9428a77ad52 /modules/homeModules/waybar.nix | |
| parent | dc19a2b583b3ab50d8e36ff0a90ca633495f675f (diff) | |
so.. v2 i guess
Diffstat (limited to 'modules/homeModules/waybar.nix')
| -rw-r--r-- | modules/homeModules/waybar.nix | 131 |
1 files changed, 131 insertions, 0 deletions
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 = "{} <span font-family='Material Design Icons' rise='-1000' size='medium'></span>"; + format-ru = "ru"; + format-en = "en"; + }; + "tray" = { + spacing = 10; + }; + "clock" = { + format = "{:%H:%M }"; + tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"; + 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}% <span font-family='Material Design Icons' rise='-2000' font-size='x-large'></span> {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 = ["" "" ""]; + }; + }; + }; + }; + }; + }; + }; +} |
