155 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, lib, pkgs, osConfig, ... }:
 | |
| 
 | |
| let
 | |
|   inherit (config.colorscheme) palette;
 | |
|   inherit (lib) mkIf head;
 | |
|   fonts = config.ooknet.fonts;
 | |
|   wayland = config.ooknet.wayland;
 | |
|   monitors = osConfig.ooknet.host.hardware.monitors;
 | |
|   monitorWidth =  (head monitors).width - 20;
 | |
| in
 | |
| 
 | |
| {
 | |
|   config = mkIf (wayland.bar == "waybar") {
 | |
|     programs.waybar = {
 | |
|       enable = true;
 | |
|       systemd.enable = true;
 | |
|       package = pkgs.waybar;
 | |
| 
 | |
|       settings.mainBar = {
 | |
|         layer = "top";
 | |
|         position = "top";
 | |
|         height = 30;
 | |
|         width = monitorWidth;
 | |
|         exclusive = true;
 | |
|         margin-top = 10;
 | |
|         margin-bottom = -12;
 | |
| 
 | |
|         modules-left = [ "clock" "battery" "hyprland/workspaces" ];
 | |
|         modules-center = [];
 | |
|         modules-right = [ "custom/hyprrecord" "tray" ];
 | |
| 
 | |
|         "hyprland/workspaces" = let
 | |
|           hyprctl = config.wayland.windowManager.hyprland.package + "/bin/hyprctl";
 | |
|         in {
 | |
|           on-click = "activate";
 | |
|           on-scroll-up = "${hyprctl} dispatch workspace m+1";
 | |
|           on-scroll-down = "${hyprctl} dispatch workspace m-1";
 | |
|           format = "{icon}";
 | |
|           active-only = false;
 | |
|           persistent-workspaces = {
 | |
|             "*" = 5;
 | |
|           };
 | |
|           format-icons = {
 | |
|             active = "";
 | |
|             default = "";
 | |
|             urgent = "";
 | |
|           };
 | |
|           all-outputs = false;
 | |
|         };
 | |
| 
 | |
|         clock = {
 | |
|           format = "{:%I:%M %p}";
 | |
|           format-alt = "{:%Y-%m-%d}";
 | |
|         };
 | |
|         battery = {
 | |
|           states = {
 | |
|             good = 100;
 | |
|             warning = 35;
 | |
|             critical = 15;
 | |
|           };
 | |
|           bat = "BAT0";
 | |
|           interval = 10;
 | |
|           format-icons = [ "" "" "" "" "" "" "" "" "" "" ];
 | |
|           format = "{icon} {capacity}%";
 | |
|           format-charging = "{icon} {capacity}%";
 | |
|           tooltip-format = "{timeTo} {power}W";
 | |
|         };
 | |
|         tray = {
 | |
|           icon-size = 21;
 | |
|           spacing = 5;
 | |
|         };
 | |
|         "custom/hyprrecord" = {
 | |
|           format = "{}";
 | |
|           interval = "once";
 | |
|           exec = "echo  ";
 | |
|           tooltip = "false";
 | |
|           exec-if = "pgrep wl-screenrec";
 | |
|           on-click = "exec hyprrecord -a --waybar screen copysave video";
 | |
|           signal = 12;
 | |
|         };
 | |
|       };
 | |
|       style = /* css */ ''
 | |
|         * {
 | |
|           font-family: "${fonts.monospace.family}";
 | |
|           font-size: 19px;
 | |
|           border: solid #${palette.base05};
 | |
|         }
 | |
| 
 | |
|         window#waybar {
 | |
|           background-color: transparent;
 | |
|           margin: 10px;
 | |
|         }
 | |
| 
 | |
|         #clock,
 | |
|         #battery,
 | |
|         #workspaces {
 | |
|           background-color: #${palette.base00};
 | |
|           padding-right: 10px;
 | |
|         }
 | |
| 
 | |
|         #clock {
 | |
|           padding-left: 10px;
 | |
|           border: 2px solid #${palette.base05};
 | |
|           border-right: 0px;
 | |
|           border-top-left-radius: 10px;
 | |
|         }
 | |
| 
 | |
|         #battery {
 | |
|           padding-left: 10px;
 | |
|           border-top: 2px solid #${palette.base05};
 | |
|           border-bottom: 2px solid #${palette.base05};
 | |
|           border-left: 0px;
 | |
|         }
 | |
| 
 | |
|         #battery.good {
 | |
|           color: #${palette.base0B};
 | |
|         }
 | |
|         #battery.warning {
 | |
|           color: #${palette.base0A};
 | |
|         }
 | |
|         #battery.critical {
 | |
|           color: #${palette.base08};
 | |
|         }
 | |
| 
 | |
|         #tray {
 | |
|           padding-right: 10px;
 | |
|           padding-left: 10px;
 | |
|           background-color: transparent;
 | |
|           border: 0;
 | |
|         }
 | |
| 
 | |
|         #workspaces {
 | |
|           border: 2px solid #${palette.base05};
 | |
|           border-left: 0;
 | |
|           border-top-right-radius: 10px;
 | |
|         }
 | |
| 
 | |
|         #workspace button,
 | |
|         #workspaces button.active,
 | |
|         #workspaces button.visible {
 | |
|           color: #${palette.base0B};
 | |
|         }
 | |
| 
 | |
|         #workspaces button.urgent {
 | |
|           color: #${palette.base08};
 | |
|         }
 | |
| 
 | |
|         #custom-hyprrecord {
 | |
|           color: #${palette.base08};
 | |
|           padding-right: 20px;
 | |
|         }
 | |
|       '';
 | |
|     };
 | |
|   };
 | |
| }
 |