# Open any file with a fragment in the editor, fragments are generated
# by the ripgrep 'hyperlink-format=kitty' flag.
protocol file
fragment_matches [0-9]+
action launch --type=overlay --cwd=current nvim +${FRAGMENT} -- ${FILE_PATH}
# Open text files without fragments in the editor
protocol file
mime text/*
action launch --type=overlay --cwd=current -- ${EDITOR} -- ${FILE_PATH}
# Open image files in an overlay window with icat
protocol file
mime image/*
action launch --type=overlay kitty +kitten icat --hold $FILE_PATH
# Alias grep to ripgrep (if available)
if command -v rg >/dev/null 2>&1; then
alias grep='rg --color=always --smart-case --hidden --hyperlink-format=kitty'
alias rg='rg --color=always --smart-case --hidden --hyperlink-format=kitty'
alias rg='rg --color=always --smart-case --hidden --hyperlink-format=kitty'
alias rgi='rg -i --color=always --hidden --hyperlink-format=kitty'
alias rgf='rg --files --color=always --hidden --hyperlink-format=kitty'
else
alias grep='grep --color=auto'
fi
kitty 0.47.0 (2d9b104134) created by Kovid Goyal
Linux janis-arch 7.0.9-arch1-1 #1 SMP PREEMPT_DYNAMIC Sun, 17 May 2026 17:23:07 +0000 x86_64
EndeavourOS 7.0.9-arch1-1 (/dev/tty)
DISTRIB_ID="EndeavourOS"
DISTRIB_RELEASE="rolling"
DISTRIB_DESCRIPTION="EndeavourOS Linux"
DISTRIB_CODENAME="rolling"
Running under: Wayland (Hyprland v0.55.2,) missing: blur icon key-repeat top_level_drag
OpenGL: '3.1.0 NVIDIA 595.71.05' Detected version: 3.1
Frozen: False
Fonts:
medium: MonoLisa: /usr/share/fonts/MonoLisa/MonoLisa-normal.ttf:0
Features: ()
bold: MonoLisaNormal-SemiBold: /usr/share/fonts/MonoLisa/MonoLisa-normal.ttf:393216
Features: ()
italic: MonoLisa: /usr/share/fonts/MonoLisa/MonoLisa-italic.ttf:262144
Features: ()
bi: MonoLisaItalic-SemiBold: /usr/share/fonts/MonoLisa/MonoLisa-italic.ttf:393216
Features: ()
Paths:
kitty: /home/janis/Repos/kitty/kitty/launcher/kitty
base dir: /home/janis/Repos/kitty
extensions dir: /home/janis/Repos/kitty/kitty
system shell: /bin/zsh
System color scheme: dark. Applied color theme type: none
Loaded config files:
/home/janis/.config/kitty/kitty.conf
Config options different from defaults:
allow_remote_control yes
background_opacity 0.85
confirm_os_window_close (0, False)
cursor_blink_interval (0.0, kitty.options.utils.EasingFunction(), kitty.options.utils.EasingFunction())
cursor_trail 10
cursor_trail_start_threshold 0
disable_ligatures 1
dynamic_background_opacity True
enabled_layouts ['tall', 'fat', 'grid', 'horizontal', 'splits', 'stack', 'vertical']
font_family family=MonoLisa
font_size 12.0
listen_on unix:@mykitty
modify_font:
cell_height 110%
remember_window_size False
scrollback_lines 50000
scrollback_pager ['nvim', '--cmd', 'set eventignore=FileType', '+nnoremap q ZQ', '+call nvim_open_term(0, {})', '+set nomodified nolist', '+$', '-']
scrollback_pager_history_size 67108864
scrollbar_track_hover_opacity 0.03
shell zsh
shell_integration frozenset({'no-cursor'})
tab_bar_edge 2
tab_bar_style powerline
tab_title_template {index}{" "}{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{tab.last_focused_progress_percent}{title}
text_composition_strategy 1.0 15
window_padding_width FloatEdges(left=12.0, top=12.0, right=12.0, bottom=12.0)
Changed mouse actions:
ctrl+shift+right press ungrabbed → combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output
Added shortcuts:
alt+down → [--when-focus-on=var:IS_NVIM]no-op, kitten relative_resize.py down 3
alt+left → kitten relative_resize.py left 3
alt+right → [--when-focus-on=var:IS_NVIM]no-op, kitten relative_resize.py right 3
alt+u → [--when-focus-on=var:IS_NVIM]no-op
alt+up → kitten relative_resize.py up 3
ctrl+alt+1 → goto_tab 1
ctrl+alt+2 → goto_tab 2
ctrl+alt+3 → goto_tab 3
ctrl+alt+4 → goto_tab 4
ctrl+alt+5 → goto_tab 5
ctrl+alt+6 → goto_tab 6
ctrl+alt+7 → goto_tab 7
ctrl+alt+8 → goto_tab 8
ctrl+alt+9 → goto_tab 9
ctrl+alt+l → next_layout
ctrl+alt+left → send_text all \x1b[1;7D
ctrl+alt+right → send_text all \x1b[1;7C
ctrl+alt+t → new_tab_with_cwd !neighbor
ctrl+alt+tab → select_tab
ctrl+down → neighboring_window down
ctrl+h → [--when-focus-on=title:tmux]no-op, [--when-focus-on=var:IS_NVIM]no-op, neighboring_window left
ctrl+j → [--when-focus-on=title:tmux]no-op, [--when-focus-on=var:IS_NVIM]no-op, neighboring_window down
ctrl+k → [--when-focus-on=title:tmux]no-op, [--when-focus-on=var:IS_NVIM]no-op, neighboring_window up
ctrl+l → [--when-focus-on=title:tmux]no-op, [--when-focus-on=var:IS_NVIM]no-op, neighboring_window right
ctrl+left → neighboring_window left
ctrl+right → neighboring_window right
ctrl+up → neighboring_window up
shift+super+/ → open_url https://sw.kovidgoyal.net/kitty/
Changed shortcuts:
kitty_mod+, → load_config_file
kitty_mod+l → send_text all \x1b[1;6L
Colors:
active_border_color #82aaff
active_tab_background #82aaff
active_tab_foreground #1e2030
background #222436
color0 #1b1d2b
color1 #ff757f
color10 #c7fb6d
color11 #ffd8ab
color12 #9ab8ff
color13 #caabff
color14 #b2ebff
color15 #c8d3f5
color16 #ff966c
color17 #c53b53
color2 #c3e88d
color3 #ffc777
color4 #82aaff
color5 #c099ff
color6 #86e1fc
color7 #828bb8
color8 #444a73
color9 #ff8d94
cursor #c8d3f5
cursor_text_color #222436
foreground #c8d3f5
inactive_border_color #2f334d
inactive_tab_background #2f334d
inactive_tab_foreground #545c7e
selection_background #2d3f76
selection_foreground #c8d3f5
url_color #4fd6be
Important environment variables seen by the kitty process:
PATH /usr/local/sbin:/usr/local/bin:/usr/bin:/home/janis/.local/bin:/opt/cuda/bin:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/rocm/bin:/usr/lib/rustup/bin:/var/lib/snapd/snap/bin
LANG en_US.UTF-8
VISUAL nvim
EDITOR nvim
SHELL /bin/zsh
DISPLAY :0
WAYLAND_DISPLAY wayland-1
USER janis
XCURSOR_SIZE 24
XDG_SESSION_PATH /org/freedesktop/DisplayManager/Session1
XDG_BACKEND wayland
LC_ADDRESS de_DE.UTF-8
LC_NAME de_DE.UTF-8
LC_MONETARY de_DE.UTF-8
XDG_SEAT seat0
XDG_SESSION_DESKTOP Hyprland
XDG_SESSION_TYPE wayland
LC_PAPER de_DE.UTF-8
XDG_CURRENT_DESKTOP Hyprland
XDG_SEAT_PATH /org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS user
LC_IDENTIFICATION de_DE.UTF-8
LC_TELEPHONE de_DE.UTF-8
LC_MEASUREMENT de_DE.UTF-8
XDG_VTNR 2
XDG_SESSION_ID 3
XDG_RUNTIME_DIR /run/user/1000
LC_TIME de_DE.UTF-8
XDG_DATA_DIRS /home/janis/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop
LC_NUMERIC de_DE.UTF-8
Describe the bug
Today I discovered open-actions that can be defined via 'open-actions.conf' and after setting everything up as suggested (at least I think so) I discovered that when I want to launch neovim with 'fragment_matches' from a ripgrep result, it's actually being opened twice as overlay. Once correctly at the fragment line, and a second time not at the fragment, seemingly triggered by the broader 'mime text/*' action.
My understanding was that whatever action matches first is the one being used, but not all matching actions.
My open-actions.conf
My .zshrc config
Environment details
Looking forward to hearing back from you,
all the best
Janis