{ lib, pkgs, config, ... }: with lib; let cfg = config.reo101.yabai; in { imports = [ ]; options = { reo101.yabai = { enable = mkEnableOption "reo101 yabai config"; }; }; config = mkIf cfg.enable ( let borders = pkgs.callPackage ./borders { }; setbg = pkgs.callPackage ./setbg { yabai = config.services.yabai.package; }; in { environment.systemPackages = [ borders setbg ]; services = { yabai = { enable = true; package = pkgs.yabai; enableScriptingAddition = true; extraConfig = /* bash */ '' ${builtins.readFile ./yabairc} # Load JankyBorders ${borders}/bin/borders active_color=0xffe1e3e4 inactive_color=0xff494d64 width=5.0 & ''; }; skhd = { enable = true; package = pkgs.skhd; skhdConfig = (builtins.readFile ./skhdrc); }; sketchybar = { enable = true; package = pkgs.sketchybar; extraPackages = with pkgs; [ jq ]; config = import ./sketchybar pkgs; }; }; # For sketchybar homebrew = { taps = [ "shaunsingh/SFMono-Nerd-Font-Ligaturized" ]; casks = [ "font-sf-mono-nerd-font-ligaturized" ]; }; }); meta = { maintainers = with lib.maintainers; [ reo101 ]; }; }