1
0

92 lines
2.8 KiB
Plaintext

import shutil
import sys
# --- Xonsh Settings ---
$XONSH_HISTORY_BACKEND = 'sqlite'
$HISTCONTROL='ignoredups'
$XONSH_SHOW_TRACEBACK = False
$SUGGEST_COMMANDS = False
# --- Path Variables ---
#> Use MacOS path_helper executable
source-bash $(/usr/libexec/path_helper -s)
brew_prefix = $(brew --prefix).strip()
$PATH = [
brew_prefix + "/opt/bison/bin",
brew_prefix + "/opt/flex/bin",
brew_prefix + "/opt/llvm/bin",
] + $PATH + [
$HOME + "/.local/bin",
$HOME + "/.cargo/bin",
]
# --- General Environment ---
#> Xonsh Behaviour
$AUTO_CD = True
#> Default Editor
$EDITOR = "nvim"
$VISUAL = "code"
#> Monash Cluster
$OPTCLUSTER = "compute.optimisation-2020.cloud.edu.au"
#> CMake settings
$CMAKE_EXPORT_COMPILE_COMMANDS = "1" # output compile-commands.json for clangd
$CMAKE_GENERATOR = "Ninja Multi-Config" # use Ninja generator by default
#> FZF
$FZF_DEFAULT_COMMAND = "fd --type f"
# --- Aliases ---
def _theme(args):
"""This command takes a
"""
DARK_XONSH_STYLE = "stata-dark"
DARK_KITTY_STYLE = "GitHub Dark"
LIGHT_XONSH_STYLE = "stata-light"
LIGHT_KITTY_STYLE = "GitHub Light"
if len(args) == 0 or args[0] == "info":
print("dark" if $XONSH_COLOR_STYLE == DARK_XONSH_STYLE else "light")
elif args[0] == "set":
dark_mode = False
if len(args) > 1:
if args[1] == "dark":
dark_mode = True
elif args[1] == "light":
dark_mode = False
else:
print(f"unknown theme `{args[1]}'", file=sys.stderr)
return 1
else:
try:
import warnings
with warnings.catch_warnings():
warnings.simplefilter("ignore")
import darkdetect
dark_mode = darkdetect.isDark()
except ImportError:
print("darkdetect package not found (xpip install darkdetect)", file=sys.stderr)
$XONSH_COLOR_STYLE = DARK_XONSH_STYLE if dark_mode else LIGHT_XONSH_STYLE
$( kitty +kitten themes @(DARK_KITTY_STYLE if dark_mode else LIGHT_KITTY_STYLE) )
else:
print(f"unknown argument `{args[0]}'", file=sys.stderr)
return 1
return 0
aliases["brew-backup"] = ("brew", "bundle", "dump", "--global", "--no-lock", "--cask", "--mas", "--tap", "--force")
aliases["brew-cleanup"] = ("brew", "bundle", "cleanup", "--global", "--no-lock", "--force", "--zap")
aliases["brew-restore"] = ("brew", "bundle", "install", "--global", "--no-lock")
aliases["edit"] = $VISUAL
aliases["ssh"] = ("kitty", "+kitten", "ssh")
aliases["theme"] = _theme
if shutil.which('bat'):
aliases["less"] = "bat"
if shutil.which('exa'):
aliases["ls"] = "exa"
if shutil.which('rsync'):
aliases['cp'] = 'rsync --progress --recursive --archive'
# --- Set theme based on Dark Mode ---
_theme(["set"])