Skip to content

feat(fish): add alias for 'jj' to shell aliases - #478

Merged
shunkakinoki merged 2 commits into
mainfrom
jj
Dec 30, 2025
Merged

feat(fish): add alias for 'jj' to shell aliases#478
shunkakinoki merged 2 commits into
mainfrom
jj

Conversation

@shunkakinoki

@shunkakinoki shunkakinoki commented Dec 30, 2025

Copy link
Copy Markdown
Owner

Summary

  • Add 'j' alias for 'jj' (Jujutsu) command in Fish shell configuration
  • Provides convenient short alias for the Jujutsu version control system

Summary by cubic

Add a 'j' alias for Jujutsu in Fish, configure jj (name/email), and install jjui to streamline version control.

Written for commit cafaafe. Summary will update automatically on new commits.

@mesa-dot-dev

mesa-dot-dev Bot commented Dec 30, 2025

Copy link
Copy Markdown

You do not have enough credits to review this pull request. Please purchase more credits to continue.

@coderabbitai

coderabbitai Bot commented Dec 30, 2025

Copy link
Copy Markdown

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 shell abbreviation: typing "j" now expands to "jj" in Fish.
    • Added configuration for the "jj" tool with user identity preconfigured.
    • Installed a new Homebrew package: "jjui".
  • Chores

    • Included "jj" in the public configuration paths list.

✏️ Tip: You can customize this high-level summary in your review settings.

Walkthrough

Adds JJ-related configuration and references: a Fish shell abbreviation j = "jj", a new jj config TOML exposed via Nix, inclusion of ./jj in exported defaults, and addition of the Homebrew package jjui. No runtime control-flow changes.

Changes

Cohort / File(s) Summary
Fish shell
home-manager/programs/fish/default.nix
Added programs.fish.shellAbbrs.j = "jj" (new shell abbreviation).
JJ configuration
config/jj/config.toml, config/jj/default.nix
Added config.toml with [user] (name, email) and a Nix module exporting xdg.configFile."jj/config.toml" via config.lib.file.mkOutOfStoreSymlink ./config.toml.
Defaults list
config/default.nix
Added "./jj" to the exported list of config paths.
nix-darwin Homebrew
nix-darwin/config/homebrew.nix
Added "jjui" to the brews list (new package install entry).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰
I found a little jj on the trail,
I taught a single j to hop and sail,
A tiny symlink, a brew to cheer,
Configs bundled neatly near,
Hooray — a rabbit's patch, concise and hale!

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title mentions adding an alias for 'jj' in Fish, but the changeset includes multiple changes beyond just the Fish alias: JJ configuration file setup, Nix module for JJ config, homebrew package installation, and config directory setup. Consider a more comprehensive title like 'feat: set up Jujutsu with Fish alias and configuration' to reflect all changes in the PR.
✅ Passed checks (2 passed)
Check name Status Explanation
Description check ✅ Passed The description addresses the Fish alias and mentions JJ configuration and jjui installation, which aligns with the actual changeset modifications across multiple files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch jj

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.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @shunkakinoki, I'm Gemini Code Assist1! 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 streamlines the use of the Jujutsu version control system for Fish shell users by adding a concise alias. The primary goal is to improve developer experience by reducing typing and making the command more accessible, without altering any core functionality of the shell or the version control system itself.

Highlights

  • New Shell Alias: Introduced a new shell alias 'j' that maps to the 'jj' command (Jujutsu version control system) within the Fish shell configuration.
  • Improved Convenience: This change provides a more convenient and shorter way to invoke the Jujutsu command, enhancing workflow efficiency for users of the Fish shell.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

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 👍 and 👎 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.

Footnotes

  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.

@mesa-dot-dev

mesa-dot-dev Bot commented Dec 30, 2025

Copy link
Copy Markdown

Mesa Description

TL;DR

Added a 'j' alias for the 'jj' (Jujutsu) command in the Fish shell.

What changed?

  • home-manager/programs/fish/default.nix: The fish shell configuration now includes a new alias 'j' which maps to the 'jj' command.

Description generated by Mesa. Update settings

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No issues found across 1 file

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request adds a convenient shell abbreviation j for the jj command in the Fish shell configuration. The change is straightforward and consistent with other shortcuts in the file. However, I have one suggestion regarding the use of an abbreviation versus an alias for single-letter commands to improve robustness and avoid potential conflicts with other tools. Please see my detailed comment.

cat = "bat";
e = "nvim";
g = "git";
j = "jj";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Using a shell abbreviation for a single-letter command like j can be problematic. If another tool (like autojump) uses j as a command, this abbreviation will cause j <args> to be expanded to jj <args>, which is likely not the intended behavior. Using a shell alias is generally safer for command shortcuts as it clearly defines j as a command, and can be bypassed with command j if the original is ever needed. Given the PR title also mentions 'alias', it would be more consistent to implement this in the shellAliases block instead.

@shunkakinoki
shunkakinoki enabled auto-merge (squash) December 30, 2025 09:45

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
config/jj/default.nix (1)

1-6: LGTM!

The module correctly uses mkOutOfStoreSymlink for the JJ configuration, allowing live edits without requiring a rebuild. The structure follows the established pattern for config modules.

Based on learnings, a brief comment explaining the purpose could be helpful for documentation:

# JJ (Jujutsu) VCS configuration
# Uses out-of-store symlink for live editing without rebuild
📜 Review details

Configuration used: Organization 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 3d6b6c9 and cafaafe.

📒 Files selected for processing (4)
  • config/default.nix
  • config/jj/config.toml
  • config/jj/default.nix
  • nix-darwin/config/homebrew.nix
🧰 Additional context used
📓 Path-based instructions (5)
**/*.nix

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.nix: Use nixfmt for formatting all Nix files
Document complex configurations with comments in Nix files

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

Use treefmt.toml for formatting Nix files

**/*.nix: Use mkOption for configurable options in Nix modules
Implement proper typing for all options in Nix modules
Follow the Nix expression language style guide

Files:

  • config/default.nix
  • nix-darwin/config/homebrew.nix
  • config/jj/default.nix
**/default.nix

📄 CodeRabbit inference engine (CLAUDE.md)

Use default.nix files for module exports

Files:

  • config/default.nix
  • config/jj/default.nix
**/*.{json,yaml,yml,toml}

📄 CodeRabbit inference engine (.cursor/rules/formatting.mdc)

**/*.{json,yaml,yml,toml}: Use consistent indentation (2 spaces) in configuration files
Sort keys alphabetically when possible in configuration files
Use clear, descriptive names in configuration files

Files:

  • config/jj/config.toml
**/*.{yaml,yml,toml}

📄 CodeRabbit inference engine (.cursor/rules/formatting.mdc)

Add comments for complex configurations

Files:

  • config/jj/config.toml
nix-darwin/**/*.nix

📄 CodeRabbit inference engine (CLAUDE.md)

Use Homebrew only for macOS-specific applications

Files:

  • nix-darwin/config/homebrew.nix
🧠 Learnings (12)
📚 Learning: 2025-11-25T09:34:40.062Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2025-11-25T09:34:40.062Z
Learning: Document all major changes in Nix configurations

Applied to files:

  • config/default.nix
  • config/jj/default.nix
📚 Learning: 2025-11-25T09:34:32.423Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/formatting.mdc:0-0
Timestamp: 2025-11-25T09:34:32.423Z
Learning: Applies to **/*.{yaml,yml,toml} : Add comments for complex configurations

Applied to files:

  • config/jj/config.toml
📚 Learning: 2025-11-25T09:34:23.224Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T09:34:23.224Z
Learning: Applies to nix-darwin/**/*.nix : Use Homebrew only for macOS-specific applications

Applied to files:

  • nix-darwin/config/homebrew.nix
📚 Learning: 2025-11-25T09:34:23.224Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T09:34:23.224Z
Learning: Applies to **/default.nix : Use `default.nix` files for module exports

Applied to files:

  • config/jj/default.nix
📚 Learning: 2025-11-25T09:34:23.224Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-25T09:34:23.224Z
Learning: Applies to **/*.nix : Document complex configurations with comments in Nix files

Applied to files:

  • config/jj/default.nix
📚 Learning: 2025-11-25T09:34:55.014Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/home-manager.mdc:0-0
Timestamp: 2025-11-25T09:34:55.014Z
Learning: Applies to home-manager/**/*.nix : Document all configuration options in Nix modules and programs

Applied to files:

  • config/jj/default.nix
📚 Learning: 2025-11-25T09:35:01.066Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/nix.mdc:0-0
Timestamp: 2025-11-25T09:35:01.066Z
Learning: Applies to **/*.nix : Use `mkOption` for configurable options in Nix modules

Applied to files:

  • config/jj/default.nix
📚 Learning: 2025-11-25T09:35:01.066Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/nix.mdc:0-0
Timestamp: 2025-11-25T09:35:01.066Z
Learning: Applies to home-manager/modules/**/default.nix : Each module in `home-manager/modules/` should have a clear `default.nix` with proper option declarations following the home-manager module structure

Applied to files:

  • config/jj/default.nix
📚 Learning: 2025-11-25T09:34:55.014Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/home-manager.mdc:0-0
Timestamp: 2025-11-25T09:34:55.014Z
Learning: Applies to home-manager/**/*.nix : Follow home-manager's module structure and keep configurations modular

Applied to files:

  • config/jj/default.nix
📚 Learning: 2025-11-25T09:35:01.066Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/nix.mdc:0-0
Timestamp: 2025-11-25T09:35:01.066Z
Learning: Applies to home-manager/modules/**/*.nix : Document all custom modules and options

Applied to files:

  • config/jj/default.nix
📚 Learning: 2025-11-25T09:34:40.062Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2025-11-25T09:34:40.062Z
Learning: Keep configurations modular across home-manager, hosts, and nix-darwin directories

Applied to files:

  • config/jj/default.nix
📚 Learning: 2025-11-25T09:34:55.014Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/home-manager.mdc:0-0
Timestamp: 2025-11-25T09:34:55.014Z
Learning: Applies to home-manager/programs/**/*.nix : Follow program-specific best practices in program configuration files

Applied to files:

  • config/jj/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). (13)
  • GitHub Check: docker-build-push (linux/amd64, amd64, ubuntu-latest)
  • GitHub Check: docker-build-push (linux/arm64, arm64, ubuntu-24.04-arm)
  • GitHub Check: nix-nixos
  • GitHub Check: nix-darwin
  • GitHub Check: nix-linux
  • GitHub Check: e2e-run (Ubuntu, ubuntu-latest)
  • GitHub Check: e2e-run (MacOS, macos-latest)
  • GitHub Check: e2e-run (NixOS, ubuntu-latest)
  • GitHub Check: shell-lint
  • GitHub Check: shell-test
  • GitHub Check: lua-neovim-test
  • GitHub Check: lua-neovim
  • GitHub Check: lua-hammerspoon
🔇 Additional comments (3)
nix-darwin/config/homebrew.nix (1)

33-33: LGTM!

The jjui package is correctly added in alphabetical order within the brews list. This TUI for Jujutsu is appropriately managed via Homebrew as per the coding guidelines for macOS-specific applications.

config/default.nix (1)

11-11: LGTM!

The ./jj module is correctly added in alphabetical order, following the existing pattern for exporting configuration modules.

config/jj/config.toml (1)

1-5: LGTM!

The schema reference provides good editor support and validation. The user configuration is minimal and clear.

Per coding guidelines, keys could be sorted alphabetically (email before name), but this is a minor nit for such a simple config where the current ordering follows a natural convention.

@shunkakinoki
shunkakinoki merged commit 6fcd1d2 into main Dec 30, 2025
30 checks passed
@shunkakinoki
shunkakinoki deleted the jj branch December 30, 2025 10:38
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.

1 participant