feat(config): integrate iris and streamline keybindings

This commit is contained in:
Prad Nukala committed 2026-10-05 09:15:20 -04:00
1 parent 43dfe48848
commit 0692ae332b
15 files changed
+268 -137

No files matched your search

+73
View File
@@ -0,0 +1,73 @@
# iris (https://github.com/versenilvis/iris): inline completion menu that wraps
# the shell in its own pty. Started from fish and zsh (`iris init <shell>` in
# config.fish / .zshrc). `iris config show` prints the merged result; missing
# keys fall back to iris's defaults.
[core]
version = 1 # config schema version
shell = "" # auto-detect; `iris init <shell>` exports IRIS_ACTIVE_SHELL, which wins anyway
shell-login = false # run shell as a login shell (also: iris --shell-login)
# Every shell opens in spec mode: Fig-style completions (subcommands, flags,
# paths) pop up as you type. ctrl+r still flips to history for that session;
# "last" would carry a stray ctrl+r into every later shell.
mode = "spec" # "last", "spec", or "history"
debug = false # verbose logging to iris.log (also: iris -d); logs every keystroke
expand-alias = true # expand aliases before matching
auto-execute = false # run suggestion immediately instead of inserting it
atuin-history = 0 # shell history only: atuin is not used under iris
atuin-db-path = "" # path to atuin's history.db, empty = use default
cobra-probe-enabled = true # fall back to probing cobra binaries for completions
# Menu closed: up/down browse iris's own history (Fig-style). No shell binds
# up/down; handing them to the shell ran the old down -> pj picker inside
# iris's pty, and the two fought over the screen.
navigate-closed = "history"
[ui]
style = "modern" # "modern" or "classic"
ghost-text = 1 # 0 = off, 1 = menu + ghost text, 2 = ghost text only
hidden-files = false # include dotfiles in suggestions
max-suggestions = 100 # max suggestions ranked before display
max-height = 6 # max visible rows in the menu
max-width = 0 # menu width: columns (80) or a share ("80%"), 0 = default
nerd-fonts = true # use nerd-font icons (Victor Mono Nerd Font)
# ctrl+r, tab, shift+tab, up and down never reach the shell while iris runs;
# tv's own ctrl-r history binding (`tv init`) is shadowed by toggle-mode.
[keybindings]
toggle-mode = "ctrl+r" # switch spec/history mode
toggle-menu = "shift+tab" # show or hide the suggestion menu
select = "tab" # accept the selected suggestion
navigate-up = "up" # select up (menu open)
navigate-down = "down" # select down (menu open)
navigate-right = "right" # accept ghost text
[git]
filter-active-branch = true # exclude current branch from suggestions
deduplicate-branches = true # merge same-name local/remote branches
# Installed from the AUR (iris-autocomplete): pacman/paru owns updates, so iris
# neither checks nor installs on its own.
[updater]
check-on-startup = false
channel = "stable"
check-interval = "24h"
auto-update = 0
[zoxide]
extend-cd = true # complete `cd` from zoxide's database (conf.d/40-tools.fish runs `zoxide init fish`)
[ai]
enabled = false
provider = "groq" # "groq" or "ollama"
debounce_ms = 400 # ms to wait before querying the AI
[ai.providers.groq]
endpoint = "https://api.groq.com/openai/v1/chat/completions"
api_key_env = "GROQ_API_KEY" # read from the environment, never stored here
model = "llama-3.3-70b-versatile"
timeout_ms = 3000
[ai.providers.ollama]
endpoint = "http://localhost:11434/v1/chat/completions"
model = "qwen2.5-coder"
timeout_ms = 5000