Migrate to chezmoi

Move config files from config to chezmoi
Add script to auto install packages with DNF and Cargo
This commit is contained in:
Alexander Navarro 2024-03-01 20:25:09 -03:00
parent 110e0882c6
commit 224c7ed45c
1654 changed files with 470035 additions and 51 deletions

View file

@ -0,0 +1,51 @@
#--------------------------------------------------------------------#
# Aliases #
#--------------------------------------------------------------------#
#fix obvious typo's
alias pdw="pwd"
# File Managment
alias \
cp='cp -iv' \
mv='mv -iv' \
cpr='rsync -za --partial -hh --info=progress2' \
mvr='rsync -za --remove-source-files --partial -hh --info=progress2' \
sync='rsync -zau --delete --partial -hh --info=progress2' \
del='trash -i' \
rmf='rm -rfI' \
md='mkdir -pv' \
ls='eza -lh --color=always --icons --git ' \
la='eza -alh --color=always --icons --git ' \
ld='eza -la --no-permissions --no-filesize --no-time --no-time --no-user' \
mkexec='chmod +x'
# Search and Query Files
alias grep="rg --sort path --context 3"
# Quicly update Stuff
alias vi-ssh="vi ~/.ssh/config"
# Query Stuff
alias \
ip='ip -human -color -brief addr' \
df="duf --hide special --hide-mp '/boot,/boot/*'" \
du='dust --reverse' \
du1='dust --reverse --min-size 1M --depth 1' \
du2='dust --reverse --min-size 1M --depth 2' \
du3='dust --reverse --min-size 1M --depth 3' \
cat='bat'
# Misc
alias \
reload='exec $SHELL -l'
# Specific Mac overrides
if [[ "$OSTYPE" != 'linux-gnu' ]]; then
fi
#--------------------------------------------------------------------#
# Global #
#--------------------------------------------------------------------#
alias -g NULL='> /dev/null 2>&1'

View file

@ -0,0 +1,3 @@
alias \
ckb='cd ~/qmk_firmware && $EDITOR keyboards/sofle/keymaps/aleee-idk' \
dots='cd $DOTS && $EDITOR'

View file

@ -0,0 +1,26 @@
if [[ "$OSTYPE" != 'linux-gnu' ]]; then
return
fi
# Auto-generated aliases for Flatpak applications
alias pikabackup='flatpak run org.gnome.World.PikaBackup'
alias gdmsettings='flatpak run io.github.realmazharhussain.GdmSettings'
alias detwinner='flatpak run com.neatdecisions.Detwinner'
alias czkawka='flatpak run com.github.qarmin.czkawka'
alias signal='flatpak run org.signal.Signal'
alias librewolf-community='flatpak run io.gitlab.librewolf-community'
alias studio='flatpak run io.beekeeperstudio.Studio'
alias client='flatpak run com.spotify.Client'
alias slack='flatpak run com.slack.Slack'
alias browser='flatpak run com.brave.Browser'
alias syncthingtk='flatpak run me.kozec.syncthingtk'
alias amberol='flatpak run io.bassi.Amberol'
alias celeste='flatpak run com.hunterwittenborn.Celeste'
alias flatseal='flatpak run com.github.tchx84.Flatseal'
alias megasync='flatpak run nz.mega.MEGAsync'
alias guiscrcpy='flatpak run in.srev.guiscrcpy'
alias kid3='flatpak run org.kde.kid3'
alias jellyfin-media-player='flatpak run com.github.iwalton3.jellyfin-media-player'
alias junction='flatpak run re.sonny.Junction'
alias ncspot='flatpak run io.github.hrkfdn.ncspot -c ~/.config/ncspot/config.toml'

View file

@ -0,0 +1,2 @@
alias \
fzf-fp='fzf-flatpak-install-widget';

View file

@ -0,0 +1,19 @@
alias \
glf='git log -p --' \
gs='git status' \
ga='git add' \
gp='git push' \
gpo='git push origin' \
gtd='git tag --delete' \
gtdr='git tag --delete origin' \
gr='git branch -r' \
gplo='git pull origin' \
gb='git branch ' \
gc='git commit' \
gd='git diff' \
gco='git checkout ' \
gl='git log' \
gr='git remote' \
grs='git remote show' \
glo='git log --pretty="oneline"' \
glol='git log --graph --oneline --decorate'

View file

@ -0,0 +1,24 @@
alias \
vi='nvim' \
vi-astro='NVIM_APPNAME=Distro-AstroNvim nvim' \
vi-lazy='NVIM_APPNAME=LazyVim nvim'
vis() {
items=(
default
AstroNvim
LazyVim
)
config=$(printf "%s\n" "${items[@]}" | fzf --prompt=" Neovim Config  " --height=~50% --layout=reverse --border --exit-0)
if [[ -z $config ]]; then
echo "Nothing selected"
return 0
elif [[ $config == "default" ]]; then
config=""
fi
NVIM_APPNAME=$config nvim $@
}
bindkey -s ^a "vis\n"

View file

@ -0,0 +1,47 @@
alias p='pnpm'
# Dependencies
alias pa='pnpm add'
alias pad='pnpm add --save-dev'
alias pap='pnpm add --save-peer'
alias prm='pnpm remove'
alias pin='pnpm install'
alias pls='pnpm list'
alias pu='pnpm update'
alias puil='pnpm update --interactive --latest'
# Global dependencies
alias pga='pnpm add --global'
alias pgls='pnpm list --global'
alias pgrm='pnpm remove --global'
alias pgu='pnpm update --global'
# WorkSpace
alias pwa='pnpm add --workspace'
alias pwls='pnpm list --workspace'
alias pwrm='pnpm remove --workspace'
alias pwu='pnpm update --workspace'
# Run scripts
alias prun='pnpm run'
alias pd='pnpm run dev'
alias pb='pnpm run build'
alias psv='pnpm run serve'
alias pst='pnpm start'
alias pt='pnpm test'
alias ptc='pnpm test --coverage'
alias pln='pnpm run lint'
alias pdocs='pnpm run docs'
alias pex='pnpm exec'
alias pdx='pnpm dlx'
# Misc
alias pi='pnpm init'
alias ppub='pnpm publish'
alias pc='pnpm create'
# Monorepo
alias pf='pnpm -r --filter'
# qwik
alias pre='pnpm run preview'

View file

@ -0,0 +1,2 @@
alias \
sb-list='ostree remote refs fedora | grep "[0-9]\{2\}\/x86_64\/[a-z]\+$"'

View file

@ -0,0 +1,144 @@
#compdef alacritty
autoload -U is-at-least
_alacritty() {
typeset -A opt_args
typeset -a _arguments_options
local ret=1
if is-at-least 5.2; then
_arguments_options=(-s -S -C)
else
_arguments_options=(-s -C)
fi
local context curcontext="$curcontext" state line
_arguments "${_arguments_options[@]}" \
'--embed=[X11 window ID to embed Alacritty within (decimal or hexadecimal with "0x" prefix)]:EMBED: ' \
'--config-file=[Specify alternative configuration file \[default: $XDG_CONFIG_HOME/alacritty/alacritty.yml\]]:CONFIG_FILE:_files' \
'--socket=[Path for IPC socket creation]:SOCKET:_files' \
'*-o+[Override configuration file options \[example: cursor.style=Beam\]]:OPTION: ' \
'*--option=[Override configuration file options \[example: cursor.style=Beam\]]:OPTION: ' \
'--working-directory=[Start the shell in the specified working directory]:WORKING_DIRECTORY:_files' \
'*-e+[Command and args to execute (must be last argument)]:COMMAND: ' \
'*--command=[Command and args to execute (must be last argument)]:COMMAND: ' \
'-t+[Defines the window title \[default: Alacritty\]]:TITLE: ' \
'--title=[Defines the window title \[default: Alacritty\]]:TITLE: ' \
'--class=[Defines window class/app_id on X11/Wayland \[default: Alacritty\]]:instance> | <instance>,<general: ' \
'-h[Print help information]' \
'--help[Print help information]' \
'-V[Print version information]' \
'--version[Print version information]' \
'--print-events[Print all events to stdout]' \
'--ref-test[Generates ref test]' \
'(-v)*-q[Reduces the level of verbosity (the min level is -qq)]' \
'(-q)*-v[Increases the level of verbosity (the max level is -vvv)]' \
'--hold[Remain open after child process exit]' \
":: :_alacritty_commands" \
"*::: :->alacritty" \
&& ret=0
case $state in
(alacritty)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:alacritty-command-$line[1]:"
case $line[1] in
(msg)
_arguments "${_arguments_options[@]}" \
'-s+[IPC socket connection path override]:SOCKET:_files' \
'--socket=[IPC socket connection path override]:SOCKET:_files' \
'-h[Print help information]' \
'--help[Print help information]' \
":: :_alacritty__msg_commands" \
"*::: :->msg" \
&& ret=0
case $state in
(msg)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:alacritty-msg-command-$line[1]:"
case $line[1] in
(create-window)
_arguments "${_arguments_options[@]}" \
'--working-directory=[Start the shell in the specified working directory]:WORKING_DIRECTORY:_files' \
'*-e+[Command and args to execute (must be last argument)]:COMMAND: ' \
'*--command=[Command and args to execute (must be last argument)]:COMMAND: ' \
'-t+[Defines the window title \[default: Alacritty\]]:TITLE: ' \
'--title=[Defines the window title \[default: Alacritty\]]:TITLE: ' \
'--class=[Defines window class/app_id on X11/Wayland \[default: Alacritty\]]:instance> | <instance>,<general: ' \
'--hold[Remain open after child process exit]' \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(config)
_arguments "${_arguments_options[@]}" \
'-w+[Window ID for the new config]:WINDOW_ID: ' \
'--window-id=[Window ID for the new config]:WINDOW_ID: ' \
'()-r[Clear all runtime configuration changes]' \
'()--reset[Clear all runtime configuration changes]' \
'-h[Print help information]' \
'--help[Print help information]' \
'*::options -- Configuration file options \[example\: cursor.style=Beam\]:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
'*::subcommand -- The subcommand whose help message to display:' \
&& ret=0
;;
esac
;;
esac
;;
(help)
_arguments "${_arguments_options[@]}" \
'*::subcommand -- The subcommand whose help message to display:' \
&& ret=0
;;
esac
;;
esac
}
(( $+functions[_alacritty_commands] )) ||
_alacritty_commands() {
local commands; commands=(
'msg:Send a message to the Alacritty socket' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'alacritty commands' commands "$@"
}
(( $+functions[_alacritty__msg__config_commands] )) ||
_alacritty__msg__config_commands() {
local commands; commands=()
_describe -t commands 'alacritty msg config commands' commands "$@"
}
(( $+functions[_alacritty__msg__create-window_commands] )) ||
_alacritty__msg__create-window_commands() {
local commands; commands=()
_describe -t commands 'alacritty msg create-window commands' commands "$@"
}
(( $+functions[_alacritty__help_commands] )) ||
_alacritty__help_commands() {
local commands; commands=()
_describe -t commands 'alacritty help commands' commands "$@"
}
(( $+functions[_alacritty__msg__help_commands] )) ||
_alacritty__msg__help_commands() {
local commands; commands=()
_describe -t commands 'alacritty msg help commands' commands "$@"
}
(( $+functions[_alacritty__msg_commands] )) ||
_alacritty__msg_commands() {
local commands; commands=(
'create-window:Create a new window in the same Alacritty process' \
'config:Update the Alacritty configuration' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'alacritty msg commands' commands "$@"
}
_alacritty "$@"

View file

@ -0,0 +1,447 @@
#compdef cargo
autoload -U regexp-replace
_cargo() {
local curcontext="$curcontext" ret=1
local -a command_scope_spec common parallel features msgfmt triple target registry
local -a state line state_descr # These are set by _arguments
typeset -A opt_args
common=(
'(-q --quiet)*'{-v,--verbose}'[use verbose output]'
'(-q --quiet -v --verbose)'{-q,--quiet}'[no output printed to stdout]'
'-Z+[pass unstable (nightly-only) flags to cargo]: :_cargo_unstable_flags'
'--frozen[require that Cargo.lock and cache are up-to-date]'
'--locked[require that Cargo.lock is up-to-date]'
'--color=[specify colorization option]:coloring:(auto always never)'
'(- 1 *)'{-h,--help}'[show help message]'
)
# leading items in parentheses are an exclusion list for the arguments following that arg
# See: http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Completion-Functions
# - => exclude all other options
# 1 => exclude positional arg 1
# * => exclude all other args
# +blah => exclude +blah
_arguments -s -S -C $common \
'(- 1 *)--list[list installed commands]' \
'(- 1 *)--explain=[provide a detailed explanation of an error message]:error code' \
'(- 1 *)'{-V,--version}'[show version information]' \
'(+beta +nightly)+stable[use the stable toolchain]' \
'(+stable +nightly)+beta[use the beta toolchain]' \
'(+stable +beta)+nightly[use the nightly toolchain]' \
'1: :_cargo_cmds' \
'*:: :->args'
# These flags are mutually exclusive specifiers for the scope of a command; as
# they are used in multiple places without change, they are expanded into the
# appropriate command's `_arguments` where appropriate.
command_scope_spec=(
'(--bin --example --test --lib)--bench=[specify benchmark name]: :_cargo_benchmark_names'
'(--bench --bin --test --lib)--example=[specify example name]:example name:_cargo_example_names'
'(--bench --example --test --lib)--bin=[specify binary name]:binary name'
'(--bench --bin --example --test)--lib=[specify library name]:library name'
'(--bench --bin --example --lib)--test=[specify test name]:test name'
)
parallel=(
'(-j --jobs)'{-j+,--jobs=}'[specify number of parallel jobs]:jobs [# of CPUs]'
'--keep-going[do not abort build on first error]'
)
features=(
'(--all-features)'{-F+,--features=}'[specify features to activate]:feature'
'(--features -F)--all-features[activate all available features]'
"--no-default-features[don't build the default features]"
)
msgfmt='--message-format=[specify error format]:error format [human]:(human json short)'
triple='--target=[specify target triple]:target triple:_cargo_target_triple'
target='--target-dir=[specify directory for all generated artifacts]:directory:_directories'
manifest='--manifest-path=[specify path to manifest]:path:_directories'
registry='--registry=[specify registry to use]:registry'
case $state in
args)
curcontext="${curcontext%:*}-${words[1]}:"
case ${words[1]} in
add)
_arguments -s -A "^--" $common $manifest $registry \
{-F+,--features=}'[specify features to activate]:feature' \
"--default-features[enable the default features]" \
"--no-default-features[don't enable the default features]" \
"--optional[mark the dependency as optional]" \
"--no-optional[mark the dependency as required]" \
"--dev[add as a dev dependency]" \
"--build[add as a build dependency]" \
"--target=[add as a dependency to the given target platform]" \
"--rename=[rename the dependency]" \
"--dry-run[don't actually write the manifest]" \
'--branch=[branch to use when adding from git]:branch' \
'--git=[specify URL from which to add the crate]:url:_urls' \
'--path=[local filesystem path to crate to add]: :_directories' \
'--rev=[specific commit to use when adding from git]:commit' \
'--tag=[tag to use when adding from git]:tag' \
'1: :_guard "^-*" "crate name"' \
'*:args:_default'
;;
bench)
_arguments -s -A "^--" $common $parallel $features $msgfmt $triple $target $manifest \
"${command_scope_spec[@]}" \
'--all-targets[benchmark all targets]' \
"--no-run[compile but don't run]" \
'(-p --package)'{-p+,--package=}'[specify package to run benchmarks for]:package:_cargo_package_names' \
'--exclude=[exclude packages from the benchmark]:spec' \
'--no-fail-fast[run all benchmarks regardless of failure]' \
'1: :_guard "^-*" "bench name"' \
'*:args:_default'
;;
build | b)
_arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
'--all-targets[equivalent to specifying --lib --bins --tests --benches --examples]' \
"${command_scope_spec[@]}" \
'(-p --package)'{-p+,--package=}'[specify package to build]:package:_cargo_package_names' \
'--release[build in release mode]' \
'--build-plan[output the build plan in JSON]' \
;;
check | c)
_arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
'--all-targets[equivalent to specifying --lib --bins --tests --benches --examples]' \
"${command_scope_spec[@]}" \
'(-p --package)'{-p+,--package=}'[specify package to check]:package:_cargo_package_names' \
'--release[check in release mode]' \
;;
clean)
_arguments -s -S $common $triple $target $manifest \
'(-p --package)'{-p+,--package=}'[specify package to clean]:package:_cargo_package_names' \
'--release[clean release artifacts]' \
'--doc[clean just the documentation directory]'
;;
doc | d)
_arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
'--no-deps[do not build docs for dependencies]' \
'--document-private-items[include non-public items in the documentation]' \
'--open[open docs in browser after the build]' \
'(-p --package)'{-p+,--package=}'[specify package to document]:package:_cargo_package_names' \
'--release[build artifacts in release mode, with optimizations]' \
;;
fetch)
_arguments -s -S $common $triple $manifest
;;
fix)
_arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
"${command_scope_spec[@]}" \
'--broken-code[fix code even if it already has compiler errors]' \
'--edition[fix in preparation for the next edition]' \
'--edition-idioms[fix warnings to migrate to the idioms of an edition]' \
'--allow-no-vcs[fix code even if a VCS was not detected]' \
'--allow-dirty[fix code even if the working directory is dirty]' \
'--allow-staged[fix code even if the working directory has staged changes]'
;;
generate-lockfile)
_arguments -s -S $common $manifest
;;
help)
_cargo_cmds
;;
init)
_arguments -s -S $common $registry \
'--lib[use library template]' \
'--edition=[specify edition to set for the crate generated]:edition:(2015 2018 2021)' \
'--vcs=[initialize a new repo with a given VCS]:vcs:(git hg pijul fossil none)' \
'--name=[set the resulting package name]:name' \
'1:path:_directories'
;;
install)
_arguments -s -S $common $parallel $features $triple $registry \
'(-f --force)'{-f,--force}'[force overwriting of existing crates or binaries]' \
'--bin=[only install the specified binary]:binary' \
'--branch=[branch to use when installing from git]:branch' \
'--debug[Build in debug mode (with the "dev" profile) instead of release mode]' \
'--example=[install the specified example instead of binaries]:example:_cargo_example_names' \
'--git=[specify URL from which to install the crate]:url:_urls' \
'--path=[local filesystem path to crate to install]: :_directories' \
'--rev=[specific commit to use when installing from git]:commit' \
'--root=[directory to install packages into]: :_directories' \
'--tag=[tag to use when installing from git]:tag' \
'--version=[version to install from crates.io]:version' \
'--list[list all installed packages and their versions]' \
'*: :_guard "^-*" "crate"'
;;
locate-project)
_arguments -s -S $common $manifest \
'--message-format=[specify output representation]:output representation [json]:(json plain)' \
'--workspace[locate Cargo.toml of the workspace root]'
;;
login)
_arguments -s -S $common $registry \
'*: :_guard "^-*" "token"'
;;
metadata)
_arguments -s -S $common $features $manifest \
"--no-deps[output information only about the root package and don't fetch dependencies]" \
'--format-version=[specify format version]:version [1]:(1)'
;;
new)
_arguments -s -S $common $registry \
'--lib[use library template]' \
'--vcs:initialize a new repo with a given VCS:(git hg none)' \
'--name=[set the resulting package name]'
;;
owner)
_arguments -s -S $common $registry \
'(-a --add)'{-a,--add}'[specify name of a user or team to invite as an owner]:name' \
'--index=[specify registry index]:index' \
'(-l --list)'{-l,--list}'[list owners of a crate]' \
'(-r --remove)'{-r,--remove}'[specify name of a user or team to remove as an owner]:name' \
'--token=[specify API token to use when authenticating]:token' \
'*: :_guard "^-*" "crate"'
;;
package)
_arguments -s -S $common $parallel $features $triple $target $manifest \
'(-l --list)'{-l,--list}'[print files included in a package without making one]' \
'--no-metadata[ignore warnings about a lack of human-usable metadata]' \
'--allow-dirty[allow dirty working directories to be packaged]' \
"--no-verify[don't build to verify contents]"
;;
pkgid)
_arguments -s -S $common $manifest \
'(-p --package)'{-p+,--package=}'[specify package to get ID specifier for]:package:_cargo_package_names' \
'*: :_guard "^-*" "spec"'
;;
publish)
_arguments -s -S $common $parallel $features $triple $target $manifest $registry \
'--index=[specify registry index]:index' \
'--allow-dirty[allow dirty working directories to be packaged]' \
"--no-verify[don't verify the contents by building them]" \
'--token=[specify token to use when uploading]:token' \
'--dry-run[perform all checks without uploading]'
;;
read-manifest)
_arguments -s -S $common $manifest
;;
run | r)
_arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
'--example=[name of the bin target]:name:_cargo_example_names' \
'--bin=[name of the bin target]:name' \
'(-p --package)'{-p+,--package=}'[specify package with the target to run]:package:_cargo_package_names' \
'--release[build in release mode]' \
'*: :_default'
;;
rustc)
_arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
'(-p --package)'{-p+,--package=}'[specify package to build]:package:_cargo_package_names' \
'--profile=[specify profile to build the selected target for]:profile' \
'--release[build artifacts in release mode, with optimizations]' \
"${command_scope_spec[@]}" \
'*: : _dispatch rustc rustc -default-'
;;
rustdoc)
_arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
'--document-private-items[include non-public items in the documentation]' \
'--open[open the docs in a browser after the operation]' \
'(-p --package)'{-p+,--package=}'[specify package to document]:package:_cargo_package_names' \
'--release[build artifacts in release mode, with optimizations]' \
"${command_scope_spec[@]}" \
'*: : _dispatch rustdoc rustdoc -default-'
;;
search)
_arguments -s -S $common $registry \
'--index=[specify registry index]:index' \
'--limit=[limit the number of results]:results [10]' \
'*: :_guard "^-*" "query"'
;;
test | t)
_arguments -s -S $common $parallel $features $msgfmt $triple $target $manifest \
'--test=[test name]: :_cargo_test_names' \
'--no-fail-fast[run all tests regardless of failure]' \
'--no-run[compile but do not run]' \
'(-p --package)'{-p+,--package=}'[package to run tests for]:package:_cargo_package_names' \
'--all[test all packages in the workspace]' \
'--release[build artifacts in release mode, with optimizations]' \
'1: :_cargo_test_names' \
'(--doc --bin --example --test --bench)--lib[only test library]' \
'(--lib --bin --example --test --bench)--doc[only test documentation]' \
'(--lib --doc --example --test --bench)--bin=[binary name]' \
'(--lib --doc --bin --test --bench)--example=[example name]:_cargo_example_names' \
'(--lib --doc --bin --example --bench)--test=[test name]' \
'(--lib --doc --bin --example --test)--bench=[benchmark name]' \
'*: :_default'
;;
tree)
_arguments -s -S $common $features $triple $manifest \
'(-p --package)'{-p+,--package=}'[package to use as the root]:package:_cargo_package_names' \
'(-i --invert)'{-i+,--invert=}'[invert the tree for the given package]:package:_cargo_package_names' \
'--prefix=[line prefix]:prefix:(depth indent none)' \
'--no-dedupe[repeat shared dependencies]' \
'(-d --duplicates)'{-d,--duplicates}'[packages with multiple versions]' \
'--charset=[utf8 or ascii]:charset:(utf8 ascii)' \
'(-f --format)'{-f,--format=}'[format string]:format' \
'(-e --edges)'{-e,--edges=}'[edge kinds]:kind:(features normal build dev all no-dev no-build no-normal)' \
;;
uninstall)
_arguments -s -S $common \
'(-p --package)'{-p+,--package=}'[specify package to uninstall]:package:_cargo_package_names' \
'--bin=[only uninstall the specified binary]:name' \
'--root=[directory to uninstall packages from]: :_files -/' \
'*:crate:_cargo_installed_crates -F line'
;;
update)
_arguments -s -S $common $manifest \
'--aggressive=[force dependency update]' \
"--dry-run[don't actually write the lockfile]" \
'(-p --package)'{-p+,--package=}'[specify package to update]:package:_cargo_package_names' \
'--precise=[update single dependency to precise release]:release'
;;
verify-project)
_arguments -s -S $common $manifest
;;
version)
_arguments -s -S $common
;;
yank)
_arguments -s -S $common $registry \
'--version=[specify yank version]:version' \
'--undo[undo a yank, putting a version back into the index]' \
'--index=[specify registry index to yank from]:registry index' \
'--token=[specify API token to use when authenticating]:token' \
'*: :_guard "^-*" "crate"'
;;
*)
# allow plugins to define their own functions
if ! _call_function ret _cargo-${words[1]}; then
# fallback on default completion for unknown commands
_default && ret=0
fi
(( ! ret ))
;;
esac
;;
esac
}
_cargo_unstable_flags() {
local flags
flags=( help ${${${(M)${(f)"$(_call_program flags cargo -Z help)"}:#*--*}/ #-- #/:}##*-Z } )
_describe -t flags 'unstable flag' flags
}
_cargo_installed_crates() {
local expl
_description crates expl 'crate'
compadd "$@" "$expl[@]" - ${${${(f)"$(cargo install --list)"}:# *}%% *}
}
_cargo_cmds() {
local -a commands
# This uses Parameter Expansion Flags, which are a built-in Zsh feature.
# See more: http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion-Flags
# and http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion
#
# # How this work?
#
# First it splits the result of `cargo --list` at newline, then it removes the first line.
# Then it removes indentation (4 whitespaces) before each items. (Note the x## pattern [1]).
# Then it replaces those spaces between item and description with a `:`
#
# [1]: https://github.com/zsh-users/zsh-completions/blob/master/zsh-completions-howto.org#patterns
commands=( ${${${(M)"${(f)$(_call_program commands cargo --list)}":# *}/ ##/}/ ##/:} )
_describe -t commands 'command' commands
}
_cargo_target_triple() {
local -a targets
targets=( ${(f)"$(rustc --print target-list)"} )
_describe 'target triple' targets
}
#FIXME: Disabled until fixed
#gets package names from the manifest file
_cargo_package_names() {
_message -e packages package
}
# Extracts the values of "name" from the array given in $1 and shows them as
# command line options for completion
_cargo_names_from_array() {
local manifest=$(cargo locate-project --message-format plain)
if [[ -z $manifest ]]; then
return 0
fi
local last_line
local -a names;
local in_block=false
local block_name=$1
names=()
while read -r line; do
if [[ $last_line == "[[$block_name]]" ]]; then
in_block=true
else
if [[ $last_line =~ '\s*\[\[.*' ]]; then
in_block=false
fi
fi
if [[ $in_block == true ]]; then
if [[ $line =~ '\s*name\s*=' ]]; then
regexp-replace line '^\s*name\s*=\s*|"' ''
names+=( "$line" )
fi
fi
last_line=$line
done < "$manifest"
_describe "$block_name" names
}
#Gets the test names from the manifest file
_cargo_test_names() {
_cargo_names_from_array "test"
}
#Gets the bench names from the manifest file
_cargo_benchmark_names() {
_cargo_names_from_array "bench"
}
_cargo_example_names() {
if [[ -d examples ]]; then
local -a files=(${(@f)$(echo examples/*.rs(:t:r))})
_values 'example' "${files[@]}"
fi
}
_cargo

View file

@ -0,0 +1,212 @@
#compdef chezmoi
compdef _chezmoi chezmoi
# zsh completion for chezmoi -*- shell-script -*-
__chezmoi_debug()
{
local file="$BASH_COMP_DEBUG_FILE"
if [[ -n ${file} ]]; then
echo "$*" >> "${file}"
fi
}
_chezmoi()
{
local shellCompDirectiveError=1
local shellCompDirectiveNoSpace=2
local shellCompDirectiveNoFileComp=4
local shellCompDirectiveFilterFileExt=8
local shellCompDirectiveFilterDirs=16
local shellCompDirectiveKeepOrder=32
local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace keepOrder
local -a completions
__chezmoi_debug "\n========= starting completion logic =========="
__chezmoi_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}"
# The user could have moved the cursor backwards on the command-line.
# We need to trigger completion from the $CURRENT location, so we need
# to truncate the command-line ($words) up to the $CURRENT location.
# (We cannot use $CURSOR as its value does not work when a command is an alias.)
words=("${=words[1,CURRENT]}")
__chezmoi_debug "Truncated words[*]: ${words[*]},"
lastParam=${words[-1]}
lastChar=${lastParam[-1]}
__chezmoi_debug "lastParam: ${lastParam}, lastChar: ${lastChar}"
# For zsh, when completing a flag with an = (e.g., chezmoi -n=<TAB>)
# completions must be prefixed with the flag
setopt local_options BASH_REMATCH
if [[ "${lastParam}" =~ '-.*=' ]]; then
# We are dealing with a flag with an =
flagPrefix="-P ${BASH_REMATCH}"
fi
# Prepare the command to obtain completions
requestComp="${words[1]} __complete ${words[2,-1]}"
if [ "${lastChar}" = "" ]; then
# If the last parameter is complete (there is a space following it)
# We add an extra empty parameter so we can indicate this to the go completion code.
__chezmoi_debug "Adding extra empty parameter"
requestComp="${requestComp} \"\""
fi
__chezmoi_debug "About to call: eval ${requestComp}"
# Use eval to handle any environment variables and such
out=$(eval ${requestComp} 2>/dev/null)
__chezmoi_debug "completion output: ${out}"
# Extract the directive integer following a : from the last line
local lastLine
while IFS='\n' read -r line; do
lastLine=${line}
done < <(printf "%s\n" "${out[@]}")
__chezmoi_debug "last line: ${lastLine}"
if [ "${lastLine[1]}" = : ]; then
directive=${lastLine[2,-1]}
# Remove the directive including the : and the newline
local suffix
(( suffix=${#lastLine}+2))
out=${out[1,-$suffix]}
else
# There is no directive specified. Leave $out as is.
__chezmoi_debug "No directive found. Setting do default"
directive=0
fi
__chezmoi_debug "directive: ${directive}"
__chezmoi_debug "completions: ${out}"
__chezmoi_debug "flagPrefix: ${flagPrefix}"
if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then
__chezmoi_debug "Completion received error. Ignoring completions."
return
fi
local activeHelpMarker="_activeHelp_ "
local endIndex=${#activeHelpMarker}
local startIndex=$((${#activeHelpMarker}+1))
local hasActiveHelp=0
while IFS='\n' read -r comp; do
# Check if this is an activeHelp statement (i.e., prefixed with $activeHelpMarker)
if [ "${comp[1,$endIndex]}" = "$activeHelpMarker" ];then
__chezmoi_debug "ActiveHelp found: $comp"
comp="${comp[$startIndex,-1]}"
if [ -n "$comp" ]; then
compadd -x "${comp}"
__chezmoi_debug "ActiveHelp will need delimiter"
hasActiveHelp=1
fi
continue
fi
if [ -n "$comp" ]; then
# If requested, completions are returned with a description.
# The description is preceded by a TAB character.
# For zsh's _describe, we need to use a : instead of a TAB.
# We first need to escape any : as part of the completion itself.
comp=${comp//:/\\:}
local tab="$(printf '\t')"
comp=${comp//$tab/:}
__chezmoi_debug "Adding completion: ${comp}"
completions+=${comp}
lastComp=$comp
fi
done < <(printf "%s\n" "${out[@]}")
# Add a delimiter after the activeHelp statements, but only if:
# - there are completions following the activeHelp statements, or
# - file completion will be performed (so there will be choices after the activeHelp)
if [ $hasActiveHelp -eq 1 ]; then
if [ ${#completions} -ne 0 ] || [ $((directive & shellCompDirectiveNoFileComp)) -eq 0 ]; then
__chezmoi_debug "Adding activeHelp delimiter"
compadd -x "--"
hasActiveHelp=0
fi
fi
if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then
__chezmoi_debug "Activating nospace."
noSpace="-S ''"
fi
if [ $((directive & shellCompDirectiveKeepOrder)) -ne 0 ]; then
__chezmoi_debug "Activating keep order."
keepOrder="-V"
fi
if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then
# File extension filtering
local filteringCmd
filteringCmd='_files'
for filter in ${completions[@]}; do
if [ ${filter[1]} != '*' ]; then
# zsh requires a glob pattern to do file filtering
filter="\*.$filter"
fi
filteringCmd+=" -g $filter"
done
filteringCmd+=" ${flagPrefix}"
__chezmoi_debug "File filtering command: $filteringCmd"
_arguments '*:filename:'"$filteringCmd"
elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then
# File completion for directories only
local subdir
subdir="${completions[1]}"
if [ -n "$subdir" ]; then
__chezmoi_debug "Listing directories in $subdir"
pushd "${subdir}" >/dev/null 2>&1
else
__chezmoi_debug "Listing directories in ."
fi
local result
_arguments '*:dirname:_files -/'" ${flagPrefix}"
result=$?
if [ -n "$subdir" ]; then
popd >/dev/null 2>&1
fi
return $result
else
__chezmoi_debug "Calling _describe"
if eval _describe $keepOrder "completions" completions $flagPrefix $noSpace; then
__chezmoi_debug "_describe found some completions"
# Return the success of having called _describe
return 0
else
__chezmoi_debug "_describe did not find completions."
__chezmoi_debug "Checking if we should do file completion."
if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then
__chezmoi_debug "deactivating file completion"
# We must return an error code here to let zsh know that there were no
# completions found by _describe; this is what will trigger other
# matching algorithms to attempt to find completions.
# For example zsh can match letters in the middle of words.
return 1
else
# Perform file completion
__chezmoi_debug "Activating file completion"
# We must return the result of this command, so it must be the
# last command, or else we must store its result to return it.
_arguments '*:filename:_files'" ${flagPrefix}"
fi
fi
fi
}
# don't run the completion function when being source-ed or eval-ed
if [ "$funcstack[1]" = "_chezmoi" ]; then
_chezmoi
fi

View file

@ -0,0 +1,20 @@
#compdef cht.sh
__CHTSH_LANGS=($(curl -s cheat.sh/:list))
_arguments -C \
'--help[show this help message and exit]: :->noargs' \
'--shell[enter shell repl]: :->noargs' \
'1:Cheat Sheet:->lang' \
'*::: :->noargs' && return 0
if [[ CURRENT -ge 1 ]]; then
case $state in
noargs)
_message "nothing to complete";;
lang)
compadd -X "Cheat Sheets" ${__CHTSH_LANGS[@]};;
*)
_message "Unknown state, error in autocomplete";;
esac
return
fi

View file

@ -0,0 +1 @@
_comp_options+=(globdots) # With hidden files

View file

@ -0,0 +1,86 @@
#compdef lsd
autoload -U is-at-least
_lsd() {
typeset -A opt_args
typeset -a _arguments_options
local ret=1
if is-at-least 5.2; then
_arguments_options=(-s -S -C)
else
_arguments_options=(-s -C)
fi
local context curcontext="$curcontext" state line
_arguments "${_arguments_options[@]}" \
'*--color=[When to use terminal colours]: :(always auto never)' \
'*--icon=[When to print the icons]: :(always auto never)' \
'*--icon-theme=[Whether to use fancy or unicode icons]: :(fancy unicode)' \
'--config-file=[Provide a custom lsd configuration file]:config-file: ' \
'*--depth=[Stop recursing into directories after reaching specified depth]:num: ' \
'*--permission=[How to display permissions]: :(rwx octal)' \
'*--size=[How to display size]: :(default short bytes)' \
'*--date=[How to display date \[possible values: date, relative, +date-time-format\]]: : ' \
'*--sort=[sort by WORD instead of name]:WORD:(size time version extension none)' \
'*--group-dirs=[Sort the directories then the files]: :(none first last)' \
'*--blocks=[Specify the blocks that will be displayed and in what order]: :(permission user group context size date name inode links)' \
'*-I+[Do not display files/directories with names matching the glob pattern(s). More than one can be specified by repeating the argument]:pattern: ' \
'*--ignore-glob=[Do not display files/directories with names matching the glob pattern(s). More than one can be specified by repeating the argument]:pattern: ' \
'*--hyperlink=[Attach hyperlink to filenames]: :(always auto never)' \
'--help[Print help information]' \
'-V[Print version information]' \
'--version[Print version information]' \
'*-a[Do not ignore entries starting with .]' \
'*--all[Do not ignore entries starting with .]' \
'*-A[Do not list implied . and ..]' \
'*--almost-all[Do not list implied . and ..]' \
'*-F[Append indicator (one of */=>@|) at the end of the file names]' \
'*--classify[Append indicator (one of */=>@|) at the end of the file names]' \
'*-l[Display extended file metadata as a table]' \
'*--long[Display extended file metadata as a table]' \
'--ignore-config[Ignore the configuration file]' \
'*-1[Display one entry per line]' \
'*--oneline[Display one entry per line]' \
'(--tree)*-R[Recurse into directories]' \
'(--tree)*--recursive[Recurse into directories]' \
'*-h[For ls compatibility purposes ONLY, currently set by default]' \
'*--human-readable[For ls compatibility purposes ONLY, currently set by default]' \
'(-R --recursive)*--tree[Recurse into directories and present the result as a tree]' \
'(--depth -R --recursive)-d[Display directories themselves, and not their contents (recursively when used with --tree)]' \
'(--depth -R --recursive)--directory-only[Display directories themselves, and not their contents (recursively when used with --tree)]' \
'*--total-size[Display the total size of directories]' \
'*-t[Sort by time modified]' \
'*--timesort[Sort by time modified]' \
'*-S[Sort by size]' \
'*--sizesort[Sort by size]' \
'*-X[Sort by file extension]' \
'*--extensionsort[Sort by file extension]' \
'*-v[Natural sort of (version) numbers within text]' \
'*--versionsort[Natural sort of (version) numbers within text]' \
'*-U[Do not sort. List entries in directory order]' \
'*--no-sort[Do not sort. List entries in directory order]' \
'*-r[Reverse the order of the sort]' \
'*--reverse[Reverse the order of the sort]' \
'--group-directories-first[Groups the directories at the top before the files. Same as --group-dirs=first]' \
'--classic[Enable classic mode (display output similar to ls)]' \
'*--no-symlink[Do not display symlink target]' \
'*-i[Display the index number of each file]' \
'*--inode[Display the index number of each file]' \
'*-L[When showing file information for a symbolic link, show information for the file the link references rather than for the link itself]' \
'*--dereference[When showing file information for a symbolic link, show information for the file the link references rather than for the link itself]' \
'-Z[Print security context (label) of each file]' \
'--context[Print security context (label) of each file]' \
'--header[Display block headers]' \
'*::FILE:_files' \
&& ret=0
}
(( $+functions[_lsd_commands] )) ||
_lsd_commands() {
local commands; commands=()
_describe -t commands 'lsd commands' commands "$@"
}
_lsd "$@"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,440 @@
#compdef starship
autoload -U is-at-least
_starship() {
typeset -A opt_args
typeset -a _arguments_options
local ret=1
if is-at-least 5.2; then
_arguments_options=(-s -S -C)
else
_arguments_options=(-s -C)
fi
local context curcontext="$curcontext" state line
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
'-V[Print version information]' \
'--version[Print version information]' \
":: :_starship_commands" \
"*::: :->starship" \
&& ret=0
case $state in
(starship)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:starship-command-$line[1]:"
case $line[1] in
(bug-report)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(completions)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
':shell:(bash elvish fish powershell zsh)' \
&& ret=0
;;
(config)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
'::name -- Configuration key to edit:' \
'::value -- Value to place into that key:' \
&& ret=0
;;
(explain)
_arguments "${_arguments_options[@]}" \
'-s+[The status code of the previously run command as an unsigned or signed 32bit integer]:STATUS_CODE: ' \
'--status=[The status code of the previously run command as an unsigned or signed 32bit integer]:STATUS_CODE: ' \
'*--pipestatus=[Bash, Fish and Zsh support returning codes for each process in a pipeline]:PIPESTATUS: ' \
'-w+[The width of the current interactive terminal]:TERMINAL_WIDTH: ' \
'--terminal-width=[The width of the current interactive terminal]:TERMINAL_WIDTH: ' \
'-p+[The path that the prompt should render for]:PATH:_files' \
'--path=[The path that the prompt should render for]:PATH:_files' \
'-P+[The logical path that the prompt should render for. This path should be a virtual/logical representation of the PATH argument]:LOGICAL_PATH:_files' \
'--logical-path=[The logical path that the prompt should render for. This path should be a virtual/logical representation of the PATH argument]:LOGICAL_PATH:_files' \
'-d+[The execution duration of the last command, in milliseconds]:CMD_DURATION: ' \
'--cmd-duration=[The execution duration of the last command, in milliseconds]:CMD_DURATION: ' \
'-k+[The keymap of fish/zsh/cmd]:KEYMAP: ' \
'--keymap=[The keymap of fish/zsh/cmd]:KEYMAP: ' \
'-j+[The number of currently running jobs]:JOBS: ' \
'--jobs=[The number of currently running jobs]:JOBS: ' \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(init)
_arguments "${_arguments_options[@]}" \
'--print-full-init[]' \
'-h[Print help information]' \
'--help[Print help information]' \
':shell:' \
&& ret=0
;;
(module)
_arguments "${_arguments_options[@]}" \
'-s+[The status code of the previously run command as an unsigned or signed 32bit integer]:STATUS_CODE: ' \
'--status=[The status code of the previously run command as an unsigned or signed 32bit integer]:STATUS_CODE: ' \
'*--pipestatus=[Bash, Fish and Zsh support returning codes for each process in a pipeline]:PIPESTATUS: ' \
'-w+[The width of the current interactive terminal]:TERMINAL_WIDTH: ' \
'--terminal-width=[The width of the current interactive terminal]:TERMINAL_WIDTH: ' \
'-p+[The path that the prompt should render for]:PATH:_files' \
'--path=[The path that the prompt should render for]:PATH:_files' \
'-P+[The logical path that the prompt should render for. This path should be a virtual/logical representation of the PATH argument]:LOGICAL_PATH:_files' \
'--logical-path=[The logical path that the prompt should render for. This path should be a virtual/logical representation of the PATH argument]:LOGICAL_PATH:_files' \
'-d+[The execution duration of the last command, in milliseconds]:CMD_DURATION: ' \
'--cmd-duration=[The execution duration of the last command, in milliseconds]:CMD_DURATION: ' \
'-k+[The keymap of fish/zsh/cmd]:KEYMAP: ' \
'--keymap=[The keymap of fish/zsh/cmd]:KEYMAP: ' \
'-j+[The number of currently running jobs]:JOBS: ' \
'--jobs=[The number of currently running jobs]:JOBS: ' \
'-l[List out all supported modules]' \
'--list[List out all supported modules]' \
'-h[Print help information]' \
'--help[Print help information]' \
'::name -- The name of the module to be printed:' \
&& ret=0
;;
(preset)
_arguments "${_arguments_options[@]}" \
'-l[List out all preset names]' \
'--list[List out all preset names]' \
'-h[Print help information]' \
'--help[Print help information]' \
'::name -- The name of preset to be printed:(bracketed-segments nerd-font-symbols no-empty-icons no-nerd-font no-runtime-versions pastel-powerline plain-text-symbols pure-preset tokyo-night)' \
&& ret=0
;;
(print-config)
_arguments "${_arguments_options[@]}" \
'-d[Print the default instead of the computed config]' \
'--default[Print the default instead of the computed config]' \
'-h[Print help information]' \
'--help[Print help information]' \
'*::name -- Configuration keys to print:' \
&& ret=0
;;
(prompt)
_arguments "${_arguments_options[@]}" \
'-s+[The status code of the previously run command as an unsigned or signed 32bit integer]:STATUS_CODE: ' \
'--status=[The status code of the previously run command as an unsigned or signed 32bit integer]:STATUS_CODE: ' \
'*--pipestatus=[Bash, Fish and Zsh support returning codes for each process in a pipeline]:PIPESTATUS: ' \
'-w+[The width of the current interactive terminal]:TERMINAL_WIDTH: ' \
'--terminal-width=[The width of the current interactive terminal]:TERMINAL_WIDTH: ' \
'-p+[The path that the prompt should render for]:PATH:_files' \
'--path=[The path that the prompt should render for]:PATH:_files' \
'-P+[The logical path that the prompt should render for. This path should be a virtual/logical representation of the PATH argument]:LOGICAL_PATH:_files' \
'--logical-path=[The logical path that the prompt should render for. This path should be a virtual/logical representation of the PATH argument]:LOGICAL_PATH:_files' \
'-d+[The execution duration of the last command, in milliseconds]:CMD_DURATION: ' \
'--cmd-duration=[The execution duration of the last command, in milliseconds]:CMD_DURATION: ' \
'-k+[The keymap of fish/zsh/cmd]:KEYMAP: ' \
'--keymap=[The keymap of fish/zsh/cmd]:KEYMAP: ' \
'-j+[The number of currently running jobs]:JOBS: ' \
'--jobs=[The number of currently running jobs]:JOBS: ' \
'--right[Print the right prompt (instead of the standard left prompt)]' \
'(--right)--continuation[Print the continuation prompt (instead of the standard left prompt)]' \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(session)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(time)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(timings)
_arguments "${_arguments_options[@]}" \
'-s+[The status code of the previously run command as an unsigned or signed 32bit integer]:STATUS_CODE: ' \
'--status=[The status code of the previously run command as an unsigned or signed 32bit integer]:STATUS_CODE: ' \
'*--pipestatus=[Bash, Fish and Zsh support returning codes for each process in a pipeline]:PIPESTATUS: ' \
'-w+[The width of the current interactive terminal]:TERMINAL_WIDTH: ' \
'--terminal-width=[The width of the current interactive terminal]:TERMINAL_WIDTH: ' \
'-p+[The path that the prompt should render for]:PATH:_files' \
'--path=[The path that the prompt should render for]:PATH:_files' \
'-P+[The logical path that the prompt should render for. This path should be a virtual/logical representation of the PATH argument]:LOGICAL_PATH:_files' \
'--logical-path=[The logical path that the prompt should render for. This path should be a virtual/logical representation of the PATH argument]:LOGICAL_PATH:_files' \
'-d+[The execution duration of the last command, in milliseconds]:CMD_DURATION: ' \
'--cmd-duration=[The execution duration of the last command, in milliseconds]:CMD_DURATION: ' \
'-k+[The keymap of fish/zsh/cmd]:KEYMAP: ' \
'--keymap=[The keymap of fish/zsh/cmd]:KEYMAP: ' \
'-j+[The number of currently running jobs]:JOBS: ' \
'--jobs=[The number of currently running jobs]:JOBS: ' \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(toggle)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
':name -- The name of the module to be toggled:' \
'::value -- The key of the config to be toggled:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_starship__help_commands" \
"*::: :->help" \
&& ret=0
case $state in
(help)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:starship-help-command-$line[1]:"
case $line[1] in
(bug-report)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(completions)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(config)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(explain)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(init)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(module)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(preset)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(print-config)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(prompt)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(session)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(time)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(timings)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(toggle)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
esac
;;
esac
;;
esac
;;
esac
}
(( $+functions[_starship_commands] )) ||
_starship_commands() {
local commands; commands=(
'bug-report:Create a pre-populated GitHub issue with information about your configuration' \
'completions:Generate starship shell completions for your shell to stdout' \
'config:Edit the starship configuration' \
'explain:Explains the currently showing modules' \
'init:Prints the shell function used to execute starship' \
'module:Prints a specific prompt module' \
'preset:Prints a preset config' \
'print-config:Prints the computed starship configuration' \
'prompt:Prints the full starship prompt' \
'session:Generate random session key' \
'time:Prints time in milliseconds' \
'timings:Prints timings of all active modules' \
'toggle:Toggle a given starship module' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'starship commands' commands "$@"
}
(( $+functions[_starship__bug-report_commands] )) ||
_starship__bug-report_commands() {
local commands; commands=()
_describe -t commands 'starship bug-report commands' commands "$@"
}
(( $+functions[_starship__help__bug-report_commands] )) ||
_starship__help__bug-report_commands() {
local commands; commands=()
_describe -t commands 'starship help bug-report commands' commands "$@"
}
(( $+functions[_starship__completions_commands] )) ||
_starship__completions_commands() {
local commands; commands=()
_describe -t commands 'starship completions commands' commands "$@"
}
(( $+functions[_starship__help__completions_commands] )) ||
_starship__help__completions_commands() {
local commands; commands=()
_describe -t commands 'starship help completions commands' commands "$@"
}
(( $+functions[_starship__config_commands] )) ||
_starship__config_commands() {
local commands; commands=()
_describe -t commands 'starship config commands' commands "$@"
}
(( $+functions[_starship__help__config_commands] )) ||
_starship__help__config_commands() {
local commands; commands=()
_describe -t commands 'starship help config commands' commands "$@"
}
(( $+functions[_starship__explain_commands] )) ||
_starship__explain_commands() {
local commands; commands=()
_describe -t commands 'starship explain commands' commands "$@"
}
(( $+functions[_starship__help__explain_commands] )) ||
_starship__help__explain_commands() {
local commands; commands=()
_describe -t commands 'starship help explain commands' commands "$@"
}
(( $+functions[_starship__help_commands] )) ||
_starship__help_commands() {
local commands; commands=(
'bug-report:Create a pre-populated GitHub issue with information about your configuration' \
'completions:Generate starship shell completions for your shell to stdout' \
'config:Edit the starship configuration' \
'explain:Explains the currently showing modules' \
'init:Prints the shell function used to execute starship' \
'module:Prints a specific prompt module' \
'preset:Prints a preset config' \
'print-config:Prints the computed starship configuration' \
'prompt:Prints the full starship prompt' \
'session:Generate random session key' \
'time:Prints time in milliseconds' \
'timings:Prints timings of all active modules' \
'toggle:Toggle a given starship module' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'starship help commands' commands "$@"
}
(( $+functions[_starship__help__help_commands] )) ||
_starship__help__help_commands() {
local commands; commands=()
_describe -t commands 'starship help help commands' commands "$@"
}
(( $+functions[_starship__help__init_commands] )) ||
_starship__help__init_commands() {
local commands; commands=()
_describe -t commands 'starship help init commands' commands "$@"
}
(( $+functions[_starship__init_commands] )) ||
_starship__init_commands() {
local commands; commands=()
_describe -t commands 'starship init commands' commands "$@"
}
(( $+functions[_starship__help__module_commands] )) ||
_starship__help__module_commands() {
local commands; commands=()
_describe -t commands 'starship help module commands' commands "$@"
}
(( $+functions[_starship__module_commands] )) ||
_starship__module_commands() {
local commands; commands=()
_describe -t commands 'starship module commands' commands "$@"
}
(( $+functions[_starship__help__preset_commands] )) ||
_starship__help__preset_commands() {
local commands; commands=()
_describe -t commands 'starship help preset commands' commands "$@"
}
(( $+functions[_starship__preset_commands] )) ||
_starship__preset_commands() {
local commands; commands=()
_describe -t commands 'starship preset commands' commands "$@"
}
(( $+functions[_starship__help__print-config_commands] )) ||
_starship__help__print-config_commands() {
local commands; commands=()
_describe -t commands 'starship help print-config commands' commands "$@"
}
(( $+functions[_starship__print-config_commands] )) ||
_starship__print-config_commands() {
local commands; commands=()
_describe -t commands 'starship print-config commands' commands "$@"
}
(( $+functions[_starship__help__prompt_commands] )) ||
_starship__help__prompt_commands() {
local commands; commands=()
_describe -t commands 'starship help prompt commands' commands "$@"
}
(( $+functions[_starship__prompt_commands] )) ||
_starship__prompt_commands() {
local commands; commands=()
_describe -t commands 'starship prompt commands' commands "$@"
}
(( $+functions[_starship__help__session_commands] )) ||
_starship__help__session_commands() {
local commands; commands=()
_describe -t commands 'starship help session commands' commands "$@"
}
(( $+functions[_starship__session_commands] )) ||
_starship__session_commands() {
local commands; commands=()
_describe -t commands 'starship session commands' commands "$@"
}
(( $+functions[_starship__help__time_commands] )) ||
_starship__help__time_commands() {
local commands; commands=()
_describe -t commands 'starship help time commands' commands "$@"
}
(( $+functions[_starship__time_commands] )) ||
_starship__time_commands() {
local commands; commands=()
_describe -t commands 'starship time commands' commands "$@"
}
(( $+functions[_starship__help__timings_commands] )) ||
_starship__help__timings_commands() {
local commands; commands=()
_describe -t commands 'starship help timings commands' commands "$@"
}
(( $+functions[_starship__timings_commands] )) ||
_starship__timings_commands() {
local commands; commands=()
_describe -t commands 'starship timings commands' commands "$@"
}
(( $+functions[_starship__help__toggle_commands] )) ||
_starship__help__toggle_commands() {
local commands; commands=()
_describe -t commands 'starship help toggle commands' commands "$@"
}
(( $+functions[_starship__toggle_commands] )) ||
_starship__toggle_commands() {
local commands; commands=()
_describe -t commands 'starship toggle commands' commands "$@"
}
_starship "$@"

View file

@ -0,0 +1,47 @@
#compdef tldr
_applications() {
local -a commands
commands=(${(uonzf)"$(tldr --list 2>/dev/null)"//:/\\:})
_describe -t commands 'command' commands
}
_tealdeer() {
local I="-h --help -v --version"
integer ret=1
local -a args
args+=(
"($I -l --list)"{-l,--list}"[List all commands in the cache]"
"($I -f --render)"{-f,--render}"[Render a specific markdown file]:file:_files"
"($I -p --platform)"{-p,--platform}'[Override the operating system]:platform:((
linux
macos
sunos
windows
android
))'
"($I -L --language)"{-L,--language}"[Override the language settings]:lang"
"($I -u --update)"{-u,--update}"[Update the local cache]"
"($I)--no-auto-update[If auto update is configured, disable it for this run]"
"($I -c --clear-cache)"{-c,--clear-cache}"[Clear the local cache]"
"($I)--pager[Use a pager to page output]"
"($I -r --raw)"{-r,--raw}"[Display the raw markdown instead of rendering it]"
"($I -q --quiet)"{-q,--quiet}"[Suppress informational messages]"
"($I)--show-paths[Show file and directory paths used by tealdeer]"
"($I)--seed-config[Create a basic config]"
"($I)--color[Controls when to use color]:when:((
always
auto
never
))"
'(- *)'{-h,--help}'[Display help]'
'(- *)'{-v,--version}'[Show version information]'
'1: :_applications'
)
_arguments $args[@] && ret=0
return ret
}
_tealdeer

View file

@ -0,0 +1,937 @@
#compdef zellij
autoload -U is-at-least
_zellij() {
typeset -A opt_args
typeset -a _arguments_options
local ret=1
if is-at-least 5.2; then
_arguments_options=(-s -S -C)
else
_arguments_options=(-s -C)
fi
local context curcontext="$curcontext" state line
_arguments "${_arguments_options[@]}" \
'*--max-panes=[Maximum panes on screen, caution: opening more panes will close old ones]:MAX_PANES: ' \
'*--data-dir=[Change where zellij looks for plugins]:DATA_DIR:_files' \
'*--server=[Run server listening at the specified socket path]:SERVER:_files' \
'*-s+[Specify name of a new session]:SESSION: ' \
'*--session=[Specify name of a new session]:SESSION: ' \
'*-l+[Name of a predefined layout inside the layout directory or the path to a layout file]:LAYOUT:_files' \
'*--layout=[Name of a predefined layout inside the layout directory or the path to a layout file]:LAYOUT:_files' \
'*-c+[Change where zellij looks for the configuration file]:CONFIG:_files' \
'*--config=[Change where zellij looks for the configuration file]:CONFIG:_files' \
'*--config-dir=[Change where zellij looks for the configuration directory]:CONFIG_DIR:_files' \
'-h[Print help information]' \
'--help[Print help information]' \
'-V[Print version information]' \
'--version[Print version information]' \
'*-d[Specify emitting additional debug information]' \
'*--debug[Specify emitting additional debug information]' \
":: :_zellij_commands" \
"*::: :->zellij" \
&& ret=0
case $state in
(zellij)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:zellij-command-$line[1]:"
case $line[1] in
(options)
_arguments "${_arguments_options[@]}" \
'*--simplified-ui=[Allow plugins to use a more simplified layout that is compatible with more fonts (true or false)]:SIMPLIFIED_UI:(true false)' \
'*--theme=[Set the default theme]:THEME: ' \
'*--default-mode=[Set the default mode]:DEFAULT_MODE:((normal\:"In `Normal` mode, input is always written to the terminal, except for the shortcuts leading to other modes"
locked\:"In `Locked` mode, input is always written to the terminal and all shortcuts are disabled except the one leading back to normal mode"
resize\:"`Resize` mode allows resizing the different existing panes"
pane\:"`Pane` mode allows creating and closing panes, as well as moving between them"
tab\:"`Tab` mode allows creating and closing tabs, as well as moving between them"
scroll\:"`Scroll` mode allows scrolling up and down within a pane"
enter-search\:"`EnterSearch` mode allows for typing in the needle for a search in the scroll buffer of a pane"
search\:"`Search` mode allows for searching a term in a pane (superset of `Scroll`)"
rename-tab\:"`RenameTab` mode allows assigning a new name to a tab"
rename-pane\:"`RenamePane` mode allows assigning a new name to a pane"
session\:"`Session` mode allows detaching sessions"
move\:"`Move` mode allows moving the different existing panes within a tab"
prompt\:"`Prompt` mode allows interacting with active prompts"
tmux\:"`Tmux` mode allows for basic tmux keybindings functionality"))' \
'*--default-shell=[Set the default shell]:DEFAULT_SHELL:_files' \
'*--default-layout=[Set the default layout]:DEFAULT_LAYOUT:_files' \
'*--layout-dir=[Set the layout_dir, defaults to subdirectory of config dir]:LAYOUT_DIR:_files' \
'*--theme-dir=[Set the theme_dir, defaults to subdirectory of config dir]:THEME_DIR:_files' \
'*--mouse-mode=[Set the handling of mouse events (true or false) Can be temporarily bypassed by the \[SHIFT\] key]:MOUSE_MODE:(true false)' \
'*--pane-frames=[Set display of the pane frames (true or false)]:PANE_FRAMES:(true false)' \
'*--mirror-session=[Mirror session when multiple users are connected (true or false)]:MIRROR_SESSION:(true false)' \
'*--on-force-close=[Set behaviour on force close (quit or detach)]:ON_FORCE_CLOSE:(quit detach)' \
'*--scroll-buffer-size=[]:SCROLL_BUFFER_SIZE: ' \
'*--copy-command=[Switch to using a user supplied command for clipboard instead of OSC52]:COPY_COMMAND: ' \
'(--copy-command)*--copy-clipboard=[OSC52 destination clipboard]:COPY_CLIPBOARD:(system primary)' \
'*--copy-on-select=[Automatically copy when selecting text (true or false)]:COPY_ON_SELECT:(true false)' \
'*--scrollback-editor=[Explicit full path to open the scrollback editor (default is $EDITOR or $VISUAL)]:SCROLLBACK_EDITOR:_files' \
'*--session-name=[The name of the session to create when starting Zellij]:SESSION_NAME: ' \
'*--attach-to-session=[Whether to attach to a session specified in "session-name" if it exists]:ATTACH_TO_SESSION:(true false)' \
'*--auto-layout=[Whether to lay out panes in a predefined set of layouts whenever possible]:AUTO_LAYOUT:(true false)' \
'(--mouse-mode)*--disable-mouse-mode[Disable handling of mouse events]' \
'(--pane-frames)*--no-pane-frames[Disable display of pane frames]' \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(setup)
_arguments "${_arguments_options[@]}" \
'*--dump-layout=[Dump the specified layout file to stdout]:DUMP_LAYOUT: ' \
'*--dump-swap-layout=[Dump the specified swap layout file to stdout]:DUMP_SWAP_LAYOUT: ' \
'*--dump-plugins=[Dump the builtin plugins to DIR or "DATA DIR" if unspecified]:DIR:_files' \
'*--generate-completion=[Generates completion for the specified shell]:SHELL: ' \
'*--generate-auto-start=[Generates auto-start script for the specified shell]:SHELL: ' \
'*--dump-config[Dump the default configuration file to stdout]' \
'*--clean[Disables loading of configuration file at default location, loads the defaults that zellij ships with]' \
'*--check[Checks the configuration of zellij and displays currently used directories]' \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(list-sessions)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(attach)
_arguments "${_arguments_options[@]}" \
'*--index=[Number of the session index in the active sessions ordered creation date]:INDEX: ' \
'*-c[Create a session if one does not exist]' \
'*--create[Create a session if one does not exist]' \
'-h[Print help information]' \
'--help[Print help information]' \
'::session-name -- Name of the session to attach to:' \
":: :_zellij__attach_commands" \
"*::: :->attach" \
&& ret=0
case $state in
(attach)
words=($line[2] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:zellij-attach-command-$line[2]:"
case $line[2] in
(options)
_arguments "${_arguments_options[@]}" \
'*--simplified-ui=[Allow plugins to use a more simplified layout that is compatible with more fonts (true or false)]:SIMPLIFIED_UI:(true false)' \
'*--theme=[Set the default theme]:THEME: ' \
'*--default-mode=[Set the default mode]:DEFAULT_MODE:((normal\:"In `Normal` mode, input is always written to the terminal, except for the shortcuts leading to other modes"
locked\:"In `Locked` mode, input is always written to the terminal and all shortcuts are disabled except the one leading back to normal mode"
resize\:"`Resize` mode allows resizing the different existing panes"
pane\:"`Pane` mode allows creating and closing panes, as well as moving between them"
tab\:"`Tab` mode allows creating and closing tabs, as well as moving between them"
scroll\:"`Scroll` mode allows scrolling up and down within a pane"
enter-search\:"`EnterSearch` mode allows for typing in the needle for a search in the scroll buffer of a pane"
search\:"`Search` mode allows for searching a term in a pane (superset of `Scroll`)"
rename-tab\:"`RenameTab` mode allows assigning a new name to a tab"
rename-pane\:"`RenamePane` mode allows assigning a new name to a pane"
session\:"`Session` mode allows detaching sessions"
move\:"`Move` mode allows moving the different existing panes within a tab"
prompt\:"`Prompt` mode allows interacting with active prompts"
tmux\:"`Tmux` mode allows for basic tmux keybindings functionality"))' \
'*--default-shell=[Set the default shell]:DEFAULT_SHELL:_files' \
'*--default-layout=[Set the default layout]:DEFAULT_LAYOUT:_files' \
'*--layout-dir=[Set the layout_dir, defaults to subdirectory of config dir]:LAYOUT_DIR:_files' \
'*--theme-dir=[Set the theme_dir, defaults to subdirectory of config dir]:THEME_DIR:_files' \
'*--mouse-mode=[Set the handling of mouse events (true or false) Can be temporarily bypassed by the \[SHIFT\] key]:MOUSE_MODE:(true false)' \
'*--pane-frames=[Set display of the pane frames (true or false)]:PANE_FRAMES:(true false)' \
'*--mirror-session=[Mirror session when multiple users are connected (true or false)]:MIRROR_SESSION:(true false)' \
'*--on-force-close=[Set behaviour on force close (quit or detach)]:ON_FORCE_CLOSE:(quit detach)' \
'*--scroll-buffer-size=[]:SCROLL_BUFFER_SIZE: ' \
'*--copy-command=[Switch to using a user supplied command for clipboard instead of OSC52]:COPY_COMMAND: ' \
'(--copy-command)*--copy-clipboard=[OSC52 destination clipboard]:COPY_CLIPBOARD:(system primary)' \
'*--copy-on-select=[Automatically copy when selecting text (true or false)]:COPY_ON_SELECT:(true false)' \
'*--scrollback-editor=[Explicit full path to open the scrollback editor (default is $EDITOR or $VISUAL)]:SCROLLBACK_EDITOR:_files' \
'*--session-name=[The name of the session to create when starting Zellij]:SESSION_NAME: ' \
'*--attach-to-session=[Whether to attach to a session specified in "session-name" if it exists]:ATTACH_TO_SESSION:(true false)' \
'*--auto-layout=[Whether to lay out panes in a predefined set of layouts whenever possible]:AUTO_LAYOUT:(true false)' \
'(--mouse-mode)*--disable-mouse-mode[Disable handling of mouse events]' \
'(--pane-frames)*--no-pane-frames[Disable display of pane frames]' \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
'*::subcommand -- The subcommand whose help message to display:' \
&& ret=0
;;
esac
;;
esac
;;
(kill-session)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
'::target-session -- Name of target session:' \
&& ret=0
;;
(kill-all-sessions)
_arguments "${_arguments_options[@]}" \
'*-y[Automatic yes to prompts]' \
'*--yes[Automatic yes to prompts]' \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(action)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
":: :_zellij__action_commands" \
"*::: :->action" \
&& ret=0
case $state in
(action)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:zellij-action-command-$line[1]:"
case $line[1] in
(write)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
'*::bytes:' \
&& ret=0
;;
(write-chars)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
':chars:' \
&& ret=0
;;
(resize)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
':resize:' \
'::direction:' \
&& ret=0
;;
(focus-next-pane)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(focus-previous-pane)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(move-focus)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
':direction:' \
&& ret=0
;;
(move-focus-or-tab)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
':direction:' \
&& ret=0
;;
(move-pane)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
'::direction:' \
&& ret=0
;;
(move-pane-backwards)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(clear)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(dump-screen)
_arguments "${_arguments_options[@]}" \
'*-f[Dump the pane with full scrollback]' \
'*--full[Dump the pane with full scrollback]' \
'-h[Print help information]' \
'--help[Print help information]' \
':path:' \
&& ret=0
;;
(edit-scrollback)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(scroll-up)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(scroll-down)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(scroll-to-bottom)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(scroll-to-top)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(page-scroll-up)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(page-scroll-down)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(half-page-scroll-up)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(half-page-scroll-down)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(toggle-fullscreen)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(toggle-pane-frames)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(toggle-active-sync-tab)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(new-pane)
_arguments "${_arguments_options[@]}" \
'(-f --floating)*-d+[Direction to open the new pane in]:DIRECTION: ' \
'(-f --floating)*--direction=[Direction to open the new pane in]:DIRECTION: ' \
'(-d --direction)-p+[]:PLUGIN: ' \
'(-d --direction)--plugin=[]:PLUGIN: ' \
'*--cwd=[Change the working directory of the new pane]:CWD:_files' \
'*-n+[Name of the new pane]:NAME: ' \
'*--name=[Name of the new pane]:NAME: ' \
'*-f[Open the new pane in floating mode]' \
'*--floating[Open the new pane in floating mode]' \
'*-c[Close the pane immediately when its command exits]' \
'*--close-on-exit[Close the pane immediately when its command exits]' \
'*-s[Start the command suspended, only running it after the you first press ENTER]' \
'*--start-suspended[Start the command suspended, only running it after the you first press ENTER]' \
'-h[Print help information]' \
'--help[Print help information]' \
'*::command:' \
&& ret=0
;;
(edit)
_arguments "${_arguments_options[@]}" \
'(-f --floating)*-d+[Direction to open the new pane in]:DIRECTION: ' \
'(-f --floating)*--direction=[Direction to open the new pane in]:DIRECTION: ' \
'*-l+[Open the file in the specified line number]:LINE_NUMBER: ' \
'*--line-number=[Open the file in the specified line number]:LINE_NUMBER: ' \
'*--cwd=[Change the working directory of the editor]:CWD:_files' \
'*-f[Open the new pane in floating mode]' \
'*--floating[Open the new pane in floating mode]' \
'-h[Print help information]' \
'--help[Print help information]' \
':file:' \
&& ret=0
;;
(switch-mode)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
':input-mode:' \
&& ret=0
;;
(toggle-pane-embed-or-floating)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(toggle-floating-panes)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(close-pane)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(rename-pane)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
':name:' \
&& ret=0
;;
(undo-rename-pane)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(go-to-next-tab)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(go-to-previous-tab)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(close-tab)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(go-to-tab)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
':index:' \
&& ret=0
;;
(go-to-tab-name)
_arguments "${_arguments_options[@]}" \
'*-c[Create a tab if one does not exist]' \
'*--create[Create a tab if one does not exist]' \
'-h[Print help information]' \
'--help[Print help information]' \
':name:' \
&& ret=0
;;
(rename-tab)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
':name:' \
&& ret=0
;;
(undo-rename-tab)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(new-tab)
_arguments "${_arguments_options[@]}" \
'*-l+[Layout to use for the new tab]:LAYOUT:_files' \
'*--layout=[Layout to use for the new tab]:LAYOUT:_files' \
'*--layout-dir=[Default folder to look for layouts]:LAYOUT_DIR:_files' \
'*-n+[Name of the new tab]:NAME: ' \
'*--name=[Name of the new tab]:NAME: ' \
'*-c+[Change the working directory of the new tab]:CWD:_files' \
'*--cwd=[Change the working directory of the new tab]:CWD:_files' \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(previous-swap-layout)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(next-swap-layout)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(query-tab-names)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
'*::subcommand -- The subcommand whose help message to display:' \
&& ret=0
;;
esac
;;
esac
;;
(run)
_arguments "${_arguments_options[@]}" \
'(-f --floating)*-d+[Direction to open the new pane in]:DIRECTION: ' \
'(-f --floating)*--direction=[Direction to open the new pane in]:DIRECTION: ' \
'*--cwd=[Change the working directory of the new pane]:CWD:_files' \
'*-n+[Name of the new pane]:NAME: ' \
'*--name=[Name of the new pane]:NAME: ' \
'*-f[Open the new pane in floating mode]' \
'*--floating[Open the new pane in floating mode]' \
'*-c[Close the pane immediately when its command exits]' \
'*--close-on-exit[Close the pane immediately when its command exits]' \
'*-s[Start the command suspended, only running after you first presses ENTER]' \
'*--start-suspended[Start the command suspended, only running after you first presses ENTER]' \
'-h[Print help information]' \
'--help[Print help information]' \
'*::command -- Command to run:' \
&& ret=0
;;
(edit)
_arguments "${_arguments_options[@]}" \
'*-l+[Open the file in the specified line number]:LINE_NUMBER: ' \
'*--line-number=[Open the file in the specified line number]:LINE_NUMBER: ' \
'(-f --floating)*-d+[Direction to open the new pane in]:DIRECTION: ' \
'(-f --floating)*--direction=[Direction to open the new pane in]:DIRECTION: ' \
'*--cwd=[Change the working directory of the editor]:CWD:_files' \
'*-f[Open the new pane in floating mode]' \
'*--floating[Open the new pane in floating mode]' \
'-h[Print help information]' \
'--help[Print help information]' \
':file:' \
&& ret=0
;;
(convert-config)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
':old-config-file:' \
&& ret=0
;;
(convert-layout)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
':old-layout-file:' \
&& ret=0
;;
(convert-theme)
_arguments "${_arguments_options[@]}" \
'-h[Print help information]' \
'--help[Print help information]' \
':old-theme-file:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
'*::subcommand -- The subcommand whose help message to display:' \
&& ret=0
;;
esac
;;
esac
}
(( $+functions[_zellij_commands] )) ||
_zellij_commands() {
local commands; commands=(
'options:Change the behaviour of zellij' \
'setup:Setup zellij and check its configuration' \
'list-sessions:List active sessions' \
'ls:List active sessions' \
'attach:Attach to a session' \
'a:Attach to a session' \
'kill-session:Kill the specific session' \
'k:Kill the specific session' \
'kill-all-sessions:Kill all sessions' \
'ka:Kill all sessions' \
'action:Send actions to a specific session' \
'ac:Send actions to a specific session' \
'run:Run a command in a new pane' \
'r:Run a command in a new pane' \
'edit:Edit file with default $EDITOR / $VISUAL' \
'e:Edit file with default $EDITOR / $VISUAL' \
'convert-config:' \
'convert-layout:' \
'convert-theme:' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'zellij commands' commands "$@"
}
(( $+functions[_zellij__action_commands] )) ||
_zellij__action_commands() {
local commands; commands=(
'write:Write bytes to the terminal' \
'write-chars:Write characters to the terminal' \
'resize:\[increase|decrease\] the focused panes area at the \[left|down|up|right\] border' \
'focus-next-pane:Change focus to the next pane' \
'focus-previous-pane:Change focus to the previous pane' \
'move-focus:Move the focused pane in the specified direction. \[right|left|up|down\]' \
'move-focus-or-tab:Move focus to the pane or tab (if on screen edge) in the specified direction \[right|left|up|down\]' \
'move-pane:Change the location of the focused pane in the specified direction or rotate forwrads \[right|left|up|down\]' \
'move-pane-backwards:Rotate the location of the previous pane backwards' \
'clear:Clear all buffers for a focused pane' \
'dump-screen:Dump the focused pane to a file' \
'edit-scrollback:Open the pane scrollback in your default editor' \
'scroll-up:Scroll up in the focused pane' \
'scroll-down:Scroll down in focus pane' \
'scroll-to-bottom:Scroll down to bottom in focus pane' \
'scroll-to-top:Scroll up to top in focus pane' \
'page-scroll-up:Scroll up one page in focus pane' \
'page-scroll-down:Scroll down one page in focus pane' \
'half-page-scroll-up:Scroll up half page in focus pane' \
'half-page-scroll-down:Scroll down half page in focus pane' \
'toggle-fullscreen:Toggle between fullscreen focus pane and normal layout' \
'toggle-pane-frames:Toggle frames around panes in the UI' \
'toggle-active-sync-tab:Toggle between sending text commands to all panes on the current tab and normal mode' \
'new-pane:Open a new pane in the specified direction \[right|down\] If no direction is specified, will try to use the biggest available space' \
'edit:Open the specified file in a new zellij pane with your default EDITOR' \
'switch-mode:Switch input mode of all connected clients \[locked|pane|tab|resize|move|search|session\]' \
'toggle-pane-embed-or-floating:Embed focused pane if floating or float focused pane if embedded' \
'toggle-floating-panes:Toggle the visibility of all fdirectionloating panes in the current Tab, open one if none exist' \
'close-pane:Close the focused pane' \
'rename-pane:Renames the focused pane' \
'undo-rename-pane:Remove a previously set pane name' \
'go-to-next-tab:Go to the next tab' \
'go-to-previous-tab:Go to the previous tab' \
'close-tab:Close the current tab' \
'go-to-tab:Go to tab with index \[index\]' \
'go-to-tab-name:Go to tab with name \[name\]' \
'rename-tab:Renames the focused pane' \
'undo-rename-tab:Remove a previously set tab name' \
'new-tab:Create a new tab, optionally with a specified tab layout and name' \
'previous-swap-layout:' \
'next-swap-layout:' \
'query-tab-names:Query all tab names' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'zellij action commands' commands "$@"
}
(( $+functions[_zellij__attach_commands] )) ||
_zellij__attach_commands() {
local commands; commands=(
'options:Change the behaviour of zellij' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'zellij attach commands' commands "$@"
}
(( $+functions[_zellij__action__clear_commands] )) ||
_zellij__action__clear_commands() {
local commands; commands=()
_describe -t commands 'zellij action clear commands' commands "$@"
}
(( $+functions[_zellij__action__close-pane_commands] )) ||
_zellij__action__close-pane_commands() {
local commands; commands=()
_describe -t commands 'zellij action close-pane commands' commands "$@"
}
(( $+functions[_zellij__action__close-tab_commands] )) ||
_zellij__action__close-tab_commands() {
local commands; commands=()
_describe -t commands 'zellij action close-tab commands' commands "$@"
}
(( $+functions[_zellij__convert-config_commands] )) ||
_zellij__convert-config_commands() {
local commands; commands=()
_describe -t commands 'zellij convert-config commands' commands "$@"
}
(( $+functions[_zellij__convert-layout_commands] )) ||
_zellij__convert-layout_commands() {
local commands; commands=()
_describe -t commands 'zellij convert-layout commands' commands "$@"
}
(( $+functions[_zellij__convert-theme_commands] )) ||
_zellij__convert-theme_commands() {
local commands; commands=()
_describe -t commands 'zellij convert-theme commands' commands "$@"
}
(( $+functions[_zellij__action__dump-screen_commands] )) ||
_zellij__action__dump-screen_commands() {
local commands; commands=()
_describe -t commands 'zellij action dump-screen commands' commands "$@"
}
(( $+functions[_zellij__action__edit_commands] )) ||
_zellij__action__edit_commands() {
local commands; commands=()
_describe -t commands 'zellij action edit commands' commands "$@"
}
(( $+functions[_zellij__edit_commands] )) ||
_zellij__edit_commands() {
local commands; commands=()
_describe -t commands 'zellij edit commands' commands "$@"
}
(( $+functions[_zellij__action__edit-scrollback_commands] )) ||
_zellij__action__edit-scrollback_commands() {
local commands; commands=()
_describe -t commands 'zellij action edit-scrollback commands' commands "$@"
}
(( $+functions[_zellij__action__focus-next-pane_commands] )) ||
_zellij__action__focus-next-pane_commands() {
local commands; commands=()
_describe -t commands 'zellij action focus-next-pane commands' commands "$@"
}
(( $+functions[_zellij__action__focus-previous-pane_commands] )) ||
_zellij__action__focus-previous-pane_commands() {
local commands; commands=()
_describe -t commands 'zellij action focus-previous-pane commands' commands "$@"
}
(( $+functions[_zellij__action__go-to-next-tab_commands] )) ||
_zellij__action__go-to-next-tab_commands() {
local commands; commands=()
_describe -t commands 'zellij action go-to-next-tab commands' commands "$@"
}
(( $+functions[_zellij__action__go-to-previous-tab_commands] )) ||
_zellij__action__go-to-previous-tab_commands() {
local commands; commands=()
_describe -t commands 'zellij action go-to-previous-tab commands' commands "$@"
}
(( $+functions[_zellij__action__go-to-tab_commands] )) ||
_zellij__action__go-to-tab_commands() {
local commands; commands=()
_describe -t commands 'zellij action go-to-tab commands' commands "$@"
}
(( $+functions[_zellij__action__go-to-tab-name_commands] )) ||
_zellij__action__go-to-tab-name_commands() {
local commands; commands=()
_describe -t commands 'zellij action go-to-tab-name commands' commands "$@"
}
(( $+functions[_zellij__action__half-page-scroll-down_commands] )) ||
_zellij__action__half-page-scroll-down_commands() {
local commands; commands=()
_describe -t commands 'zellij action half-page-scroll-down commands' commands "$@"
}
(( $+functions[_zellij__action__half-page-scroll-up_commands] )) ||
_zellij__action__half-page-scroll-up_commands() {
local commands; commands=()
_describe -t commands 'zellij action half-page-scroll-up commands' commands "$@"
}
(( $+functions[_zellij__action__help_commands] )) ||
_zellij__action__help_commands() {
local commands; commands=()
_describe -t commands 'zellij action help commands' commands "$@"
}
(( $+functions[_zellij__attach__help_commands] )) ||
_zellij__attach__help_commands() {
local commands; commands=()
_describe -t commands 'zellij attach help commands' commands "$@"
}
(( $+functions[_zellij__help_commands] )) ||
_zellij__help_commands() {
local commands; commands=()
_describe -t commands 'zellij help commands' commands "$@"
}
(( $+functions[_zellij__kill-all-sessions_commands] )) ||
_zellij__kill-all-sessions_commands() {
local commands; commands=()
_describe -t commands 'zellij kill-all-sessions commands' commands "$@"
}
(( $+functions[_zellij__kill-session_commands] )) ||
_zellij__kill-session_commands() {
local commands; commands=()
_describe -t commands 'zellij kill-session commands' commands "$@"
}
(( $+functions[_zellij__list-sessions_commands] )) ||
_zellij__list-sessions_commands() {
local commands; commands=()
_describe -t commands 'zellij list-sessions commands' commands "$@"
}
(( $+functions[_zellij__action__move-focus_commands] )) ||
_zellij__action__move-focus_commands() {
local commands; commands=()
_describe -t commands 'zellij action move-focus commands' commands "$@"
}
(( $+functions[_zellij__action__move-focus-or-tab_commands] )) ||
_zellij__action__move-focus-or-tab_commands() {
local commands; commands=()
_describe -t commands 'zellij action move-focus-or-tab commands' commands "$@"
}
(( $+functions[_zellij__action__move-pane_commands] )) ||
_zellij__action__move-pane_commands() {
local commands; commands=()
_describe -t commands 'zellij action move-pane commands' commands "$@"
}
(( $+functions[_zellij__action__move-pane-backwards_commands] )) ||
_zellij__action__move-pane-backwards_commands() {
local commands; commands=()
_describe -t commands 'zellij action move-pane-backwards commands' commands "$@"
}
(( $+functions[_zellij__action__new-pane_commands] )) ||
_zellij__action__new-pane_commands() {
local commands; commands=()
_describe -t commands 'zellij action new-pane commands' commands "$@"
}
(( $+functions[_zellij__action__new-tab_commands] )) ||
_zellij__action__new-tab_commands() {
local commands; commands=()
_describe -t commands 'zellij action new-tab commands' commands "$@"
}
(( $+functions[_zellij__action__next-swap-layout_commands] )) ||
_zellij__action__next-swap-layout_commands() {
local commands; commands=()
_describe -t commands 'zellij action next-swap-layout commands' commands "$@"
}
(( $+functions[_zellij__attach__options_commands] )) ||
_zellij__attach__options_commands() {
local commands; commands=()
_describe -t commands 'zellij attach options commands' commands "$@"
}
(( $+functions[_zellij__options_commands] )) ||
_zellij__options_commands() {
local commands; commands=()
_describe -t commands 'zellij options commands' commands "$@"
}
(( $+functions[_zellij__action__page-scroll-down_commands] )) ||
_zellij__action__page-scroll-down_commands() {
local commands; commands=()
_describe -t commands 'zellij action page-scroll-down commands' commands "$@"
}
(( $+functions[_zellij__action__page-scroll-up_commands] )) ||
_zellij__action__page-scroll-up_commands() {
local commands; commands=()
_describe -t commands 'zellij action page-scroll-up commands' commands "$@"
}
(( $+functions[_zellij__action__previous-swap-layout_commands] )) ||
_zellij__action__previous-swap-layout_commands() {
local commands; commands=()
_describe -t commands 'zellij action previous-swap-layout commands' commands "$@"
}
(( $+functions[_zellij__action__query-tab-names_commands] )) ||
_zellij__action__query-tab-names_commands() {
local commands; commands=()
_describe -t commands 'zellij action query-tab-names commands' commands "$@"
}
(( $+functions[_zellij__action__rename-pane_commands] )) ||
_zellij__action__rename-pane_commands() {
local commands; commands=()
_describe -t commands 'zellij action rename-pane commands' commands "$@"
}
(( $+functions[_zellij__action__rename-tab_commands] )) ||
_zellij__action__rename-tab_commands() {
local commands; commands=()
_describe -t commands 'zellij action rename-tab commands' commands "$@"
}
(( $+functions[_zellij__action__resize_commands] )) ||
_zellij__action__resize_commands() {
local commands; commands=()
_describe -t commands 'zellij action resize commands' commands "$@"
}
(( $+functions[_zellij__run_commands] )) ||
_zellij__run_commands() {
local commands; commands=()
_describe -t commands 'zellij run commands' commands "$@"
}
(( $+functions[_zellij__action__scroll-down_commands] )) ||
_zellij__action__scroll-down_commands() {
local commands; commands=()
_describe -t commands 'zellij action scroll-down commands' commands "$@"
}
(( $+functions[_zellij__action__scroll-to-bottom_commands] )) ||
_zellij__action__scroll-to-bottom_commands() {
local commands; commands=()
_describe -t commands 'zellij action scroll-to-bottom commands' commands "$@"
}
(( $+functions[_zellij__action__scroll-to-top_commands] )) ||
_zellij__action__scroll-to-top_commands() {
local commands; commands=()
_describe -t commands 'zellij action scroll-to-top commands' commands "$@"
}
(( $+functions[_zellij__action__scroll-up_commands] )) ||
_zellij__action__scroll-up_commands() {
local commands; commands=()
_describe -t commands 'zellij action scroll-up commands' commands "$@"
}
(( $+functions[_zellij__setup_commands] )) ||
_zellij__setup_commands() {
local commands; commands=()
_describe -t commands 'zellij setup commands' commands "$@"
}
(( $+functions[_zellij__action__switch-mode_commands] )) ||
_zellij__action__switch-mode_commands() {
local commands; commands=()
_describe -t commands 'zellij action switch-mode commands' commands "$@"
}
(( $+functions[_zellij__action__toggle-active-sync-tab_commands] )) ||
_zellij__action__toggle-active-sync-tab_commands() {
local commands; commands=()
_describe -t commands 'zellij action toggle-active-sync-tab commands' commands "$@"
}
(( $+functions[_zellij__action__toggle-floating-panes_commands] )) ||
_zellij__action__toggle-floating-panes_commands() {
local commands; commands=()
_describe -t commands 'zellij action toggle-floating-panes commands' commands "$@"
}
(( $+functions[_zellij__action__toggle-fullscreen_commands] )) ||
_zellij__action__toggle-fullscreen_commands() {
local commands; commands=()
_describe -t commands 'zellij action toggle-fullscreen commands' commands "$@"
}
(( $+functions[_zellij__action__toggle-pane-embed-or-floating_commands] )) ||
_zellij__action__toggle-pane-embed-or-floating_commands() {
local commands; commands=()
_describe -t commands 'zellij action toggle-pane-embed-or-floating commands' commands "$@"
}
(( $+functions[_zellij__action__toggle-pane-frames_commands] )) ||
_zellij__action__toggle-pane-frames_commands() {
local commands; commands=()
_describe -t commands 'zellij action toggle-pane-frames commands' commands "$@"
}
(( $+functions[_zellij__action__undo-rename-pane_commands] )) ||
_zellij__action__undo-rename-pane_commands() {
local commands; commands=()
_describe -t commands 'zellij action undo-rename-pane commands' commands "$@"
}
(( $+functions[_zellij__action__undo-rename-tab_commands] )) ||
_zellij__action__undo-rename-tab_commands() {
local commands; commands=()
_describe -t commands 'zellij action undo-rename-tab commands' commands "$@"
}
(( $+functions[_zellij__action__write_commands] )) ||
_zellij__action__write_commands() {
local commands; commands=()
_describe -t commands 'zellij action write commands' commands "$@"
}
(( $+functions[_zellij__action__write-chars_commands] )) ||
_zellij__action__write-chars_commands() {
local commands; commands=()
_describe -t commands 'zellij action write-chars commands' commands "$@"
}
_zellij "$@"
function zr () { zellij run --name "$*" -- zsh -ic "$*";}
function zrf () { zellij run --name "$*" --floating -- zsh -ic "$*";}
function ze () { zellij edit "$*";}
function zef () { zellij edit --floating "$*";}

View file

@ -0,0 +1,44 @@
#!/usr/bin/zsh
update_path() {
export PATH="$PATH:$1"
}
# Set manually
export DOTS="$HOME/Repos/Private/dots"
export EDITOR=nvim
export VISUAL="$EDITOR"
export QT_STYLE_OVERRIDE=kvantum
export MOZ_ENABLE_WAYLAND=1
# Dev Stuff
export NPM_PACKAGES="$HOME/.npm-packages"
export NODE_PATH="$NPM_PACKAGES/lib/node_modules${NODE_PATH:+:$NODE_PATH}"
export PNPM_HOME="$HOME/.local/share/pnpm"
. "$HOME/.cargo/env"
# Unset manpath so we can inherit from /etc/manpath via the `manpath`
# command
unset MANPATH # delete if you already modified MANPATH elsewhere in your config
export MANPATH="$NPM_PACKAGES/share/man:$(manpath)"
# PATH
update_path "/usr/local/bin"
update_path "$HOME/.local/bin"
update_path "$HOME/.cargo/bin/"
update_path "$HOME/.spicetify"
update_path "$DOTS/scripts"
update_path "$HOME/bin"
update_path "$NPM_PACKAGES/bin"
update_path "$PNPM_HOME"
update_path "$HOME/.local/share/rtx/shims"
update_path "$HOME/.spicetify"
if [[ -e "$DOTS/config/zsh/zprofile.local" ]]; then
source "$DOTS/config/zsh/zprofile.local"
fi
if [[ $OSTYPE =~ 'darwin' ]]; then
eval "$(/opt/homebrew/bin/brew shellenv)"
fi

View file

@ -0,0 +1,117 @@
# Start measuring bottlenecks
if [[ "$ZPROF" = true ]]; then
zmodload zsh/zprof
fi
#--------------------------------------------------------------------#
# ZSH Config #
#--------------------------------------------------------------------#
# Set VIM keybindings
bindkey -v
export KEYTIMEOUT=1
autoload -Uz edit-command-line
zle -N edit-command-line
bindkey -M vicmd V edit-command-line # Edits files in vim, hit Shift+v in normal mode
# Add vim text objects
autoload -Uz select-bracketed select-quoted
zle -N select-quoted
zle -N select-bracketed
for km in viopp visual; do
bindkey -M $km -- '-' vi-up-line-or-history
for c in {a,i}${(s..)^:-\'\"\`\|,./:;=+@}; do
bindkey -M $km $c select-quoted
done
for c in {a,i}${(s..)^:-'()[]{}<>bB'}; do
bindkey -M $km $c select-bracketed
done
done
# History
export HISTFILE="$HOME/.zsh_history" # History filepath
export HISTSIZE=10000 # Maximum events for internal history
export SAVEHIST=10000 # Maximum events in history file
setopt EXTENDED_HISTORY
# Navigation
setopt AUTO_CD
setopt AUTO_PUSHD
setopt CDABLE_VARS
setopt PUSHD_SILENT
# Completion
setopt AUTO_LIST # Automatically list choices on ambiguous completion.
# setopt CORRECT # Turn on spelling correction for command.
setopt COMPLETE_IN_WORD # Complete from both ends of a word.
setopt GLOB_COMPLETE # Show autocompletion menu with globs
setopt MENU_COMPLETE # Automatically highlight first element of completion menu
fpath+=${ZSH_CUSTOM:-${ZSH:-$XDG_DATA_HOME/oh-my-zsh}/custom}/plugins/zsh-completions/src
fpath+=${XDG_CONFIG_HOME:-$DOTS/config}/zsh/completions
zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
zstyle ':completion:*:warnings' format '%F{cyan}%BSorry, no matches for: %d%b%f'
zstyle ':completion:*' rehash true
zstyle ':completion:*' use-cache on
# Autocomplete: https://github.com/marlonrichert/zsh-autocomplete/blob/main/.zshrc
zstyle ':autocomplete:*' fzf-completion yes
zstyle ':autocomplete:*' min-input 1
zstyle ':autocomplete:*' widget-style menu-select # Tab select instead of autocomplete
setopt autocd beep extendedglob notify
zstyle ':completion:*' group-name ''
zstyle :compinstall filename '/home/aleidk/.zshrc'
zmodload zsh/complist
bindkey -M menuselect 'h' vi-backward-char
bindkey -M menuselect 'k' vi-up-line-or-history
bindkey -M menuselect 'l' vi-forward-char
bindkey -M menuselect 'j' vi-down-line-or-history
# FZF config
source /usr/share/fzf/shell/key-bindings.zsh
autoload -U compinit
compinit
setopt GLOB_DOTS
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
#--------------------------------------------------------------------#
# Start Stuff #
#--------------------------------------------------------------------#
# File directories that are needed to source
files=(
# zsh
$DOTS/config/zsh/**/*.zsh
# fzf scripts that need to be sourced
$DOTS/scripts/fzf-flatpak
# fzf config file
$DOOTS/config/fzf/fzfrc
)
for file in $files; do
if [[ -f $file ]]; then
emulate -L zsh
source $file
fi
done
if [[ "$ZPROF" = true ]]; then
zprof
fi
eval "$(starship init zsh)"
# eval "$(zellij setup --generate-auto-start zsh)"
eval "$(zoxide init zsh)"
eval "$(mise activate zsh)"
# Load syntax highlight at the end so other configurations can use it
# Color scheme for syntax highlighting
source ~/.config/zsh/themes/catppuccin_macchiato-zsh-syntax-highlighting.zsh

View file

@ -0,0 +1,32 @@
dnf-save-install() {
file="$DOTS/exports/dnf.txt"
echo "$*" >> "$file"
sort -u -o "$file" "$file"
sudo dnf install -y $(cat "$DOTS/exports/dnf.txt")
}
dnf-load-export() {
while read -r line; do
sudo dnf copr enable -y "$line"
done <"$DOTS/exports/copr.txt"
sudo dnf install -y $(cat "$DOTS/exports/dnf.txt")
}
upgrade() {
sudo dnf upgrade --refresh -y
}
# where did I get this?
mayor-upgrade() {
if [[ $(dnf check-update -q) ]]; then
echo "There are updates pending, update and reboot? [y/N]"
read -r answer
if [[ $answer == 'y' || $answer == 'Y' ]]; then
upgrade
sc-reboot
fi
fi
}

View file

@ -0,0 +1,89 @@
export FLATPAK_ALIAS_FILE="${DOTS:-$HOME/.config}/config/zsh/aliases/flatpak.zsh"
export FLATPAK_EXPORT_FILE="${DOTS:-$HOME/Desktop}/exports/flatpak-apps.txt"
fp() {
set -e
generate_flatpak_alias() {
local flatpak_alias_file=${1:-$FLATPAK_ALIAS_FILE}
[[ -f $flatpak_alias_file ]] && touch "$flatpak_alias_file"
local flatpak_binaries_dir="/var/lib/flatpak/exports/bin"
if [[ -d "$flatpak_binaries_dir" ]]; then
echo -e "\n# Auto-generated aliases for Flatpak applications\n" >> "${flatpak_alias_file}"
while read -r app; do
app_id=$(echo "$app" | awk -F'/' '{print $NF}')
alias_name=$(echo "$app_id" | awk -F'.' '{print $NF}' | tr '[:upper:]' '[:lower:]')
echo "alias $alias_name='flatpak run $app_id'" >> "${flatpak_alias_file}"
done < <(find "$flatpak_binaries_dir" -maxdepth 1 -mindepth 1)
echo "Done generating Flatpak aliases"
echo "Check ${BLD}${BLU}$flatpak_alias_file${RST} to modify auto-generated alias"
else
echo "${RED}${BLD}Error: ${YLW}$flatpak_binaries_dir${RST} directory does not exist"
fi
}
export_flatpak_apps() {
local flatpak_export_file=""${1:-$FLATPAK_EXPORT_FILE}
flatpak list --columns=application --app > "${flatpak_export_file}"
echo "${BLD}${BLU}Flatpak apps exported successfully${RST}"
}
import_flatpak_apps() {
local flatpak_export_file=${1:-$FLATPAK_EXPORT_FILE}
xargs flatpak install -y < "${flatpak_export_file}"
}
show_help() {
echo -e "${BLD}Usage: ${GRN}fp${RST}${YLW} [OPTION]${RST}"
echo -e ""
echo -e "${BLD} Options:${RST}"
echo -e "${YLW} -e, export ${RST}Export a list of installed Flatpak apps to a file"
echo -e "${YLW} -i, import ${RST}Install Flatpak apps from exported file"
echo -e "${YLW} -g, generate ${RST}Generate aliases for all installed Flatpak apps"
echo -e "${YLW} -h, --help ${RST}Show this help"
}
main() {
local action=$1
case $action in
"generate"|"-g")
echo -en "Enter the location to save the Flatpak alias file, \n(default: ${FLATPAK_ALIAS_FILE}): "
read -r user_alias_dir
if [[ -n "$user_alias_dir" ]]; then
FLATPAK_ALIAS_FILE="$user_alias_dir"
fi
generate_flatpak_alias "${FLATPAK_ALIAS_FILE}"
;;
"export"|"-e")
echo -en "Enter the location to save the Flatpak export file (default: ${FLATPAK_EXPORT_FILE}): "
read -r user_export_file
if [[ -n "$user_export_file" ]]; then
FLATPAK_EXPORT_FILE="$user_export_file"
fi
export_flatpak_apps "${FLATPAK_EXPORT_FILE}"
;;
"import"|"-i")
echo -en "Enter the location of the Flatpak export file to import (default: ${FLATPAK_EXPORT_FILE}): "
read -r user_export_file
if [[ -n "$user_export_file" ]]; then
FLATPAK_EXPORT_FILE="$user_export_file"
fi
import_flatpak_apps "${FLATPAK_EXPORT_FILE}"
;;
"--help"|"-h")
show_help
;;
*)
show_help
;;
esac
}
main "$@"
}

View file

@ -0,0 +1,62 @@
# SSH tunnel
ssh-tunnel() {
local_port=$1 && shift
remote_port=$1 && shift
server=$1 && shift
echo "Starting SSH Tunnel for $server"
ssh -N -L "$local_port":localhost:"$remote_port" "$server"
}
# quick wordpress in docker
dwps() {
image_name="wordpress-development"
container_build_path="$HOME/Repos/Private/docker-services/wordpress"
original_path="$PWD"
if [[ "$(docker images -q $image_name 2> /dev/null)" == "" ]] ; then
cd "$container_build_path"
docker build --tag "$image_name" .
cd "$original_path"
fi
docker run -d --rm -p 3000:80 --user 1000:1000 -v "$PWD":/var/www/html --name "$image_name" "$image_name"
}
## Create python venv
pvenv() {
[[ -n $VIRTAUL_ENV ]] && echo "Virtual enviroment already sourced" && return
dir=${1:-venv}
[[ ! -d $dir ]] && echo "Creating virtual enviroment..." && python -m venv $dir
source "$dir/bin/activate"
}
# Print bottlenecks
profzsh() {
shell=${1-$SHELL}
ZPROF=true $shell -i -c exit
}
# Pretty Help
alias bathelp='bat --plain --language=help'
help() {
"$@" --help 2>&1 | bathelp
}
fzf-jq() {
echo '' | fzf --print-query --preview="jq -r {q} <$@"
}
function ya() {
local tmp="$(mktemp -t "yazi-cwd.XXXXX")"
yazi "$@" --cwd-file="$tmp"
if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
cd -- "$cwd"
fi
rm -f -- "$tmp"
}

View file

@ -0,0 +1,41 @@
SEPARATOR=" │ "
FZF_SEPARATOR="│" # Same character, without whitespaces
format_values() {
values="$1"
shift
divider="$1"
shift
echo -e "$(echo "$values" | column --table --separator $divider --output-separator $SEPARATOR)"
}
tmux_switch_or_create() {
target=$1
[[ -n "$TMUX" ]] && change="switch-client" || change="attach-session"
tmux $change -t "$target" 2>/dev/null || (tmux new-session -d -s $target && tmux $change -t "$target"); return
}
# tm - create new tmux session, or switch to existing one. Works from within tmux too. (@bag-man)
# `tm` will allow you to select your tmux session via fzf.
# `tm irc` will attach to the irc session (if it exists), else it will create it.
tm() {
[[ -n "$TMUX" ]] && change="switch-client" || change="attach-session"
if [ $1 ]; then
tmux $change -t "$1" 2>/dev/null || (tmux new-session -d -s $1 && tmux $change -t "$1"); return
fi
session=$(tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0 --select-1) && tmux $change -t "$session" || echo "No sessions found."
}
ta() {
export START_DIRECTORY="$(z -l 2>&1 | fzf --height 40% --nth 2.. --reverse --inline-info +s --tac --query "${*##-* }" | sed 's/^[0-9,.]* *//')"
if [[ -z START_DIRECTORY ]]; then
exit 0
fi
export SESSION_NAME="$(basename $START_DIRECTORY)"
tmuxp load $(fd -e yml . ~/.config/tmuxp | fzf)
}

View file

@ -0,0 +1,74 @@
# Catppuccin Frappe Theme (for zsh-syntax-highlighting)
#
# Paste this files contents inside your ~/.zshrc before you activate zsh-syntax-highlighting
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main cursor)
typeset -gA ZSH_HIGHLIGHT_STYLES
# Main highlighter styling: https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters/main.md
#
## General
### Diffs
### Markup
## Classes
## Comments
ZSH_HIGHLIGHT_STYLES[comment]='fg=#626880'
## Constants
## Entitites
## Functions/methods
ZSH_HIGHLIGHT_STYLES[alias]='fg=#a6d189'
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=#a6d189'
ZSH_HIGHLIGHT_STYLES[global-alias]='fg=#a6d189'
ZSH_HIGHLIGHT_STYLES[function]='fg=#a6d189'
ZSH_HIGHLIGHT_STYLES[command]='fg=#a6d189'
ZSH_HIGHLIGHT_STYLES[precommand]='fg=#a6d189,italic'
ZSH_HIGHLIGHT_STYLES[autodirectory]='fg=#ef9f76,italic'
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=#ef9f76'
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=#ef9f76'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=#ca9ee6'
## Keywords
## Built ins
ZSH_HIGHLIGHT_STYLES[builtin]='fg=#a6d189'
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=#a6d189'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=#a6d189'
## Punctuation
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=#e78284'
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]='fg=#c6d0f5'
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter-unquoted]='fg=#c6d0f5'
ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]='fg=#c6d0f5'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]='fg=#e78284'
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=#e78284'
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]='fg=#e78284'
## Serializable / Configuration Languages
## Storage
## Strings
ZSH_HIGHLIGHT_STYLES[command-substitution-quoted]='fg=#e5c890'
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter-quoted]='fg=#e5c890'
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=#e5c890'
ZSH_HIGHLIGHT_STYLES[single-quoted-argument-unclosed]='fg=#ea999c'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=#e5c890'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument-unclosed]='fg=#ea999c'
ZSH_HIGHLIGHT_STYLES[rc-quote]='fg=#e5c890'
## Variables
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]='fg=#c6d0f5'
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument-unclosed]='fg=#ea999c'
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=#c6d0f5'
ZSH_HIGHLIGHT_STYLES[assign]='fg=#c6d0f5'
ZSH_HIGHLIGHT_STYLES[named-fd]='fg=#c6d0f5'
ZSH_HIGHLIGHT_STYLES[numeric-fd]='fg=#c6d0f5'
## No category relevant in spec
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=#ea999c'
ZSH_HIGHLIGHT_STYLES[path]='fg=#c6d0f5,underline'
ZSH_HIGHLIGHT_STYLES[path_pathseparator]='fg=#e78284,underline'
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=#c6d0f5,underline'
ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]='fg=#e78284,underline'
ZSH_HIGHLIGHT_STYLES[globbing]='fg=#c6d0f5'
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=#ca9ee6'
#ZSH_HIGHLIGHT_STYLES[command-substitution]='fg=?'
#ZSH_HIGHLIGHT_STYLES[command-substitution-unquoted]='fg=?'
#ZSH_HIGHLIGHT_STYLES[process-substitution]='fg=?'
#ZSH_HIGHLIGHT_STYLES[arithmetic-expansion]='fg=?'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument-unclosed]='fg=#ea999c'
ZSH_HIGHLIGHT_STYLES[redirection]='fg=#c6d0f5'
ZSH_HIGHLIGHT_STYLES[arg0]='fg=#c6d0f5'
ZSH_HIGHLIGHT_STYLES[default]='fg=#c6d0f5'
ZSH_HIGHLIGHT_STYLES[cursor]='fg=#c6d0f5'

View file

@ -0,0 +1,74 @@
# Catppuccin Latte Theme (for zsh-syntax-highlighting)
#
# Paste this files contents inside your ~/.zshrc before you activate zsh-syntax-highlighting
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main cursor)
typeset -gA ZSH_HIGHLIGHT_STYLES
# Main highlighter styling: https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters/main.md
#
## General
### Diffs
### Markup
## Classes
## Comments
ZSH_HIGHLIGHT_STYLES[comment]='fg=#acb0be'
## Constants
## Entitites
## Functions/methods
ZSH_HIGHLIGHT_STYLES[alias]='fg=#40a02b'
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=#40a02b'
ZSH_HIGHLIGHT_STYLES[global-alias]='fg=#40a02b'
ZSH_HIGHLIGHT_STYLES[function]='fg=#40a02b'
ZSH_HIGHLIGHT_STYLES[command]='fg=#40a02b'
ZSH_HIGHLIGHT_STYLES[precommand]='fg=#40a02b,italic'
ZSH_HIGHLIGHT_STYLES[autodirectory]='fg=#fe640b,italic'
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=#fe640b'
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=#fe640b'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=#8839ef'
## Keywords
## Built ins
ZSH_HIGHLIGHT_STYLES[builtin]='fg=#40a02b'
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=#40a02b'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=#40a02b'
## Punctuation
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=#d20f39'
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]='fg=#4c4f69'
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter-unquoted]='fg=#4c4f69'
ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]='fg=#4c4f69'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]='fg=#d20f39'
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=#d20f39'
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]='fg=#d20f39'
## Serializable / Configuration Languages
## Storage
## Strings
ZSH_HIGHLIGHT_STYLES[command-substitution-quoted]='fg=#df8e1d'
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter-quoted]='fg=#df8e1d'
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=#df8e1d'
ZSH_HIGHLIGHT_STYLES[single-quoted-argument-unclosed]='fg=#e64553'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=#df8e1d'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument-unclosed]='fg=#e64553'
ZSH_HIGHLIGHT_STYLES[rc-quote]='fg=#df8e1d'
## Variables
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]='fg=#4c4f69'
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument-unclosed]='fg=#e64553'
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=#4c4f69'
ZSH_HIGHLIGHT_STYLES[assign]='fg=#4c4f69'
ZSH_HIGHLIGHT_STYLES[named-fd]='fg=#4c4f69'
ZSH_HIGHLIGHT_STYLES[numeric-fd]='fg=#4c4f69'
## No category relevant in spec
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=#e64553'
ZSH_HIGHLIGHT_STYLES[path]='fg=#4c4f69,underline'
ZSH_HIGHLIGHT_STYLES[path_pathseparator]='fg=#d20f39,underline'
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=#4c4f69,underline'
ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]='fg=#d20f39,underline'
ZSH_HIGHLIGHT_STYLES[globbing]='fg=#4c4f69'
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=#8839ef'
#ZSH_HIGHLIGHT_STYLES[command-substitution]='fg=?'
#ZSH_HIGHLIGHT_STYLES[command-substitution-unquoted]='fg=?'
#ZSH_HIGHLIGHT_STYLES[process-substitution]='fg=?'
#ZSH_HIGHLIGHT_STYLES[arithmetic-expansion]='fg=?'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument-unclosed]='fg=#e64553'
ZSH_HIGHLIGHT_STYLES[redirection]='fg=#4c4f69'
ZSH_HIGHLIGHT_STYLES[arg0]='fg=#4c4f69'
ZSH_HIGHLIGHT_STYLES[default]='fg=#4c4f69'
ZSH_HIGHLIGHT_STYLES[cursor]='fg=#4c4f69'

View file

@ -0,0 +1,74 @@
# Catppuccin Macchiato Theme (for zsh-syntax-highlighting)
#
# Paste this files contents inside your ~/.zshrc before you activate zsh-syntax-highlighting
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main cursor)
typeset -gA ZSH_HIGHLIGHT_STYLES
# Main highlighter styling: https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters/main.md
#
## General
### Diffs
### Markup
## Classes
## Comments
ZSH_HIGHLIGHT_STYLES[comment]='fg=#5b6078'
## Constants
## Entitites
## Functions/methods
ZSH_HIGHLIGHT_STYLES[alias]='fg=#a6da95'
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=#a6da95'
ZSH_HIGHLIGHT_STYLES[global-alias]='fg=#a6da95'
ZSH_HIGHLIGHT_STYLES[function]='fg=#a6da95'
ZSH_HIGHLIGHT_STYLES[command]='fg=#a6da95'
ZSH_HIGHLIGHT_STYLES[precommand]='fg=#a6da95,italic'
ZSH_HIGHLIGHT_STYLES[autodirectory]='fg=#f5a97f,italic'
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=#f5a97f'
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=#f5a97f'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=#c6a0f6'
## Keywords
## Built ins
ZSH_HIGHLIGHT_STYLES[builtin]='fg=#a6da95'
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=#a6da95'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=#a6da95'
## Punctuation
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=#ed8796'
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]='fg=#cad3f5'
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter-unquoted]='fg=#cad3f5'
ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]='fg=#cad3f5'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]='fg=#ed8796'
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=#ed8796'
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]='fg=#ed8796'
## Serializable / Configuration Languages
## Storage
## Strings
ZSH_HIGHLIGHT_STYLES[command-substitution-quoted]='fg=#eed49f'
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter-quoted]='fg=#eed49f'
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=#eed49f'
ZSH_HIGHLIGHT_STYLES[single-quoted-argument-unclosed]='fg=#ee99a0'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=#eed49f'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument-unclosed]='fg=#ee99a0'
ZSH_HIGHLIGHT_STYLES[rc-quote]='fg=#eed49f'
## Variables
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]='fg=#cad3f5'
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument-unclosed]='fg=#ee99a0'
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=#cad3f5'
ZSH_HIGHLIGHT_STYLES[assign]='fg=#cad3f5'
ZSH_HIGHLIGHT_STYLES[named-fd]='fg=#cad3f5'
ZSH_HIGHLIGHT_STYLES[numeric-fd]='fg=#cad3f5'
## No category relevant in spec
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=#ee99a0'
ZSH_HIGHLIGHT_STYLES[path]='fg=#cad3f5,underline'
ZSH_HIGHLIGHT_STYLES[path_pathseparator]='fg=#ed8796,underline'
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=#cad3f5,underline'
ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]='fg=#ed8796,underline'
ZSH_HIGHLIGHT_STYLES[globbing]='fg=#cad3f5'
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=#c6a0f6'
#ZSH_HIGHLIGHT_STYLES[command-substitution]='fg=?'
#ZSH_HIGHLIGHT_STYLES[command-substitution-unquoted]='fg=?'
#ZSH_HIGHLIGHT_STYLES[process-substitution]='fg=?'
#ZSH_HIGHLIGHT_STYLES[arithmetic-expansion]='fg=?'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument-unclosed]='fg=#ee99a0'
ZSH_HIGHLIGHT_STYLES[redirection]='fg=#cad3f5'
ZSH_HIGHLIGHT_STYLES[arg0]='fg=#cad3f5'
ZSH_HIGHLIGHT_STYLES[default]='fg=#cad3f5'
ZSH_HIGHLIGHT_STYLES[cursor]='fg=#cad3f5'

View file

@ -0,0 +1,74 @@
# Catppuccin Mocha Theme (for zsh-syntax-highlighting)
#
# Paste this files contents inside your ~/.zshrc before you activate zsh-syntax-highlighting
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main cursor)
typeset -gA ZSH_HIGHLIGHT_STYLES
# Main highlighter styling: https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters/main.md
#
## General
### Diffs
### Markup
## Classes
## Comments
ZSH_HIGHLIGHT_STYLES[comment]='fg=#585b70'
## Constants
## Entitites
## Functions/methods
ZSH_HIGHLIGHT_STYLES[alias]='fg=#a6e3a1'
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=#a6e3a1'
ZSH_HIGHLIGHT_STYLES[global-alias]='fg=#a6e3a1'
ZSH_HIGHLIGHT_STYLES[function]='fg=#a6e3a1'
ZSH_HIGHLIGHT_STYLES[command]='fg=#a6e3a1'
ZSH_HIGHLIGHT_STYLES[precommand]='fg=#a6e3a1,italic'
ZSH_HIGHLIGHT_STYLES[autodirectory]='fg=#fab387,italic'
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=#fab387'
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=#fab387'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=#cba6f7'
## Keywords
## Built ins
ZSH_HIGHLIGHT_STYLES[builtin]='fg=#a6e3a1'
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=#a6e3a1'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=#a6e3a1'
## Punctuation
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=#f38ba8'
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]='fg=#cdd6f4'
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter-unquoted]='fg=#cdd6f4'
ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]='fg=#cdd6f4'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]='fg=#f38ba8'
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=#f38ba8'
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]='fg=#f38ba8'
## Serializable / Configuration Languages
## Storage
## Strings
ZSH_HIGHLIGHT_STYLES[command-substitution-quoted]='fg=#f9e2af'
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter-quoted]='fg=#f9e2af'
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=#f9e2af'
ZSH_HIGHLIGHT_STYLES[single-quoted-argument-unclosed]='fg=#e64553'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=#f9e2af'
ZSH_HIGHLIGHT_STYLES[double-quoted-argument-unclosed]='fg=#e64553'
ZSH_HIGHLIGHT_STYLES[rc-quote]='fg=#f9e2af'
## Variables
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]='fg=#cdd6f4'
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument-unclosed]='fg=#e64553'
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=#cdd6f4'
ZSH_HIGHLIGHT_STYLES[assign]='fg=#cdd6f4'
ZSH_HIGHLIGHT_STYLES[named-fd]='fg=#cdd6f4'
ZSH_HIGHLIGHT_STYLES[numeric-fd]='fg=#cdd6f4'
## No category relevant in spec
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=#e64553'
ZSH_HIGHLIGHT_STYLES[path]='fg=#cdd6f4,underline'
ZSH_HIGHLIGHT_STYLES[path_pathseparator]='fg=#f38ba8,underline'
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=#cdd6f4,underline'
ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]='fg=#f38ba8,underline'
ZSH_HIGHLIGHT_STYLES[globbing]='fg=#cdd6f4'
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=#cba6f7'
#ZSH_HIGHLIGHT_STYLES[command-substitution]='fg=?'
#ZSH_HIGHLIGHT_STYLES[command-substitution-unquoted]='fg=?'
#ZSH_HIGHLIGHT_STYLES[process-substitution]='fg=?'
#ZSH_HIGHLIGHT_STYLES[arithmetic-expansion]='fg=?'
ZSH_HIGHLIGHT_STYLES[back-quoted-argument-unclosed]='fg=#e64553'
ZSH_HIGHLIGHT_STYLES[redirection]='fg=#cdd6f4'
ZSH_HIGHLIGHT_STYLES[arg0]='fg=#cdd6f4'
ZSH_HIGHLIGHT_STYLES[default]='fg=#cdd6f4'
ZSH_HIGHLIGHT_STYLES[cursor]='fg=#cdd6f4'