dotfiles/darwin.nix

135 lines
3.4 KiB
Nix

{ config, lib, pkgs, ... }:
let
inherit (pkgs.stdenv.hostPlatform) isLinux;
inherit (pkgs.stdenv.hostPlatform) isDarwin;
userName = builtins.getEnv "USER";
homeDir = builtins.getEnv "HOME";
pkgsUnstable = import <nixpkgs-unstable> {};
in
{
nix.settings.experimental-features = [
"flakes"
"nix-command"
];
environment.systemPackages = with pkgs; [];
# Use a custom configuration.nix location.
# $ darwin-rebuild switch -I darwin-config=$HOME/.config/nixpkgs/darwin.nix
environment.darwinConfig = "$HOME/.config/nixpkgs/darwin.nix";
# Auto upgrade nix package and the daemon service.
services.nix-daemon.enable = true;
nix.package = pkgs.nix;
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
system.stateVersion = 4;
users.users.winston = {
name = userName;
home = homeDir;
shell = pkgs.zsh;
};
homebrew = {
enable = true;
caskArgs.no_quarantine = true;
onActivation = {
autoUpdate = true;
cleanup = "zap";
};
casks = [
"1password"
"affinity-designer"
"affinity-photo"
"affinity-publisher"
"alfred"
"bitwarden"
"blender"
"eloston-chromium"
"discord"
"easy-move-plus-resize"
"firefox"
"imageoptim"
"insomnia"
"karabiner-elements"
"keepassxc"
"keka"
"little-snitch"
"mattermost"
"mullvadvpn"
"obs"
"postman"
"qt-creator"
"rustdesk"
"sizzy"
"uninstallpkg"
"yubico-yubikey-manager"
# drivers
"elgato-wave-link"
"uhk-agent"
"vial"
];
taps = [
"homebrew/cask"
"homebrew/cask-drivers"
];
};
programs.zsh.enable = true;
security.pam.enableSudoTouchIdAuth = true;
system.defaults.alf.stealthenabled = 1;
services = {
skhd = {
enable = true;
skhdConfig = builtins.readFile ./modules/skhd/skhdrc;
};
yabai = {
enable = true;
package = pkgsUnstable.yabai;
extraConfig = let
rule = "yabai -m rule --add";
ignored = app: builtins.concatStringsSep "\n" (map(e: "${rule} app=\"${e}\" manage=off sticky=off layer=above border=off") app);
unmanaged = app: builtins.concatStringsSep "\n" (map(e: "${rule} app=\"${e}\" manage=off") app);
in ''
# auto-inject scripting additions
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
sudo yabai --load-sa
${ignored ["JetBrains Toolbox" "Mullvad VPN" "Sip" "iStat Menus"]}
${unmanaged ["GOG Galaxy" "Steam" "System Preferences"]}
# etc.
${rule} manage=off border=off app="CleanShot"
${rule} manage=off sticky=on app="OBS Studio"
'';
config = {
auto_balance = "off";
focus_follows_mouse = "off";
layout = "bsp";
mouse_drop_action = "swap";
mouse_follows_focus = "off";
mouse_modifier = "off";
window_animation_duration = "0.1";
window_border = "on";
window_border_blur = "on";
window_border_width = "2";
# this actually looks like hot trash
# window_border_radius = "0";
window_gap = "0";
window_origin_display = "default";
window_placement = "second_child";
window_shadow = "float";
active_window_border_color = "0xfff5c2e7";
normal_window_border_color = "0xffcba6f7";
};
};
};
}