Skip to content

Feat/file based config migration#341

Merged
himkt merged 11 commits intomainfrom
feat/file-based-config-migration
Mar 13, 2026
Merged

Feat/file based config migration#341
himkt merged 11 commits intomainfrom
feat/file-based-config-migration

Conversation

@himkt
Copy link
Copy Markdown
Owner

@himkt himkt commented Mar 13, 2026

No description provided.

@himkt himkt requested a review from Copilot March 13, 2026 09:56
@himkt himkt self-assigned this Mar 13, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates several Home Manager program modules from declarative programs.* configuration to file-based dotfile/config management (e.g., .zshrc, tmux.conf, git/config, mise/config.toml, nvim config), removing some OS-specific overrides from home/{nixos,macos}.nix.

Changes:

  • Replace programs.{zsh,tmux,git,neovim,mise} settings with home.file / xdg.configFile-managed config files.
  • Move OS-specific behaviors into shell/config files (e.g., open alias in .zshrc, tmux clipboard bindings in tmux.conf).
  • Introduce a file-based mise configuration and activate mise from .zshrc.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
home/nixos.nix Removes NixOS-specific zsh alias override as part of shifting behavior into .zshrc.
home/macos.nix Removes macOS-specific overrides previously applied via Home Manager options.
home/modules/zsh/default.nix Switches to managing .zshrc directly via home.file.
home/modules/zsh/files/zshrc Adds sourcing of HM session vars, Linux open alias, and mise activation.
home/modules/tmux/default.nix Switches to managing tmux config via xdg.configFile.
home/modules/tmux/files/tmux.conf Adds clipboard integration to copy bindings.
home/modules/nvim/default.nix Switches from programs.neovim to installing neovim and shipping config files.
home/modules/mise/files/config.toml Adds mise tool and settings config as a TOML file.
home/modules/mise/default.nix Switches from programs.mise to installing mise and shipping mise/config.toml.
home/modules/git/files/config Moves git user/credential helper config into a file-based git config.
home/modules/git/default.nix Switches from programs.git to installing git(+lfs) and shipping git/config.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread home/modules/tmux/default.nix
Comment thread home/modules/nvim/default.nix Outdated
Comment thread home/modules/mise/default.nix
Comment thread home/modules/git/files/config
Comment thread home/modules/tmux/files/tmux.conf Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates several Home Manager configurations from declarative programs.* modules to file-based dotfile/config deployment (via home.file / xdg.configFile), and centralizes some shell/tool initialization in the dotfiles themselves.

Changes:

  • Switch zsh/tmux/git/neovim/mise modules from programs.* options to managing config files directly.
  • Add/extend dotfiles: .zshrc now sources HM session vars and activates mise; git config now includes user/credential helper.
  • Introduce mise TOML config tracked as a file and wire mise shims into home.sessionPath.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
home/nixos.nix Removes NixOS-only zsh alias override (moved into zshrc).
home/macos.nix Removes macOS-specific overrides previously applied via HM options.
home/modules/zsh/default.nix Switches to deploying .zshrc as a file.
home/modules/zsh/files/zshrc Sources HM session vars, adds Linux open alias, and activates mise.
home/modules/tmux/default.nix Switches to deploying tmux.conf via XDG config file.
home/modules/tmux/files/tmux.conf Updates copy-mode bindings to pipe selection to clipboard.
home/modules/nvim/default.nix Switches to installing neovim + deploying config files (removes HM plugin management).
home/modules/mise/default.nix Switches to installing mise package + XDG config TOML + sessionPath shims.
home/modules/mise/files/config.toml Adds tracked mise tool/settings configuration.
home/modules/git/default.nix Switches to installing git packages + deploying ~/.config/git/config.
home/modules/git/files/config Adds user identity + GitHub credential helper config.
Comments suppressed due to low confidence (1)

home/modules/nvim/default.nix:9

  • This change stops installing Neovim plugins via programs.neovim.plugins, but the shipped init.vim still contains settings/mappings that require those plugins (e.g., fzf#vim#files, EasyMotion, Tabularize). Without an alternative plugin manager or packaging, Neovim will error or those mappings will break. Either reintroduce plugin installation (via Nix or a plugin manager) or guard plugin-specific config so it only runs when the plugin is available.
  home.packages = with pkgs; [
    neovim
  ];

  xdg.configFile."nvim/init.vim" = {
    source = ./files/init.vim;
  };

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread home/modules/git/files/config
Comment thread home/modules/tmux/files/tmux.conf Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR migrates several Home Manager configurations from module-based programs.* settings to file-based dotfile placement (home.file / xdg.configFile), and centralizes more runtime tool setup in shell config (notably mise activation).

Changes:

  • Replace Home Manager programs.* configs (zsh/tmux/nvim/git/uv/mise) with file-based config deployment.
  • Add mise activation + shims PATH wiring to zshrc, and move Linux open alias into zshrc.
  • Introduce a checked-in mise/config.toml describing tool installs.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
home/nixos.nix Removes NixOS-specific open shell alias override.
home/macos.nix Removes macOS-specific overrides previously applied via programs.* settings.
home/modules/zsh/files/zshrc Adds Linux open alias; adds mise shims PATH + zsh activation.
home/modules/zsh/default.nix Switches from programs.zsh.initContent to writing ~/.zshrc directly.
home/modules/uv/default.nix Switches from installing uv via Nix to only placing uv.toml.
home/modules/tmux/files/tmux.conf Adds copy-mode bindings that pipe selections to clipboard.
home/modules/tmux/default.nix Switches from programs.tmux.extraConfig to XDG config file placement.
home/modules/nvim/default.nix Switches from programs.neovim (with plugins) to only placing init.vim.
home/modules/mise/files/config.toml Adds mise tool + settings config.
home/modules/mise/default.nix Switches from programs.mise to installing mise + placing mise/config.toml.
home/modules/git/files/config Adds [user] and GitHub credential helper config to gitconfig.
home/modules/git/default.nix Switches from programs.git to installing git/git-lfs and placing git config files.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread home/modules/tmux/files/tmux.conf Outdated
Comment thread home/modules/git/files/config
Comment thread home/modules/nvim/default.nix
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates Home Manager modules from declarative programs.* configuration to managing tool configs as files under $HOME / XDG config paths, while moving tool installation toward mise.

Changes:

  • Replace several programs.{zsh,tmux,neovim,git,mise} Home Manager configs with home.file / xdg.configFile-managed dotfiles.
  • Add mise global config (~/.config/mise/config.toml) and zsh runtime activation/aliases.
  • Adjust tmux clipboard bindings and consolidate git config into ~/.config/git/config.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
home/nixos.nix Removes NixOS-only zsh alias override now handled in .zshrc.
home/macos.nix Drops several macOS-specific Home Manager overrides (EDITOR, gh credential helper path, tmux pbcopy snippet, mise overrides).
home/modules/zsh/files/zshrc Adds mise shims PATH, Linux open alias, mise activation, and bazel alias.
home/modules/zsh/default.nix Switches from programs.zsh to directly installing ~/.zshrc.
home/modules/uv/default.nix Stops installing uv via Nix; now only places uv.toml under XDG config.
home/modules/tmux/files/tmux.conf Makes copy-mode bindings conditional on pbcopy availability for clipboard integration.
home/modules/tmux/default.nix Switches from programs.tmux to XDG config file deployment.
home/modules/nvim/default.nix Switches from programs.neovim to XDG config file deployment (init.vim/vimrc).
home/modules/mise/files/config.toml Introduces mise tool list and settings in TOML.
home/modules/mise/default.nix Switches from programs.mise to installing mise + config file under XDG.
home/modules/git/files/config Adds user + credential helper sections to the git config file.
home/modules/git/default.nix Switches from programs.git to installing git/git-lfs + XDG config files.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines +1 to 2
{ ... }:
{
Comment on lines +3 to +4
home.file.".zshrc" = {
source = ./files/zshrc;
Comment on lines +15 to +18
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" \
@himkt himkt merged commit 90428ef into main Mar 13, 2026
6 checks passed
@himkt himkt deleted the feat/file-based-config-migration branch March 13, 2026 11:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants