Compare commits

Author SHA1 Message Date
Johan Hammar 421d95782d feat(vagrant): Add vagrant box prune command (#5946) 2026-09-04 16:38:16 -07:00
Raihan Firdaus 7079eaf80d feat: update laravel.plugin add make:view and update README.md (#13674) 2026-09-04 16:18:53 -07:00
Morningstar202604 b842e5e63e fix(aws): send asr() error message to stderr and reset terminal color (#14027)
asp() already writes its "profile not found" error to stderr and ends
with ${reset_color}; asr() printed its region error to stdout without a
reset, leaving the terminal red and mixing diagnostics into piped output.

Mirror asp() so both selection helpers behave the same.

Refs #13949
2026-09-04 15:25:14 -07:00
blag c76b3002b6 Sublime Merge plugin: Add an smerge alias to complement the similar alias in the Sublime Text plugin (#13930) 2026-09-04 14:49:54 -07:00
Matt CampbellandCarlo Sala 3f84a2ae4a fix(ssh-agent): create screen/tmux symlink atomically (#14035)
Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
2026-09-04 08:19:10 -03:00
Mohammad Al ZouabiandCarlo Sala 9112b53fa8 fix(mise): activate using ~/.local/bin/mise (#13984)
Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
2026-09-01 09:21:54 +02:00
Maksym Tymoshyk a5ecff7560 fix(updater): silence git version check output (#14029) 2026-08-30 19:16:06 +02:00
Maksym Tymoshyk 233ec5c507 fix(systemadmin): quote awk program in webtraffic (#14030) 2026-08-30 19:15:26 +02:00
Maksym Tymoshyk 91ad6c5c4c fix(git): restore git_develop_branch fallback in gbds (#14033) 2026-08-30 19:12:18 +02:00
Maksym Tymoshyk b5d75fc565 fix(cli): keep completion flag when loading multiple plugins (#14032) 2026-08-30 19:11:30 +02:00
Maksym Tymoshyk 44ce832bbd fix(diagnostics): correct reserved_words array name (#14031) 2026-08-30 19:10:57 +02:00
dependabot[bot] b23f11ce1e chore(deps): bump github/codeql-action/upload-sarif (#14034)
Bumps the gha-minor group with 1 update: [github/codeql-action/upload-sarif](https://github.com/github/codeql-action).


Updates `github/codeql-action/upload-sarif` from 4.37.7 to 4.37.9
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd...cdf488f595d80d6e07e03d4674febd5ab45fa938)

---
updated-dependencies:
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.37.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: gha-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-30 19:07:00 +02:00
Miguel Hargreaves PimentaandRobby Russell 4b657407c9 feat(rails): support multi-database aliases (#13368)
Rails applications can define more than one database (`primary`, `cache`, `cable`, `queue`, ...), and each one gets its own namespaced task. These commands accept an optional database name as the first argument:

`rdc`, `rdd`, `rdm`, `rdmd`, `rdmr`, `rdms`, `rdmu`, `rdr`, `rdrs`, `rdsl`

Co-authored-by: Robby Russell <robby@planetargon.com>
2026-08-28 21:43:45 -03:00
Pavel R`andRobby Russell 9b26410d99 fix(eza): pass an explicit value to --hyperlink (#14024)
Since eza 0.23 `--hyperlink` is an option with an optional WHEN value
instead of a boolean flag, so a bare `--hyperlink` at the end of the
alias consumes the following argument:

    $ ll ./tmp
    error: invalid value './tmp' for '--hyperlink [<WHEN>]'
      [possible values: always, auto, never]

Pass `--hyperlink=auto` (mirroring how the plugin already handles
`--icons=auto`) when eza accepts it, and fall back to the bare flag on
older releases.

Co-authored-by: Robby Russell <robby@planetargon.com>
2026-08-28 21:36:04 -03:00
Fernando AraujoandFernando Silva 58f87ce1e9 feat(docker-compose): add config alias (#13856)
* add docker compose config alias

* updated readme

* sorting :)

---------

Co-authored-by: Fernando Silva <fcasilva.nz@gmail.com>
2026-08-28 16:08:59 -07:00
Morningstar202604 146461f7c6 fix(git): force C locale only while matching status regexes (#14006) 2026-08-25 10:26:23 +02:00
ディレーン ec03bc620c fix(docker): resolve completion path correctly (#14004)
Use `${0:A:h}` to get the absolute plugin directory path before entering
the anonymous function, where `$0` refers to the function itself. Store
it in a local variable to ensure the completion file path is resolved
correctly.

Fixes #14003
2026-08-24 13:33:49 -03:00
dependabot[bot] 67462daf46 chore(deps): bump step-security/harden-runner in the gha-minor group (#14002)
Bumps the gha-minor group with 1 update: [step-security/harden-runner](https://github.com/step-security/harden-runner).


Updates `step-security/harden-runner` from 2.20.1 to 2.21.0
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](https://github.com/step-security/harden-runner/compare/b09bb98e06d4d774595224525879c09bc6e98c40...05e31511f85b41b11d1cf0ef85d0992719546e2c)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-version: 2.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: gha-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-24 08:41:51 +02:00
dependabot[bot] effdcb7572 chore(deps): bump the py-minor group (#14001)
Bumps the py-minor group in /.github/workflows/dependencies with 2 updates: [charset-normalizer](https://github.com/jawah/charset_normalizer) and [idna](https://github.com/kjd/idna).


Updates `charset-normalizer` from 3.5.0 to 3.5.1
- [Release notes](https://github.com/jawah/charset_normalizer/releases)
- [Changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jawah/charset_normalizer/compare/3.5.0...3.5.1)

Updates `idna` from 3.18 to 3.19
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md)
- [Commits](https://github.com/kjd/idna/compare/v3.18...v3.19)

---
updated-dependencies:
- dependency-name: charset-normalizer
  dependency-version: 3.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: py-minor
- dependency-name: idna
  dependency-version: '3.19'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: py-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-24 08:41:19 +02:00
Carlo SalaandMarc Cornellà 830a5bcfd2 fix: load completion files atomically (#14000)
Fixes #13964
 
Co-authored-by: Marc Cornellà <marc@mcornella.com>
2026-08-22 17:24:24 +02:00
P1bubandCarlo Sala d42209f2af fix(installer): prevent command injection via $USER in install.sh (#13960)
HOME="${HOME:-$(eval echo ~"$USER")}" expands any shell metacharacters in
$USER when HOME is unset (CWE-78), e.g. USER='x"; <command>; "'. Validate the
username against a safe character set before running the eval and fall back
to $PWD for unsafe values. Also quote $USER in the getent call to avoid word
splitting.

Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
2026-08-20 10:43:07 +02:00
Josh McKinney 1b2b604c48 fix(core): add Ghostty OSC 8 support (#13961) 2026-08-20 10:18:07 +02:00
73 changed files with 424 additions and 111 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ jobs:
contents: write # this is needed to push commits and branches
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@b09bb98e06d4d774595224525879c09bc6e98c40 # v2.20.1
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
@@ -1,6 +1,6 @@
certifi==2026.7.22
charset-normalizer==3.5.0
idna==3.18
charset-normalizer==3.5.1
idna==3.19
PyYAML==6.0.3
requests==2.34.2
semver==3.0.4
+2 -2
View File
@@ -26,7 +26,7 @@ jobs:
- macos-latest
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@b09bb98e06d4d774595224525879c09bc6e98c40 # v2.20.1
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
@@ -47,7 +47,7 @@ jobs:
- test
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@b09bb98e06d4d774595224525879c09bc6e98c40 # v2.20.1
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
+1 -1
View File
@@ -24,7 +24,7 @@ jobs:
if: github.repository == 'ohmyzsh/ohmyzsh'
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@b09bb98e06d4d774595224525879c09bc6e98c40 # v2.20.1
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
+1 -1
View File
@@ -17,7 +17,7 @@ jobs:
if: github.repository == 'ohmyzsh/ohmyzsh'
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@b09bb98e06d4d774595224525879c09bc6e98c40 # v2.20.1
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- name: Authenticate as @ohmyzsh
+2 -2
View File
@@ -36,7 +36,7 @@ jobs:
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@b09bb98e06d4d774595224525879c09bc6e98c40 # v2.20.1
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
@@ -60,6 +60,6 @@ jobs:
retention-days: 5
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd # v4.37.7
uses: github/codeql-action/upload-sarif@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9
with:
sarif_file: results.sarif
+1 -1
View File
@@ -519,7 +519,7 @@ function _omz::plugin::load {
# Check if it has completion to reload compinit
local -a comp_files
comp_files=($base/_*(N))
has_completion=$(( $#comp_files > 0 ))
(( has_completion )) || has_completion=$(( $#comp_files > 0 ))
# Load the plugin
if [[ -f "$base/$plugin.plugin.zsh" ]]; then
+1 -1
View File
@@ -271,7 +271,7 @@ function _omz_diag_dump_check_core_commands() {
unfunction unhash unlimit unset unsetopt vared wait whence where which zcompile
zle zmodload zparseopts zregexparse zstyle )
if is-at-least 5.1; then
reserved_word+=( declare export integer float local readonly typeset )
reserved_words+=( declare export integer float local readonly typeset )
else
builtins+=( declare export integer float local readonly typeset )
fi
+22 -11
View File
@@ -39,16 +39,27 @@ function _omz_git_prompt_info() {
echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${ref//\%/%%}${upstream//\%/%%}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}"
}
function _omz_git_prompt_status() {
# OHMYZSH-13330: avoid "regex matching error: illegal byte sequence".
# zsh's "=~" operator delegates to the C library regex, which aborts with
# REG_ILLSEQ when the subject contains an invalid byte sequence under a
# multibyte locale (e.g. a filename with non-UTF-8 bytes in `git status`
# output). Forcing the C locale makes every byte a valid character, so the
# regex matching below never fails that way. `git status --porcelain` is
# locale-independent, so this does not change the parsed output.
# Match an extended regular expression against a subject, forcing the C locale
# only for the duration of the call.
#
# OHMYZSH-13330: zsh's "=~" operator delegates to the C library regex, which
# aborts with REG_ILLSEQ when the subject contains an invalid byte sequence
# under a multibyte locale (e.g. a filename with non-UTF-8 bytes in `git
# status` output). Forcing the C locale makes every byte a valid character,
# so the regex matching never fails that way. `git status --porcelain` is
# locale-independent, so this does not change the parsed output.
#
# OHMYZSH-13985: the locale must be scoped to this function and not set for
# the whole caller. Assigning LC_ALL makes zsh re-run setlocale() right away,
# so leaving it set while the rest of the caller runs breaks multibyte
# handling there — most visibly, `echo` refuses to expand Unicode escapes in
# theme prompt symbols ("character not in range").
function _omz_git_prompt_status_match() {
local -x LC_ALL=C
[[ "$1" =~ "$2" ]]
}
function _omz_git_prompt_status() {
[[ "$(__git_prompt_git config --get oh-my-zsh.hide-status 2>/dev/null)" = 1 ]] && return
# Maps a git status prefix to an internal constant
@@ -113,11 +124,11 @@ function _omz_git_prompt_status() {
status_lines=("${(@f)${status_text}}")
# If the tracking line exists, get and parse it
if [[ "$status_lines[1]" =~ "^## [^ ]+ \[(.*)\]" ]]; then
if _omz_git_prompt_status_match "$status_lines[1]" "^## [^ ]+ \[(.*)\]"; then
local branch_statuses
branch_statuses=("${(@s/,/)match}")
for branch_status in $branch_statuses; do
if [[ ! $branch_status =~ "(behind|diverged|ahead) ([0-9]+)?" ]]; then
if ! _omz_git_prompt_status_match "$branch_status" "(behind|diverged|ahead) ([0-9]+)?"; then
continue
fi
local last_parsed_status=$prefix_constant_map[$match[1]]
@@ -130,7 +141,7 @@ function _omz_git_prompt_status() {
local status_constant="${prefix_constant_map[$status_prefix]}"
local status_regex=$'(^|\n)'"$status_prefix"
if [[ "$status_text" =~ $status_regex ]]; then
if _omz_git_prompt_status_match "$status_text" "$status_regex"; then
statuses_seen[$status_constant]=1
fi
done
+5 -1
View File
@@ -9,7 +9,11 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_op" ]]; then
_comps[op]=_op
fi
op completion zsh >| "$ZSH_CACHE_DIR/completions/_op" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_op"
zf_mv -f -- =( op completion zsh ) "$TMPPREFIX"
} &|
# Load opswd function
autoload -Uz opswd
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_arduino-cli" ]]; then
fi
# Generate and load arduino-cli completion
arduino-cli completion zsh >! "$ZSH_CACHE_DIR/completions/_arduino-cli" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_arduino-cli"
zf_mv -f -- =( arduino-cli completion zsh ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_argocd" ]]; then
_comps[argocd]=_argocd
fi
argocd completion zsh >| "$ZSH_CACHE_DIR/completions/_argocd" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_argocd"
zf_mv -f -- =( argocd completion zsh ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -12,4 +12,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_asdf" ]]; then
autoload -Uz _asdf
_comps[asdf]=_asdf
fi
asdf completion zsh >| "$ZSH_CACHE_DIR/completions/_asdf" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_asdf"
zf_mv -f -- =( asdf completion zsh ) "$TMPPREFIX"
} &|
+1 -1
View File
@@ -69,7 +69,7 @@ function asr() {
local -a available_regions
available_regions=($(aws_regions))
if [[ -z "${available_regions[(r)$1]}" ]]; then
echo "${fg[red]}Available regions: \n$(aws_regions)"
echo "${fg[red]}Available regions: \n$(aws_regions)${reset_color}" >&2
return 1
fi
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_buf" ]]; then
fi
# Generate and load buf completion
buf completion zsh >! "$ZSH_CACHE_DIR/completions/_buf" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_buf"
zf_mv -f -- =( buf completion zsh ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_bun" ]]; then
_comps[bun]=_bun
fi
SHELL=zsh bun completions >| "$ZSH_CACHE_DIR/completions/_bun" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_bun"
zf_mv -f -- =( SHELL=zsh bun completions ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_charm" ]]; then
_comps[charm]=_charm
fi
charm completion zsh >| "$ZSH_CACHE_DIR/completions/_charm" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_charm"
zf_mv -f -- =( charm completion zsh ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_chezmoi" ]]; then
_comps[chezmoi]=_chezmoi
fi
chezmoi completion zsh >| "$ZSH_CACHE_DIR/completions/_chezmoi" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_chezmoi"
zf_mv -f -- =( chezmoi completion zsh ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_codex" ]]; then
_comps[codex]=_codex
fi
codex completion zsh < /dev/null 2> /dev/null >| "$ZSH_CACHE_DIR/completions/_codex" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_codex"
zf_mv -f -- =( codex completion zsh < /dev/null 2> /dev/null ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -25,4 +25,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_deno" ]]; then
_comps[deno]=_deno
fi
deno completions zsh >| "$ZSH_CACHE_DIR/completions/_deno" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_deno"
zf_mv -f -- =( deno completions zsh ) "$TMPPREFIX"
} &|
+2 -1
View File
@@ -2,7 +2,7 @@
This plugin provides completion for [docker-compose](https://docs.docker.com/compose/) as well as some
aliases for frequent docker-compose commands.
This plugin chooses automatically between the legacy `docker-compose` command and the modern
This plugin chooses automatically between the legacy `docker-compose` command and the modern
`docker compose` subcommand, preferring `docker-compose` when both are available.
To use it, add docker-compose to the plugins array of your zshrc file:
@@ -17,6 +17,7 @@ plugins=(... docker-compose)
|-----------|----------------------------------|----------------------------------------------------------------------------------|
| dco | `docker-compose` | Docker-compose main command |
| dcb | `docker-compose build` | Build containers |
| dcc | `docker-compose config` | Parse, resolve and render compose file in canonical format |
| dce | `docker-compose exec` | Execute command inside a container |
| dcps | `docker-compose ps` | List containers |
| dcrestart | `docker-compose restart` | Restart container |
@@ -6,6 +6,7 @@
alias dco="$dccmd"
alias dcb="$dccmd build"
alias dcc="$dccmd config"
alias dce="$dccmd exec"
alias dcps="$dccmd ps"
alias dcrestart="$dccmd restart"
+9 -4
View File
@@ -56,14 +56,19 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_docker" ]]; then
_comps[docker]=_docker
fi
{
zmodload -F zsh/files b:zf_mv
() {
local plugin_dir="$1"
# `docker completion` is only available from 23.0.0 on
# docker version returns `Docker version 24.0.2, build cb74dfcd85`
# with `s:,:` remove the comma after the version, and select third word of it
if zstyle -t ':omz:plugins:docker' legacy-completion || \
! is-at-least 23.0.0 ${${(s:,:z)"$(command docker --version)"}[3]}; then
command cp "${0:h}/completions/_docker" "$ZSH_CACHE_DIR/completions/_docker"
command cp "${plugin_dir}/completions/_docker" "$ZSH_CACHE_DIR/completions/_docker"
else
command docker completion zsh | tee "$ZSH_CACHE_DIR/completions/_docker" > /dev/null
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_docker"
zf_mv -f -- =( command docker completion zsh ) "$TMPPREFIX"
fi
} &|
} "${0:A:h}" &|
+5 -1
View File
@@ -14,4 +14,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_doctl" ]]; then
_comps[doctl]=_doctl
fi
doctl completion zsh >| "$ZSH_CACHE_DIR/completions/_doctl" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_doctl"
zf_mv -f -- =( doctl completion zsh ) "$TMPPREFIX"
} &|
+7 -2
View File
@@ -52,8 +52,13 @@ function _configure_eza() {
if [[ $_val ]]; then
_EZA_TAIL+=("--time-style='$_val'")
fi
if zstyle -t ":omz:plugins:eza" "hyperlink"; then
_EZA_TAIL+=("--hyperlink")
if zstyle -t ':omz:plugins:eza' 'hyperlink'; then
# eza >= 0.23 needs an explicit WHEN value
if command eza --hyperlink=auto --version &>/dev/null; then
_EZA_TAIL+=("--hyperlink=auto")
else
_EZA_TAIL+=("--hyperlink")
fi
fi
}
+5 -1
View File
@@ -30,4 +30,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_flutter" ]]; then
_comps[flutter]=_flutter
fi
flutter zsh-completion < /dev/null >| "$ZSH_CACHE_DIR/completions/_flutter" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_flutter"
zf_mv -f -- =( flutter zsh-completion < /dev/null ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_flux" ]]; then
_comps[flux]=_flux
fi
flux completion zsh >| "$ZSH_CACHE_DIR/completions/_flux" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_flux"
zf_mv -f -- =( flux completion zsh ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -10,7 +10,11 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_fnm" ]]; then
_comps[fnm]=_fnm
fi
fnm completions --shell=zsh >| "$ZSH_CACHE_DIR/completions/_fnm" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_fnm"
zf_mv -f -- =( fnm completions --shell=zsh ) "$TMPPREFIX"
} &|
if zstyle -t ':omz:plugins:fnm' autostart; then
local -a fnm_env_cmd
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_gh" ]]; then
_comps[gh]=_gh
fi
gh completion --shell zsh >| "$ZSH_CACHE_DIR/completions/_gh" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_gh"
zf_mv -f -- =( gh completion --shell zsh ) "$TMPPREFIX"
} &|
+3 -2
View File
@@ -137,8 +137,9 @@ function gbda() {
# Copied and modified from James Roeder (jmaroeder) under MIT License
# https://github.com/jmaroeder/plugin-git/blob/216723ef4f9e8dde399661c39c80bdf73f4076c4/functions/gbda.fish
function gbds() {
local default_branch=$(git_main_branch)
(( ! $? )) || default_branch=$(git_develop_branch)
local default_branch
default_branch=$(git_main_branch) \
|| default_branch=$(git_develop_branch)
git for-each-ref refs/heads/ "--format=%(refname:short)" | \
while read branch; do
+5 -1
View File
@@ -9,5 +9,9 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_hasura" ]]; then
source "$ZSH_CACHE_DIR/completions/_hasura"
else
source "$ZSH_CACHE_DIR/completions/_hasura"
hasura completion zsh --file "$ZSH_CACHE_DIR/completions/_hasura" >/dev/null &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_hasura"
zf_mv -f -- =( hasura completion zsh ) "$TMPPREFIX"
} &|
fi
+5 -1
View File
@@ -13,7 +13,11 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_hcloud" ]]; then
_comps[hcloud]=_hcloud
fi
hcloud completion zsh 2> /dev/null >| "$ZSH_CACHE_DIR/completions/_hcloud" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_hcloud"
zf_mv -f -- =( hcloud completion zsh 2> /dev/null ) "$TMPPREFIX"
} &|
# Main alias
alias hc='hcloud'
+5 -1
View File
@@ -9,7 +9,11 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_helm" ]]; then
source "$ZSH_CACHE_DIR/completions/_helm"
else
source "$ZSH_CACHE_DIR/completions/_helm"
helm completion zsh | tee "$ZSH_CACHE_DIR/completions/_helm" >/dev/null &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_helm"
zf_mv -f -- =( helm completion zsh ) "$TMPPREFIX"
} &|
fi
alias h='helm'
+5 -2
View File
@@ -11,7 +11,11 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_jj" ]]; then
_comps[jj]=_jj
fi
COMPLETE=zsh jj >| "$ZSH_CACHE_DIR/completions/_jj" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_jj"
zf_mv -f -- =( COMPLETE=zsh jj ) "$TMPPREFIX"
} &|
function __jj_prompt_jj() {
local -a flags
@@ -72,4 +76,3 @@ alias jjsq='jj squash'
alias jjst='jj status'
alias jjwa='jj workspace add'
alias jjwf='jj workspace forget'
+5 -1
View File
@@ -11,4 +11,8 @@ fi
# and then generate it in the background. On first completion,
# the actual completion file will be loaded.
k9s completion zsh >| "$ZSH_CACHE_DIR/completions/_k9s" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_k9s"
zf_mv -f -- =( k9s completion zsh ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -11,7 +11,11 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_kind" ]]; then
fi
# Generate and load kind completion
kind completion zsh >! "$ZSH_CACHE_DIR/completions/_kind" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_kind"
zf_mv -f -- =( kind completion zsh ) "$TMPPREFIX"
} &|
# Register aliases
alias kicc="kind create cluster"
+5 -1
View File
@@ -10,7 +10,11 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_kubectl" ]]; then
_comps[kubectl]=_kubectl
fi
kubectl completion zsh 2> /dev/null >| "$ZSH_CACHE_DIR/completions/_kubectl" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_kubectl"
zf_mv -f -- =( kubectl completion zsh 2> /dev/null ) "$TMPPREFIX"
} &|
# This command is used a LOT both below and in daily life
alias k=kubectl
+1
View File
@@ -42,6 +42,7 @@ plugins=(... laravel)
| `pamen` | `php artisan make:enum` |
| `pami` | `php artisan make:interface` |
| `pamtr` | `php artisan make:trait` |
| `pamv` | `php artisan make:view` |
## Clears
+1
View File
@@ -31,6 +31,7 @@ alias pamcl='php artisan make:class'
alias pamen='php artisan make:enum'
alias pami='php artisan make:interface'
alias pamtr='php artisan make:trait'
alias pamv='php artisan make:view'
# Clears
+5 -1
View File
@@ -10,4 +10,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_minikube" ]]; then
_comps[minikube]=_minikube
fi
minikube completion zsh >| "$ZSH_CACHE_DIR/completions/_minikube" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_minikube"
zf_mv -f -- =( minikube completion zsh ) "$TMPPREFIX"
} &|
+12 -3
View File
@@ -1,9 +1,14 @@
if (( ! $+commands[mise] )); then
if (( $+commands[mise] )); then
_mise_bin=mise
elif [[ -x ~/.local/bin/mise ]]; then
_mise_bin=~/.local/bin/mise
else
return
fi
# Load mise hooks
eval "$(mise activate zsh)"
eval "$($_mise_bin activate zsh)"
unset _mise_bin
# If the completion file doesn't exist yet, we need to autoload it and
# bind it to `mise`. Otherwise, compinit will have already done that.
@@ -14,4 +19,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_mise" ]]; then
fi
# Generate and load mise completion
mise completion zsh >| "$ZSH_CACHE_DIR/completions/_mise" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_mise"
zf_mv -f -- =( mise completion zsh ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -11,7 +11,11 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_molecule" ]]; then
_comps[molecule]=_molecule
fi
_MOLECULE_COMPLETE=zsh_source molecule >| "$ZSH_CACHE_DIR/completions/_molecule" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_molecule"
zf_mv -f -- =( _MOLECULE_COMPLETE=zsh_source molecule ) "$TMPPREFIX"
} &|
# Alias
# molecule: https://docs.ansible.com/projects/molecule/
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_atlas" ]]; then
_comps[atlas]=_atlas
fi
atlas completion zsh >| "$ZSH_CACHE_DIR/completions/atlas" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_atlas"
zf_mv -f -- =( atlas completion zsh ) "$TMPPREFIX"
} &|
+10 -2
View File
@@ -7,7 +7,11 @@ if (( $+commands[nsc] )); then
_comps[nsc]=_nsc
fi
nsc completion zsh >| "$ZSH_CACHE_DIR/completions/_nsc" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_nsc"
zf_mv -f -- =( nsc completion zsh ) "$TMPPREFIX"
} &|
fi
if (( $+commands[nats] )); then
@@ -19,5 +23,9 @@ if (( $+commands[nats] )); then
_comps[nats]=_nats
fi
nats --completion-script-zsh >| "$ZSH_CACHE_DIR/completions/_nats" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_nats"
zf_mv -f -- =( nats --completion-script-zsh ) "$TMPPREFIX"
} &|
fi
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_ngrok" ]]; then
_comps[ngrok]=_ngrok
fi
ngrok completion zsh >| "$ZSH_CACHE_DIR/completions/_ngrok" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_ngrok"
zf_mv -f -- =( ngrok completion zsh ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_pass-cli" ]]; then
_comps[pass-cli]=_pass-cli
fi
pass-cli completions zsh >| "$ZSH_CACHE_DIR/completions/_pass-cli" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_pass-cli"
zf_mv -f -- =( pass-cli completions zsh ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -43,7 +43,11 @@ else
_comps[pipenv]=_pipenv
fi
_PIPENV_COMPLETE=zsh_source pipenv >| "$ZSH_CACHE_DIR/completions/_pipenv" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_pipenv"
zf_mv -f -- =( _PIPENV_COMPLETE=zsh_source pipenv ) "$TMPPREFIX"
} &|
fi
if zstyle -T ':omz:plugins:pipenv' auto-shell; then
+5 -1
View File
@@ -10,7 +10,11 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_podman" ]]; then
_comps[podman]=_podman
fi
podman completion zsh 2> /dev/null >| "$ZSH_CACHE_DIR/completions/_podman" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_podman"
zf_mv -f -- =( podman completion zsh 2> /dev/null ) "$TMPPREFIX"
} &|
alias pbl='podman build'
alias pcin='podman container inspect'
+5 -1
View File
@@ -39,4 +39,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_poetry" ]]; then
_comps[poetry]=_poetry
fi
poetry completions zsh >| "$ZSH_CACHE_DIR/completions/_poetry" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_poetry"
zf_mv -f -- =( poetry completions zsh ) "$TMPPREFIX"
} &|
+10 -6
View File
@@ -10,12 +10,16 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_procs" ]]; then
_comps[procs]=_procs
fi
{
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_procs"
autoload -Uz is-at-least
local _version=$(procs --version)
if is-at-least "0.14" "${_version#procs }"; then
procs --gen-completion-out zsh >| "$ZSH_CACHE_DIR/completions/_procs"
else
procs --completion-out zsh >| "$ZSH_CACHE_DIR/completions/_procs"
fi
zf_mv -f -- =(
if is-at-least "0.14" "${_version#procs }"; then
procs --gen-completion-out zsh
else
procs --completion-out zsh
fi
) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -10,7 +10,11 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_pulumi" ]]; then
_comps[pulumi]=_pulumi
fi
pulumi gen-completion zsh >| "$ZSH_CACHE_DIR/completions/_pulumi" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_pulumi"
zf_mv -f -- =( pulumi gen-completion zsh ) "$TMPPREFIX"
} &|
# Aliases
alias pul='pulumi'
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_qodana" ]]; then
_comps[qodana]=_qodana
fi
qodana completion zsh >| "$ZSH_CACHE_DIR/completions/_qodana" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_qodana"
zf_mv -f -- =( qodana completion zsh ) "$TMPPREFIX"
} &|
+27
View File
@@ -54,6 +54,33 @@ plugins=(... rails)
| `rta` | `rails test:all` | Runs all Rails tests, including system tests |
| `ru` | `rails runner` | Run Ruby code in the context of Rails |
### Multiple databases
Rails applications can define more than one database (`primary`, `cache`, `cable`,
`queue`, ...), and each one gets its own namespaced task. These commands accept an
optional database name as the first argument:
`rdc`, `rdd`, `rdm`, `rdmd`, `rdmr`, `rdms`, `rdmu`, `rdr`, `rdrs`, `rdsl`
```zsh
rdm # rails db:migrate
rdm cache # rails db:migrate:cache
rdm VERSION=20231225 # rails db:migrate VERSION=20231225
rdm cache STEP=2 # rails db:migrate:cache STEP=2
rdm --trace # rails db:migrate --trace
```
The first argument is read as a database name only when it is a bare word. Flags
(`--trace`), variables (`STEP=2`) and other tasks (`db:seed`) are passed through to
`rails` unchanged, so previous usage keeps working. When a database name is given,
the resolved command is printed so it is clear which database is being used.
`rdmrs` is not in the list above because Rails does not define a per-database
`db:migrate:reset` task.
Note that these are implemented as shell functions rather than aliases, so they will
not appear in the output of `alias`.
### Foreman
| Alias | Command | Description |
+41 -10
View File
@@ -47,19 +47,9 @@ alias rc='rails console'
alias rcs='rails console --sandbox'
alias rd='rails destroy'
alias rdb='rails dbconsole'
alias rdc='rails db:create'
alias rdd='rails db:drop'
alias rdm='rails db:migrate'
alias rdmd='rails db:migrate:down'
alias rdmr='rails db:migrate:redo'
alias rdmrs='rails db:migrate:reset'
alias rdms='rails db:migrate:status'
alias rdmtc='rails db:migrate db:test:clone'
alias rdmu='rails db:migrate:up'
alias rdr='rails db:rollback'
alias rdrs='rails db:reset'
alias rds='rails db:seed'
alias rdsl='rails db:schema:load'
alias rdtc='rails db:test:clone'
alias rdtp='rails db:test:prepare'
alias rgen='rails generate'
@@ -106,6 +96,47 @@ alias rkn='rake notes'
alias rksts='rake stats'
alias rkt='rake test'
# Database tasks
#
# Rails applications can define more than one database (primary, cache, cable,
# queue, ...). Each one gets its own namespaced task, e.g. `db:migrate:cache`.
# The functions below take an optional database name as the first argument:
#
# rdm -> rails db:migrate
# rdm cache -> rails db:migrate:cache
# rdm VERSION=20231225 -> rails db:migrate VERSION=20231225
# rdm cache STEP=2 -> rails db:migrate:cache STEP=2
# rdm --trace -> rails db:migrate --trace
#
# The first argument is read as a database name only when it is a bare word.
# Flags (--trace), variables (STEP=2) and other tasks (db:seed) are passed
# through to rails untouched, so the previous alias behavior still works.
function _rails_db_command() {
local task="$1"
shift
if [[ $# -gt 0 && "$1" != -* && "$1" != *=* && "$1" != *:* ]]; then
task="$task:$1"
shift
# Echo the resolved task so it is clear which database is being used
local -a cmd=(rails "$task" "$@")
print -u2 -r -- "Running: ${cmd[*]}"
fi
rails "$task" "$@"
}
function rdc() { _rails_db_command db:create "$@" }
function rdd() { _rails_db_command db:drop "$@" }
function rdm() { _rails_db_command db:migrate "$@" }
function rdmd() { _rails_db_command db:migrate:down "$@" }
function rdmr() { _rails_db_command db:migrate:redo "$@" }
function rdms() { _rails_db_command db:migrate:status "$@" }
function rdmu() { _rails_db_command db:migrate:up "$@" }
function rdr() { _rails_db_command db:rollback "$@" }
function rdrs() { _rails_db_command db:reset "$@" }
function rdsl() { _rails_db_command db:schema:load "$@" }
# legacy stuff
alias sc='ruby script/console'
alias sd='ruby script/destroy'
+5 -1
View File
@@ -10,7 +10,11 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_rbw" ]]; then
_comps[rbw]=_rbw
fi
rbw gen-completions zsh >| "$ZSH_CACHE_DIR/completions/_rbw" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_rbw"
zf_mv -f -- =( rbw gen-completions zsh ) "$TMPPREFIX"
} &|
# rbwpw function copies the password of a service to the clipboard
# and clears it after 20 seconds
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_rclone" ]]; then
_comps[rclone]=_rclone
fi
rclone completion zsh - >| "$ZSH_CACHE_DIR/completions/_rclone" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_rclone"
zf_mv -f -- =( rclone completion zsh - ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -19,7 +19,11 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_rustup" ]]; then
fi
# Generate completion files in the background
rustup completions zsh >| "$ZSH_CACHE_DIR/completions/_rustup" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_rustup"
zf_mv -f -- =( rustup completions zsh ) "$TMPPREFIX"
} &|
cat >| "$ZSH_CACHE_DIR/completions/_cargo" <<'EOF'
#compdef cargo
source "$(rustup run ${${(z)$(rustup default)}[1]} rustc --print sysroot)"/share/zsh/site-functions/_cargo
+5 -1
View File
@@ -12,7 +12,11 @@ function install_autocompletion {
_comps[$1]=_$1
fi
$1 completion zsh >| "$ZSH_CACHE_DIR/completions/_$1" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_$1"
zf_mv -f -- =( $1 completion zsh ) "$TMPPREFIX"
} "$1" &|
}
install_autocompletion cosign
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_skaffold" ]]; then
_comps[skaffold]=_skaffold
fi
skaffold completion zsh >| "$ZSH_CACHE_DIR/completions/_skaffold" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_skaffold"
zf_mv -f -- =( skaffold completion zsh ) "$TMPPREFIX"
} &|
+10 -2
View File
@@ -101,10 +101,18 @@ if zstyle -t :omz:plugins:ssh-agent agent-forwarding \
&& [[ -n "$SSH_AUTH_SOCK" ]]; then
if [[ ! -L "$SSH_AUTH_SOCK" ]]; then
if [[ -n "$TERMUX_VERSION" ]]; then
ln -sf "$SSH_AUTH_SOCK" "$PREFIX"/tmp/ssh-agent-$USERNAME-screen
_omz_ssh_agent_link="$PREFIX"/tmp/ssh-agent-$USERNAME-screen
else
ln -sf "$SSH_AUTH_SOCK" /tmp/ssh-agent-$USERNAME-screen
_omz_ssh_agent_link=/tmp/ssh-agent-$USERNAME-screen
fi
# `ln -sf` unlinks the old symlink and then creates the new one: two
# syscalls, no atomic swap. Shells starting concurrently (a tmux window
# opening several panes at once) interleave those steps and all but one
# fail with "ln: ...: File exists". Stage the link under a PID-unique
# name and move it into place, since rename(2) is atomic.
command ln -sf "$SSH_AUTH_SOCK" "$_omz_ssh_agent_link.$$" \
&& command mv -f "$_omz_ssh_agent_link.$$" "$_omz_ssh_agent_link"
unset _omz_ssh_agent_link
fi
else
_start_agent
+5 -1
View File
@@ -10,4 +10,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_stripe" ]]; then
_comps[stripe]=_stripe
fi
stripe completion --shell zsh --write-to-stdout >| "$ZSH_CACHE_DIR/completions/_stripe" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_stripe"
zf_mv -f -- =( stripe completion --shell zsh --write-to-stdout ) "$TMPPREFIX"
} &|
@@ -19,6 +19,7 @@
ssm_run_sudo() {sudo $_sublime_merge_path "$@" >/dev/null 2>&1}
alias ssm=ssm_run_sudo
alias sm=sm_run
alias smerge="'$_sublime_merge_path'"
break
fi
done
@@ -33,6 +34,7 @@
if [[ -a $_sublime_merge_path ]]; then
subm () { "$_sublime_merge_path" "$@" }
alias sm=subm
alias smerge="'$_sublime_merge_path'"
break
fi
done
@@ -45,6 +47,7 @@
if [[ -a $_sublime_merge_path ]]; then
subm () { "$_sublime_merge_path" "$@" }
alias sm=subm
alias smerge="'$_sublime_merge_path'"
break
fi
done
+1 -1
View File
@@ -138,7 +138,7 @@ function consume100() {
# Website traffic statistics (G)
function webtraffic() {
awk "{sum+=$10} END {print sum/1024/1024/1024}" "$(retlog)"
awk '{sum+=$10} END {print sum/1024/1024/1024}' "$(retlog)"
}
# Statistical connections 404
+5 -1
View File
@@ -22,4 +22,8 @@ if (( $+aliases[tailscale] )); then
_comps[${aliases[tailscale]:t}]=_tailscale
fi
tailscale completion zsh >| "$ZSH_CACHE_DIR/completions/_tailscale" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_tailscale"
zf_mv -f -- =( tailscale completion zsh ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_task" ]]; then
fi
# Generate and load task completion
task --completion zsh >! "$ZSH_CACHE_DIR/completions/_task" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_task"
zf_mv -f -- =( task --completion zsh ) "$TMPPREFIX"
} &|
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_timoni" ]]; then
_comps[timoni]=_timoni
fi
timoni completion zsh >| "$ZSH_CACHE_DIR/completions/_timoni" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_timoni"
zf_mv -f -- =( timoni completion zsh ) "$TMPPREFIX"
} &|
+9 -2
View File
@@ -43,5 +43,12 @@ fi
# uv and uvx are installed together (uvx is an alias to `uv tool run`)
# Overwrites the file each time as completions might change with uv versions.
uv generate-shell-completion zsh >| "$ZSH_CACHE_DIR/completions/_uv" &|
uvx --generate-shell-completion zsh >| "$ZSH_CACHE_DIR/completions/_uvx" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_uv"
zf_mv -f -- =( uv generate-shell-completion zsh ) "$TMPPREFIX"
} &|
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_uvx"
zf_mv -f -- =( uvx --generate-shell-completion zsh ) "$TMPPREFIX"
} &|
+1
View File
@@ -47,6 +47,7 @@ _box_arguments=(
'help:COMMAND List subcommands'
'list:Lists all installed boxes'
'outdated:Checks if a box has newer version'
'prune:Removes old versions of installed boxes'
'remove:NAME Removes a box from the system'
'repackage:NAME PROVIDER VERSION Repackages an installed box into a `.box` file'
'update:Updates box to a newer version, if available'
+5 -1
View File
@@ -11,4 +11,8 @@ if [[ ! -f "$ZSH_CACHE_DIR/completions/_volta" ]]; then
_comps[volta]=_volta
fi
volta completions zsh >| "$ZSH_CACHE_DIR/completions/_volta" &|
zmodload -F zsh/files b:zf_mv
() {
local TMPPREFIX="$ZSH_CACHE_DIR/completions/_volta"
zf_mv -f -- =( volta completions zsh ) "$TMPPREFIX"
} &|
+2 -2
View File
@@ -221,12 +221,12 @@ supports_hyperlinks() {
# If $TERM_PROGRAM is set, these terminals support hyperlinks
case "$TERM_PROGRAM" in
Hyper|iTerm.app|terminology|WezTerm|vscode) return 0 ;;
ghostty|Hyper|iTerm.app|terminology|vscode|WezTerm) return 0 ;;
esac
# These termcap entries support hyperlinks
case "$TERM" in
xterm-kitty|alacritty|alacritty-direct) return 0 ;;
alacritty|alacritty-direct|xterm-ghostty|xterm-kitty) return 0 ;;
esac
# xfce4-terminal supports hyperlinks
+1 -1
View File
@@ -28,7 +28,7 @@ zstyle -s ':omz:update' mode update_mode || {
if [[ "$update_mode" = disabled ]] \
|| [[ ! -w "$ZSH" || ! -O "$ZSH" ]] \
|| [[ ! -t 1 && ${POWERLEVEL9K_INSTANT_PROMPT:-off} == off ]] \
|| ! command git --version 2>&1 >/dev/null \
|| ! command git --version >/dev/null 2>&1 \
|| (builtin cd -q "$ZSH"; ! command git rev-parse --is-inside-work-tree &>/dev/null); then
unset update_mode
return
+27 -5
View File
@@ -49,9 +49,31 @@ USER=${USER:-$(id -u -n)}
# $HOME is defined at the time of login, but it could be unset. If it is unset,
# a tilde by itself (~) will not be expanded to the current user's home directory.
# POSIX: https://pubs.opengroup.org/onlinepubs/009696899/basedefs/xbd_chap08.html#tag_08_03
HOME="${HOME:-$(getent passwd $USER 2>/dev/null | cut -d: -f6)}"
# macOS does not have getent, but this works even if $HOME is unset
HOME="${HOME:-$(eval echo ~"$USER")}"
if [ -z "$HOME" ]; then
HOME=$(getent passwd "$USER" 2>/dev/null | cut -d: -f6)
# macOS does not have getent; fall back to tilde expansion, but only if
# $USER is a safe username. The eval below would otherwise expand any shell
# metacharacters in $USER and allow command injection (CWE-78).
case "$USER" in
*[![:alnum:]_.-]*|'')
;;
*)
resolved_home=$(eval echo ~"$USER")
# Unknown users are not expanded and produce a literal "~username".
[ "$resolved_home" = "~$USER" ] || HOME=$resolved_home
;;
esac
case "$HOME" in
/*) ;;
*)
echo "Error: unable to determine the current user's home directory." >&2
echo "Set HOME explicitly and rerun the installer." >&2
exit 1
;;
esac
fi
# Track if $ZSH was provided
@@ -168,12 +190,12 @@ supports_hyperlinks() {
# If $TERM_PROGRAM is set, these terminals support hyperlinks
case "$TERM_PROGRAM" in
Hyper|iTerm.app|terminology|WezTerm|vscode) return 0 ;;
ghostty|Hyper|iTerm.app|terminology|vscode|WezTerm) return 0 ;;
esac
# These termcap entries support hyperlinks
case "$TERM" in
xterm-kitty|alacritty|alacritty-direct) return 0 ;;
alacritty|alacritty-direct|xterm-ghostty|xterm-kitty) return 0 ;;
esac
# xfce4-terminal supports hyperlinks
+2 -2
View File
@@ -95,12 +95,12 @@ supports_hyperlinks() {
# If $TERM_PROGRAM is set, these terminals support hyperlinks
case "$TERM_PROGRAM" in
Hyper|iTerm.app|terminology|WezTerm|vscode) return 0 ;;
ghostty|Hyper|iTerm.app|terminology|vscode|WezTerm) return 0 ;;
esac
# These termcap entries support hyperlinks
case "$TERM" in
xterm-kitty|alacritty|alacritty-direct) return 0 ;;
alacritty|alacritty-direct|xterm-ghostty|xterm-kitty) return 0 ;;
esac
# xfce4-terminal supports hyperlinks