rix101/modules/nix-darwin/yabai/default.nix

96 lines
2.2 KiB
Nix
Raw Normal View History

2023-04-17 10:44:54 +02:00
{ lib, pkgs, config, ... }:
with lib;
let
cfg = config.reo101.yabai;
in
{
imports = [
];
options = {
reo101.yabai = {
enable = mkEnableOption "reo101 yabai config";
};
};
2024-06-03 18:06:22 +02:00
config = mkIf cfg.enable (
let
borders = pkgs.callPackage ./borders { };
setbg = pkgs.callPackage ./setbg {
yabai = config.services.yabai.package;
2023-04-17 10:44:54 +02:00
};
2024-06-03 18:06:22 +02:00
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 style=squared width=5.0 &
2024-06-03 18:06:22 +02:00
'';
};
2023-04-17 10:44:54 +02:00
2024-06-03 18:06:22 +02:00
skhd = {
enable = true;
package = pkgs.skhd;
skhdConfig = builtins.readFile ./skhdrc;
2024-06-03 18:06:22 +02:00
};
# sketchybar = {
# enable = true;
# package = pkgs.sketchybar;
# extraPackages = with pkgs; [
# jq
# ];
# config = import (lib.getExe (pkgs.callPackage ./sketchybar { }));
# };
};
# TODO: make builtin module work with scripts
launchd.user.agents.sketchybar = let
cfg = rec {
2024-06-03 18:06:22 +02:00
package = pkgs.sketchybar;
extraPackages = with pkgs; [
jq
];
configFile = lib.getExe (pkgs.callPackage ./sketchybar { sketchybar = package; });
2024-06-03 18:06:22 +02:00
};
in {
path = [ cfg.package ] ++ cfg.extraPackages ++ [ config.environment.systemPath ];
serviceConfig.ProgramArguments =
[
"${lib.getExe cfg.package}"
] ++ optionals (cfg.configFile != null) [
"--config"
"${cfg.configFile}"
];
serviceConfig.KeepAlive = true;
serviceConfig.RunAtLoad = true;
2023-04-17 10:44:54 +02:00
};
2024-06-03 18:06:22 +02:00
# For sketchybar
homebrew = {
taps = [
"shaunsingh/SFMono-Nerd-Font-Ligaturized"
];
casks = [
"font-sf-mono-nerd-font-ligaturized"
];
};
2024-06-03 18:06:22 +02:00
});
2023-04-17 10:44:54 +02:00
meta = {
maintainers = with lib.maintainers; [ reo101 ];
};
}