From eb4e4881a68e857b9d4c6a123c7f644e98fc92b5 Mon Sep 17 00:00:00 2001 From: exdial <1931275+exdial@users.noreply.github.com> Date: Thu, 8 Jan 2026 10:12:36 -0300 Subject: [PATCH 1/4] Update completions --- Makefile | 4 ++-- files/bashrc | 15 +++++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index c6a6aa3..3478a2e 100644 --- a/Makefile +++ b/Makefile @@ -67,8 +67,8 @@ dotfiles: logo homebrew: echo "✔︎ installing Homebrew..." - if [ ! -d "/usr/local/Homebrew" ]; then \ - NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + if [ ! -d /usr/local/Homebrew ]; then \ + NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" \ fi echo "✔︎ installing Homebrew packages..." diff --git a/files/bashrc b/files/bashrc index f0473aa..4d2b684 100644 --- a/files/bashrc +++ b/files/bashrc @@ -178,7 +178,7 @@ fi if [ "$OS" == "Linux" ]; then export COLUMNS # for subprocesses - source "$HOME/.lscolors" &>/dev/null + (source "$HOME/.lscolors") &>/dev/null & if type -p dircolors &>/dev/null; then eval "$(dircolors -b ~/.dircolors &>/dev/null)" fi @@ -273,6 +273,13 @@ if type -p kubectl &>/dev/null; then complete -o default -F __start_kubectl k fi +# Terragrunt aliases +if type -p terragrunt &>/dev/null; then + alias tg=terragrunt + # Autocomplete for terragrunt via alias tg + complete -C /usr/local/bin/terragrunt terragrunt tg +fi + # Command prompt # ---------------------------------------------------------------------- @@ -362,9 +369,9 @@ if [ -f "$brew_home/etc/bash_completion" ]; then fi # Load Google SDK bash completions -if [ -n "$brew_home" ] && [ -d "$brew_home/Caskroom/google-cloud-sdk" ]; then - . "$brew_home/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.bash.inc" - . "$brew_home/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.bash.inc" +if [ -n "$brew_home" ] && [ -d "$brew_home/Caskroom/gcloud-cli" ]; then + . "$brew_home/Caskroom/gcloud-cli/latest/google-cloud-sdk/completion.bash.inc" + . "$brew_home/Caskroom/gcloud-cli/latest/google-cloud-sdk/path.bash.inc" fi # Load Linux bash completions From fd0d33ad417496d1afc190aee1d2954e90557bf6 Mon Sep 17 00:00:00 2001 From: Alex Diachin <1931275+exdial@users.noreply.github.com> Date: Wed, 25 Mar 2026 22:33:34 -0300 Subject: [PATCH 2/4] Update Brewfile --- Brewfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Brewfile b/Brewfile index ca9b85a..5ae47bd 100644 --- a/Brewfile +++ b/Brewfile @@ -9,6 +9,7 @@ brew 'awscli' brew 'ansible' brew 'asciinema' brew 'bash' +brew 'bash-completion@2' brew 'grip' brew 'htop' brew 'osx-cpu-temp' @@ -17,13 +18,10 @@ brew 'starship' brew 'yt-dlp' brew 'kubectx' brew 'nmap' -brew 'pipx' brew 'shellcheck' brew 'shfmt' -brew 'skopeo' brew 'gh' - # Casks cask 'amneziavpn' cask 'appcleaner' @@ -35,6 +33,7 @@ cask 'macpass' cask 'motrix' cask 'obsidian' cask 'onyx' +cask 'pock' cask 'raspberry-pi-imager' cask 'resilio-sync' cask 'slack' From 973766eeb2b02488d3a483c96683fc371ee79cbf Mon Sep 17 00:00:00 2001 From: Alex Diachin <1931275+exdial@users.noreply.github.com> Date: Sat, 18 Apr 2026 22:55:55 -0400 Subject: [PATCH 3/4] Update repo files --- .editorconfig | 28 +++--- .gitignore | 2 - Brewfile | 2 +- LICENSE | 2 +- files/bash_profile | 28 +++++- files/bashrc | 227 +++++++++++++++++++++++++++++++-------------- files/editorconfig | 33 +++---- 7 files changed, 209 insertions(+), 113 deletions(-) diff --git a/.editorconfig b/.editorconfig index 7585388..f85ef79 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,21 +1,21 @@ -# https://editorconfig.org - -# top-most EditorConfig file +# EditorConfig — https://editorconfig.org root = true -# Unix-style newlines with a newline ending every file [*] -end_of_line = lf -insert_final_newline = true -max_line_length = 120 -indent_size = 2 -indent_style = space +charset = utf-8 +end_of_line = lf +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true -# Set default charset -[*.md] -charset = utf-8 +[{*.{md,rst,txt},*.env,*.env.*}] +trim_trailing_whitespace = false -# Tab indentation [Makefile] -indent_size = 4 indent_style = tab +indent_size = 4 + +[*.{pem,crt,key,p12,pfx}] +insert_final_newline = false +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore index d75ad50..54e03dd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ # Created by https://gitignore.io/api/osx,linux,vim,homebrew -# Edit at https://gitignore.io/?templates=osx,linux,vim,homebrew ### Homebrew ### Brewfile.lock.json @@ -72,4 +71,3 @@ tags secrets/ secrets.tar.gz -.vscode diff --git a/Brewfile b/Brewfile index 5ae47bd..bd98fa8 100644 --- a/Brewfile +++ b/Brewfile @@ -1,5 +1,5 @@ # Fonts -cask "font-fira-code" +cask 'font-fira-code' cask 'font-zed-mono-nerd-font' cask 'font-zed-mono' cask 'font-zed-sans' diff --git a/LICENSE b/LICENSE index a16088c..76d0b97 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 github.com/exdial +Copyright (c) 2024-2026 exdial Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/files/bash_profile b/files/bash_profile index b988963..4c0a5af 100644 --- a/files/bash_profile +++ b/files/bash_profile @@ -1,7 +1,25 @@ -# Most of the time you don’t want to maintain two separate config files for -# login and non-login shells — when you set a PATH, you want it to apply -# to both. You can fix this by sourcing .bashrc from your .bash_profile file, -# then putting PATH and common settings in .bashrc. +# ~/.bash_profile +# ---------------------------------------------------------------------- +# Bash login shell bootstrap +# +# Loaded for login Bash sessions. Its primary purpose is to source +# ~/.bashrc so both login and non-login shells share a single unified +# configuration for PATH, environment variables, aliases, prompt, +# completions, and shell behavior. +# +# This avoids maintaining duplicate settings across multiple startup +# files and keeps Bash configuration consistent across local terminals, +# SSH sessions, and other login environments. +# +# Repository: +# https://github.com/exdial/dotfiles +# +# References: +# GNU Bash Startup Files +# https://www.gnu.org/software/bash/manual/bash.html#Bash-Startup-Files +# ---------------------------------------------------------------------- # shellcheck source=/dev/null -test -f ~/.bashrc && . ~/.bashrc + +# Load .bashrc when available +test -r "$HOME/.bashrc" && . "$HOME/.bashrc" diff --git a/files/bashrc b/files/bashrc index 4d2b684..21dc353 100644 --- a/files/bashrc +++ b/files/bashrc @@ -1,16 +1,29 @@ -# https://github.com/exdial/dotfiles +# ~/.bashrc +# ---------------------------------------------------------------------- +# Bash interactive shell configuration # -# ~/.bashrc: executed by bash(1) for non-login shells. -# see https://www.gnu.org/software/bash/manual/bash.html#Bash-Startup-Files -# for more information - -# Base +# Loaded for interactive non-login Bash sessions and sourced from +# ~/.bash_profile for login shells. This keeps a single unified +# configuration for environment variables, PATH, aliases, prompt, +# completions, and shell behavior across all Bash sessions. +# +# Designed for portability across macOS and Linux systems, with +# graceful compatibility for both legacy and modern Bash versions. +# +# Repository: +# https://github.com/exdial/dotfiles +# +# References: +# GNU Bash Startup Files +# https://www.gnu.org/software/bash/manual/bash.html#Bash-Startup-Files # ---------------------------------------------------------------------- -# Shellcheck options # shellcheck source=/dev/null # shellcheck disable=SC2148 +# Base +# ---------------------------------------------------------------------- + # If not running interactively, don't do anything case "$-" in *i*) ;; @@ -26,8 +39,8 @@ fi # Detect OS case "$(uname -s)" in Darwin) OS="Darwin" ;; - Linux) OS="Linux" ;; - *) OS="unset" + Linux) OS="Linux" ;; + *) OS="unset" ;; esac # Shell options @@ -43,11 +56,9 @@ set -o notify # Uncomment to prevent file overwrite on stdout redirection # Use `>|` to force redirection to an existing file -#set -o noclobber +# set -o noclobber -# Checks the window size of the current terminal window after each -# command, and, if necessary, updates the values -# of the $LINES and $COLUMNS variables +# Checks the window size after each command and updates $LINES/$COLUMNS shopt -s checkwinsize # Automatically trim long paths in the prompt (requires Bash 4.x) @@ -59,34 +70,28 @@ unset MAILCHECK # Default umask umask 0022 -# The extended pattern matching features offered by -# bash path name expansion +# Extended pattern matching in pathname expansion shopt -s extglob -# Case-insensitive globbing (used in pathname expansion) +# Case-insensitive globbing shopt -s nocaseglob -# Terminal type -export TERM=xterm-256color - # History options # ---------------------------------------------------------------------- -# The history list is appended to the file named by the value -# of the HISTFILE variable when the shell exits, rather than -# overwriting the file +# Append to history file instead of overwriting it shopt -s histappend # Save all lines of a multi-line command in the same entry shopt -s cmdhist -# Record each line as it gets issued -# https://apple.stackexchange.com/a/128999 -PROMPT_COMMAND="history -a; $PROMPT_COMMAND" +# Record each line as it gets issued; guard against empty PROMPT_COMMAND +# to avoid a trailing semicolon when PROMPT_COMMAND is unset +PROMPT_COMMAND="history -a${PROMPT_COMMAND:+; $PROMPT_COMMAND}" -# Huge history +# HISTFILESIZE must be >= HISTSIZE, otherwise history is truncated on disk HISTSIZE=500000 -HISTFILESIZE=100000 +HISTFILESIZE=500000 # Don't record some commands HISTIGNORE="&:exit:ls:[bf]g:history:clear" @@ -100,10 +105,10 @@ HISTCONTROL="erasedups:ignoreboth" HISTTIMEFORMAT='%F %T ' # Uncomment to enable incremental history search with up/down arrows -#bind '"\e[A": history-search-backward' -#bind '"\e[B": history-search-forward' -#bind '"\e[C": forward-char' -#bind '"\e[D": backward-char' +# bind '"\e[A": history-search-backward' +# bind '"\e[B": history-search-forward' +# bind '"\e[C": forward-char' +# bind '"\e[D": backward-char' # Directory navigation # ---------------------------------------------------------------------- @@ -129,8 +134,7 @@ bind "set completion-map-case on" # Display matches for ambiguous patterns at first tab press bind "set show-all-if-ambiguous on" -# Immediately add a trailing slash when autocompleting symlinks to -# directories +# Immediately add a trailing slash when autocompleting symlinks to directories bind "set mark-symlinked-directories on" # Readline config @@ -138,7 +142,7 @@ if [ -r ~/.inputrc ]; then : "${INPUTRC=~/.inputrc}" fi -# Complete hostnames from this file +# Complete hostnames from known_hosts file if [ -r ~/.ssh/known_hosts ]; then : "${HOSTFILE=~/.ssh/known_hosts}" fi @@ -164,42 +168,60 @@ if [ -d "$HOME/.local/bin" ]; then PATH="$HOME/.local/bin:$PATH" fi -# Add Homebrew yo PATH +# Add Homebrew to PATH if type -p brew &>/dev/null; then - eval "$(/usr/local/bin/brew shellenv)" - # disable Homebrew telemetry + eval "$(brew shellenv)" + # Disable Homebrew telemetry export HOMEBREW_NO_ANALYTICS=1 export HOMEBREW_NO_AUTO_UPDATE=1 export HOMEBREW_NO_ENV_HINTS=1 fi +# Export PATH explicitly after all modifications +export PATH + # Colors # ---------------------------------------------------------------------- if [ "$OS" == "Linux" ]; then export COLUMNS # for subprocesses - (source "$HOME/.lscolors") &>/dev/null & - if type -p dircolors &>/dev/null; then - eval "$(dircolors -b ~/.dircolors &>/dev/null)" + + if [ -r "$HOME/.lscolors" ]; then + source "$HOME/.lscolors" 2>/dev/null + fi + if type -p dircolors &>/dev/null && [ -r ~/.dircolors ]; then + eval "$(dircolors -b ~/.dircolors 2>/dev/null)" fi + function ls { command ls -F -h --color=always -v --author --time-style=long-iso -C "$@" } alias ll='ls -la' alias l='ls' colorflag="--color" + elif [ "$OS" == "Darwin" ]; then colorflag="-G" export LSCOLORS='ExFxBxDxCxegedabagacad' alias ls="command ls ${colorflag}" fi -# List all files colorized in long format +# List all files in long format alias l="ls -lF ${colorflag}" alias ll="ls -lah ${colorflag}" -# List all files colorized in long format, excluding . and .. +# List all files in long format, excluding . and .. alias la="ls -lAF ${colorflag}" +# Colorized grep +alias grep='grep --color=auto' +alias fgrep='fgrep --color=auto' +alias egrep='egrep --color=auto' + +# Colorized diff (requires git or GNU diff 3.4+) +if type -p git &>/dev/null; then + alias diff='git diff --no-index --color' +fi + # Environment configuration # ---------------------------------------------------------------------- @@ -225,7 +247,7 @@ if [ "$OS" == "Darwin" ]; then export BASH_SILENCE_DEPRECATION_WARNING=1 fi -# Disable Hashicorp telemetry +# Disable HashiCorp telemetry if type -p vagrant &>/dev/null; then export VAGRANT_CHECKPOINT_DISABLE=1 fi @@ -234,9 +256,8 @@ if type -p terraform &>/dev/null; then export CHECKPOINT_DISABLE=1 fi -# Set the KUBECONFIG environment variable -if [ -r ~/.kube/config ] || type -p kubectl &>/dev/null; then - export KUBE_CONFIG_PATH=~/.kube/config +if [ -r "$HOME/.kube/config" ]; then + export KUBECONFIG="$HOME/.kube/config" fi # Load RVM environment @@ -247,8 +268,10 @@ fi # Editor and pager # ---------------------------------------------------------------------- -# Set the default editor -if type -p vim &>/dev/null; then +# Set the default editor (prefer nvim > vim > vi) +if type -p nvim &>/dev/null; then + export EDITOR='nvim' +elif type -p vim &>/dev/null; then export EDITOR='vim' elif type -p vi &>/dev/null; then export EDITOR='vi' @@ -261,6 +284,25 @@ export MANPAGER="$PAGER" # Aliases # ---------------------------------------------------------------------- +# Reload shell config without restarting +alias reload='source ~/.bashrc && echo "~/.bashrc reloaded"' + +# Navigation shortcuts +alias ..='cd ..' +alias ...='cd ../..' +alias ....='cd ../../..' + +# macOS-specific aliases +if [ "$OS" == "Darwin" ]; then + # Copy/paste from clipboard in terminal + alias copy='pbcopy' + alias paste='pbpaste' + # Open current directory in Finder + alias finder='open .' + # Flush DNS cache + alias flushdns='sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder' +fi + # Vagrant aliases if type -p vagrant &>/dev/null; then alias v='vagrant' @@ -269,17 +311,49 @@ fi # Kubectl aliases if type -p kubectl &>/dev/null; then alias k=kubectl - # Autocomplete for kubectl via alias k - complete -o default -F __start_kubectl k +fi + +# Kubectx aliases +if type -p kubectx &>/dev/null; then + alias kx='kubectx' fi # Terragrunt aliases if type -p terragrunt &>/dev/null; then alias tg=terragrunt - # Autocomplete for terragrunt via alias tg - complete -C /usr/local/bin/terragrunt terragrunt tg + complete -C "$(type -p terragrunt)" terragrunt tg fi +# Functions +# ---------------------------------------------------------------------- + +# Source a cached completion file for a given command. +# The cache lives in ~/.bash_completions/ and is automatically regenerated +# when the binary is newer than the cached file, so completions stay current +# after upgrades with no manual intervention required. +_source_completion() { + local cmd="$1" + local file="$HOME/.bash_completions/${cmd}.bash" + local bin + bin=$(type -p "$cmd" 2>/dev/null) || return + + # Regenerate if the cache is missing or older than the binary + if [ ! -f "$file" ] || [ "$bin" -nt "$file" ]; then + mkdir -p "$HOME/.bash_completions" + "$cmd" completion bash > "$file" 2>/dev/null + fi + + source "$file" +} + +# Preview a Markdown file in the browser using grip +md() { + grip "$1" >/dev/null 2>&1 & + sleep 1 + open http://localhost:6419 + fg +} + # Command prompt # ---------------------------------------------------------------------- @@ -329,18 +403,20 @@ start_ssh_agent() { ssh-agent | sed 's/^echo/#echo/' >"${SSH_ENV}" chmod 0600 "${SSH_ENV}" . "${SSH_ENV}" >/dev/null - for key in $(find ~/.ssh -iname "*id*" | grep -v .pub); do + # Use while+read to safely handle filenames with spaces + while IFS= read -r key; do ssh-add "$key" - done + done < <(find ~/.ssh -iname "*id*" ! -name "*.pub" 2>/dev/null) } -# Source SSH agent settings if it is already running, otherwise start -# up the agent proprely +# Source SSH settings if the agent is already running, otherwise start it if [ "$LOGNAME" != root ] && [ -f "${SSH_ENV}" ]; then . "${SSH_ENV}" >/dev/null - pgrep -f ssh-agent >/dev/null || { + # Check the agent PID directly instead of broad pgrep -f ssh-agent, + # which can match unrelated processes + if ! kill -0 "${SSH_AGENT_PID}" 2>/dev/null; then start_ssh_agent - } + fi elif [ "$LOGNAME" != root ]; then start_ssh_agent fi @@ -351,24 +427,36 @@ fi type -p brew &>/dev/null && brew_home="$(brew --prefix)" complete -cf sudo -# SSH autocomplete +# SSH autocomplete from ~/.ssh/config _ssh_host_autocomplete() { - local cword hosts - cword=${COMP_WORDS[COMP_CWORD]} - hosts=$(grep -i '^host ' ~/.ssh/config | cut -c 6- | grep -Fv '*') - COMPREPLY=($(compgen -W "$hosts" -- "$cword")) + local cword hosts + cword=${COMP_WORDS[COMP_CWORD]} + hosts=$(grep -i '^host ' ~/.ssh/config 2>/dev/null | cut -c 6- | grep -Fv '*') + COMPREPLY=($(compgen -W "$hosts" -- "$cword")) } complete -o default -o bashdefault -o filenames -F _ssh_host_autocomplete ssh -# Load homebrew Mac bash completions +# Load kubectl completions and wire them up to the k alias +if type -p kubectl &>/dev/null; then + _source_completion kubectl + complete -o default -F __start_kubectl k +fi + +# Load talosctl completions +if type -p talosctl &>/dev/null; then + _source_completion talosctl +fi + +# Load Homebrew bash completions (macOS) if [ -n "$brew_home" ] && [ -r "$brew_home/etc/profile.d/bash_completion.sh" ]; then . "$brew_home/etc/profile.d/bash_completion.sh" fi -if [ -f "$brew_home/etc/bash_completion" ]; then + +if [ -n "$brew_home" ] && [ -f "$brew_home/etc/bash_completion" ]; then . "$brew_home/etc/bash_completion" fi -# Load Google SDK bash completions +# Load Google Cloud SDK completions (macOS + Homebrew) if [ -n "$brew_home" ] && [ -d "$brew_home/Caskroom/gcloud-cli" ]; then . "$brew_home/Caskroom/gcloud-cli/latest/google-cloud-sdk/completion.bash.inc" . "$brew_home/Caskroom/gcloud-cli/latest/google-cloud-sdk/path.bash.inc" @@ -384,10 +472,11 @@ fi # Load all host-specific settings without changing the main config for rcfile in ~/.bashrc.*; do - # Skip if no matches [ -e "$rcfile" ] || continue - # Skip the main .bashrc itself if matched accidentally [ "$rcfile" = ~/.bashrc ] && continue - # Source the file + # Skip vim swap files and other binary artifacts + case "$rcfile" in + *.swp|*.swn|*.swo|*~) continue ;; + esac . "$rcfile" done diff --git a/files/editorconfig b/files/editorconfig index 590eb23..f85ef79 100644 --- a/files/editorconfig +++ b/files/editorconfig @@ -1,30 +1,21 @@ -# editorconfig.org - -# top-most EditorConfig file +# EditorConfig — https://editorconfig.org root = true -# Unix-style newlines with a newline ending every file [*] -end_of_line = lf -charset = utf-8 -insert_final_newline = true +charset = utf-8 +end_of_line = lf +indent_style = space +indent_size = 2 +insert_final_newline = true trim_trailing_whitespace = true -mac_line_length = 120 - -# 2 space indentation -[*.{hcl,tf,md,yml,sh}] -indent_style = space -indent_size = 2 -[*.{md,sh}] -max_line_length = 80 +[{*.{md,rst,txt},*.env,*.env.*}] +trim_trailing_whitespace = false -# Tab indentation [Makefile] indent_style = tab +indent_size = 4 -# 4 space indentation -[*.{rb,pp}] -indent_style = space -indent_size = 4 -max_line_length = 120 +[*.{pem,crt,key,p12,pfx}] +insert_final_newline = false +trim_trailing_whitespace = false From fa02db1389dc343f0162348a10606039b7e7823f Mon Sep 17 00:00:00 2001 From: Alex Diachin <1931275+exdial@users.noreply.github.com> Date: Sat, 18 Apr 2026 23:12:17 -0400 Subject: [PATCH 4/4] Update dotfiles --- files/bashrc | 9 - files/dircolors | 853 ------------------------------------------------ files/gitconfig | 2 +- files/inputrc | 24 +- files/lscolors | 2 - 5 files changed, 21 insertions(+), 869 deletions(-) delete mode 100644 files/dircolors delete mode 100644 files/lscolors diff --git a/files/bashrc b/files/bashrc index 21dc353..29f292c 100644 --- a/files/bashrc +++ b/files/bashrc @@ -125,15 +125,6 @@ shopt -s dirspell 2>/dev/null # Tab-completion (readline bindings) # ---------------------------------------------------------------------- -# Perform file completion in a case insensitive fashion -bind "set completion-ignore-case on" - -# Treat hyphens and underscores as equivalent -bind "set completion-map-case on" - -# Display matches for ambiguous patterns at first tab press -bind "set show-all-if-ambiguous on" - # Immediately add a trailing slash when autocompleting symlinks to directories bind "set mark-symlinked-directories on" diff --git a/files/dircolors b/files/dircolors deleted file mode 100644 index 6a747d8..0000000 --- a/files/dircolors +++ /dev/null @@ -1,853 +0,0 @@ -# LS_COLORS -# Maintainers: Magnus Woldrich , -# Ryan Delaney -# URL: https://github.com/trapd00r/LS_COLORS -# -# This is a collection of extension:color mappings, suitable to use as your -# LS_COLORS environment variable. Most of them use the extended color map, -# described in the ECMA-48 document; in other words, you'll need a terminal -# with capabilities of displaying 256 colors. -# -# As of this writing, over 500 different filetypes/extensions are supported. -# That's indeed a lot of extensions, but there's a lot more! Therefore I need -# your help. -# -# Fork this project on github, add the extensions you are missing, and send me -# a pull request. -# -# For files that usually end up next to each other, like html, css and js, -# try to pick colors that fit nicely together. Filetypes with multiple -# possible extensions, like htm and html, should have the same color. - -# This program is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. See the Perl Artistic License for more details. -# -# This program is free software: you can redistribute it and/or modify it under -# the terms of the Perl Artistic License as published by the Perl Foundation, -# either version 1.0 of the License, or (at your option) any later version. -# -# You should have received a copy of the Perl Artistic License along -# with this program. If not, see . - -# core {{{1 -BLK 38;5;68 -CAPABILITY 38;5;17 -CHR 38;5;113;1 -DIR 38;5;30 -DOOR 38;5;127 -EXEC 38;5;208;1 -FIFO 38;5;126 -FILE 0 -LINK target -MULTIHARDLINK 38;5;222;1 -# "NORMAL don't reset the bold attribute - -# https://github.com/trapd00r/LS_COLORS/issues/11 -#NORMAL 38;5;254 -NORMAL 0 -ORPHAN 48;5;196;38;5;232;1 -OTHER_WRITABLE 38;5;220;1 -SETGID 48;5;3;38;5;0 -SETUID 38;5;220;1;3;100;1 -SOCK 38;5;197 -STICKY 38;5;86;48;5;234 -STICKY_OTHER_WRITABLE 48;5;235;38;5;139;3 - -*LS_COLORS 48;5;89;38;5;197;1;3;4;7 # :-) -# }}} -# documents {{{1 -*README 38;5;220;1 -*README.rst 38;5;220;1 -*README.md 38;5;220;1 -*LICENSE 38;5;220;1 -*COPYING 38;5;220;1 -*INSTALL 38;5;220;1 -*COPYRIGHT 38;5;220;1 -*AUTHORS 38;5;220;1 -*HISTORY 38;5;220;1 -*CONTRIBUTORS 38;5;220;1 -*PATENTS 38;5;220;1 -*VERSION 38;5;220;1 -*NOTICE 38;5;220;1 -*CHANGES 38;5;220;1 -.log 38;5;190 -# plain-text {{{2 -.txt 38;5;253 -# markup {{{2 -.adoc 38;5;184 -.asciidoc 38;5;184 -.etx 38;5;184 -.info 38;5;184 -.markdown 38;5;184 -.md 38;5;184 -.mkd 38;5;184 -.nfo 38;5;184 -.pod 38;5;184 -.rst 38;5;184 -.tex 38;5;184 -.textile 38;5;184 -# key-value, non-relational data {{{2 -.bib 38;5;178 -.json 38;5;178 -.jsonl 38;5;178 -.jsonnet 38;5;178 -.libsonnet 38;5;142 -.ndjson 38;5;178 -.msg 38;5;178 -.pgn 38;5;178 -.rss 38;5;178 -.xml 38;5;178 -.fxml 38;5;178 -.toml 38;5;178 -.yaml 38;5;178 -.yml 38;5;178 -.RData 38;5;178 -.rdata 38;5;178 -.xsd 38;5;178 -.dtd 38;5;178 -.sgml 38;5;178 -.rng 38;5;178 -.rnc 38;5;178 -# }}} -# binary {{{2 -.cbr 38;5;141 -.cbz 38;5;141 -.chm 38;5;141 -.djvu 38;5;141 -.pdf 38;5;141 -.PDF 38;5;141 -.mobi 38;5;141 -.epub 38;5;141 -# words {{{3 -.docm 38;5;111;4 -.doc 38;5;111 -.docx 38;5;111 -.odb 38;5;111 -.odt 38;5;111 -.rtf 38;5;111 -# presentation {{{3 -.odp 38;5;166 -.pps 38;5;166 -.ppt 38;5;166 -.pptx 38;5;166 -# Powerpoint show -.ppts 38;5;166 -# Powerpoint with enabled macros -.pptxm 38;5;166;4 -# Powerpoint show with enabled macros -.pptsm 38;5;166;4 -# spreadsheet {{{3 -.csv 38;5;78 -.tsv 38;5;78 -# Open document spreadsheet -.ods 38;5;112 -.xla 38;5;76 -# Excel spreadsheet -.xls 38;5;112 -.xlsx 38;5;112 -# Excel spreadsheet with macros -.xlsxm 38;5;112;4 -# Excel module -.xltm 38;5;73;4 -.xltx 38;5;73 -# macOS office suite {{{3 -.pages 38;5;111 -.numbers 38;5;112 -.key 38;5;166 -# }}} -# }}} -# configs {{{2 -*config 1 -*cfg 1 -*conf 1 -*rc 1 -*authorized_keys 1 -*known_hosts 1 -.ini 1 -.plist 1 -# vim -.viminfo 1 -# cisco VPN client configuration -.pcf 1 -# adobe photoshop proof settings file -.psf 1 -# Sublime Text config -.hidden-color-scheme 1 -.hidden-tmTheme 1 -.last-run 1 -.merged-ca-bundle 1 -.sublime-build 1 -.sublime-commands 1 -.sublime-keymap 1 -.sublime-settings 1 -.sublime-snippet 1 -.sublime-project 1 -.sublime-workspace 1 -.tmTheme 1 -.user-ca-bundle 1 -# eclipse -.epf 1 -# }}} -# }}} -# code {{{1 -# version control {{{2 -.git 38;5;197 -.gitignore 38;5;240 -.gitattributes 38;5;240 -.gitmodules 38;5;240 - -# shell {{{2 -.awk 38;5;172 -.bash 38;5;172 -.bat 38;5;172 -.BAT 38;5;172 -.sed 38;5;172 -.sh 38;5;172 -.zsh 38;5;172 -.vim 38;5;172 -.kak 38;5;172 - -# interpreted {{{2 -.ahk 38;5;41 -# python -.py 38;5;41 -.ipynb 38;5;41 -# ruby -.rb 38;5;41 -.gemspec 38;5;41 -# perl -.pl 38;5;208 -.PL 38;5;160 -.t 38;5;114 -# sql -.msql 38;5;222 -.mysql 38;5;222 -.pgsql 38;5;222 -.sql 38;5;222 -# Tool Command Language -.tcl 38;5;64;1 -# R language -.r 38;5;49 -.R 38;5;49 -# GrADS script -.gs 38;5;81 -# Clojure -.clj 38;5;41 -.cljs 38;5;41 -.cljc 38;5;41 -# Clojure gorilla REPL worksheet -.cljw 38;5;41 -# Scala -.scala 38;5;41 -.sc 38;5;41 -# Dart -.dart 38;5;51 - -# compiled {{{2 -# -# assembly language -.asm 38;5;81 -# LISP -.cl 38;5;81 -.lisp 38;5;81 -.rkt 38;5;81 -# lua -.lua 38;5;81 -# Moonscript -.moon 38;5;81 -# C -.c 38;5;81 -.C 38;5;81 -.h 38;5;110 -.H 38;5;110 -.tcc 38;5;110 -# C++ -.c++ 38;5;81 -.h++ 38;5;110 -.hpp 38;5;110 -.hxx 38;5;110 -.ii 38;5;110 -# method file for Objective C -.M 38;5;110 -.m 38;5;110 -# Csharp -.cc 38;5;81 -.cs 38;5;81 -.cp 38;5;81 -.cpp 38;5;81 -.cxx 38;5;81 -# Crystal -.cr 38;5;81 -# Google golang -.go 38;5;81 -# fortran -.f 38;5;81 -.F 38;5;81 -.for 38;5;81 -.ftn 38;5;81 -.f90 38;5;81 -.F90 38;5;81 -.f95 38;5;81 -.F95 38;5;81 -.f03 38;5;81 -.F03 38;5;81 -.f08 38;5;81 -.F08 38;5;81 -# Nim -.nim 38;5;81 -.nimble 38;5;81 -# pascal -.s 38;5;110 -.S 38;5;110 -# Rust -.rs 38;5;81 -# AppleScript -.scpt 38;5;219 -# Swift -.swift 38;5;219 -# ? -.sx 38;5;81 -# Vala -.vala 38;5;81 -.vapi 38;5;81 -# interface file in GHC - https://github.com/trapd00r/LS_COLORS/pull/9 -.hi 38;5;110 -# haskell -.hs 38;5;81 -.lhs 38;5;81 -# agda -.agda 38;5;81 -.lagda 38;5;81 -.lagda.tex 38;5;81 -.lagda.rst 38;5;81 -.lagda.md 38;5;81 -.agdai 38;5;110 -# Zig -.zig 38;5;81 -# V -.v 38;5;81 - -# binaries {{{2 -# compiled apps for interpreted languages -.pyc 38;5;240 -# }}} -# orchestration {{{2 -.tf 38;5;168 -.tfstate 38;5;168 -.tfvars 38;5;168 -# orchestration 2}}} -# html {{{2 -.css 38;5;125;1 -.less 38;5;125;1 -.sass 38;5;125;1 -.scss 38;5;125;1 -.htm 38;5;125;1 -.html 38;5;125;1 -.jhtm 38;5;125;1 -.mht 38;5;125;1 -.eml 38;5;125;1 -.mustache 38;5;125;1 -# }}} -# java {{{2 -.coffee 38;5;074;1 -.java 38;5;074;1 -.js 38;5;074;1 -.mjs 38;5;074;1 -.jsm 38;5;074;1 -.jsp 38;5;074;1 -# }}} -# php {{{2 -.php 38;5;81 -# CakePHP view scripts and helpers -.ctp 38;5;81 -# Twig template engine -.twig 38;5;81 -# }}} -# vb/a {{{2 -.vb 38;5;81 -.vba 38;5;81 -.vbs 38;5;81 -# 2}}} -# Build stuff {{{2 -*Dockerfile 38;5;155 -.dockerignore 38;5;240 -*Makefile 38;5;155 -*MANIFEST 38;5;243 -*pm_to_blib 38;5;240 -# Functional Configuration -.nix 38;5;155 -.dhall 38;5;178 -# ruby rake -.rake 38;5;155 -# automake -.am 38;5;242 -.in 38;5;242 -.hin 38;5;242 -.scan 38;5;242 -.m4 38;5;242 -.old 38;5;242 -.out 38;5;242 -.SKIP 38;5;244 -# }}} -# patch files {{{2 -.diff 48;5;197;38;5;232 -.patch 48;5;197;38;5;232;1 -#}}} -# graphics {{{1 -.bmp 38;5;97 -.dicom 38;5;97 -.tiff 38;5;97 -.tif 38;5;97 -.TIFF 38;5;97 -.cdr 38;5;97 -.flif 38;5;97 -.gif 38;5;97 -.icns 38;5;97 -.ico 38;5;97 -.jpeg 38;5;97 -.JPG 38;5;97 -.jpg 38;5;97 -.nth 38;5;97 -.png 38;5;97 -.psd 38;5;97 -.pxd 38;5;97 -.pxm 38;5;97 -.xpm 38;5;97 -.webp 38;5;97 -# }}} -# vector {{{1 -.ai 38;5;99 -.eps 38;5;99 -.epsf 38;5;99 -.drw 38;5;99 -.ps 38;5;99 -.svg 38;5;99 -# }}} -# video {{{1 -.avi 38;5;114 -.divx 38;5;114 -.IFO 38;5;114 -.m2v 38;5;114 -.m4v 38;5;114 -.mkv 38;5;114 -.MOV 38;5;114 -.mov 38;5;114 -.mp4 38;5;114 -.mpeg 38;5;114 -.mpg 38;5;114 -.ogm 38;5;114 -.rmvb 38;5;114 -.sample 38;5;114 -.wmv 38;5;114 - # mobile/streaming {{{2 -.3g2 38;5;115 -.3gp 38;5;115 -.gp3 38;5;115 -.webm 38;5;115 -.gp4 38;5;115 -.asf 38;5;115 -.flv 38;5;115 -.ts 38;5;115 -.ogv 38;5;115 -.f4v 38;5;115 - # }}} - # lossless {{{2 -.VOB 38;5;115;1 -.vob 38;5;115;1 -# }}} -# subtitles {{{1 -.ass 38;5;117 -.srt 38;5;117 -.ssa 38;5;117 -.sub 38;5;117 -.sup 38;5;117 # bitmap image track -.vtt 38;5;117 -#}}} -# audio {{{1 -.3ga 38;5;137;1 -.S3M 38;5;137;1 -.aac 38;5;137;1 -.amr 38;5;137;1 -.au 38;5;137;1 -.caf 38;5;137;1 -.dat 38;5;137;1 -.dts 38;5;137;1 -.fcm 38;5;137;1 -.m4a 38;5;137;1 -.mod 38;5;137;1 -.mp3 38;5;137;1 -.mp4a 38;5;137;1 -.oga 38;5;137;1 -.ogg 38;5;137;1 -.opus 38;5;137;1 -.s3m 38;5;137;1 -.sid 38;5;137;1 -.wma 38;5;137;1 -# lossless -.ape 38;5;136;1 -.aiff 38;5;136;1 -.cda 38;5;136;1 -.flac 38;5;136;1 -.alac 38;5;136;1 -.mid 38;5;136;1 -.midi 38;5;136;1 -.pcm 38;5;136;1 -.wav 38;5;136;1 -.wv 38;5;136;1 -.wvc 38;5;136;1 - -# }}} -# fonts {{{1 -.afm 38;5;66 -.fon 38;5;66 -.fnt 38;5;66 -.pfb 38;5;66 -.pfm 38;5;66 -.ttf 38;5;66 -.otf 38;5;66 -# Web Open Font Format -.woff 38;5;66 -.woff2 38;5;66 -# postscript fonts -.PFA 38;5;66 -.pfa 38;5;66 -# }}} -# archives {{{1 -.7z 38;5;40 -.a 38;5;40 -.arj 38;5;40 -.bz2 38;5;40 -.cpio 38;5;40 -.gz 38;5;40 -.lrz 38;5;40 -.lz 38;5;40 -.lzma 38;5;40 -.lzo 38;5;40 -.rar 38;5;40 -.s7z 38;5;40 -.sz 38;5;40 -.tar 38;5;40 -.tgz 38;5;40 -.warc 38;5;40 -.WARC 38;5;40 -.xz 38;5;40 -.z 38;5;40 -.zip 38;5;40 -.zipx 38;5;40 -.zoo 38;5;40 -.zpaq 38;5;40 -.zst 38;5;40 -.zstd 38;5;40 -.zz 38;5;40 - # packaged apps {{{2 -.apk 38;5;215 -.ipa 38;5;215 -.deb 38;5;215 -.rpm 38;5;215 -.jad 38;5;215 -.jar 38;5;215 -.cab 38;5;215 -.pak 38;5;215 -.pk3 38;5;215 -.vdf 38;5;215 -.vpk 38;5;215 -.bsp 38;5;215 -.dmg 38;5;215 -.crx 38;5;215 # Google Chrome extension -.xpi 38;5;215 # Mozilla Firefox extension - # }}} - # segments from 0 to three digits after first extension letter {{{2 -.r[0-9]{0,2} 38;5;239 -.zx[0-9]{0,2} 38;5;239 -.z[0-9]{0,2} 38;5;239 -# partial files -.part 38;5;239 - # }}} -# partition images {{{2 -.iso 38;5;124 -.bin 38;5;124 -.nrg 38;5;124 -.qcow 38;5;124 -.sparseimage 38;5;124 -.toast 38;5;124 -.vcd 38;5;124 -.vmdk 38;5;124 -# }}} -# databases {{{2 -.accdb 38;5;60 -.accde 38;5;60 -.accdr 38;5;60 -.accdt 38;5;60 -.db 38;5;60 -.fmp12 38;5;60 -.fp7 38;5;60 -.localstorage 38;5;60 -.mdb 38;5;60 -.mde 38;5;60 -.sqlite 38;5;60 -.typelib 38;5;60 -# NetCDF database -.nc 38;5;60 -# }}} -# tempfiles {{{1 -# undo files -.pacnew 38;5;33 -.un~ 38;5;241 -.orig 38;5;241 -# backups -.BUP 38;5;241 -.bak 38;5;241 -.o 38;5;241 # *nix Object file (shared libraries, core dumps etc) -*core 38;5;241 # Linux user core dump file (from /proc/sys/kernel/core_pattern) -.mdump 38;5;241 # Mini DuMP crash report -.rlib 38;5;241 # Static rust library -.dll 38;5;241 # dynamic linked library -# temporary files -.swp 38;5;244 -.swo 38;5;244 -.tmp 38;5;244 -.sassc 38;5;244 -# state files -.pid 38;5;248 -.state 38;5;248 -*lockfile 38;5;248 -*lock 38;5;248 -# error logs -.err 38;5;160;1 -.error 38;5;160;1 -.stderr 38;5;160;1 -# state dumps -.aria2 38;5;241 -.dump 38;5;241 -.stackdump 38;5;241 -.zcompdump 38;5;241 -.zwc 38;5;241 -# tcpdump, network traffic capture -.pcap 38;5;29 -.cap 38;5;29 -.dmp 38;5;29 -# macOS -.DS_Store 38;5;239 -.localized 38;5;239 -.CFUserTextEncoding 38;5;239 -# }}} -# hosts {{{1 -# /etc/hosts.{deny,allow} -.allow 38;5;112 -.deny 38;5;196 -# }}} -# systemd {{{1 -# http://www.freedesktop.org/software/systemd/man/systemd.unit.html -.service 38;5;45 -*@.service 38;5;45 -.socket 38;5;45 -.swap 38;5;45 -.device 38;5;45 -.mount 38;5;45 -.automount 38;5;45 -.target 38;5;45 -.path 38;5;45 -.timer 38;5;45 -.snapshot 38;5;45 -# }}} -# metadata {{{1 -.application 38;5;116 -.cue 38;5;116 -.description 38;5;116 -.directory 38;5;116 -.m3u 38;5;116 -.m3u8 38;5;116 -.md5 38;5;116 -.properties 38;5;116 -.sfv 38;5;116 -.theme 38;5;116 -.torrent 38;5;116 -.urlview 38;5;116 -.webloc 38;5;116 -.lnk 38;5;39 -# }}} -# macOS files {{{1 -*CodeResources 38;5;239 # code signing apps -*PkgInfo 38;5;239 # app bundle id -.nib 38;5;57 # UI -.car 38;5;57 # asset catalog -.dylib 38;5;241 # shared lib -# Xcode files {{{2 -.entitlements 1 -.pbxproj 1 -.strings 1 -.storyboard 38;5;196 -.xcconfig 1 -.xcsettings 1 -.xcuserstate 1 -.xcworkspacedata 1 -.xib 38;5;208 -# }}} -# }}} -# encrypted data {{{1 -.asc 38;5;192;3 -.bfe 38;5;192;3 -.enc 38;5;192;3 -.gpg 38;5;192;3 -.signature 38;5;192;3 -.sig 38;5;192;3 -.p12 38;5;192;3 -.pem 38;5;192;3 -.pgp 38;5;192;3 -.p7s 38;5;192;3 -*id_dsa 38;5;192;3 -*id_rsa 38;5;192;3 -*id_ecdsa 38;5;192;3 -*id_ed25519 38;5;192;3 -# 1}}} -# emulators {{{1 -.32x 38;5;213 -.cdi 38;5;213 -.fm2 38;5;213 -.rom 38;5;213 -.sav 38;5;213 -.st 38;5;213 - # atari -.a00 38;5;213 -.a52 38;5;213 -.A64 38;5;213 -.a64 38;5;213 -.a78 38;5;213 -.adf 38;5;213 -.atr 38;5;213 - # nintendo -.gb 38;5;213 -.gba 38;5;213 -.gbc 38;5;213 -.gel 38;5;213 -.gg 38;5;213 -.ggl 38;5;213 -.ipk 38;5;213 # Nintendo (DS Packed Images) -.j64 38;5;213 -.nds 38;5;213 -.nes 38;5;213 - # Sega -.sms 38;5;213 -# }}} -# Texas Instruments Calculator files {{{1 -# for more see http://tibasicdev.wikidot.com/file-extensions -.8xp 38;5;121 -.8eu 38;5;121 -.82p 38;5;121 -.83p 38;5;121 -.8xe 38;5;121 -# }}} -# 3D printing {{{1 -.stl 38;5;216 -.dwg 38;5;216 -.ply 38;5;216 -.wrl 38;5;216 -# }}} -# unsorted {{{1 -# -# Portable Object Translation for GNU Gettext -.pot 38;5;7 -# CAD files for printed circuit boards -.pcb 38;5;7 -# groff (rendering app for texinfo) -.mm 38;5;7 -# GIMP files -.gbr 38;5;7 -.scm 38;5;7 -.xcf 38;5;7 -# printer spool file -.spl 38;5;7 -# RStudio project file -.Rproj 38;5;11 -# Nokia Symbian OS files -.sis 38;5;7 - -.1p 38;5;7 -.3p 38;5;7 -.cnc 38;5;7 -.def 38;5;7 -.ex 38;5;7 -.example 38;5;7 -.feature 38;5;7 -.ger 38;5;7 -.ics 38;5;7 # calendar information -.map 38;5;7 -.mf 38;5;7 -.mfasl 38;5;7 -.mi 38;5;7 -.mtx 38;5;7 -.pc 38;5;7 -.pi 38;5;7 -.plt 38;5;7 -.pm 38;5;7 -.rdf 38;5;7 -.ru 38;5;7 -.sch 38;5;7 -.sty 38;5;7 -.sug 38;5;7 -.tdy 38;5;7 -.tfm 38;5;7 -.tfnt 38;5;7 -.tg 38;5;7 -.vcard 38;5;7 -.vcf 38;5;7 #contact information -.xln 38;5;7 -# AppCode files -.iml 38;5;166 -# }}} -# termcap {{{1 -TERM ansi -TERM color-xterm -TERM con132x25 -TERM con132x30 -TERM con132x43 -TERM con132x60 -TERM con80x25 -TERM con80x28 -TERM con80x30 -TERM con80x43 -TERM con80x50 -TERM con80x60 -TERM cons25 -TERM console -TERM cygwin -TERM dtterm -TERM Eterm -TERM eterm-color -TERM gnome -TERM gnome-256color -TERM jfbterm -TERM konsole -TERM kterm -TERM linux -TERM linux-c -TERM mach-color -TERM mlterm -TERM putty -TERM rxvt -TERM rxvt-256color -TERM rxvt-cygwin -TERM rxvt-cygwin-native -TERM rxvt-unicode -TERM rxvt-unicode-256color -TERM rxvt-unicode256 -TERM screen -TERM screen-256color -TERM screen-256color-bce -TERM screen-bce -TERM screen-w -TERM screen.linux -TERM screen.rxvt -TERM terminator -TERM vt100 -TERM xterm -TERM xterm-16color -TERM xterm-256color -TERM xterm-88color -TERM xterm-color -TERM xterm-debian -TERM xterm-kitty -# }}} - - -# vim: ft=dircolors:fdm=marker:et:sw=2: diff --git a/files/gitconfig b/files/gitconfig index 8ecad9c..00ad2ea 100644 --- a/files/gitconfig +++ b/files/gitconfig @@ -30,7 +30,7 @@ lg = log --graph '--pretty=tformat:%Cblue%h%Creset %Cgreen%ar%Creset %Cred%an%Creset%Cblue%d%Creset %s' lga = log --graph '--pretty=tformat:%Cblue%h%Creset %Cgreen%ar%Creset %Cred%an%Creset%Cblue%d%Creset %s' --all clone-branches = "! git branch -a | sed -n \"/\\/HEAD /d; /\\/master$/d; /remotes/p;\" | xargs -L1 git checkout -t" - ignore = "!gi() { curl -L -s https://www.gitignore.io/api/$@ ;}; gi" + ignore = "!gi() { curl -L -s https://gitignore.io/api/$@ ;}; gi" [branch] autosetuprebase = always diff --git a/files/inputrc b/files/inputrc index 433cbf7..93449c8 100644 --- a/files/inputrc +++ b/files/inputrc @@ -1,8 +1,24 @@ -# Show possible completions on first press -# instead of waiting for multiple completions +# ~/.inputrc + +# Show completions immediately set show-all-if-ambiguous on -# Enable case-insensitive tab completion +# Ignore case set completion-ignore-case on -TAB: menu-complete +# Treat hyphen and underscore equally +set completion-map-case on + +# Better visual bell +set bell-style none + +# Show stats mark +set visible-stats on + +# Colored completion (if supported) +set colored-stats on +set colored-completion-prefix on + +# Better history search with arrows +"\e[A": history-search-backward +"\e[B": history-search-forward diff --git a/files/lscolors b/files/lscolors deleted file mode 100644 index 050c7c2..0000000 --- a/files/lscolors +++ /dev/null @@ -1,2 +0,0 @@ -LS_COLORS='*.7z=38;5;40:*.WARC=38;5;40:*.a=38;5;40:*.arj=38;5;40:*.br=38;5;40:*.bz2=38;5;40:*.cpio=38;5;40:*.gz=38;5;40:*.lrz=38;5;40:*.lz=38;5;40:*.lzma=38;5;40:*.lzo=38;5;40:*.rar=38;5;40:*.s7z=38;5;40:*.sz=38;5;40:*.tar=38;5;40:*.tbz=38;5;40:*.tgz=38;5;40:*.warc=38;5;40:*.xz=38;5;40:*.z=38;5;40:*.zip=38;5;40:*.zipx=38;5;40:*.zoo=38;5;40:*.zpaq=38;5;40:*.zst=38;5;40:*.zstd=38;5;40:*.zz=38;5;40:*@.service=38;5;45:*AUTHORS=38;5;220;1:*CHANGELOG=38;5;220;1:*CHANGELOG.md=38;5;220;1:*CHANGES=38;5;220;1:*CODEOWNERS=38;5;220;1:*CONTRIBUTING=38;5;220;1:*CONTRIBUTING.md=38;5;220;1:*CONTRIBUTORS=38;5;220;1:*COPYING=38;5;220;1:*COPYRIGHT=38;5;220;1:*CodeResources=38;5;239:*Containerfile=38;5;155:*Dockerfile=38;5;155:*HISTORY=38;5;220;1:*INSTALL=38;5;220;1:*LICENSE=38;5;220;1:*LICENSE.md=38;5;220;1:*LS_COLORS=48;5;89;38;5;197;1;3;4;7:*MANIFEST=38;5;243:*Makefile=38;5;155:*NOTICE=38;5;220;1:*PATENTS=38;5;220;1:*PkgInfo=38;5;239:*README=38;5;220;1:*README.md=38;5;220;1:*README.rst=38;5;220;1:*VERSION=38;5;220;1:*authorized_keys=1:*cfg=1:*conf=1:*config=1:*core=38;5;241:*id_dsa=38;5;192;3:*id_ecdsa=38;5;192;3:*id_ed25519=38;5;192;3:*id_rsa=38;5;192;3:*known_hosts=1:*lock=38;5;248:*lockfile=38;5;248:*pm_to_blib=38;5;240:*rc=1:*.1p=38;5;7:*.32x=38;5;213:*.3g2=38;5;115:*.3ga=38;5;137;1:*.3gp=38;5;115:*.3p=38;5;7:*.82p=38;5;121:*.83p=38;5;121:*.8eu=38;5;121:*.8xe=38;5;121:*.8xp=38;5;121:*.A64=38;5;213:*.BAT=38;5;172:*.BUP=38;5;241:*.C=38;5;81:*.CFUserTextEncoding=38;5;239:*.DS_Store=38;5;239:*.F=38;5;81:*.F03=38;5;81:*.F08=38;5;81:*.F90=38;5;81:*.F95=38;5;81:*.H=38;5;110:*.IFO=38;5;114:*.JPG=38;5;97:*.M=38;5;110:*.MOV=38;5;114:*.PDF=38;5;141:*.PFA=38;5;66:*.PL=38;5;160:*.R=38;5;49:*.RData=38;5;178:*.Rproj=38;5;11:*.S=38;5;110:*.S3M=38;5;137;1:*.SKIP=38;5;244:*.TIFF=38;5;97:*.VOB=38;5;115;1:*.a00=38;5;213:*.a52=38;5;213:*.a64=38;5;213:*.a78=38;5;213:*.aac=38;5;137;1:*.accdb=38;5;60:*.accde=38;5;60:*.accdr=38;5;60:*.accdt=38;5;60:*.adf=38;5;213:*.adoc=38;5;184:*.afm=38;5;66:*.agda=38;5;81:*.agdai=38;5;110:*.ahk=38;5;41:*.ai=38;5;99:*.aiff=38;5;136;1:*.alac=38;5;136;1:*.allow=38;5;112:*.am=38;5;242:*.amr=38;5;137;1:*.ape=38;5;136;1:*.apk=38;5;215:*.application=38;5;116:*.aria2=38;5;241:*.asc=38;5;192;3:*.asciidoc=38;5;184:*.asf=38;5;115:*.asm=38;5;81:*.ass=38;5;117:*.astro=38;5;135;1:*.atr=38;5;213:*.au=38;5;137;1:*.automount=38;5;45:*.avi=38;5;114:*.awk=38;5;172:*.azw=38;5;141:*.azw3=38;5;141:*.bak=38;5;241:*.bash=38;5;172:*.bash_login=1:*.bash_logout=1:*.bash_profile=1:*.bat=38;5;172:*.bfe=38;5;192;3:*.bib=38;5;178:*.bin=38;5;124:*.bmp=38;5;97:*.bsp=38;5;215:*.c=38;5;81:*.c++=38;5;81:*.cab=38;5;215:*.caf=38;5;137;1:*.cap=38;5;29:*.car=38;5;57:*.cbr=38;5;141:*.cbz=38;5;141:*.cc=38;5;81:*.cda=38;5;136;1:*.cdi=38;5;213:*.cdr=38;5;97:*.chm=38;5;141:*.cjs=38;5;074;1:*.cl=38;5;81:*.clj=38;5;41:*.cljc=38;5;41:*.cljs=38;5;41:*.cljw=38;5;41:*.cnc=38;5;7:*.coffee=38;5;079;1:*.comp=38;5;136:*.containerignore=38;5;240:*.cp=38;5;81:*.cpp=38;5;81:*.cr=38;5;81:*.crx=38;5;215:*.cs=38;5;81:*.css=38;5;105;1:*.csv=38;5;78:*.ctp=38;5;81:*.cue=38;5;116:*.cxx=38;5;81:*.dart=38;5;51:*.dat=38;5;137;1:*.db=38;5;60:*.deb=38;5;215:*.def=38;5;7:*.deny=38;5;196:*.description=38;5;116:*.device=38;5;45:*.dhall=38;5;178:*.dicom=38;5;97:*.diff=48;5;197;38;5;232:*.directory=38;5;116:*.divx=38;5;114:*.djvu=38;5;141:*.dll=38;5;241:*.dmg=38;5;215:*.dmp=38;5;29:*.doc=38;5;111:*.dockerignore=38;5;240:*.docm=38;5;111;4:*.docx=38;5;111:*.drw=38;5;99:*.dtd=38;5;178:*.dts=38;5;137;1:*.dump=38;5;241:*.dwg=38;5;216:*.dylib=38;5;241:*.ear=38;5;215:*.ejs=38;5;135;1:*.el=38;5;81:*.elc=38;5;241:*.eln=38;5;241:*.eml=38;5;90;1:*.enc=38;5;192;3:*.entitlements=1:*.epf=1:*.eps=38;5;99:*.epsf=38;5;99:*.epub=38;5;141:*.err=38;5;160;1:*.error=38;5;160;1:*.etx=38;5;184:*.ex=38;5;7:*.example=38;5;7:*.f=38;5;81:*.f03=38;5;81:*.f08=38;5;81:*.f4v=38;5;115:*.f90=38;5;81:*.f95=38;5;81:*.fb2=38;5;141:*.fcm=38;5;137;1:*.feature=38;5;7:*.fish=38;5;172:*.flac=38;5;136;1:*.flif=38;5;97:*.flv=38;5;115:*.fm2=38;5;213:*.fmp12=38;5;60:*.fnt=38;5;66:*.fon=38;5;66:*.for=38;5;81:*.fp7=38;5;60:*.frag=38;5;136:*.ftn=38;5;81:*.fvd=38;5;124:*.fxml=38;5;178:*.gb=38;5;213:*.gba=38;5;213:*.gbc=38;5;213:*.gbr=38;5;7:*.gel=38;5;213:*.gemspec=38;5;41:*.ger=38;5;7:*.gg=38;5;213:*.ggl=38;5;213:*.gif=38;5;97:*.git=38;5;197:*.gitattributes=38;5;240:*.github=38;5;197:*.gitignore=38;5;240:*.gitmodules=38;5;240:*.go=38;5;81:*.gp3=38;5;115:*.gp4=38;5;115:*.gpg=38;5;192;3:*.gs=38;5;81:*.h=38;5;110:*.h++=38;5;110:*.hi=38;5;110:*.hidden-color-scheme=1:*.hidden-tmTheme=1:*.hin=38;5;242:*.hjson=38;5;178:*.hpp=38;5;110:*.hs=38;5;81:*.htm=38;5;125;1:*.html=38;5;125;1:*.http=38;5;90;1:*.hxx=38;5;110:*.icns=38;5;97:*.ico=38;5;97:*.ics=38;5;7:*.ii=38;5;110:*.img=38;5;124:*.iml=38;5;166:*.in=38;5;242:*.info=38;5;184:*.ini=1:*.ipa=38;5;215:*.ipk=38;5;213:*.ipynb=38;5;41:*.iso=38;5;124:*.j64=38;5;213:*.jad=38;5;215:*.jar=38;5;215:*.java=38;5;079;1:*.jhtm=38;5;125;1:*.jpeg=38;5;97:*.jpg=38;5;97:*.js=38;5;074;1:*.jsm=38;5;079;1:*.json=38;5;178:*.json5=38;5;178:*.jsonc=38;5;178:*.jsonl=38;5;178:*.jsonnet=38;5;178:*.jsp=38;5;079;1:*.jsx=38;5;074;1:*.jxl=38;5;97:*.kak=38;5;172:*.key=38;5;166:*.lagda=38;5;81:*.lagda.md=38;5;81:*.lagda.rst=38;5;81:*.lagda.tex=38;5;81:*.last-run=1:*.less=38;5;105;1:*.lhs=38;5;81:*.libsonnet=38;5;142:*.lisp=38;5;81:*.lnk=38;5;39:*.localized=38;5;239:*.localstorage=38;5;60:*.log=38;5;190:*.lua=38;5;81:*.m=38;5;110:*.m2v=38;5;114:*.m3u=38;5;116:*.m3u8=38;5;116:*.m4=38;5;242:*.m4a=38;5;137;1:*.m4v=38;5;114:*.map=38;5;7:*.markdown=38;5;184:*.md=38;5;184:*.md5=38;5;116:*.mdb=38;5;60:*.mde=38;5;60:*.mdump=38;5;241:*.mdx=38;5;184:*.merged-ca-bundle=1:*.mf=38;5;7:*.mfasl=38;5;7:*.mht=38;5;125;1:*.mi=38;5;7:*.mid=38;5;136;1:*.midi=38;5;136;1:*.mjs=38;5;074;1:*.mkd=38;5;184:*.mkv=38;5;114:*.ml=38;5;81:*.mm=38;5;7:*.mobi=38;5;141:*.mod=38;5;137;1:*.moon=38;5;81:*.mount=38;5;45:*.mov=38;5;114:*.mp3=38;5;137;1:*.mp4=38;5;114:*.mp4a=38;5;137;1:*.mpeg=38;5;114:*.mpg=38;5;114:*.msg=38;5;178:*.msql=38;5;222:*.mtx=38;5;7:*.mustache=38;5;135;1:*.mysql=38;5;222:*.nc=38;5;60:*.ndjson=38;5;178:*.nds=38;5;213:*.nes=38;5;213:*.nfo=38;5;184:*.nib=38;5;57:*.nim=38;5;81:*.nimble=38;5;81:*.nix=38;5;155:*.norg=38;5;184:*.nrg=38;5;124:*.nth=38;5;97:*.numbers=38;5;112:*.o=38;5;241:*.odb=38;5;111:*.odp=38;5;166:*.ods=38;5;112:*.odt=38;5;111:*.oga=38;5;137;1:*.ogg=38;5;137;1:*.ogm=38;5;114:*.ogv=38;5;115:*.old=38;5;242:*.opus=38;5;137;1:*.org=38;5;184:*.orig=38;5;241:*.otf=38;5;66:*.out=38;5;242:*.p12=38;5;192;3:*.p7s=38;5;192;3:*.pacnew=38;5;33:*.pages=38;5;111:*.pak=38;5;215:*.part=38;5;239:*.patch=48;5;197;38;5;232;1:*.path=38;5;45:*.pbxproj=1:*.pc=38;5;7:*.pcap=38;5;29:*.pcb=38;5;7:*.pcf=1:*.pcm=38;5;136;1:*.pdf=38;5;141:*.pem=38;5;192;3:*.pfa=38;5;66:*.pfb=38;5;66:*.pfm=38;5;66:*.pgn=38;5;178:*.pgp=38;5;192;3:*.pgsql=38;5;222:*.php=38;5;81:*.pi=38;5;7:*.pid=38;5;248:*.pk3=38;5;215:*.pl=38;5;208:*.plist=1:*.plt=38;5;7:*.ply=38;5;216:*.pm=38;5;203:*.png=38;5;97:*.pod=38;5;184:*.pot=38;5;7:*.pps=38;5;166:*.ppt=38;5;166:*.ppts=38;5;166:*.pptsm=38;5;166;4:*.pptx=38;5;166:*.pptxm=38;5;166;4:*.prisma=38;5;222:*.profile=1:*.properties=38;5;116:*.prql=38;5;222:*.ps=38;5;99:*.psd=38;5;97:*.psf=1:*.pug=38;5;135;1:*.pxd=38;5;97:*.pxm=38;5;97:*.py=38;5;41:*.pyc=38;5;240:*.qcow=38;5;124:*.r=38;5;49:*.r[0-9]{0,2}=38;5;239:*.rake=38;5;155:*.rb=38;5;41:*.rdata=38;5;178:*.rdf=38;5;7:*.rego=38;5;178:*.rkt=38;5;81:*.rlib=38;5;241:*.rmvb=38;5;114:*.rnc=38;5;178:*.rng=38;5;178:*.rom=38;5;213:*.rpm=38;5;215:*.rs=38;5;81:*.rss=38;5;178:*.rst=38;5;184:*.rstheme=1:*.rtf=38;5;111:*.ru=38;5;7:*.s=38;5;110:*.s3m=38;5;137;1:*.sample=38;5;114:*.sass=38;5;105;1:*.sassc=38;5;244:*.sav=38;5;213:*.sc=38;5;41:*.scala=38;5;41:*.scan=38;5;242:*.sch=38;5;7:*.scm=38;5;7:*.scpt=38;5;219:*.scss=38;5;105;1:*.sed=38;5;172:*.service=38;5;45:*.sfv=38;5;116:*.sgml=38;5;178:*.sh=38;5;172:*.sid=38;5;137;1:*.sig=38;5;192;3:*.signature=38;5;192;3:*.sis=38;5;7:*.sms=38;5;213:*.snapshot=38;5;45:*.socket=38;5;45:*.sparseimage=38;5;124:*.spl=38;5;7:*.spv=38;5;217:*.sql=38;5;222:*.sqlite=38;5;60:*.srt=38;5;117:*.ssa=38;5;117:*.st=38;5;213:*.stackdump=38;5;241:*.state=38;5;248:*.stderr=38;5;160;1:*.stl=38;5;216:*.storyboard=38;5;196:*.strings=1:*.sty=38;5;7:*.sub=38;5;117:*.sublime-build=1:*.sublime-commands=1:*.sublime-keymap=1:*.sublime-project=1:*.sublime-settings=1:*.sublime-snippet=1:*.sublime-workspace=1:*.sug=38;5;7:*.sup=38;5;117:*.svelte=38;5;135;1:*.svg=38;5;99:*.swap=38;5;45:*.swift=38;5;219:*.swo=38;5;244:*.swp=38;5;244:*.sx=38;5;81:*.t=38;5;114:*.target=38;5;45:*.tcc=38;5;110:*.tcl=38;5;64;1:*.tdy=38;5;7:*.tex=38;5;184:*.textile=38;5;184:*.tf=38;5;168:*.tfm=38;5;7:*.tfnt=38;5;7:*.tfstate=38;5;168:*.tfvars=38;5;168:*.tg=38;5;7:*.theme=38;5;116:*.tif=38;5;97:*.tiff=38;5;97:*.timer=38;5;45:*.tmTheme=1:*.tmp=38;5;244:*.toast=38;5;124:*.toml=38;5;178:*.torrent=38;5;116:*.ts=38;5;074;1:*.tsv=38;5;78:*.tsx=38;5;074;1:*.ttf=38;5;66:*.twig=38;5;81:*.txt=38;5;253:*.typelib=38;5;60:*.un~=38;5;241:*.urlview=38;5;116:*.user-ca-bundle=1:*.v=38;5;81:*.vala=38;5;81:*.vapi=38;5;81:*.vb=38;5;81:*.vba=38;5;81:*.vbs=38;5;81:*.vcard=38;5;7:*.vcd=38;5;124:*.vcf=38;5;7:*.vdf=38;5;215:*.vdi=38;5;124:*.vert=38;5;136:*.vfd=38;5;124:*.vhd=38;5;124:*.vhdx=38;5;124:*.vim=38;5;172:*.viminfo=1:*.vmdk=38;5;124:*.vob=38;5;115;1:*.vpk=38;5;215:*.vtt=38;5;117:*.vue=38;5;135;1:*.war=38;5;215:*.wav=38;5;136;1:*.webloc=38;5;116:*.webm=38;5;115:*.webp=38;5;97:*.wgsl=38;5;97:*.wma=38;5;137;1:*.wmv=38;5;114:*.woff=38;5;66:*.woff2=38;5;66:*.wrl=38;5;216:*.wv=38;5;136;1:*.wvc=38;5;136;1:*.xcconfig=1:*.xcf=38;5;7:*.xcsettings=1:*.xcuserstate=1:*.xcworkspacedata=1:*.xib=38;5;208:*.xla=38;5;76:*.xln=38;5;7:*.xls=38;5;112:*.xlsx=38;5;112:*.xlsxm=38;5;112;4:*.xltm=38;5;73;4:*.xltx=38;5;73:*.xml=38;5;178:*.xpi=38;5;215:*.xpm=38;5;97:*.xsd=38;5;178:*.xsh=38;5;41:*.yaml=38;5;178:*.yml=38;5;178:*.z[0-9]{0,2}=38;5;239:*.zcompdump=38;5;241:*.zig=38;5;81:*.zlogin=1:*.zlogout=1:*.zprofile=1:*.zsh=38;5;172:*.zshenv=1:*.zwc=38;5;241:*.zx[0-9]{0,2}=38;5;239:bd=38;5;68:ca=38;5;17:cd=38;5;113;1:di=38;5;30:do=38;5;127:ex=38;5;208;1:pi=38;5;126:fi=0:ln=target:mh=38;5;222;1:no=0:or=48;5;196;38;5;232;1:ow=38;5;220;1:sg=48;5;3;38;5;0:su=38;5;220;1;3;100;1:so=38;5;197:st=38;5;86;48;5;234:tw=48;5;235;38;5;139;3:'; -export LS_COLORS