nixos_config/home/conf/xonsh/xonshrc

66 lines
2.4 KiB
Text
Raw Normal View History

2025-09-08 13:30:20 +02:00
if $XONSH_INTERACTIVE:
from datetime import datetime
2025-09-15 00:12:12 +02:00
import os
2025-09-08 13:30:20 +02:00
t0 = datetime.now()
## ENV ##
$XONSH_COLOR_STYLE = 'native'
$PROMPT = '{YELLOW}{env_name}{RESET}{BOLD_GREEN}{user}@{hostname} {cwd}{branch_color}{curr_branch: {}}{RESET} {RED}{last_return_code_if_nonzero:[{BOLD_INTENSE_RED}{}{RED}] }{RESET}{BOLD_BLUE}{prompt_end}{RESET} '
# Coloured man page support using 'less' env vars
$LESS_TERMCAP_mb = "\033[01;31m"
$LESS_TERMCAP_md = "\033[01;31m"
$LESS_TERMCAP_me = "\033[0m"
$LESS_TERMCAP_so = "\033[01;44;36m"
$LESS_TERMCAP_se = "\033[0m"
$LESS_TERMCAP_us = "\033[00;36m"
$LESS_TERMCAP_ue = "\033[0m"
## XONTRIB ##
xontrib load coreutils
xontrib load fish_completer
xontrib load direnv
xontrib load clp
xontrib load bashisms
#xontrib load abbrevs #relies on xonsh.ptk_shell which was deprecated in 0.13
xontrib load fzf-completions
from xonsh.built_ins import XSH
XSH.env['fzf_history_binding'] = "c-r" # Ctrl+R
XSH.env['fzf_ssh_binding'] = "c-s" # Ctrl+S
XSH.env['fzf_file_binding'] = "c-t" # Ctrl+T
XSH.env['fzf_dir_binding'] = "c-g" # Ctrl+G
## ALIASES ##
aliases["tsla-fan"] = "ipmitool -H 10.30.0.3 -U ADMIN -P ADMIN raw 0x30 0x70 0x66 0x01 0x0"
aliases["nixoss"] = "sudo nixos-rebuild switch --flake .#${config.networking.hostName}"
aliases["nixost"] = "sudo nixos-rebuild test --flake .#${config.networking.hostName}"
aliases["nixosdb"] = "sudo nixos-rebuild dry-build --flake .#${config.networking.hostName}"
aliases["devt"] = "devenv test"
aliases["devtas"] = "devenv tasks list"
aliases["devtar"] = "devenv tasks run"
aliases["devs"] = "devenv shell"
aliases["devi-python"] = "nix flake init -t templates#python"
aliases["weboot"] = "bash -c 'nix shell nixpkgs#efibootmgr -c sudo efibootmgr -n 0000 && reboot'"
aliases["ls"] = "exa"
aliases["ll"] = "exa -lah"
aliases["grep"] = "rg"
aliases["theo"] = "python ~/.config/xonsh/theo.py"
if $XONSH_INTERACTIVE:
hour = t0.hour
2025-09-15 00:12:12 +02:00
$COWCOL = os.get_terminal_size()[0] - 6
theo | cowsay -W $COWCOL -f ~/.config/xonsh/kiddycad.cow
"""
2025-09-08 13:30:20 +02:00
if 5 <= hour < 10:
theo | cowsay -d
elif 10 <= hour < 16:
theo | cowsay -w
elif 16 <= hour < 18:
theo | cowsay
elif 18 <= hour < 22:
theo | cowsay -t
else:
theo | cowsay -s
2025-09-15 00:12:12 +02:00
"""
2025-09-08 13:30:20 +02:00
dt = round((datetime.now() - t0).microseconds/1000000, 2)
print("Load time:", dt, "seconds")