diff --git a/modules/darwin/dock/default.nix b/modules/darwin/dock/default.nix index 85f0bc9..b4e77c5 100644 --- a/modules/darwin/dock/default.nix +++ b/modules/darwin/dock/default.nix @@ -5,8 +5,6 @@ ... }: -# Original source: https://gist.github.com/antifuchs/10138c4d838a63c0a05e725ccd7bccdd - with lib; let cfg = config.local.dock; diff --git a/modules/darwin/home-manager.nix b/modules/darwin/home-manager.nix index 89e4657..b9a9d98 100644 --- a/modules/darwin/home-manager.nix +++ b/modules/darwin/home-manager.nix @@ -20,7 +20,8 @@ in name = "${user}"; home = "/Users/${user}"; isHidden = false; - shell = pkgs.zsh; + shell = pkgs.fish; + ignoreShellProgramCheck = true; }; homebrew = { diff --git a/modules/darwin/packages.nix b/modules/darwin/packages.nix index 0f3a034..30a1e6a 100644 --- a/modules/darwin/packages.nix +++ b/modules/darwin/packages.nix @@ -8,4 +8,5 @@ shared-packages _1password-gui dockutil raycast + neovim ] diff --git a/modules/darwin/secrets.nix b/modules/darwin/secrets.nix index f535571..42ca5e7 100644 --- a/modules/darwin/secrets.nix +++ b/modules/darwin/secrets.nix @@ -13,33 +13,4 @@ in age.identityPaths = [ "/Users/${user}/.ssh/id_ed25519" ]; - - # Your secrets go here - # - # Note: the installWithSecrets command you ran to boostrap the machine actually copies over - # a Github key pair. However, if you want to store the keypair in your nix-secrets repo - # instead, you can reference the age files and specify the symlink path here. Then add your - # public key in shared/files.nix. - # - # If you change the key name, you'll need to update the SSH configuration in shared/home-manager.nix - # so Github reads it correctly. - - # - # age.secrets."github-ssh-key" = { - # symlink = true; - # path = "/Users/${user}/.ssh/id_github"; - # file = "${secrets}/github-ssh-key.age"; - # mode = "600"; - # owner = "${user}"; - # group = "staff"; - # }; - - # age.secrets."github-signing-key" = { - # symlink = false; - # path = "/Users/${user}/.ssh/pgp_github.key"; - # file = "${secrets}/github-signing-key.age"; - # mode = "600"; - # owner = "${user}"; - # }; - } diff --git a/modules/shared/config/config.nu b/modules/shared/config/config.nu index e48f22f..c91c5a5 100644 --- a/modules/shared/config/config.nu +++ b/modules/shared/config/config.nu @@ -1,7 +1,8 @@ $env.PATH = [ ($env.HOME | path join ".local" "bin"), ($env.HOME | path join ".scripts"), - "/opt/homebrew/bin" + "/run/current-system/sw/bin", + "/nix/var/nix/profiles/default/bin" ] ++ $env.PATH $env.EDITOR = "nvim" diff --git a/modules/shared/home-manager.nix b/modules/shared/home-manager.nix index 6407421..cd41452 100644 --- a/modules/shared/home-manager.nix +++ b/modules/shared/home-manager.nix @@ -11,69 +11,54 @@ let email = "christoph@schmatzler.com"; in { - ghostty = { + ssh = { enable = true; - package = pkgs.ghostty-bin; - settings = { - command = "${pkgs.nushell}/bin/nu"; - theme = "catppuccin-latte"; - window-padding-x = 8; - window-padding-y = 2; - window-padding-balance = true; - font-family = "Iosevka"; - font-size = 15.5; - font-feature = [ - "-calt" - "-dlig" - ]; - cursor-style = "block"; - mouse-hide-while-typing = true; - mouse-scroll-multiplier = 1.25; - shell-integration = "detect"; - shell-integration-features = "no-cursor"; - - keybind = [ - "global:ctrl+shift+space=toggle_quick_terminal" - "shift+enter=text:\\n" - "ctrl+one=goto_tab:1" - "ctrl+two=goto_tab:2" - "ctrl+three=goto_tab:3" - "ctrl+four=goto_tab:4" - "ctrl+five=goto_tab:5" - "ctrl+six=goto_tab:6" - "ctrl+seven=goto_tab:7" - "ctrl+eight=goto_tab:8" - "ctrl+nine=goto_tab:9" - "ctrl+left=previous_tab" - "ctrl+right=next_tab" - "ctrl+h=previous_tab" - "ctrl+l=next_tab" - "ctrl+shift+left=goto_split:left" - "ctrl+shift+right=goto_split:right" - "ctrl+shift+h=goto_split:left" - "ctrl+shift+j=goto_split:down" - "ctrl+shift+k=goto_split:up" - "ctrl+shift+l=goto_split:right" - "ctrl+shift+enter=new_split:right" - "ctrl+t=new_tab" - "ctrl+w=close_tab" - "ctrl+shift+w=close_surface" - ]; + includes = [ + (lib.mkIf pkgs.stdenv.hostPlatform.isLinux "/home/${user}/.ssh/config_external") + (lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/config_external") + ]; + matchBlocks = { + "github.com" = { + identitiesOnly = true; + identityFile = [ + (lib.mkIf pkgs.stdenv.hostPlatform.isLinux "/home/${user}/.ssh/id_github") + (lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/id_github") + ]; + }; }; }; + git = { + enable = true; + ignores = [ "*.swp" ]; + userName = name; + userEmail = email; + lfs = { + enable = true; + }; + extraConfig = { + init.defaultBranch = "main"; + core = { + editor = "vim"; + autocrlf = "input"; + }; + # commit.gpgsign = true; + pull.rebase = true; + rebase.autoStash = true; + }; + }; + + fish = { + enable = true; + }; + zsh = { enable = true; }; - nushell = { - enable = true; - configFile.source = ./.../config/config.nu; - }; - starship = { enable = true; - enableNushellIntegration = true; + enableFishIntegration = true; settings = { add_newline = true; command_timeout = 750; @@ -131,40 +116,67 @@ in }; }; - git = { + zoxide = { enable = true; - ignores = [ "*.swp" ]; - userName = name; - userEmail = email; - lfs = { + enableFishIntegration = true; + }; + + atuin = { + enable = true; + enableFishIntegration = true; + daemon = { enable = true; }; - extraConfig = { - init.defaultBranch = "main"; - core = { - editor = "vim"; - autocrlf = "input"; - }; - commit.gpgsign = true; - pull.rebase = true; - rebase.autoStash = true; - }; }; - ssh = { + ghostty = { enable = true; - includes = [ - (lib.mkIf pkgs.stdenv.hostPlatform.isLinux "/home/${user}/.ssh/config_external") - (lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/config_external") - ]; - matchBlocks = { - "github.com" = { - identitiesOnly = true; - identityFile = [ - (lib.mkIf pkgs.stdenv.hostPlatform.isLinux "/home/${user}/.ssh/id_github") - (lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/id_github") - ]; - }; + package = pkgs.ghostty-bin; + settings = { + command = "${pkgs.fish}/bin/fish"; + theme = "catppuccin-latte"; + window-padding-x = 8; + window-padding-y = 2; + window-padding-balance = true; + font-family = "Iosevka"; + font-size = 15.5; + font-feature = [ + "-calt" + "-dlig" + ]; + cursor-style = "block"; + mouse-hide-while-typing = true; + mouse-scroll-multiplier = 1.25; + shell-integration = "detect"; + shell-integration-features = "no-cursor"; + + keybind = [ + "global:ctrl+shift+space=toggle_quick_terminal" + "shift+enter=text:\\n" + "ctrl+one=goto_tab:1" + "ctrl+two=goto_tab:2" + "ctrl+three=goto_tab:3" + "ctrl+four=goto_tab:4" + "ctrl+five=goto_tab:5" + "ctrl+six=goto_tab:6" + "ctrl+seven=goto_tab:7" + "ctrl+eight=goto_tab:8" + "ctrl+nine=goto_tab:9" + "ctrl+left=previous_tab" + "ctrl+right=next_tab" + "ctrl+h=previous_tab" + "ctrl+l=next_tab" + "ctrl+shift+left=goto_split:left" + "ctrl+shift+right=goto_split:right" + "ctrl+shift+h=goto_split:left" + "ctrl+shift+j=goto_split:down" + "ctrl+shift+k=goto_split:up" + "ctrl+shift+l=goto_split:right" + "ctrl+shift+enter=new_split:right" + "ctrl+t=new_tab" + "ctrl+w=close_tab" + "ctrl+shift+w=close_surface" + ]; }; }; } diff --git a/modules/shared/packages.nix b/modules/shared/packages.nix index 42230f5..a97cb91 100644 --- a/modules/shared/packages.nix +++ b/modules/shared/packages.nix @@ -4,9 +4,11 @@ with pkgs; [ age age-plugin-yubikey + atuin bat docker docker-compose + fish gnupg iosevka jjui @@ -14,6 +16,7 @@ with pkgs; jujutsu killall libfido2 + neovim nixfmt nodejs_24 openssh @@ -22,6 +25,8 @@ with pkgs; tree unrar unzip + vivid wget zip + zoxide ]