diff --git a/devices/macbook/configuration.nix b/devices/macbook/configuration.nix index 4068baa..437f908 100644 --- a/devices/macbook/configuration.nix +++ b/devices/macbook/configuration.nix @@ -1,83 +1,126 @@ -{pkgs, inputs, system, ...}: { +{ + pkgs, + inputs, + system, + config, + ... +}: let + my-emacs = pkgs.emacsNativeComp; +in { nixpkgs.config.allowUnfree = true; environment.systemPackages = with pkgs; [ - # terminal - alacritty + # terminal ranger - (inputs.nixvim.packages.x86_64-darwin.default) + (inputs.vimix.packages.${system}.default) - # nix + # nix home-manager - alejandra - nix-output-monitor + nix-output-monitor - # work tool - git - terraform - doppler - ngrok - awscli2 - pgcli + # work tool + doppler + docker + colima + git + gnupg + (pass.withExtensions (exts: [exts.pass-otp])) - # misc - ollama - sl - newsboat + # emacs + my-emacs + fd + ripgrep - (writeShellScriptBin "drs" '' - darwin-rebuild switch --flake ~/.config/nix-darwin + (writeShellScriptBin "drs" '' + darwin-rebuild switch --flake ~/.config/nixos '') ]; - homebrew = { - enable = true; - onActivation = { - autoUpdate = true; - cleanup = "zap"; - }; + homebrew = { + enable = true; + onActivation = { + autoUpdate = true; + cleanup = "zap"; + }; - brews = [ - "emacs-plus@29" - ]; + brews = [ + # doom emacs + "fontconfig" + ]; - casks = [ - # internet - "qutebrowser" - "firefox" - "spotify" + casks = [ + # internet + "spotify" + "brave-browser" + "qutebrowser" + "stremio" - # work - "slack" - "tunnelblick" - "dbeaver-community" - "insomnia" + # work + "slack" + "tunnelblick" + "dbeaver-community" + "claude" - # 3D - "orcaslicer" - "openscad" + # doom emacs + "font-symbols-only-nerd-font" + ]; + }; - # Utilities - "flameshot" - "pika" - ]; - }; - - # Necessary for using flakes on this system. - nix.settings.experimental-features = "nix-command flakes"; + nix = { + # Necessary for using flakes on this system. + settings.experimental-features = "nix-command flakes"; + extraOptions = '' + extra-platforms = x86_64-darwin aarm64-darwin + ''; + }; # Create /etc/zshrc that loads the nix-darwin environment. programs.zsh.enable = true; # default shell on catalina - programs.direnv.enable = true; + programs.direnv.enable = true; + programs.gnupg.agent.enable = true; services.yabai = { enable = true; }; services.skhd.enable = true; + services.emacs = { + enable = true; + package = my-emacs; + }; + # Used for backwards compatibility, please read the changelog before changing. # $ darwin-rebuild changelog system.stateVersion = 4; + ids.gids.nixbld = 350; + + system.defaults.dock = { + autohide = true; + persistent-apps = []; + show-recents = false; + static-only = true; + tilesize = 32; + }; + + system.defaults.menuExtraClock = { + Show24Hour = true; + }; + + launchd.user.agents.remap-keys = { + serviceConfig = { + ProgramArguments = [ + "/usr/bin/hidutil" + "property" + "--set" + '' { + "UserKeyMapping":[ + {"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x7000000E7} + ] + }'' + ]; + RunAtLoad = true; + }; + }; # The platform the configuration will be used on. nixpkgs.hostPlatform = system; diff --git a/flake.nix b/flake.nix index 6e91eb5..d08c1ff 100644 --- a/flake.nix +++ b/flake.nix @@ -5,6 +5,7 @@ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nix-darwin.url = "github:LnL7/nix-darwin"; nixvim.url = "github:Polensky/nixvim"; + vimix.url = "github:Polensky/vimix"; sops-nix.url = "github:Mic92/sops-nix"; }; @@ -60,8 +61,10 @@ }; "mbp-m4" = nix-darwin.lib.darwinSystem { modules = [./devices/macbook/configuration.nix]; - specialArgs = {inherit inputs;}; - system = "aarch64-darwin"; + specialArgs = { + inherit inputs; + system = "aarch64-darwin"; + }; }; }; };