Files
dotfiles/dot_local/bin/executable_atuin-pick
T

31 lines
1.1 KiB
Python
Raw Normal View History

2026-08-14 13:53:55 -04:00
#!/usr/bin/env python3
"""atuin-pick: atuin history picker for a kitty split (ctrl+shift+p).
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 — its output stays in this split — then drop to an interactive
shell.
2026-08-14 13:53:55 -04:00
"""
import os
import shutil
2026-08-14 13:53:55 -04:00
import subprocess
import sys
# 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")
2026-08-14 13:53:55 -04:00
if "ATUIN_SESSION" not in os.environ:
os.environ["ATUIN_SESSION"] = subprocess.run(
[atuin, "uuid"], stdout=subprocess.PIPE, text=True
2026-08-14 13:53:55 -04:00
).stdout.strip()
sel = subprocess.run(
[atuin, "search", "-i", "--filter-mode", "directory"],
2026-08-14 13:53:55 -04:00
stdout=subprocess.PIPE,
text=True,
).stdout.strip()
if sel:
print(f"\u276f {sel}", file=sys.stderr)
subprocess.run(["zsh", "-ic", "--", sel])
os.execvp("zsh", ["zsh", "-i"])