diff --git a/home/macos.nix b/home/macos.nix index 078437f8..8eb4e484 100644 --- a/home/macos.nix +++ b/home/macos.nix @@ -41,28 +41,5 @@ in himkt_pkgs.pathfinder ]; - home.sessionVariables = { - EDITOR = "nvim"; - }; - - # macOS-specific platform overrides - programs.git.settings.credential."https://github.com".helper = - lib.mkForce "!/opt/homebrew/bin/gh auth git-credential"; - - programs.tmux.extraConfig = lib.mkAfter '' - # macOS clipboard integration - bind-key -T copy-mode-vi y send -X copy-selection-and-cancel\; run "tmux save -|pbcopy" - bind-key -T copy-mode-vi Enter send -X copy-selection-and-cancel\; run "tmux save -|pbcopy" - ''; - - programs.mise.globalConfig = { - tools = { - gcloud = "latest"; - }; - settings = { - idiomatic_version_file_enable_tools = []; - }; - }; - programs.home-manager.enable = true; } diff --git a/home/modules/git/default.nix b/home/modules/git/default.nix index b0c7ec4e..8d868a04 100644 --- a/home/modules/git/default.nix +++ b/home/modules/git/default.nix @@ -6,32 +6,15 @@ }: { - programs.git = { - enable = true; - lfs.enable = true; + home.packages = with pkgs; [ + git + git-lfs + ]; - settings = { - user = { - name = "himkt"; - email = "himkt@klis.tsukuba.ac.jp"; - }; - credential."https://github.com" = { - helper = "!gh auth git-credential"; - }; - }; - - # Load additional config from dotfiles - includes = [ - { path = "~/.config/git/config-extra"; } - ]; - }; - - # Additional git config (aliases, format, etc.) - xdg.configFile."git/config-extra" = { + xdg.configFile."git/config" = { source = ./files/config; }; - # Global gitignore xdg.configFile."git/ignore" = { source = ./files/ignore; }; diff --git a/home/modules/git/files/config b/home/modules/git/files/config index 562b6791..82005898 100644 --- a/home/modules/git/files/config +++ b/home/modules/git/files/config @@ -1,3 +1,10 @@ +[user] + name = himkt + email = himkt@klis.tsukuba.ac.jp + +[credential "https://github.com"] + helper = !gh auth git-credential + [pull] rebase = false diff --git a/home/modules/mise/default.nix b/home/modules/mise/default.nix index a00ef1cd..88843d13 100644 --- a/home/modules/mise/default.nix +++ b/home/modules/mise/default.nix @@ -1,43 +1,10 @@ -{ - pkgs, - inputs, - ... -}: - +{ pkgs, inputs, ... }: let unstable = import inputs.nixpkgs-unstable { system = pkgs.stdenv.hostPlatform.system; }; in - { - programs.mise = { - enable = true; - package = unstable.mise; - enableZshIntegration = true; - - globalConfig = { - tools = { - "aqua:ahmetb/kubectx" = "latest"; - "aqua:anthropics/claude-code" = "latest"; - # FIXME(himkt): btop does not release binaries for macOS - # "aqua:aristocratos/btop" = "latest"; - "aqua:bazelbuild/bazelisk" = "latest"; - "aqua:cli/cli" = "latest"; - "aqua:derailed/k9s" = "latest"; - "aqua:jqlang/jq" = "latest"; - "aqua:kubernetes-sigs/kustomize" = "latest"; - "aqua:kubernetes/kubernetes/kubectl" = "latest"; - "aqua:openai/codex" = "latest"; - "asdf:mise-plugins/mise-gcloud" = "latest"; - "core:java" = "latest"; - "core:node" = "latest"; - }; - settings = { - all_compile = false; - experimental = true; - # disable_backends = [ "asdf" ]; - }; - }; - }; + home.packages = [ unstable.mise ]; + xdg.configFile."mise/config.toml" = { source = ./files/config.toml; }; } diff --git a/home/modules/mise/files/config.toml b/home/modules/mise/files/config.toml new file mode 100644 index 00000000..bbfdf929 --- /dev/null +++ b/home/modules/mise/files/config.toml @@ -0,0 +1,25 @@ +[tools] +"aqua:ahmetb/kubectx" = "latest" +"aqua:ajeetdsouza/zoxide" = "latest" +"aqua:anthropics/claude-code" = "latest" +"aqua:astral-sh/uv" = "latest" +# FIXME(himkt): btop does not release binaries for macOS +# "aqua:aristocratos/btop" = "latest" +"aqua:bazelbuild/bazelisk" = "latest" +"aqua:cli/cli" = "latest" +"aqua:derailed/k9s" = "latest" +"aqua:jqlang/jq" = "latest" +"aqua:junegunn/fzf" = "latest" +"aqua:kubernetes-sigs/kustomize" = "latest" +"aqua:kubernetes/kubernetes/kubectl" = "latest" +"aqua:neovim/neovim" = "latest" +"aqua:openai/codex" = "latest" +"aqua:tmux/tmux-builds" = "latest" +"asdf:mise-plugins/mise-gcloud" = "latest" +"core:java" = "latest" +"core:node" = "latest" + +[settings] +all_compile = false +experimental = true +idiomatic_version_file_enable_tools = [] diff --git a/home/modules/nvim/default.nix b/home/modules/nvim/default.nix index 79b224a8..6813f6fa 100644 --- a/home/modules/nvim/default.nix +++ b/home/modules/nvim/default.nix @@ -1,27 +1,5 @@ +{ ... }: { - config, - pkgs, - lib, - ... -}: - -{ - programs.neovim = { - enable = true; - viAlias = true; - vimAlias = true; - - plugins = with pkgs.vimPlugins; [ - vim-easymotion - tabular - fzf-vim - vim-indent-guides - vim-anzu - vim-airline - vim-polyglot - ]; - }; - xdg.configFile."nvim/init.vim" = { source = ./files/init.vim; }; diff --git a/home/modules/tmux/default.nix b/home/modules/tmux/default.nix index b0081458..245eaf96 100644 --- a/home/modules/tmux/default.nix +++ b/home/modules/tmux/default.nix @@ -1,13 +1,6 @@ +{ ... }: { - config, - pkgs, - lib, - ... -}: - -{ - programs.tmux = { - enable = true; - extraConfig = builtins.readFile ./files/tmux.conf; + xdg.configFile."tmux/tmux.conf" = { + source = ./files/tmux.conf; }; } diff --git a/home/modules/tmux/files/tmux.conf b/home/modules/tmux/files/tmux.conf index e3139961..354ef435 100644 --- a/home/modules/tmux/files/tmux.conf +++ b/home/modules/tmux/files/tmux.conf @@ -12,8 +12,12 @@ set -g status-justify left # enable mouse mode setw -g mode-keys vi -bind-key -T copy-mode-vi y send -X copy-selection-and-cancel -bind-key -T copy-mode-vi Enter send -X copy-selection-and-cancel +if-shell "command -v pbcopy" \ + "bind-key -T copy-mode-vi y send -X copy-selection-and-cancel\\; run 'tmux save-buffer -|pbcopy'" \ + "bind-key -T copy-mode-vi y send -X copy-selection-and-cancel" +if-shell "command -v pbcopy" \ + "bind-key -T copy-mode-vi Enter send -X copy-selection-and-cancel\\; run 'tmux save-buffer -|pbcopy'" \ + "bind-key -T copy-mode-vi Enter send -X copy-selection-and-cancel" # color set -g status-fg colour231 diff --git a/home/modules/uv/default.nix b/home/modules/uv/default.nix index 25e601ca..52da4f59 100644 --- a/home/modules/uv/default.nix +++ b/home/modules/uv/default.nix @@ -1,15 +1,5 @@ +{ ... }: { - config, - pkgs, - lib, - ... -}: - -{ - home.packages = with pkgs; [ - uv - ]; - xdg.configFile."uv/uv.toml" = { source = ./files/uv.toml; }; diff --git a/home/modules/zsh/default.nix b/home/modules/zsh/default.nix index 644820b1..833d6ee9 100644 --- a/home/modules/zsh/default.nix +++ b/home/modules/zsh/default.nix @@ -1,19 +1,6 @@ +{ ... }: { - config, - pkgs, - lib, - ... -}: - -{ - programs.zsh = { - enable = true; - initContent = builtins.readFile ./files/zshrc; + home.file.".zshrc" = { + source = ./files/zshrc; }; - - # Additional packages needed by zshrc - home.packages = with pkgs; [ - fzf - zoxide - ]; } diff --git a/home/modules/zsh/files/zshrc b/home/modules/zsh/files/zshrc index c526d5ef..dcc59e53 100644 --- a/home/modules/zsh/files/zshrc +++ b/home/modules/zsh/files/zshrc @@ -2,6 +2,8 @@ # .zshrc - The zsh configuration # +export PATH="$HOME/.local/share/mise/shims:$PATH" + if command -v tmux > /dev/null && [ -z "$TMUX" ] && [ -z "$VSCODE_INJECTION" ] && [[ $- == *i* ]]; then tmux attach-session 2>/dev/null || tmux new-session fi @@ -79,6 +81,7 @@ Darwin*) ;; Linux*) export HOMEBREW_ROOT=/home/linuxbrew/.linuxbrew + alias open="xdg-open" ;; esac @@ -150,11 +153,19 @@ PROMPT+=$'\n' PROMPT+='> ' SPROMPT="${fg[red]}%r$reset_color is correct? [y, n, a, e]:" +if command -v mise > /dev/null; then + eval "$(mise activate zsh)" +fi + if command -v fzf > /dev/null; then source <(fzf --zsh) fi +if command -v bazelisk > /dev/null; then + alias bazel=bazelisk +fi + if command -v nvim > /dev/null; then alias vim=nvim export EDITOR=nvim diff --git a/home/nixos.nix b/home/nixos.nix index b0ab414b..dce4d2ab 100644 --- a/home/nixos.nix +++ b/home/nixos.nix @@ -154,9 +154,5 @@ in }; }; - # NixOS-specific platform overrides - programs.zsh.shellAliases = { - open = "xdg-open"; - }; programs.home-manager.enable = true; }