dotfiles/dot_xonshrc
2025-01-14 21:16:50 -05:00

39 lines
1.1 KiB
Text

source-bash ~/.envrc --overwrite-aliases
# Zoxide
execx($(zoxide init xonsh), 'exec', __xonsh__.ctx, filename='zoxide')
xontrib load coreutils
xontrib load vox
xontrib load autovox
xontrib load prompt_starship
xontrib load bashisms
xontrib load sh
# TODO: Does this work?
def yy(args=None):
import tempfile
"""
Yazi file manager wrapper that follows directory changes.
Usage: y() or y('some/path')
"""
with tempfile.NamedTemporaryFile(prefix='yazi-cwd.', suffix='.tmp') as tmp:
# Build command arguments
cmd_args = ['yazi']
if args:
cmd_args.append(str(args))
cmd_args.append(f'--cwd-file={tmp.name}')
# Run yazi
@(cmd_args)
# Read new working directory
try:
with open(tmp.name) as f:
new_cwd = f.read().strip()
# Change directory if valid and different
if new_cwd and os.path.isdir(new_cwd) and new_cwd != os.getcwd():
cd @(new_cwd)
except (IOError, OSError):
pass