{ config, lib, pkgs, ... }: let inherit (lib) mkMerge; theme = builtins.readFile ./styles/catppuccin.css; style = builtins.readFile ./styles/style.css; notificationsStyle = builtins.readFile ./styles/notifications.css; powerStyle = builtins.readFile ./styles/power.css; statsStyle = builtins.readFile ./styles/stats.css; workspacesStyle = builtins.readFile ./styles/workspaces.css; custom-modules = import ./modules/custom-modules.nix {inherit config lib pkgs;}; default-modules = import ./modules/default-modules.nix {inherit lib pkgs;}; group-modules = import ./modules/group-modules.nix; hyprland-modules = import ./modules/hyprland-modules.nix {inherit config lib;}; allModules = mkMerge [ custom-modules default-modules group-modules hyprland-modules ]; in { programs.waybar = { enable = true; style = "${theme}${style}${notificationsStyle}${powerStyle}${statsStyle}${workspacesStyle}"; settings = { mainBar = mkMerge [ { name = "main"; "margin-top" = 10; "margin-left" = 10; "margin-right" = 10; layer = "top"; # Choose the order of the modules "modules-left" = [ "group/power" "hyprland/workspaces" ]; "modules-center" = [ "clock" ]; "modules-right" = [ "group/tray-drawer" "group/stats-drawer" "group/notifications" "hyprland/submap" "custom/weather" ]; } allModules ]; }; }; }