diff --git a/fish/completions/copilot.fish b/fish/completions/copilot.fish index 33cad56..6ee7ea1 100644 --- a/fish/completions/copilot.fish +++ b/fish/completions/copilot.fish @@ -17,9 +17,10 @@ complete -c copilot -l model -r -d 'Set the AI model to use' complete -c copilot -l effort -l reasoning-effort -r -d 'Set the reasoning effort level' -a 'none low medium high xhigh max' complete -c copilot -l enable-reasoning-summaries -f -d 'Request reasoning summaries for OpenAI models' complete -c copilot -l agent -r -d 'Specify a custom agent to use' -complete -c copilot -l resume -r -d 'Resume from a previous session (optionally specify session ID, task ID, or name; name matching is exact, case-insensitive)' +complete -c copilot -l resume -r -d 'Resume from a previous session (optionally specify existing session ID, task ID, ID prefix, or name; name matching is exact, case-insensitive)' complete -c copilot -l continue -f -d 'Resume the most recent session' complete -c copilot -l name -s n -r -d 'Set a name for the new session' +complete -c copilot -l session-id -r -d 'Resume an existing session or task by ID, or set the UUID for a new session' complete -c copilot -l connect -r -d 'Connect directly to a remote session (optionally specify session ID or task ID)' complete -c copilot -l allow-all-tools -f -d 'Allow all tools to run automatically without confirmation; required for non-interactive mode' complete -c copilot -l allow-all-paths -f -d 'Disable file path verification and allow access to any path' diff --git a/fish/conf.d/00-env.fish b/fish/conf.d/00-env.fish index a169cdd..8f2ef8f 100644 --- a/fish/conf.d/00-env.fish +++ b/fish/conf.d/00-env.fish @@ -15,6 +15,11 @@ set -gx FZF_DEFAULT_OPTS '--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38 set -gx BAT_THEME Catppuccin-mocha set -gx DARK_MODE true +# gh enhance (companion of gh-dash) — pick a bubbletint theme to match Catppuccin +# https://bubbletint.dev — IDs include catppuccin_mocha, catppuccin_macchiato, +# catppuccin_frappe, catppuccin_latte +set -gx ENHANCE_THEME catppuccin_mocha + # Go module env (host-specific GOPROXY is handled in 30-host-conditional.fish) set -gx GONOPROXY "" set -gx GOPRIVATE "" diff --git a/gh-dash/config.yml b/gh-dash/config.yml index bd1850b..5bb7f58 100644 --- a/gh-dash/config.yml +++ b/gh-dash/config.yml @@ -1,16 +1,144 @@ --- +# gh-dash configuration — Catppuccin Mocha +# https://www.gh-dash.dev/configuration/ +# +# Companion integration: +# - Press `e` on a PR to open it in `gh enhance` (Actions/checks TUI) +# - Press `g` on a PR to drop into lazygit in the repo +# - Press `C` anywhere to open the Copilot CLI scoped to the repo +# - Press `o` on a PR/issue to open it via Octo in nvim + +defaults: + view: prs + prsLimit: 20 + issuesLimit: 20 + notificationsLimit: 30 + refetchIntervalMinutes: 30 + dateFormat: relative + preview: + open: true + width: 0.5 + height: 0.6 + position: auto + layout: + prs: + updatedAt: + width: 7 + repo: + width: 22 + author: + width: 15 + assignees: + width: 20 + hidden: true + base: + width: 15 + hidden: true + lines: + width: 16 + issues: + updatedAt: + width: 7 + repo: + width: 22 + creator: + width: 15 + assignees: + width: 20 + +# Map repo name -> local clone path so {{.RepoPath}} resolves for shortcuts. +repoPaths: + djensenius/*: ~/Developer/* + default: ~/Developer/* + +prSections: + - title: My Pull Requests + filters: is:open author:@me sort:updated-desc + - title: Needs My Review + filters: is:open review-requested:@me sort:updated-desc + layout: + author: + hidden: false + - title: Involved + filters: >- + is:open involves:@me -author:@me + -review-requested:@me sort:updated-desc + - title: Recently Merged (me) + filters: is:merged author:@me sort:updated-desc + +issuesSections: + - title: Assigned + filters: is:open assignee:@me sort:updated-desc + - title: Authored + filters: is:open author:@me sort:updated-desc + - title: Mentioned + filters: >- + is:open mentions:@me -author:@me sort:updated-desc + +keybindings: + universal: + - key: C + name: copilot + command: >- + tmux display-popup -E -w 90% -h 90% -d '{{.RepoPath}}' 'copilot' + prs: + # Open the selected PR in `gh enhance` for a deep dive on its checks. + - key: e + name: enhance + command: >- + gh enhance --repo {{.RepoName}} {{.PrNumber}} + # Drop into lazygit inside the PR's repo working tree. + - key: g + name: lazygit + command: >- + cd {{.RepoPath}} && lazygit + # Review the PR with Octo.nvim inside a new tmux window. + - key: o + name: octo review + command: >- + tmux new-window -c {{.RepoPath}} + "nvim -c ':silent Octo pr edit {{.PrNumber}}'" + issues: + - key: o + name: octo issue + command: >- + tmux new-window -c {{.RepoPath}} + "nvim -c ':silent Octo issue edit {{.IssueNumber}}'" + theme: + ui: + sectionsShowCount: true + table: + showSeparators: true + compact: false colors: text: - primary: "#cdd6f4" - secondary: "#89b4fa" - inverted: "#11111b" - faint: "#bac2de" - warning: "#f38ba8" - success: "#a6e3a1" + primary: "#cdd6f4" # text + secondary: "#89b4fa" # blue + inverted: "#11111b" # crust + faint: "#7f849c" # overlay1 + warning: "#f38ba8" # red + success: "#a6e3a1" # green + actor: "#cba6f7" # mauve background: - selected: "#313244" + selected: "#313244" # surface0 border: - primary: "#89b4fa" - secondary: "#45475a" - faint: "#313244" + primary: "#89b4fa" # blue + secondary: "#45475a" # surface1 + faint: "#313244" # surface0 + inline: + icons: + newcontributor: "#a6e3a1" # green + contributor: "#74c7ec" # sapphire + collaborator: "#fab387" # peach + member: "#f9e2af" # yellow + owner: "#f5c2e7" # pink + unknownrole: "#9399b2" # overlay2 + icons: + inline: + newcontributor: "󰎔" + contributor: "" + collaborator: "" + member: "" + owner: "" + unknownrole: "󰭙" diff --git a/install.sh b/install.sh index ad690dd..4532f4a 100755 --- a/install.sh +++ b/install.sh @@ -197,6 +197,11 @@ function link_files() { ln -sf "$(pwd)/delta" ~/.config/delta ln -sf "$(pwd)/eza" ~/.config/eza ln -sf "$(pwd)/k9s" ~/.config/k9s + + # GitHub CLI + gh-dash + gh-enhance (companion) share the Catppuccin theme + mkdir -p ~/.config/gh ~/.config/gh-dash + ln -sf "$(pwd)/gh/config.yml" ~/.config/gh/config.yml + ln -sf "$(pwd)/gh-dash/config.yml" ~/.config/gh-dash/config.yml # Make tmux indicator script available in PATH for tmux config if is_codespaces; then