{ config, pkgs, inputs, ... }: let in { imports = [ # Install Apps Detactable by Spotlight ./app-fix.nix # Tiling Window Manager ./yabai.nix # Shortcuts babe, not Automator ./skhd.nix ]; nix.registry.nixpkgs.flake = inputs.nixpkgs; nixpkgs.config.allowUnfree = true; # Auto upgrade nix package and the daemon service. services.nix-daemon.enable = true; nix.package = pkgs.nixUnstable; nix.settings.auto-optimise-store = false; users.users.universelaptop = { name = "universelaptop"; home = "/Users/universelaptop"; }; home-manager = { useGlobalPkgs = true; useUserPackages = true; users.universelaptop = { pkgs, ... }: { programs.direnv.enable = true; programs.direnv.nix-direnv.enable = true; programs.bash.enable = true; programs.zsh = { enable = true; initExtra = '' if [[ $(uname -m) == 'arm64' ]]; then eval "$(/opt/homebrew/bin/brew shellenv)" fi ''; shellAliases = { ssh = "kitty +kitten ssh"; sshu = "ssh universe"; }; }; home.stateVersion = "22.05"; }; }; environment.variables = { EDITOR = "emacs"; }; environment.systemPackages = (with pkgs; [ mac-emacs (aspellWithDicts (p: with p;[ en en-computers en-science ])) pandoc texlive.combined.scheme-full wget kitty btop cbqn-replxx # Graphical Apps: rectangle tailscale discord slack # TODO: Consider using Yabai?? ]); homebrew = { # It is not installed by nix, for now, so manually install: # https://brew.sh/ enable = true; onActivation = { cleanup = "uninstall"; }; # Graphical apps to install through homebrew instead of nixpkgs casks = [ "firefox" "nextcloud" "tidal" "bitwarden" ]; # Apps to install outside of nix for when wanting to test/run # things that... aren't used by other people who use nix, like # python apps (which is why poetry is there) brews = [ "poetry" ]; }; # Create /etc/zshrc that loads the nix-darwin environment. programs.bash.enable = true; # default shell on catalina programs.zsh.enable = true; # default shell on catalina # Used for backwards compatibility, please read the changelog before changing. # $ darwin-rebuild changelog system.stateVersion = 4; }