From b2d81c31d2a476b6667ea8084d8fdfe5f91f1b1e Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Fri, 14 Aug 2026 13:58:17 -0400 Subject: [PATCH] Fix atuin-pick: resolve atuin outside kitty PATH, rename to atuin-pick --- dot_config/kitty/kitty.conf | 2 +- ...xecutable_atuin-pick.py => executable_atuin-pick} | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) rename dot_local/bin/{executable_atuin-pick.py => executable_atuin-pick} (61%) diff --git a/dot_config/kitty/kitty.conf b/dot_config/kitty/kitty.conf index 2578cbf..1d42d08 100644 --- a/dot_config/kitty/kitty.conf +++ b/dot_config/kitty/kitty.conf @@ -46,7 +46,7 @@ map ctrl+shift+g launch_ov lazygit map ctrl+shift+f toggle_layout stack map ctrl+shift+e launch_tb nvim map ctrl+shift+a launch_vs omp -map ctrl+shift+p launch_hs atuin-pick.py +map ctrl+shift+p launch_hs atuin-pick # Misc map ctrl+shift+c copy_to_clipboard diff --git a/dot_local/bin/executable_atuin-pick.py b/dot_local/bin/executable_atuin-pick similarity index 61% rename from dot_local/bin/executable_atuin-pick.py rename to dot_local/bin/executable_atuin-pick index 2b473d0..1602452 100755 --- a/dot_local/bin/executable_atuin-pick.py +++ b/dot_local/bin/executable_atuin-pick @@ -4,20 +4,24 @@ atuin search -i draws its TUI on the tty and prints the selected command to stdout (Esc prints nothing). Filter to history from the current directory. Run the selection with rc loaded so aliases and functions -resolve, then drop to an interactive shell. +resolve — its output stays in this split — then drop to an interactive +shell. """ import os +import shutil import subprocess import sys -# kitty launches this outside a shell, so atuin's init never ran. +# kitty's launch env has neither ~/.atuin/bin on PATH nor ATUIN_SESSION +# (atuin's shell init never ran), so resolve and seed both here. +atuin = shutil.which("atuin") or os.path.expanduser("~/.atuin/bin/atuin") if "ATUIN_SESSION" not in os.environ: os.environ["ATUIN_SESSION"] = subprocess.run( - ["atuin", "uuid"], stdout=subprocess.PIPE, text=True + [atuin, "uuid"], stdout=subprocess.PIPE, text=True ).stdout.strip() sel = subprocess.run( - ["atuin", "search", "-i", "--filter-mode", "directory"], + [atuin, "search", "-i", "--filter-mode", "directory"], stdout=subprocess.PIPE, text=True, ).stdout.strip()