diff --git a/hosts/mac/home.nix b/hosts/mac/home.nix index bec08f3..562ceba 100644 --- a/hosts/mac/home.nix +++ b/hosts/mac/home.nix @@ -1,11 +1,22 @@ { inputs, + pkgs, ... }: { home = { - username = "cdreyes"; - homeDirectory = "/Users/cdreyes"; + username = "carlosdaniloreyesmartinez"; + homeDirectory = "/Users/carlosdaniloreyesmartinez"; + packages = [ pkgs.google-cloud-sdk ]; + }; + programs = { + starship.enable = true; + kitty = { + enable = true; + shellIntegration.enableBashIntegration = false; + shellIntegration.enableZshIntegration = true; + settings.term = "xterm-256color"; + }; }; my = import ./toggles.nix { inherit inputs; }; } diff --git a/modules/dev/emacs/common.nix b/modules/dev/emacs/common.nix index d1f0c65..dca8aca 100644 --- a/modules/dev/emacs/common.nix +++ b/modules/dev/emacs/common.nix @@ -5,28 +5,47 @@ emacsExtraConfig, emacsExtraPackages, }: +let + clipboardPackages = + if pkgs.stdenv.isDarwin then + builtins.attrValues { + inherit (pkgs) pngpaste; + } + else + builtins.attrValues { + inherit (pkgs) + xclip + wl-clipboard-rs + ; + }; + linuxWindowPackages = lib.optionals pkgs.stdenv.isLinux ( + builtins.attrValues { + inherit (pkgs.xorg) xwininfo; + inherit (pkgs) xdotool; + } + ); +in { - packages = builtins.attrValues { - inherit (pkgs.xorg) xwininfo; - inherit (pkgs) - xdotool - xclip - wl-clipboard-rs - fd - fzf - ripgrep - tree-sitter - graphviz - tetex - languagetool - yaml-language-server - markdownlint-cli - ; - inherit (pkgs.nodePackages) - vscode-json-languageserver - prettier - ; - }; + packages = + linuxWindowPackages + ++ clipboardPackages + ++ builtins.attrValues { + inherit (pkgs) + fd + fzf + ripgrep + tree-sitter + graphviz + tetex + languagetool + yaml-language-server + markdownlint-cli + ; + inherit (pkgs.nodePackages) + vscode-json-languageserver + prettier + ; + }; extraPackages = epkgs: let diff --git a/modules/shell/tools/home.nix b/modules/shell/tools/home.nix index c90eb02..8928545 100644 --- a/modules/shell/tools/home.nix +++ b/modules/shell/tools/home.nix @@ -111,9 +111,11 @@ in fi '' '' - if command -v fzf-share >/dev/null; then - source "$(fzf-share)/key-bindings.bash" - source "$(fzf-share)/completion.bash" + if [ -f "${pkgs.fzf}/share/fzf/key-bindings.zsh" ]; then + source "${pkgs.fzf}/share/fzf/key-bindings.zsh" + fi + if [ -f "${pkgs.fzf}/share/fzf/completion.zsh" ]; then + source "${pkgs.fzf}/share/fzf/completion.zsh" fi ''; }; diff --git a/parts/core.nix b/parts/core.nix index 78f64cd..f83edad 100644 --- a/parts/core.nix +++ b/parts/core.nix @@ -9,7 +9,10 @@ let }; in { - systems = [ system ]; + systems = [ + system + "aarch64-darwin" + ]; flake = { lib = { commonOverlays = mkpkgs: inputs: [ diff --git a/parts/devshells.nix b/parts/devshells.nix index ab62d43..9ce9938 100644 --- a/parts/devshells.nix +++ b/parts/devshells.nix @@ -1,16 +1,23 @@ { inputs, ... }: { - perSystem = _: { - devShells = - let - hostShells = inputs.self.nixosConfigurations.emacs.config.devShells; - in - inputs.self.lib.langList - |> builtins.filter (name: hostShells ? ${name}) - |> map (name: { - inherit name; - value = hostShells.${name}; - }) - |> builtins.listToAttrs; - }; + perSystem = + { pkgs, ... }: + { + devShells = + if pkgs.stdenv.isLinux then + let + hostShells = inputs.self.nixosConfigurations.emacs.config.devShells; + in + inputs.self.lib.langList + |> builtins.filter (name: hostShells ? ${name}) + |> map (name: { + inherit name; + value = hostShells.${name}; + }) + |> builtins.listToAttrs + else + { + mcp = (import ../modules/dev/mcp/common.nix { inherit pkgs inputs; }).devShell; + }; + }; } diff --git a/parts/packages.nix b/parts/packages.nix index 48334db..4ab3614 100644 --- a/parts/packages.nix +++ b/parts/packages.nix @@ -52,12 +52,16 @@ }; in { - packages = (inputs.jawz-scripts.packages.${system} or { }) // { - emacs-vm = inputs.self.nixosConfigurations.emacs.config.system.build.vm; - vps-linode = vpsLinodeConfig.config.system.build.images.linode; - mcp-tests = mcpTests; - nixos-mcp = nixosMcp; - nixos-mcp-server = mcpServerPkg; - }; + packages = + (inputs.jawz-scripts.packages.${system} or { }) + // { + mcp-tests = mcpTests; + nixos-mcp = nixosMcp; + nixos-mcp-server = mcpServerPkg; + } + // pkgs.lib.optionalAttrs pkgs.stdenv.isLinux { + emacs-vm = inputs.self.nixosConfigurations.emacs.config.system.build.vm; + vps-linode = vpsLinodeConfig.config.system.build.images.linode; + }; }; }