dotfiles icon indicating copy to clipboard operation
dotfiles copied to clipboard

feat: add Atuin integration and update terminal tools

Open shunkakinoki opened this issue 6 months ago β€’ 2 comments

Summary

  • Add Atuin shell history manager with desktop app integration
  • Enable fzf integration across bash, fish, and zsh shells
  • Add fzf-make package for enhanced build tooling
  • Add WezTerm terminal emulator to Homebrew casks

Summary by cubic

Adds Atuin shell history with bash, fish, and zsh integration, and enables fzf across all shells to speed up search and recall. Also adds fzf-make and installs WezTerm and Atuin Desktop.

  • New Features

    • Enable Atuin in Home Manager with bash/fish/zsh integration.
    • Enable fzf bash/fish/zsh integration for consistent fuzzy finding.
    • Add fzf-make to packages for improved build tooling.
  • Dependencies

    • Homebrew casks: atuin-desktop and wezterm.

shunkakinoki avatar Oct 21 '25 14:10 shunkakinoki

Summary of Changes

Hello @shunkakinoki, I'm Gemini Code Assist[^1]! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly upgrades the development environment by introducing new terminal utilities and enhancing existing ones. It focuses on improving shell history management, streamlining command-line interactions with fuzzy finding, and expanding the suite of available terminal tools, ultimately aiming to boost productivity and user experience.

Highlights

  • Atuin Integration: The Atuin shell history manager has been integrated, including its desktop application via Homebrew cask, and enabled for Bash, Fish, and Zsh shells.
  • FZF Shell Integration: FZF (fuzzy finder) integration has been expanded and explicitly enabled across Bash, Fish, and Zsh shells for enhanced command-line searching.
  • FZF-Make Package: The fzf-make package has been added to the system, providing enhanced build tooling capabilities.
  • WezTerm Terminal Emulator: The WezTerm terminal emulator has been added to the Homebrew casks, making it available for installation.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with :thumbsup: and :thumbsdown: on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

[^1]: Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

gemini-code-assist[bot] avatar Oct 21 '25 14:10 gemini-code-assist[bot]

[!NOTE]

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

πŸ“ Walkthrough

Summary by CodeRabbit

  • New Features

    • Added Atuin shell history tool with Bash, Fish, and Zsh integrations.
    • Enabled Git delta integration for improved diff viewing.
    • Added fzf shell integrations for Bash, Fish, and Zsh.
    • Added new development tools and applications.
  • Changes

    • Git configuration restructured for improved organization.
    • Fish fzf plugin temporarily disabled due to Fish 4.x compatibility issue.

Walkthrough

Adds a new Home Manager module for AtuΓ­n with Bash/Fish/Zsh integrations, enables fzf integrations for Bash/Fish/Zsh, adds fzf-make and a Linux-only package set, adds Homebrew casks (atuin-desktop, wezterm, beekeeper-studio), and introduces a new nixpkgs flake input.

Changes

Cohort / File(s) Summary
Atuin program
home-manager/programs/atuin/default.nix, home-manager/programs/default.nix
New programs.atuin module added and imported/exported; defaults set: enable = true, enableBashIntegration = true, enableFishIntegration = true, enableZshIntegration = true.
FZF integrations
home-manager/programs/fzf/default.nix
Enabled enableBashIntegration = true and enableZshIntegration = true; set enableFishIntegration = true (was false).
Package list changes
home-manager/packages/default.nix
Added fzf-make to static packages; added a Linux-only optional attribute set (lib.optionals stdenv.isLinux) containing claude-code, codex, docker, docker-compose, gemini-cli, kubernetes-helm, opencode.
Homebrew casks
nix-darwin/config/homebrew.nix
Added atuin-desktop, beekeeper-studio, and wezterm to the casks list.
Flake inputs
flake.nix
Added a new nixpkgs flake input pointing to github:NixOS/nixpkgs (HEAD) alongside existing inputs.
Git / delta config
home-manager/programs/git/default.nix, named-hosts/galactica/default.nix
Rehomed Git user/alias and GPG signing into nested settings structure (settings.user, settings.alias, settings.commit/tag.gpgSign); introduced top-level programs.delta with enable = true and enableGitIntegration = true.
Fish tweaks
home-manager/programs/fish/default.nix
Minor formatting change and temporarily disabled an fzf plugin block due to bind -k syntax incompatibility with Fish 4.x; fzf-fish remains enabled.

Sequence Diagram(s)

sequenceDiagram
    participant HM as Home Manager
    participant ProgIndex as programs/default.nix
    participant AtuModule as programs/atuin/default.nix
    participant Shell as User Shells (Bash/Fish/Zsh)
    rect #e6f7ff
      HM->>ProgIndex: load programs set
      ProgIndex->>AtuModule: import atuin module
      AtuModule-->>ProgIndex: provide defaults (enable + integrations)
    end
    rect #e8ffe6
      ProgIndex->>HM: export programs including atuin
      HM->>Shell: install/write shell integration snippets
      Shell-->>HM: source at shell startup
    end
    note right of Shell #fff3e6: AtuΓ­n enabled with shell integrations

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • shunkakinoki/dotfiles#280 β€” moves claude-code into a Linux-conditional lib.optionals block in home-manager/packages/default.nix.
  • shunkakinoki/dotfiles#305 β€” similar grouping of opencode/gemini-cli into Linux-only optionals and related package updates.
  • shunkakinoki/dotfiles#301 β€” edits to Home Manager package exports and package list overlapping with these changes.

Suggested labels

codex

Poem

🐰 I hopped into dotfiles bright and quick,
Added AtuΓ­n to make history stick,
Fzf now sings in Bash, Fish, and Zsh,
Linux-only packages lined up fresh,
Casks and flake inputs β€” a tidy trick.

Pre-merge checks and finishing touches

βœ… Passed checks (3 passed)
Check name Status Explanation
Title Check βœ… Passed The PR title "feat: add Atuin integration and update terminal tools" clearly and specifically relates to the main changes in the changeset. Atuin integration is prominently featured with a new Home Manager module and shell integration configuration across bash, fish, and zsh. Terminal tools are updated through fzf shell integration enhancements, the addition of fzf-make to packages, and new Homebrew casks including WezTerm. The title is concise, avoids vague terminology, and accurately captures the primary focus of the changes without being misleading.
Description Check βœ… Passed The PR description is directly related to the changeset and covers the primary changes with sufficient detail and specificity. It accurately describes the addition of Atuin shell history manager with shell integration, enables fzf integration across multiple shells, adds fzf-make to packages, and includes WezTerm and Atuin Desktop to Homebrew casks. The description uses concrete, specific terminology and avoids vague language. While it does not mention some secondary changes like git configuration restructuring or the new flake.nix input, these are not critical to the main objectives being communicated.
Docstring Coverage βœ… Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
πŸ§ͺ Generate unit tests (beta)
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment
  • [ ] Commit unit tests in branch feat/atuin-integration

πŸ“œ Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

πŸ“₯ Commits

Reviewing files that changed from the base of the PR and between fdd3219bae466936be6fc2064f5ea2b36a8eba8e and 163c9d94d7cce2abc907b02e57d1b9087f279f30.

πŸ“’ Files selected for processing (2)
  • home-manager/programs/fish/default.nix (2 hunks)
  • nix-darwin/config/homebrew.nix (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • nix-darwin/config/homebrew.nix
🧰 Additional context used
πŸ““ Path-based instructions (7)
**/*.nix

πŸ“„ CodeRabbit inference engine (CLAUDE.md)

Format all Nix files with nixfmt

**/*.nix: Nix: Use 2 spaces for indentation Nix: Keep line length under 100 characters Nix: Sort attribute sets alphabetically Nix: Use consistent spacing around operators Nix: Format lists and sets consistently

Follow the Nix expression language style guide

Files:

  • home-manager/programs/fish/default.nix
**/default.nix

πŸ“„ CodeRabbit inference engine (CLAUDE.md)

Use default.nix files for module exports

Files:

  • home-manager/programs/fish/default.nix
home-manager/**

πŸ“„ CodeRabbit inference engine (.cursor/rules/general.mdc)

Keep home-manager configurations under home-manager/

Files:

  • home-manager/programs/fish/default.nix
home-manager/programs/*/default.nix

πŸ“„ CodeRabbit inference engine (.cursor/rules/home-manager.mdc)

home-manager/programs/*/default.nix: Program configurations must be located in home-manager/programs// with configuration in default.nix Program configurations should prefer Home Manager’s built-in modules when available Program configurations should include all necessary dependencies Program configurations should follow the provided template (programs..enable, package, and settings attrset)

Files:

  • home-manager/programs/fish/default.nix
home-manager/**/*.nix

πŸ“„ CodeRabbit inference engine (.cursor/rules/home-manager.mdc)

Use proper indentation and formatting in Nix files

Files:

  • home-manager/programs/fish/default.nix
home-manager/programs/**/default.nix

πŸ“„ CodeRabbit inference engine (.cursor/rules/nix.mdc)

Program configurations in home-manager/programs should be organized by program name (one directory per program with a default.nix)

Files:

  • home-manager/programs/fish/default.nix
home-manager/programs/**/*.nix

πŸ“„ CodeRabbit inference engine (.cursor/rules/nix.mdc)

home-manager/programs/**/*.nix: Program configurations should include all necessary dependencies Use home.packages for package installations in program configurations Use programs. options provided by Home Manager when available

Files:

  • home-manager/programs/fish/default.nix
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: nix-nixos
  • GitHub Check: nix-linux
  • GitHub Check: nix-darwin
  • GitHub Check: e2e-run (Ubuntu, ubuntu-latest)
  • GitHub Check: docker-build-push (linux/amd64, -amd64, amd64)
  • GitHub Check: e2e-run (NixOS, ubuntu-latest)
  • GitHub Check: e2e-run (MacOS, macos-latest)
πŸ”‡ Additional comments (2)
home-manager/programs/fish/default.nix (2)

31-31: LGTM!

The blank line improves readability and follows consistent spacing guidelines.


79-83: The review comment is based on an incorrect assumption about plugin dependencies.

The abbreviations (lines 59-63) reference custom, locally-defined fzf functions that exist in your home-manager/programs/fish/functions/ directory. These functions do not depend on either the disabled fzf plugin or the fzf-fish pluginβ€”they are self-contained implementations that directly invoke the fzf command.

The disabled fzf plugin provides keybindings using bind -k syntax (incompatible with fish 4.x). Your custom functions avoid this syntax entirely by calling fzf as a subprocess. The setup is correct and requires no changes.

Likely an incorrect or invalid review comment.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❀️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot] avatar Oct 21 '25 14:10 coderabbitai[bot]