48 Commits

Author SHA1 Message Date
dependabot[bot]
0da938f05f chore(deps): bump step-security/harden-runner from 2.15.1 to 2.16.0
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.15.1 to 2.16.0.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](58077d3c7e...fa2e9d605c)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-22 12:52:21 +00:00
Nikan Eidi
44394e7225 feat(docker): add aliases for container, network, and system prune (#13612)
* feat(docker): add aliases for container, network, and system prune

This PR adds missing aliases for Docker prune commands (container, network, and system) to the docker plugin, improving consistency with the existing image and volume prune aliases.

* docs(docker): add prune aliases to README

Added 'dcprune', 'dnprune', and 'dsprune' aliases for container, network, and system pruning.

* docs(docker): add prune aliases to README
2026-03-19 09:05:20 -07:00
Halil Özgür
4daba14316 refactor(bundler): Remove bundle_install and just use: bundle install (#13617) 2026-03-18 09:26:47 -07:00
Rohan Santhosh Kumar
bec3f2244a docs(vscode): fix typo (#13627)
Co-authored-by: rohan436 <rohan.santhoshkumar@googlemail.com>
2026-03-16 12:00:44 +01:00
dependabot[bot]
b42f22643a chore(deps): bump actions/create-github-app-token from 2.2.1 to 3.0.0 (#13636)
Bumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 2.2.1 to 3.0.0.
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](29824e69f5...f8d387b68d)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-16 07:52:03 +01:00
ohmyzsh[bot]
7de13621b3 chore(gradle): update to dd3a8adb (#13635)
Co-authored-by: ohmyzsh[bot] <54982679+ohmyzsh[bot]@users.noreply.github.com>
2026-03-15 09:26:19 +01:00
Alessandro Elio Cantini
8df5c1b18b fix(last-working-dir): use explicit return 0 in early-exit guards (#13623) 2026-03-10 10:52:12 +01:00
dependabot[bot]
d1222044bc chore(deps): bump charset-normalizer in /.github/workflows/dependencies (#13621)
Bumps [charset-normalizer](https://github.com/jawah/charset_normalizer) from 3.4.4 to 3.4.5.
- [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.4.4...3.4.5)

---
updated-dependencies:
- dependency-name: charset-normalizer
  dependency-version: 3.4.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 21:20:56 +01:00
dependabot[bot]
44c0e856f8 chore(deps): bump github/codeql-action from 4.32.4 to 4.32.6 (#13622)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.32.4 to 4.32.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](89a39a4e59...0d579ffd05)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.32.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 21:20:27 +01:00
dependabot[bot]
2bc4538c36 chore(deps): bump step-security/harden-runner from 2.15.0 to 2.15.1 (#13620)
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.15.0 to 2.15.1.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](a90bcbc653...58077d3c7e)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-version: 2.15.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 21:20:08 +01:00
layla
1e3abc123f chore: change freeBSD to FreeBSD (#13614) 2026-03-06 12:09:18 +01:00
ohmyzsh[bot]
abc2372919 chore(history-substring-search): update to version 14c8d2e0 (#13521)
Co-authored-by: ohmyzsh[bot] <54982679+ohmyzsh[bot]@users.noreply.github.com>
Co-authored-by: Marc Cornellà <marc@mcornella.com>
2026-03-06 11:09:41 +01:00
Markus Hofbauer
5292fea2ba feat(pre-commit): add prek support (#13529)
Closes #13432
2026-03-04 09:28:48 +01:00
Nicknamess96
4f8632db32 docs(jj): compatibility with git async prompt (#13602)
Co-authored-by: Nicknames96 <nicknames96@users.noreply.github.com>
2026-03-04 09:25:22 +01:00
ohmyzsh[bot]
bf2948322b chore(kube-ps1): update to 9b41c091 (#13522)
Co-authored-by: ohmyzsh[bot] <54982679+ohmyzsh[bot]@users.noreply.github.com>
2026-03-03 20:08:07 +01:00
dependabot[bot]
25d4d753bf chore(deps): bump certifi in /.github/workflows/dependencies (#13600)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 16:42:33 +01:00
dependabot[bot]
3fd2331ae8 chore(deps): bump step-security/harden-runner from 2.14.2 to 2.15.0 (#13601)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 16:42:13 +01:00
dependabot[bot]
6bb9718dd2 chore(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 (#13599)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 16:41:50 +01:00
PascalKont
5c4f27b716 feat(molecule): introduce molecule aliases (#13594) 2026-02-25 11:42:24 +01:00
Adam Spiers
400591e71c fix(colored-man-pages): quote array expansion (#13591) 2026-02-23 11:33:24 +01:00
Jason
536515d186 docs(yum): fix typo (#13589) 2026-02-23 10:46:40 +01:00
nervo
2117ee5cf7 feat(molecule): introduce molecule plugin (#12760) 2026-02-23 10:43:26 +01:00
dependabot[bot]
7f8d6b1fca chore(deps): bump github/codeql-action from 4.32.3 to 4.32.4 (#13590)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-23 10:41:05 +01:00
Grigorii Sokolik
52d93f18d6 feat(virtualenvwrapper): add archlinux support (#13584) 2026-02-19 11:57:49 +01:00
Eve
44f2a128aa fix(thefuck): quote ZSH_CACHE_DIR path (#13569)
path wasnt quoted, would break if it had spaces
2026-02-18 12:34:12 +01:00
Eve
45dd7d006a fix(zsh-navigation-tools): quote some potential space-filled strings (#13567) 2026-02-16 12:10:27 +01:00
Thomas Witt
993afc8267 feat(dotenv): add named pipe (FIFO) support (#13561) 2026-02-16 12:08:13 +01:00
c0mpile
a8aca3fba5 fix(dnf): ensure correct alias for different version (#13559) 2026-02-16 12:01:00 +01:00
dependabot[bot]
cdd31a7ab3 chore(deps): bump github/codeql-action from 4.32.2 to 4.32.3 (#13570)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.32.2 to 4.32.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](45cbd0c69e...9e907b5e64)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.32.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 09:14:58 +01:00
Ranga Nirmal
88659ed193 fix(appearance): ensure arg separation in test-ls-args (#13556)
Co-authored-by: Marc Cornellà <marc@mcornella.com>
2026-02-11 12:31:06 +01:00
dependabot[bot]
41c5b9677a chore(deps): bump github/codeql-action from 4.32.0 to 4.32.2 (#13558)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.32.0 to 4.32.2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](b20883b0cd...45cbd0c69e)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.32.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-08 21:09:55 +01:00
dependabot[bot]
116be8badd chore(deps): bump step-security/harden-runner from 2.14.1 to 2.14.2 (#13557)
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.14.1 to 2.14.2.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](e3f713f2d8...5ef0c079ce)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-version: 2.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-08 21:09:10 +01:00
dependabot[bot]
9df4ea095f chore(deps): bump step-security/harden-runner from 2.14.0 to 2.14.1 (#13547)
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.14.0 to 2.14.1.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](20cf305ff2...e3f713f2d8)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-version: 2.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-02 09:49:29 +01:00
dependabot[bot]
1a253c375a chore(deps): bump github/codeql-action from 4.31.11 to 4.32.0 (#13548)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.31.11 to 4.32.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](19b2f06db2...b20883b0cd)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-02 09:49:06 +01:00
dependabot[bot]
67cd8c4673 chore(deps): bump github/codeql-action from 4.31.10 to 4.31.11 (#13539)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.31.10 to 4.31.11.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](cdefb33c0f...19b2f06db2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.31.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-26 08:14:57 +01:00
dependabot[bot]
0074e724f8 chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 (#13541)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](8e8c483db8...de0fac2e45)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-26 08:14:24 +01:00
dependabot[bot]
db66764f46 chore(deps): bump actions/setup-python from 6.1.0 to 6.2.0 (#13540)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](83679a892e...a309ff8b42)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-25 16:10:50 +01:00
HOHOH134
e076690551 feat(gitignore): use cdn as endpoint (#13497) 2026-01-20 10:21:56 +01:00
Vinfall
233e81db4e feat(command-not-found): support void linux (#13531) 2026-01-20 10:15:02 +01:00
Robby Russell
99b243b9a9 chore: add AI guidelines (#13520)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-19 09:25:59 +01:00
dependabot[bot]
4677b798aa chore(deps): bump github/codeql-action from 4.31.9 to 4.31.10 (#13524)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-19 09:22:09 +01:00
Arbian Shkodra
834fbf3711 feat(hcloud): add plugin for Hetzner Cloud CLI (#13473)
Add a new plugin for the Hetzner Cloud CLI (hcloud) with:
- Auto-completion support
- Comprehensive aliases for all major hcloud commands
- Context management shortcuts
- Server, volume, network, and firewall management aliases
- Load balancer and certificate management shortcuts
- Documentation with complete alias reference
2026-01-18 09:50:45 -08:00
Sassan torabkheslat
47e990ccad feat(brew): add aliases for reinstall and HEAD install (#13446)
Add new aliases:
- br: brew reinstall
- bih: brew install --HEAD
- brh: brew reinstall --HEAD
2026-01-18 09:48:55 -08:00
Olexandr88
ec14da72fb chore: update LICENSE (#13509) 2026-01-14 18:54:21 +01:00
Match
35068db837 feat(jj): add alias for jj abandon (#13510) 2026-01-11 12:54:11 +01:00
Carlo Sala
871d4b9816 fix(1password)!: remove v1 support (#13507)
BREAKING CHANGE: `op` v1 support has been removed. Please migrate to v2
if you are affected by this change.
2026-01-08 12:02:40 +01:00
Halil Özgür
ed21aa1961 fix(mise)!: remove unneeded hook-env call (#13491)
BREAKING CHANGE: Backwards compatibility for `rtx` has been removed.
Please migrate to `mise` if you are affected by this change.
2026-01-08 11:43:14 +01:00
dependabot[bot]
6634f44826 chore(deps): bump urllib3 in /.github/workflows/dependencies (#13506)
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.2 to 2.6.3.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.6.2...2.6.3)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-version: 2.6.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 09:28:11 +01:00
48 changed files with 523 additions and 196 deletions

View File

@@ -7,6 +7,7 @@
- [ ] I have read the contribution guide and followed all the instructions. - [ ] I have read the contribution guide and followed all the instructions.
- [ ] The code follows the code style guide detailed in the wiki. - [ ] The code follows the code style guide detailed in the wiki.
- [ ] The code is mine or it's from somewhere with an MIT-compatible license. - [ ] The code is mine or it's from somewhere with an MIT-compatible license.
- [ ] If I used AI tools (ChatGPT, Claude, Gemini, etc.) to assist with this contribution, I've disclosed it below.
- [ ] The code is efficient, to the best of my ability, and does not waste computer resources. - [ ] The code is efficient, to the best of my ability, and does not waste computer resources.
- [ ] The code is stable and I have tested it myself, to the best of my abilities. - [ ] The code is stable and I have tested it myself, to the best of my abilities.
- [ ] If the code introduces new aliases, I provide a valid use case for all plugin users down below. - [ ] If the code introduces new aliases, I provide a valid use case for all plugin users down below.

View File

@@ -12,14 +12,14 @@ dependencies:
plugins/gradle: plugins/gradle:
repo: gradle/gradle-completion repo: gradle/gradle-completion
branch: master branch: master
version: a9d7c822e42cc6a5b028b59e46cffcc8e7bc1134 version: dd3a8adb47e51b1f6e4dc180cb04bd02d5fccd4a
precopy: | precopy: |
set -e set -e
find . ! -name _gradle ! -name LICENSE -delete find . ! -name _gradle ! -name LICENSE -delete
plugins/history-substring-search: plugins/history-substring-search:
repo: zsh-users/zsh-history-substring-search repo: zsh-users/zsh-history-substring-search
branch: master branch: master
version: 87ce96b1862928d84b1afe7c173316614b30e301 version: 14c8d2e0ffaee98f2df9850b19944f32546fdea5
precopy: | precopy: |
set -e set -e
rm -f zsh-history-substring-search.plugin.zsh rm -f zsh-history-substring-search.plugin.zsh
@@ -30,7 +30,7 @@ dependencies:
plugins/kube-ps1: plugins/kube-ps1:
repo: jonmosco/kube-ps1 repo: jonmosco/kube-ps1
branch: master branch: master
version: 0b0e6daf4197ecabb1ae4f2d46fb148a8e1e73e5 version: 9b41c091d5dd4a99e58cf58b5d98a4847937b1bb
precopy: | precopy: |
set -e set -e
find . ! -name kube-ps1.sh ! -name LICENSE ! -name README.md -delete find . ! -name kube-ps1.sh ! -name LICENSE ! -name README.md -delete

View File

@@ -13,22 +13,22 @@ jobs:
contents: write # this is needed to push commits and branches contents: write # this is needed to push commits and branches
steps: steps:
- name: Harden the runner (Audit all outbound calls) - name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0 uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with: with:
egress-policy: audit egress-policy: audit
- name: Checkout - name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Authenticate as @ohmyzsh - name: Authenticate as @ohmyzsh
id: generate-token id: generate-token
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
with: with:
app-id: ${{ secrets.OHMYZSH_APP_ID }} app-id: ${{ secrets.OHMYZSH_APP_ID }}
private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }}
- name: Setup Python - name: Setup Python
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with: with:
python-version: "3.12" python-version: "3.12"
cache: "pip" cache: "pip"

View File

@@ -1,7 +1,7 @@
certifi==2026.1.4 certifi==2026.2.25
charset-normalizer==3.4.4 charset-normalizer==3.4.5
idna==3.11 idna==3.11
PyYAML==6.0.3 PyYAML==6.0.3
requests==2.32.5 requests==2.32.5
semver==3.0.4 semver==3.0.4
urllib3==2.6.2 urllib3==2.6.3

View File

@@ -26,12 +26,12 @@ jobs:
- macos-latest - macos-latest
steps: steps:
- name: Harden the runner (Audit all outbound calls) - name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0 uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with: with:
egress-policy: audit egress-policy: audit
- name: Set up git repository - name: Set up git repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install zsh - name: Install zsh
if: runner.os == 'Linux' if: runner.os == 'Linux'
run: sudo apt-get update; sudo apt-get install zsh run: sudo apt-get update; sudo apt-get install zsh
@@ -47,12 +47,12 @@ jobs:
- test - test
steps: steps:
- name: Harden the runner (Audit all outbound calls) - name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0 uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with: with:
egress-policy: audit egress-policy: audit
- name: Checkout - name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install Vercel CLI - name: Install Vercel CLI
run: npm install -g vercel run: npm install -g vercel
- name: Setup project and deploy - name: Setup project and deploy

View File

@@ -24,12 +24,12 @@ jobs:
if: github.repository == 'ohmyzsh/ohmyzsh' if: github.repository == 'ohmyzsh/ohmyzsh'
steps: steps:
- name: Harden the runner (Audit all outbound calls) - name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0 uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with: with:
egress-policy: audit egress-policy: audit
- name: Set up git repository - name: Set up git repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install zsh - name: Install zsh
run: sudo apt-get update; sudo apt-get install zsh run: sudo apt-get update; sudo apt-get install zsh
- name: Check syntax - name: Check syntax

View File

@@ -17,12 +17,12 @@ jobs:
if: github.repository == 'ohmyzsh/ohmyzsh' if: github.repository == 'ohmyzsh/ohmyzsh'
steps: steps:
- name: Harden the runner (Audit all outbound calls) - name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0 uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with: with:
egress-policy: audit egress-policy: audit
- name: Authenticate as @ohmyzsh - name: Authenticate as @ohmyzsh
id: generate-token id: generate-token
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
with: with:
app-id: ${{ secrets.OHMYZSH_APP_ID }} app-id: ${{ secrets.OHMYZSH_APP_ID }}
private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }}

View File

@@ -36,12 +36,12 @@ jobs:
steps: steps:
- name: Harden the runner (Audit all outbound calls) - name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0 uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with: with:
egress-policy: audit egress-policy: audit
- name: "Checkout code" - name: "Checkout code"
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: with:
persist-credentials: false persist-credentials: false
@@ -53,13 +53,13 @@ jobs:
publish_results: true publish_results: true
- name: "Upload artifact" - name: "Upload artifact"
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with: with:
name: SARIF file name: SARIF file
path: results.sarif path: results.sarif
retention-days: 5 retention-days: 5
- name: "Upload to code-scanning" - name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9 uses: github/codeql-action/upload-sarif@0d579ffd059c29b07949a3cce3983f0780820c98 # v4.32.6
with: with:
sarif_file: results.sarif sarif_file: results.sarif

View File

@@ -20,6 +20,7 @@ you would make is not already covered.
- [Getting started](#getting-started) - [Getting started](#getting-started)
- [You have a solution](#you-have-a-solution) - [You have a solution](#you-have-a-solution)
- [You have an addition](#you-have-an-addition) - [You have an addition](#you-have-an-addition)
- [A note on AI-assisted contributions](#a-note-on-ai-assisted-contributions)
- [Use the Search, Luke](#use-the-search-luke) - [Use the Search, Luke](#use-the-search-luke)
- [Commit Guidelines](#commit-guidelines) - [Commit Guidelines](#commit-guidelines)
- [Format](#format) - [Format](#format)
@@ -125,6 +126,30 @@ Because of this, from now on, we require that new aliases follow these condition
This list is not exhaustive! Please remember that your alias will be in the machines of many people, This list is not exhaustive! Please remember that your alias will be in the machines of many people,
so it should be justified why they should have it. so it should be justified why they should have it.
## A note on AI-assisted contributions
We'll admit it: AI tools can be pretty helpful for coding tasks, and we're not here to gatekeep how you get your work done. We use these tools ourselves! 🤖
But here's the thing—Oh My Zsh is maintained by a small team of volunteers who do this in their spare time. We already have hundreds of pending PRs, and we want to make sure we're spending our limited time effectively.
If you used AI tools meaningfully in your contribution (code generation, agentic coding assistants, etc.), please mention it in your PR description. Basic autocomplete doesn't count, but if an AI wrote substantial parts of your code, just let us know.
**Examples of good disclosure:**
- "Used ChatGPT to help generate the initial regex pattern for parsing git status output"
- "Claude assisted with writing the unit tests for this feature"
- "Generated with Gemini and then reviewed/tested manually"
- Or simply: "AI-assisted" in your PR description
Here's what we're looking for:
- **You understand your code**: You should be able to explain what your contribution does and how it works. We want to collaborate with humans who are invested in the project.
- **Context matters**: Tell us what problem you're solving, how you tested it, and link to relevant docs. Small, incremental changes work better than massive generated overhauls.
- **Quality over quantity**: We'd rather have one thoughtful, well-tested contribution than ten AI-generated PRs that need extensive review.
The disclosure helps us know how much guidance to offer. If we're just reviewing AI output that you can't explain or improve, that changes the dynamic—and frankly, it's not a great use of anyone's time.
As always, we reserve the right to decline any contribution. PRs that appear to be unreviewed AI output, or code the contributor can't explain, may be closed without extensive feedback.
---- ----
## Use the Search, Luke ## Use the Search, Luke

View File

@@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2009-2025 Robby Russell and contributors (https://github.com/ohmyzsh/ohmyzsh/contributors) Copyright (c) 2009-2026 Robby Russell and contributors (https://github.com/ohmyzsh/ohmyzsh/contributors)
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -46,7 +46,7 @@ Twitter), and join us on [Discord](https://discord.gg/ohmyzsh).
- [Manual Installation](#manual-installation) - [Manual Installation](#manual-installation)
- [Installation Problems](#installation-problems) - [Installation Problems](#installation-problems)
- [Custom Plugins And Themes](#custom-plugins-and-themes) - [Custom Plugins And Themes](#custom-plugins-and-themes)
- [Enable GNU ls In macOS And freeBSD Systems](#enable-gnu-ls-in-macos-and-freebsd-systems) - [Enable GNU ls In macOS And FreeBSD Systems](#enable-gnu-ls-in-macos-and-freebsd-systems)
- [Skip Aliases](#skip-aliases) - [Skip Aliases](#skip-aliases)
- [Async git prompt](#async-git-prompt) - [Async git prompt](#async-git-prompt)
- [Getting Updates](#getting-updates) - [Getting Updates](#getting-updates)
@@ -70,7 +70,7 @@ Twitter), and join us on [Discord](https://discord.gg/ohmyzsh).
| O/S | Status | | O/S | Status |
| :------------- | :----: | | :------------- | :----: |
| Android | ✅ | | Android | ✅ |
| freeBSD | ✅ | | FreeBSD | ✅ |
| LCARS | 🛸 | | LCARS | 🛸 |
| Linux | ✅ | | Linux | ✅ |
| macOS | ✅ | | macOS | ✅ |
@@ -349,7 +349,7 @@ If you have many functions that go well together, you can put them as a `XYZ.plu
If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the
same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`. same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`.
### Enable GNU ls In macOS And freeBSD Systems ### Enable GNU ls In macOS And FreeBSD Systems
<a name="enable-gnu-ls"></a> <a name="enable-gnu-ls"></a>

View File

@@ -40,9 +40,9 @@ if [[ -z "$LS_COLORS" ]]; then
fi fi
function test-ls-args { function test-ls-args {
local cmd="$1" # ls, gls, colorls, ... # Usage: test-ls-args cmd args...
local args="${@[2,-1]}" # arguments except the first one # e.g. test-ls-args gls --color
command "$cmd" "$args" /dev/null &>/dev/null command "$@" /dev/null &>/dev/null
} }
# Find the option for using colors in ls, depending on the version # Find the option for using colors in ls, depending on the version

View File

@@ -6,14 +6,4 @@ function _opswd() {
[[ -z "$services" ]] || compadd -a -- services [[ -z "$services" ]] || compadd -a -- services
} }
# TODO: 2022-03-26: Remove support for op CLI 1
autoload -Uz is-at-least
is-at-least 2.0.0 $(op --version) || {
function _opswd() {
local -a services
services=("${(@f)$(op list items --categories Login 2>/dev/null | op get item - --fields title 2>/dev/null)}")
[[ -z "$services" ]] || compadd -a -- services
}
}
_opswd "$@" _opswd "$@"

View File

@@ -46,45 +46,4 @@ function opswd() {
(sleep 20 && clipcopy </dev/null 2>/dev/null) &! (sleep 20 && clipcopy </dev/null 2>/dev/null) &!
} }
# TODO: 2022-03-26: Remove support for op CLI 1
autoload -Uz is-at-least
is-at-least 2.0.0 $(op --version) || {
print -ru2 ${(%):-"%F{yellow}opswd: usage with op version $(op --version) is deprecated. Upgrade to CLI 2 and reload zsh.
For instructions, see https://developer.1password.com/docs/cli/upgrade.%f"}
# opswd puts the password of the named service into the clipboard. If there's a
# one time password, it will be copied into the clipboard after 10 seconds. The
# clipboard is cleared after another 20 seconds.
function opswd() {
if [[ $# -lt 1 ]]; then
echo "Usage: opswd <service>"
return 1
fi
local service=$1
# If not logged in, print error and return
op list users > /dev/null || return
local password
# Copy the password to the clipboard
if ! password=$(op get item "$service" --fields password 2>/dev/null); then
echo "error: could not obtain password for $service"
return 1
fi
echo -n "$password" | clipcopy
echo "✔ password for $service copied to clipboard"
# If there's a one time password, copy it to the clipboard after 5 seconds
local totp
if totp=$(op get totp "$service" 2>/dev/null) && [[ -n "$totp" ]]; then
sleep 10 && echo -n "$totp" | clipcopy
echo "✔ TOTP for $service copied to clipboard"
fi
(sleep 20 && clipcopy </dev/null 2>/dev/null) &!
}
}
opswd "$@" opswd "$@"

View File

@@ -35,11 +35,14 @@ the `brew` binary before sourcing `oh-my-zsh.sh` and it'll set up the environmen
| `bdr` | `brew doctor` | Check your system for potential problems. | | `bdr` | `brew doctor` | Check your system for potential problems. |
| `bfu` | `brew upgrade --formula` | Upgrade only formulae (not casks). | | `bfu` | `brew upgrade --formula` | Upgrade only formulae (not casks). |
| `bi` | `brew install` | Install a formula. | | `bi` | `brew install` | Install a formula. |
| `bih` | `brew install --HEAD` | Install a formula with --HEAD |
| `bl` | `brew list` | List all installed formulae. | | `bl` | `brew list` | List all installed formulae. |
| `bo` | `brew outdated` | List installed formulae that have an updated version available. | | `bo` | `brew outdated` | List installed formulae that have an updated version available. |
| `br` | `brew reinstall` | Reinstall a formula. |
| `brewp` | `brew pin` | Pin a specified formula so that it's not upgraded. | | `brewp` | `brew pin` | Pin a specified formula so that it's not upgraded. |
| `brews` | `brew list -1` | List installed formulae or the installed files for a given formula. | | `brews` | `brew list -1` | List installed formulae or the installed files for a given formula. |
| `brewsp` | `brew list --pinned` | List pinned formulae, or show the version of a given formula. | | `brewsp` | `brew list --pinned` | List pinned formulae, or show the version of a given formula. |
| `brh` | `brew reinstall --HEAD` | Reinstall a formula with --HEAD |
| `bs` | `brew search` | Perform a substring search of cask tokens and formula names for text. | | `bs` | `brew search` | Perform a substring search of cask tokens and formula names for text. |
| `bsl` | `brew services list` | List all running services. | | `bsl` | `brew services list` | List all running services. |
| `bsoff` | `brew services stop` | Stop the service and unregister it from launching at login (or boot). | | `bsoff` | `brew services stop` | Stop the service and unregister it from launching at login (or boot). |

View File

@@ -48,10 +48,13 @@ alias bcup='brew upgrade --cask'
alias bdr='brew doctor' alias bdr='brew doctor'
alias bfu='brew upgrade --formula' alias bfu='brew upgrade --formula'
alias bi='brew install' alias bi='brew install'
alias bih='brew install --HEAD'
alias bl='brew list' alias bl='brew list'
alias bo='brew outdated' alias bo='brew outdated'
alias br='brew reinstall'
alias brewp='brew pin' alias brewp='brew pin'
alias brewsp='brew list --pinned' alias brewsp='brew list --pinned'
alias brh='brew reinstall --HEAD'
alias bs='brew search' alias bs='brew search'
alias bsl='brew services list' alias bsl='brew services list'
alias bsoff='brew services stop' alias bsoff='brew services stop'

View File

@@ -11,18 +11,18 @@ plugins=(... bundler)
## Aliases ## Aliases
| Alias | Command | Description | | Alias | Command | Description |
|--------|--------------------------------------|------------------------------------------------------------------------------------------| | ------ | ----------------- | -------------------------------------------------------- |
| `ba` | `bundle add` | Add gem to the Gemfile and run bundle install | | `ba` | `bundle add` | Add gem to the Gemfile and run bundle install |
| `bck` | `bundle check` | Verifies if dependencies are satisfied by installed gems | | `bck` | `bundle check` | Verifies if dependencies are satisfied by installed gems |
| `bcn` | `bundle clean` | Cleans up unused gems in your bundler directory | | `bcn` | `bundle clean` | Cleans up unused gems in your bundler directory |
| `be` | `bundle exec` | Execute a command in the context of the bundle | | `be` | `bundle exec` | Execute a command in the context of the bundle |
| `bi` | `bundle install --jobs=<core_count>` | Install the dependencies specified in your Gemfile (using all cores in bundler >= 1.4.0) | | `bi` | `bundle install` | Install the dependencies specified in your Gemfile |
| `bl` | `bundle list` | List all the gems in the bundle | | `bl` | `bundle list` | List all the gems in the bundle |
| `bo` | `bundle open` | Opens the source directory for a gem in your bundle | | `bo` | `bundle open` | Opens the source directory for a gem in your bundle |
| `bout` | `bundle outdated` | List installed gems with newer versions available | | `bout` | `bundle outdated` | List installed gems with newer versions available |
| `bp` | `bundle package` | Package your needed .gem files into your application | | `bp` | `bundle package` | Package your needed .gem files into your application |
| `bu` | `bundle update` | Update your gems to the latest available versions | | `bu` | `bundle update` | Update your gems to the latest available versions |
## Gem wrapper ## Gem wrapper

View File

@@ -4,45 +4,13 @@ alias ba="bundle add"
alias bck="bundle check" alias bck="bundle check"
alias bcn="bundle clean" alias bcn="bundle clean"
alias be="bundle exec" alias be="bundle exec"
alias bi="bundle_install" alias bi="bundle install"
alias bl="bundle list" alias bl="bundle list"
alias bo="bundle open" alias bo="bundle open"
alias bout="bundle outdated" alias bout="bundle outdated"
alias bp="bundle package" alias bp="bundle package"
alias bu="bundle update" alias bu="bundle update"
## Functions
bundle_install() {
# Bail out if bundler is not installed
if (( ! $+commands[bundle] )); then
echo "Bundler is not installed"
return 1
fi
# Bail out if not in a bundled project
if ! _within-bundled-project; then
echo "Can't 'bundle install' outside a bundled project"
return 1
fi
# Check the bundler version is at least 1.4.0
autoload -Uz is-at-least
local bundler_version=$(bundle version | cut -d' ' -f3)
if ! is-at-least 1.4.0 "$bundler_version"; then
bundle install "$@"
return $?
fi
# If bundler is at least 1.4.0, use all the CPU cores to bundle install
if [[ "$OSTYPE" = (darwin|freebsd)* ]]; then
local cores_num="$(sysctl -n hw.ncpu)"
else
local cores_num="$(nproc)"
fi
BUNDLE_JOBS="$cores_num" bundle install "$@"
}
## Gem wrapper ## Gem wrapper
bundled_commands=( bundled_commands=(

View File

@@ -43,7 +43,7 @@ function colored() {
environment+=( PATH="${__colored_man_pages_dir}:$PATH" ) environment+=( PATH="${__colored_man_pages_dir}:$PATH" )
fi fi
command env $environment "$@" command env "${environment[@]}" "$@"
} }
# Colorize man and dman/debman (from debian-goodies) # Colorize man and dman/debman (from debian-goodies)

View File

@@ -22,14 +22,15 @@ Try: sudo apt install <selected package>
It works out of the box with the command-not-found packages for: It works out of the box with the command-not-found packages for:
- [Ubuntu](https://www.porcheron.info/command-not-found-for-zsh/) - [Ubuntu](https://launchpad.net/ubuntu/+source/command-not-found)
- [Debian](https://packages.debian.org/search?keywords=command-not-found) - [Debian](https://packages.debian.org/search?keywords=command-not-found)
- [Arch Linux](https://wiki.archlinux.org/index.php/Pkgfile#Command_not_found) - [Arch Linux](https://wiki.archlinux.org/title/Zsh#pkgfile_"command_not_found"_handler)
- [macOS (Homebrew)](https://github.com/Homebrew/homebrew-command-not-found) - [macOS (Homebrew)](https://github.com/Homebrew/brew/blob/main/docs/Command-Not-Found.md)
- [Fedora](https://fedoraproject.org/wiki/Features/PackageKitCommandNotFound) - [Fedora](https://fedoraproject.org/wiki/Features/PackageKitCommandNotFound)
- [NixOS](https://github.com/NixOS/nixpkgs/tree/master/nixos/modules/programs/command-not-found) - [NixOS](https://github.com/NixOS/nixpkgs/tree/master/nixos/modules/programs/command-not-found)
- [Termux](https://github.com/termux/command-not-found) - [Termux](https://github.com/termux/command-not-found)
- [SUSE](https://www.unix.com/man-page/suse/1/command-not-found/) - [SUSE](https://www.unix.com/man-page/suse/1/command-not-found/)
- [Gentoo](https://github.com/AndrewAmmerlaan/command-not-found-gentoo/tree/main) - [Gentoo](https://github.com/AndrewAmmerlaan/command-not-found-gentoo/tree/main)
- [Void Linux](https://codeberg.org/classabbyamp/xbps-command-not-found)
You can add support for other platforms by submitting a Pull Request. You can add support for other platforms by submitting a Pull Request.

View File

@@ -1,13 +1,15 @@
## Platforms with a built-in command-not-found handler init file ## Platforms with a built-in command-not-found handler init file
for file ( for file (
# Arch Linux. Must have pkgfile installed: https://wiki.archlinux.org/index.php/Pkgfile#Command_not_found # Arch Linux. Must have pkgfile installed: https://wiki.archlinux.org/title/Zsh#pkgfile_"command_not_found"_handler
/usr/share/doc/pkgfile/command-not-found.zsh /usr/share/doc/pkgfile/command-not-found.zsh
# Homebrew: https://github.com/Homebrew/homebrew-command-not-found # Void Linux: https://codeberg.org/classabbyamp/xbps-command-not-found
/usr/share/zsh/plugins/xbps-command-not-found/xbps-command-not-found.zsh
# Homebrew: https://github.com/Homebrew/brew/blob/main/docs/Command-Not-Found.md
/opt/homebrew/Library/Homebrew/command-not-found/handler.sh /opt/homebrew/Library/Homebrew/command-not-found/handler.sh
/usr/local/Homebrew/Library/Homebrew/command-not-found/handler.sh /usr/local/Homebrew/Library/Homebrew/command-not-found/handler.sh
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/command-not-found/handler.sh /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/command-not-found/handler.sh
# Old homebrew implementation # Old homebrew implementation
/opt/homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh /opt/homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh /usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh
/home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh /home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh

View File

@@ -6,14 +6,22 @@ command -v dnf5 > /dev/null && dnfprog=dnf5
alias dnfl="${dnfprog} list" # List packages alias dnfl="${dnfprog} list" # List packages
alias dnfli="${dnfprog} list installed" # List installed packages alias dnfli="${dnfprog} list installed" # List installed packages
alias dnfgl="${dnfprog} grouplist" # List package groups
alias dnfmc="${dnfprog} makecache" # Generate metadata cache alias dnfmc="${dnfprog} makecache" # Generate metadata cache
alias dnfp="${dnfprog} info" # Show package information alias dnfp="${dnfprog} info" # Show package information
alias dnfs="${dnfprog} search" # Search package alias dnfs="${dnfprog} search" # Search package
alias dnfu="sudo ${dnfprog} upgrade" # Upgrade package alias dnfu="sudo ${dnfprog} upgrade" # Upgrade package
alias dnfi="sudo ${dnfprog} install" # Install package alias dnfi="sudo ${dnfprog} install" # Install package
alias dnfgi="sudo ${dnfprog} groupinstall" # Install package group
alias dnfr="sudo ${dnfprog} remove" # Remove package alias dnfr="sudo ${dnfprog} remove" # Remove package
alias dnfgr="sudo ${dnfprog} groupremove" # Remove package group
alias dnfc="sudo ${dnfprog} clean all" # Clean cache alias dnfc="sudo ${dnfprog} clean all" # Clean cache
# Conditional aliases based on dnfprog value
if [[ "${dnfprog}" == "dnf5" ]]; then
alias dnfgl="${dnfprog} group list" # List package groups (dnf5)
alias dnfgi="sudo ${dnfprog} group install" # Install package group (dnf5)
alias dnfgr="sudo ${dnfprog} group remove" # Remove package group (dnf5)
else
alias dnfgl="${dnfprog} grouplist" # List package groups (dnf)
alias dnfgi="sudo ${dnfprog} groupinstall" # Install package group (dnf)
alias dnfgr="sudo ${dnfprog} groupremove" # Remove package group (dnf)
fi

View File

@@ -51,6 +51,7 @@ If you use Podman's Docker wrapper, you need to enable legacy completion. See ab
| dcin | `docker container inspect` | Display detailed information on one or more containers | | dcin | `docker container inspect` | Display detailed information on one or more containers |
| dcls | `docker container ls` | List all the running docker containers | | dcls | `docker container ls` | List all the running docker containers |
| dclsa | `docker container ls -a` | List all running and stopped containers | | dclsa | `docker container ls -a` | List all running and stopped containers |
| dcprune | `docker container prune` | Remove all stopped containers |
| dib | `docker image build` | Build an image from a Dockerfile (same as docker build) | | dib | `docker image build` | Build an image from a Dockerfile (same as docker build) |
| dii | `docker image inspect` | Display detailed information on one or more images | | dii | `docker image inspect` | Display detailed information on one or more images |
| dils | `docker image ls` | List docker images | | dils | `docker image ls` | List docker images |
@@ -64,6 +65,7 @@ If you use Podman's Docker wrapper, you need to enable legacy completion. See ab
| dndcn | `docker network disconnect` | Disconnect a container from a network | | dndcn | `docker network disconnect` | Disconnect a container from a network |
| dni | `docker network inspect` | Return information about one or more networks | | dni | `docker network inspect` | Return information about one or more networks |
| dnls | `docker network ls` | List all networks the engine daemon knows about, including those spanning multiple hosts | | dnls | `docker network ls` | List all networks the engine daemon knows about, including those spanning multiple hosts |
| dnprune | `docker network prune` | Remove all unused networks |
| dnrm | `docker network rm` | Remove one or more networks | | dnrm | `docker network rm` | Remove one or more networks |
| dpo | `docker container port` | List port mappings or a specific mapping for the container | | dpo | `docker container port` | List port mappings or a specific mapping for the container |
| dps | `docker ps` | List all the running docker containers | | dps | `docker ps` | List all the running docker containers |
@@ -73,6 +75,7 @@ If you use Podman's Docker wrapper, you need to enable legacy completion. See ab
| drit | `docker container run -it` | Create a new container and start it in an interactive shell | | drit | `docker container run -it` | Create a new container and start it in an interactive shell |
| drm | `docker container rm` | Remove the specified container(s) | | drm | `docker container rm` | Remove the specified container(s) |
| drm! | `docker container rm -f` | Force the removal of a running container (uses SIGKILL) | | drm! | `docker container rm -f` | Force the removal of a running container (uses SIGKILL) |
| dsprune | `docker system prune` | Remove unused data |
| dst | `docker container start` | Start one or more stopped containers | | dst | `docker container start` | Start one or more stopped containers |
| drs | `docker container restart` | Restart one or more containers | | drs | `docker container restart` | Restart one or more containers |
| dsta | `docker stop $(docker ps -q)` | Stop all running containers | | dsta | `docker stop $(docker ps -q)` | Stop all running containers |

View File

@@ -2,6 +2,7 @@ alias dbl='docker build'
alias dcin='docker container inspect' alias dcin='docker container inspect'
alias dcls='docker container ls' alias dcls='docker container ls'
alias dclsa='docker container ls -a' alias dclsa='docker container ls -a'
alias dcprune='docker container prune'
alias dib='docker image build' alias dib='docker image build'
alias dii='docker image inspect' alias dii='docker image inspect'
alias dils='docker image ls' alias dils='docker image ls'
@@ -15,6 +16,7 @@ alias dncn='docker network connect'
alias dndcn='docker network disconnect' alias dndcn='docker network disconnect'
alias dni='docker network inspect' alias dni='docker network inspect'
alias dnls='docker network ls' alias dnls='docker network ls'
alias dnprune='docker network prune'
alias dnrm='docker network rm' alias dnrm='docker network rm'
alias dpo='docker container port' alias dpo='docker container port'
alias dps='docker ps' alias dps='docker ps'
@@ -24,6 +26,7 @@ alias dr='docker container run'
alias drit='docker container run -it' alias drit='docker container run -it'
alias drm='docker container rm' alias drm='docker container rm'
alias 'drm!'='docker container rm -f' alias 'drm!'='docker container rm -f'
alias dsprune='docker system prune'
alias dst='docker container start' alias dst='docker container start'
alias drs='docker container restart' alias drs='docker container restart'
alias dsta='docker stop $(docker ps -q)' alias dsta='docker stop $(docker ps -q)'

View File

@@ -78,6 +78,14 @@ change.
NOTE: if a directory is found in both the allowed and disallowed lists, the disallowed list NOTE: if a directory is found in both the allowed and disallowed lists, the disallowed list
takes preference, _i.e._ the .env file will never be sourced. takes preference, _i.e._ the .env file will never be sourced.
## Named Pipe (FIFO) Support
The plugin supports `.env` files provided as UNIX named pipes (FIFOs) in addition to regular files.
This is useful when secrets managers like [1Password Environments](https://developer.1password.com/docs/environment/)
mount `.env` files as named pipes to inject secrets on-the-fly without writing them to disk.
No additional configuration is required — the plugin automatically detects and sources named pipes.
## Version Control ## Version Control
**It's strongly recommended to add `.env` file to `.gitignore`**, because usually it contains sensitive information such as your credentials, secret keys, passwords etc. You don't want to commit this file, it's supposed to be local only. **It's strongly recommended to add `.env` file to `.gitignore`**, because usually it contains sensitive information such as your credentials, secret keys, passwords etc. You don't want to commit this file, it's supposed to be local only.

View File

@@ -11,7 +11,7 @@
## Functions ## Functions
source_env() { source_env() {
if [[ ! -f "$ZSH_DOTENV_FILE" ]]; then if [[ ! -f "$ZSH_DOTENV_FILE" ]] && [[ ! -p "$ZSH_DOTENV_FILE" ]]; then
return return
fi fi

View File

@@ -1,6 +1,6 @@
# gitignore # gitignore
This plugin enables you the use of [gitignore.io](https://www.toptal.com/developers/gitignore) from the command line. You need an active internet connection. This plugin enables you to use [gitignore.io](https://www.gitignore.io) from the command line. You need an active internet connection to fetch templates. The plugin uses the gitignore.io CDN endpoint to simplify access and improve reliability.
To use it, add `gitignore` to the plugins array in your zshrc file: To use it, add `gitignore` to the plugins array in your zshrc file:
@@ -14,4 +14,4 @@ plugins=(... gitignore)
* `gi [TEMPLATENAME]`: Show git-ignore output on the command line, e.g. `gi java` to exclude class and package files. * `gi [TEMPLATENAME]`: Show git-ignore output on the command line, e.g. `gi java` to exclude class and package files.
* `gi [TEMPLATENAME] >> .gitignore`: Appending programming language settings to your projects .gitignore. * `gi [TEMPLATENAME] >> .gitignore`: Append the template rules to your project's `.gitignore` file.

View File

@@ -1,12 +1,21 @@
function gi() { curl -fLw '\n' https://www.toptal.com/developers/gitignore/api/"${(j:,:)@}" } # gitignore plugin for oh-my-zsh
# Uses gitignore.io CDN endpoint
function _gi_curl() {
curl -sfL "https://www.gitignore.io/api/$1"
}
function gi() {
local query="${(j:,:)@}"
_gi_curl "$query" || return 1
}
_gitignoreio_get_command_list() { _gitignoreio_get_command_list() {
curl -sfL https://www.toptal.com/developers/gitignore/api/list | tr "," "\n" _gi_curl "list" | tr "," "\n"
} }
_gitignoreio () { _gitignoreio () {
compset -P '*,' compset -P '*,'
compadd -S '' `_gitignoreio_get_command_list` compadd -S '' $(_gitignoreio_get_command_list)
} }
compdef _gitignoreio gi compdef _gitignoreio gi

View File

@@ -265,6 +265,7 @@ __gradle_subcommand() {
'-Dorg.gradle.configuration-cache.unsafe.ignore.unsupported-build-events-listeners=[]' \ '-Dorg.gradle.configuration-cache.unsafe.ignore.unsupported-build-events-listeners=[]' \
'-Dorg.gradle.configuration-cache=[Enables the configuration cache. Gradle will try to reuse the build configuration from previous builds.]' \ '-Dorg.gradle.configuration-cache=[Enables the configuration cache. Gradle will try to reuse the build configuration from previous builds.]' \
'-Dorg.gradle.configureondemand=[Configure necessary projects only. Gradle will attempt to reduce configuration time for large multi-project builds.]' \ '-Dorg.gradle.configureondemand=[Configure necessary projects only. Gradle will attempt to reduce configuration time for large multi-project builds.]' \
'-Dorg.gradle.console.unicode=[Specifies which character types are allowed in console output to generate. Values are 'auto' (default), 'disable' or 'enable'.]' \
'-Dorg.gradle.console=[Specifies which type of console output to generate. Values are 'plain', 'colored', 'auto' (default), 'rich' or 'verbose'.]:org.gradle.console:(plain auto rich verbose)' \ '-Dorg.gradle.console=[Specifies which type of console output to generate. Values are 'plain', 'colored', 'auto' (default), 'rich' or 'verbose'.]:org.gradle.console:(plain auto rich verbose)' \
'-Dorg.gradle.continue=[Continue task execution after a task failure.]' \ '-Dorg.gradle.continue=[Continue task execution after a task failure.]' \
'-Dorg.gradle.continuous.quietperiod=[]' \ '-Dorg.gradle.continuous.quietperiod=[]' \
@@ -292,6 +293,7 @@ __gradle_subcommand() {
'-Dorg.gradle.priority=[Specifies the scheduling priority for the Gradle daemon and all processes launched by it. Values are 'normal' (default) or 'low']:org.gradle.priority:(normal low)' \ '-Dorg.gradle.priority=[Specifies the scheduling priority for the Gradle daemon and all processes launched by it. Values are 'normal' (default) or 'low']:org.gradle.priority:(normal low)' \
'-Dorg.gradle.problems.report=[(Experimental) enables HTML problems report]' \ '-Dorg.gradle.problems.report=[(Experimental) enables HTML problems report]' \
'-Dorg.gradle.projectcachedir=[Specify the project-specific cache directory. Defaults to .gradle in the root project directory.]:org.gradle.projectcachedir:_directories' \ '-Dorg.gradle.projectcachedir=[Specify the project-specific cache directory. Defaults to .gradle in the root project directory.]:org.gradle.projectcachedir:_directories' \
'-Dorg.gradle.tooling.parallel=[]' \
'-Dorg.gradle.unsafe.isolated-projects=[]' \ '-Dorg.gradle.unsafe.isolated-projects=[]' \
'-Dorg.gradle.vfs.verbose=[]' \ '-Dorg.gradle.vfs.verbose=[]' \
'-Dorg.gradle.vfs.watch=[Enables watching the file system for changes, allowing data about the file system to be re-used for the next build.]:org.gradle.vfs.watch:(true false)' \ '-Dorg.gradle.vfs.watch=[Enables watching the file system for changes, allowing data about the file system to be re-used for the next build.]:org.gradle.vfs.watch:(true false)' \
@@ -303,6 +305,7 @@ __gradle_subcommand() {
'--configuration-cache-problems[Configures how the configuration cache handles problems (fail or warn). Defaults to fail.]:configuration cache problems:(fail warn)' \ '--configuration-cache-problems[Configures how the configuration cache handles problems (fail or warn). Defaults to fail.]:configuration cache problems:(fail warn)' \
(--no-configure-on-demand)'--configure-on-demand[Configure necessary projects only. Gradle will attempt to reduce configuration time for large multi-project builds. (incubating)]' \ (--no-configure-on-demand)'--configure-on-demand[Configure necessary projects only. Gradle will attempt to reduce configuration time for large multi-project builds. (incubating)]' \
'--console[Specifies which type of console output to generate. Values are 'plain', 'colored', 'auto' (default), 'rich' or 'verbose'.]:console:(plain auto rich verbose)' \ '--console[Specifies which type of console output to generate. Values are 'plain', 'colored', 'auto' (default), 'rich' or 'verbose'.]:console:(plain auto rich verbose)' \
'--console-unicode[Specifies which character types are allowed in console output to generate. Values are 'auto' (default), 'disable' or 'enable'.]' \
(--no-continue)'--continue[Continue task execution after a task failure.]' \ (--no-continue)'--continue[Continue task execution after a task failure.]' \
{-t,--continuous}'[Enables continuous build. Gradle does not exit and will re-execute tasks when task file inputs change.]' \ {-t,--continuous}'[Enables continuous build. Gradle does not exit and will re-execute tasks when task file inputs change.]' \
(--no-daemon)'--daemon[Uses the Gradle daemon to run the build. Starts the daemon if not running.]' \ (--no-daemon)'--daemon[Uses the Gradle daemon to run the build. Starts the daemon if not running.]' \
@@ -344,7 +347,7 @@ __gradle_subcommand() {
(--no-scan)'--scan[Generate a Build Scan (powered by Develocity).]' \ (--no-scan)'--scan[Generate a Build Scan (powered by Develocity).]' \
{-V,--show-version}'[Print version info and continue.]' \ {-V,--show-version}'[Print version info and continue.]' \
(--full-stacktrace,-S){-s,--stacktrace}'[Print out the stacktrace for all exceptions.]' \ (--full-stacktrace,-S){-s,--stacktrace}'[Print out the stacktrace for all exceptions.]' \
'--task-graph[(Experimental) Print task graph instead of executing tasks.]' \ '--task-graph[Print task graph instead of executing tasks.]' \
\*'--update-locks[Perform a partial update of the dependency lock, letting passed in module notations change version. (incubating)]' \ \*'--update-locks[Perform a partial update of the dependency lock, letting passed in module notations change version. (incubating)]' \
(--quiet,-q,--info,-i,--debug,-d){-w,--warn}'[Set log level to warn.]' \ (--quiet,-q,--info,-i,--debug,-d){-w,--warn}'[Set log level to warn.]' \
'--warning-mode[Specifies which mode of warnings to generate. Values are 'all', 'fail', 'summary'(default) or 'none']:warning mode:(all summary none)' \ '--warning-mode[Specifies which mode of warnings to generate. Values are 'all', 'fail', 'summary'(default) or 'none']:warning mode:(all summary none)' \
@@ -392,6 +395,7 @@ _gradle() {
'-Dorg.gradle.configuration-cache.unsafe.ignore.unsupported-build-events-listeners=[]:->argument-expected' \ '-Dorg.gradle.configuration-cache.unsafe.ignore.unsupported-build-events-listeners=[]:->argument-expected' \
'-Dorg.gradle.configuration-cache=[Enables the configuration cache. Gradle will try to reuse the build configuration from previous builds.]:->argument-expected' \ '-Dorg.gradle.configuration-cache=[Enables the configuration cache. Gradle will try to reuse the build configuration from previous builds.]:->argument-expected' \
'-Dorg.gradle.configureondemand=[Configure necessary projects only. Gradle will attempt to reduce configuration time for large multi-project builds.]:->argument-expected' \ '-Dorg.gradle.configureondemand=[Configure necessary projects only. Gradle will attempt to reduce configuration time for large multi-project builds.]:->argument-expected' \
'-Dorg.gradle.console.unicode=[Specifies which character types are allowed in console output to generate. Values are 'auto' (default), 'disable' or 'enable'.]:->argument-expected' \
'-Dorg.gradle.console=[Specifies which type of console output to generate. Values are 'plain', 'colored', 'auto' (default), 'rich' or 'verbose'.]:org.gradle.console:(plain auto rich verbose):->argument-expected' \ '-Dorg.gradle.console=[Specifies which type of console output to generate. Values are 'plain', 'colored', 'auto' (default), 'rich' or 'verbose'.]:org.gradle.console:(plain auto rich verbose):->argument-expected' \
'-Dorg.gradle.continue=[Continue task execution after a task failure.]:->argument-expected' \ '-Dorg.gradle.continue=[Continue task execution after a task failure.]:->argument-expected' \
'-Dorg.gradle.continuous.quietperiod=[]:->argument-expected' \ '-Dorg.gradle.continuous.quietperiod=[]:->argument-expected' \
@@ -419,6 +423,7 @@ _gradle() {
'-Dorg.gradle.priority=[Specifies the scheduling priority for the Gradle daemon and all processes launched by it. Values are 'normal' (default) or 'low']:org.gradle.priority:(normal low):->argument-expected' \ '-Dorg.gradle.priority=[Specifies the scheduling priority for the Gradle daemon and all processes launched by it. Values are 'normal' (default) or 'low']:org.gradle.priority:(normal low):->argument-expected' \
'-Dorg.gradle.problems.report=[(Experimental) enables HTML problems report]:->argument-expected' \ '-Dorg.gradle.problems.report=[(Experimental) enables HTML problems report]:->argument-expected' \
'-Dorg.gradle.projectcachedir=[Specify the project-specific cache directory. Defaults to .gradle in the root project directory.]:org.gradle.projectcachedir:_directories:->argument-expected' \ '-Dorg.gradle.projectcachedir=[Specify the project-specific cache directory. Defaults to .gradle in the root project directory.]:org.gradle.projectcachedir:_directories:->argument-expected' \
'-Dorg.gradle.tooling.parallel=[]:->argument-expected' \
'-Dorg.gradle.unsafe.isolated-projects=[]:->argument-expected' \ '-Dorg.gradle.unsafe.isolated-projects=[]:->argument-expected' \
'-Dorg.gradle.vfs.verbose=[]:->argument-expected' \ '-Dorg.gradle.vfs.verbose=[]:->argument-expected' \
'-Dorg.gradle.vfs.watch=[Enables watching the file system for changes, allowing data about the file system to be re-used for the next build.]:org.gradle.vfs.watch:(true false):->argument-expected' \ '-Dorg.gradle.vfs.watch=[Enables watching the file system for changes, allowing data about the file system to be re-used for the next build.]:org.gradle.vfs.watch:(true false):->argument-expected' \
@@ -430,6 +435,7 @@ _gradle() {
'--configuration-cache-problems[Configures how the configuration cache handles problems (fail or warn). Defaults to fail.]:configuration cache problems:(fail warn):->argument-expected' \ '--configuration-cache-problems[Configures how the configuration cache handles problems (fail or warn). Defaults to fail.]:configuration cache problems:(fail warn):->argument-expected' \
(--no-configure-on-demand)'--configure-on-demand[Configure necessary projects only. Gradle will attempt to reduce configuration time for large multi-project builds. (incubating)]' \ (--no-configure-on-demand)'--configure-on-demand[Configure necessary projects only. Gradle will attempt to reduce configuration time for large multi-project builds. (incubating)]' \
'--console[Specifies which type of console output to generate. Values are 'plain', 'colored', 'auto' (default), 'rich' or 'verbose'.]:console:(plain auto rich verbose):->argument-expected' \ '--console[Specifies which type of console output to generate. Values are 'plain', 'colored', 'auto' (default), 'rich' or 'verbose'.]:console:(plain auto rich verbose):->argument-expected' \
'--console-unicode[Specifies which character types are allowed in console output to generate. Values are 'auto' (default), 'disable' or 'enable'.]:->argument-expected' \
(--no-continue)'--continue[Continue task execution after a task failure.]' \ (--no-continue)'--continue[Continue task execution after a task failure.]' \
{-t,--continuous}'[Enables continuous build. Gradle does not exit and will re-execute tasks when task file inputs change.]' \ {-t,--continuous}'[Enables continuous build. Gradle does not exit and will re-execute tasks when task file inputs change.]' \
(--no-daemon)'--daemon[Uses the Gradle daemon to run the build. Starts the daemon if not running.]' \ (--no-daemon)'--daemon[Uses the Gradle daemon to run the build. Starts the daemon if not running.]' \
@@ -474,7 +480,7 @@ _gradle() {
(--full-stacktrace,-S){-s,--stacktrace}'[Print out the stacktrace for all exceptions.]' \ (--full-stacktrace,-S){-s,--stacktrace}'[Print out the stacktrace for all exceptions.]' \
'--status[Shows status of running and recently stopped Gradle daemon(s).]' \ '--status[Shows status of running and recently stopped Gradle daemon(s).]' \
'--stop[Stops the Gradle daemon if it is running.]' \ '--stop[Stops the Gradle daemon if it is running.]' \
'--task-graph[(Experimental) Print task graph instead of executing tasks.]' \ '--task-graph[Print task graph instead of executing tasks.]' \
\*'--update-locks[Perform a partial update of the dependency lock, letting passed in module notations change version. (incubating)]' \ \*'--update-locks[Perform a partial update of the dependency lock, letting passed in module notations change version. (incubating)]' \
{-v,--version}'[Print version info and exit.]' \ {-v,--version}'[Print version info and exit.]' \
(--quiet,-q,--info,-i,--debug,-d){-w,--warn}'[Set log level to warn.]' \ (--quiet,-q,--info,-i,--debug,-d){-w,--warn}'[Set log level to warn.]' \

143
plugins/hcloud/README.md Normal file
View File

@@ -0,0 +1,143 @@
# hcloud plugin
This plugin adds completion for the [Hetzner Cloud CLI](https://github.com/hetznercloud/cli),
as well as some aliases for common hcloud commands.
To use it, add `hcloud` to the plugins array in your zshrc file:
```zsh
plugins=(... hcloud)
```
## Aliases
| Alias | Command | Description |
| :--------- | :---------------------------------------- | :------------------------------------------------------------ |
| hc | `hcloud` | The hcloud command |
| | | **Context Management** |
| hcctx | `hcloud context` | Manage contexts |
| hcctxls | `hcloud context list` | List all contexts |
| hcctxu | `hcloud context use` | Use a context |
| hcctxc | `hcloud context create` | Create a new context |
| hcctxd | `hcloud context delete` | Delete a context |
| hcctxa | `hcloud context active` | Show active context |
| | | **Server Management** |
| hcs | `hcloud server` | Manage servers |
| hcsl | `hcloud server list` | List all servers |
| hcsc | `hcloud server create` | Create a server |
| hcsd | `hcloud server delete` | Delete a server |
| hcsdesc | `hcloud server describe` | Describe a server |
| hcspoff | `hcloud server poweroff` | Power off a server |
| hcspon | `hcloud server poweron` | Power on a server |
| hcsr | `hcloud server reboot` | Reboot a server |
| hcsreset | `hcloud server reset` | Reset a server |
| hcssh | `hcloud server ssh` | SSH into a server |
| hcse | `hcloud server enable-rescue` | Enable rescue mode for a server |
| hcsdr | `hcloud server disable-rescue` | Disable rescue mode for a server |
| hcsip | `hcloud server ip` | Manage server IPs |
| hcsa | `hcloud server attach-iso` | Attach an ISO to a server |
| hcsda | `hcloud server detach-iso` | Detach an ISO from a server |
| hcscip | `hcloud server change-type` | Change server type |
| | | **Volume Management** |
| hcv | `hcloud volume` | Manage volumes |
| hcvl | `hcloud volume list` | List all volumes |
| hcvc | `hcloud volume create` | Create a volume |
| hcvd | `hcloud volume delete` | Delete a volume |
| hcvdesc | `hcloud volume describe` | Describe a volume |
| hcva | `hcloud volume attach` | Attach a volume to a server |
| hcvda | `hcloud volume detach` | Detach a volume from a server |
| hcvr | `hcloud volume resize` | Resize a volume |
| | | **Network Management** |
| hcn | `hcloud network` | Manage networks |
| hcnl | `hcloud network list` | List all networks |
| hcnc | `hcloud network create` | Create a network |
| hcnd | `hcloud network delete` | Delete a network |
| hcndesc | `hcloud network describe` | Describe a network |
| hcnas | `hcloud network add-subnet` | Add a subnet to a network |
| hcnds | `hcloud network delete-subnet` | Delete a subnet from a network |
| hcnar | `hcloud network add-route` | Add a route to a network |
| hcndr | `hcloud network delete-route` | Delete a route from a network |
| | | **Floating IP Management** |
| hcfip | `hcloud floating-ip` | Manage floating IPs |
| hcfipl | `hcloud floating-ip list` | List all floating IPs |
| hcfipc | `hcloud floating-ip create` | Create a floating IP |
| hcfipd | `hcloud floating-ip delete` | Delete a floating IP |
| hcfipdesc | `hcloud floating-ip describe` | Describe a floating IP |
| hcfipa | `hcloud floating-ip assign` | Assign a floating IP to a server |
| hcfipua | `hcloud floating-ip unassign` | Unassign a floating IP from a server |
| | | **SSH Key Management** |
| hcsk | `hcloud ssh-key` | Manage SSH keys |
| hcskl | `hcloud ssh-key list` | List all SSH keys |
| hcskc | `hcloud ssh-key create` | Create an SSH key |
| hcskd | `hcloud ssh-key delete` | Delete an SSH key |
| hcskdesc | `hcloud ssh-key describe` | Describe an SSH key |
| hcsku | `hcloud ssh-key update` | Update an SSH key |
| | | **Image Management** |
| hci | `hcloud image` | Manage images |
| hcil | `hcloud image list` | List all images |
| hcid | `hcloud image delete` | Delete an image |
| hcidesc | `hcloud image describe` | Describe an image |
| hciu | `hcloud image update` | Update an image |
| | | **Firewall Management** |
| hcfw | `hcloud firewall` | Manage firewalls |
| hcfwl | `hcloud firewall list` | List all firewalls |
| hcfwc | `hcloud firewall create` | Create a firewall |
| hcfwd | `hcloud firewall delete` | Delete a firewall |
| hcfwdesc | `hcloud firewall describe` | Describe a firewall |
| hcfwar | `hcloud firewall add-rule` | Add a rule to a firewall |
| hcfwdr | `hcloud firewall delete-rule` | Delete a rule from a firewall |
| hcfwas | `hcloud firewall apply-to-resource` | Apply a firewall to a resource |
| hcfwrs | `hcloud firewall remove-from-resource` | Remove a firewall from a resource |
| | | **Load Balancer Management** |
| hclb | `hcloud load-balancer` | Manage load balancers |
| hclbl | `hcloud load-balancer list` | List all load balancers |
| hclbc | `hcloud load-balancer create` | Create a load balancer |
| hclbd | `hcloud load-balancer delete` | Delete a load balancer |
| hclbdesc | `hcloud load-balancer describe` | Describe a load balancer |
| hclbu | `hcloud load-balancer update` | Update a load balancer |
| hclbas | `hcloud load-balancer add-service` | Add a service to a load balancer |
| hclbds | `hcloud load-balancer delete-service` | Delete a service from a load balancer |
| hclbat | `hcloud load-balancer add-target` | Add a target to a load balancer |
| hclbdt | `hcloud load-balancer delete-target` | Delete a target from a load balancer |
| | | **Certificate Management** |
| hccert | `hcloud certificate` | Manage certificates |
| hccertl | `hcloud certificate list` | List all certificates |
| hccertc | `hcloud certificate create` | Create a certificate |
| hccertd | `hcloud certificate delete` | Delete a certificate |
| hccertdesc | `hcloud certificate describe` | Describe a certificate |
| hccertu | `hcloud certificate update` | Update a certificate |
| | | **Datacenter and Location Info** |
| hcdc | `hcloud datacenter list` | List all datacenters |
| hcloc | `hcloud location list` | List all locations |
| hcst | `hcloud server-type list` | List all server types |
| hcit | `hcloud image list --type system` | List all system images |
## Requirements
This plugin requires the [Hetzner Cloud CLI](https://github.com/hetznercloud/cli) to be installed.
### Installation
Install the Hetzner Cloud CLI using one of the following methods:
**macOS (Homebrew):**
```bash
brew install hcloud
```
**Linux (from source):**
```bash
go install github.com/hetznercloud/cli/cmd/hcloud@latest
```
**Or download a prebuilt binary from the [releases page](https://github.com/hetznercloud/cli/releases).**
### Setup
After installation, create a context and authenticate:
```bash
hcloud context create my-project
```
You'll be prompted to enter your Hetzner Cloud API token, which you can generate in the [Hetzner Cloud Console](https://console.hetzner.cloud/).

View File

@@ -0,0 +1,129 @@
# hcloud plugin for oh-my-zsh
# Hetzner Cloud CLI: https://github.com/hetznercloud/cli
if (( ! $+commands[hcloud] )); then
return
fi
# If the completion file doesn't exist yet, we need to autoload it and
# bind it to `hcloud`. Otherwise, compinit will have already done that.
if [[ ! -f "$ZSH_CACHE_DIR/completions/_hcloud" ]]; then
typeset -g -A _comps
autoload -Uz _hcloud
_comps[hcloud]=_hcloud
fi
hcloud completion zsh 2> /dev/null >| "$ZSH_CACHE_DIR/completions/_hcloud" &|
# Main alias
alias hc='hcloud'
# Context management
alias hcctx='hcloud context'
alias hcctxls='hcloud context list'
alias hcctxu='hcloud context use'
alias hcctxc='hcloud context create'
alias hcctxd='hcloud context delete'
alias hcctxa='hcloud context active'
# Server management
alias hcs='hcloud server'
alias hcsl='hcloud server list'
alias hcsc='hcloud server create'
alias hcsd='hcloud server delete'
alias hcsdesc='hcloud server describe'
alias hcspoff='hcloud server poweroff'
alias hcspon='hcloud server poweron'
alias hcsr='hcloud server reboot'
alias hcsreset='hcloud server reset'
alias hcssh='hcloud server ssh'
alias hcse='hcloud server enable-rescue'
alias hcsdr='hcloud server disable-rescue'
alias hcsip='hcloud server ip'
# Server actions
alias hcsa='hcloud server attach-iso'
alias hcsda='hcloud server detach-iso'
alias hcscip='hcloud server change-type'
# Volume management
alias hcv='hcloud volume'
alias hcvl='hcloud volume list'
alias hcvc='hcloud volume create'
alias hcvd='hcloud volume delete'
alias hcvdesc='hcloud volume describe'
alias hcva='hcloud volume attach'
alias hcvda='hcloud volume detach'
alias hcvr='hcloud volume resize'
# Network management
alias hcn='hcloud network'
alias hcnl='hcloud network list'
alias hcnc='hcloud network create'
alias hcnd='hcloud network delete'
alias hcndesc='hcloud network describe'
alias hcnas='hcloud network add-subnet'
alias hcnds='hcloud network delete-subnet'
alias hcnar='hcloud network add-route'
alias hcndr='hcloud network delete-route'
# Floating IP management
alias hcfip='hcloud floating-ip'
alias hcfipl='hcloud floating-ip list'
alias hcfipc='hcloud floating-ip create'
alias hcfipd='hcloud floating-ip delete'
alias hcfipdesc='hcloud floating-ip describe'
alias hcfipa='hcloud floating-ip assign'
alias hcfipua='hcloud floating-ip unassign'
# SSH key management
alias hcsk='hcloud ssh-key'
alias hcskl='hcloud ssh-key list'
alias hcskc='hcloud ssh-key create'
alias hcskd='hcloud ssh-key delete'
alias hcskdesc='hcloud ssh-key describe'
alias hcsku='hcloud ssh-key update'
# Image management
alias hci='hcloud image'
alias hcil='hcloud image list'
alias hcid='hcloud image delete'
alias hcidesc='hcloud image describe'
alias hciu='hcloud image update'
# Firewall management
alias hcfw='hcloud firewall'
alias hcfwl='hcloud firewall list'
alias hcfwc='hcloud firewall create'
alias hcfwd='hcloud firewall delete'
alias hcfwdesc='hcloud firewall describe'
alias hcfwar='hcloud firewall add-rule'
alias hcfwdr='hcloud firewall delete-rule'
alias hcfwas='hcloud firewall apply-to-resource'
alias hcfwrs='hcloud firewall remove-from-resource'
# Load balancer management
alias hclb='hcloud load-balancer'
alias hclbl='hcloud load-balancer list'
alias hclbc='hcloud load-balancer create'
alias hclbd='hcloud load-balancer delete'
alias hclbdesc='hcloud load-balancer describe'
alias hclbu='hcloud load-balancer update'
alias hclbas='hcloud load-balancer add-service'
alias hclbds='hcloud load-balancer delete-service'
alias hclbat='hcloud load-balancer add-target'
alias hclbdt='hcloud load-balancer delete-target'
# Certificate management
alias hccert='hcloud certificate'
alias hccertl='hcloud certificate list'
alias hccertc='hcloud certificate create'
alias hccertd='hcloud certificate delete'
alias hccertdesc='hcloud certificate describe'
alias hccertu='hcloud certificate update'
# Datacenter and location info
alias hcdc='hcloud datacenter list'
alias hcloc='hcloud location list'
alias hcst='hcloud server-type list'
alias hcit='hcloud image list --type system'

View File

@@ -79,7 +79,7 @@ Using [Zinit](https://github.com/zdharma-continuum/zinit):
2. Load the plugin in `~/.zshrc`: 2. Load the plugin in `~/.zshrc`:
zinit load 'zsh-users/zsh-history-substring-search zinit load 'zsh-users/zsh-history-substring-search'
zinit ice wait atload'_history_substring_search_config' zinit ice wait atload'_history_substring_search_config'
3. Run `exec zsh` to take changes into account: 3. Run `exec zsh` to take changes into account:

View File

@@ -3,6 +3,13 @@
0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" 0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}"
0="${${(M)0:#/*}:-$PWD/$0}" 0="${${(M)0:#/*}:-$PWD/$0}"
# Respect case sensitivity settings for globbing in history search
if [[ "$CASE_SENSITIVE" = true ]]; then
: ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS=''}
else
: ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'}
fi
source ${0:A:h}/history-substring-search.zsh source ${0:A:h}/history-substring-search.zsh

View File

@@ -45,14 +45,7 @@
: ${HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=magenta,fg=white,bold'} : ${HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=magenta,fg=white,bold'}
: ${HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold'} : ${HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold'}
: ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'}
# Respect CASE_SENSITIVE setting for case sensitivity
if [[ "$CASE_SENSITIVE" = true ]]; then
: ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS=''}
else
: ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'}
fi
: ${HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=''} : ${HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=''}
: ${HISTORY_SUBSTRING_SEARCH_FUZZY=''} : ${HISTORY_SUBSTRING_SEARCH_FUZZY=''}
: ${HISTORY_SUBSTRING_SEARCH_PREFIXED=''} : ${HISTORY_SUBSTRING_SEARCH_PREFIXED=''}
@@ -302,8 +295,8 @@ _history-substring-search-begin() {
fi fi
# #
# Escape and join query parts with wildcard character '*' as separator # Escape and join query parts with wildcard character '*' as seperator
# `(j:CHAR:)` join array to string with CHAR as separator # `(j:CHAR:)` join array to string with CHAR as seperator
# #
local search_pattern="${(j:*:)_history_substring_search_query_parts[@]//(#m)[\][()|\\*?#<>~^]/\\$MATCH}*" local search_pattern="${(j:*:)_history_substring_search_query_parts[@]//(#m)[\][()|\\*?#<>~^]/\\$MATCH}*"

View File

@@ -12,6 +12,7 @@ plugins=(... jj)
| Alias | Command | | Alias | Command |
| ------ | ----------------------------- | | ------ | ----------------------------- |
| jja | `jj abandon` |
| jjb | `jj bookmark` | | jjb | `jj bookmark` |
| jjbc | `jj bookmark create` | | jjbc | `jj bookmark create` |
| jjbd | `jj bookmark delete` | | jjbd | `jj bookmark delete` |
@@ -97,6 +98,25 @@ If you prefer to keep your prompt always up-to-date but still don't want to _fee
your prompt asynchronous. This plugin doesn't do this automatically so you'd have to hack your theme a bit for your prompt asynchronous. This plugin doesn't do this automatically so you'd have to hack your theme a bit for
that. that.
### Git async-prompt compatibility
If you use a wrapper function that calls `git_prompt_info` (as shown above), it won't work with
the default git async-prompt mode. This is because async-prompt only registers its background worker
when it detects `$(git_prompt_info)` literally in your prompt variables. A wrapper like
`$(_my_theme_vcs_info)` won't match, so the async output stays empty.
To fix this, add one of the following to your `.zshrc` **before** Oh My Zsh is sourced:
```zsh
# Option 1: force async handlers to always register (recommended, keeps async behavior)
zstyle ':omz:alpha:lib:git' async-prompt force
# Option 2: disable async-prompt entirely (simpler, but prompt may feel slower in large repos)
zstyle ':omz:alpha:lib:git' async-prompt no
```
See [#13555](https://github.com/ohmyzsh/ohmyzsh/issues/13555) for details.
## See Also ## See Also
- [martinvonz/jj](https://github.com/martinvonz/jj) - [martinvonz/jj](https://github.com/martinvonz/jj)

View File

@@ -34,6 +34,7 @@ function jj_prompt_template() {
} }
# Aliases (sorted alphabetically) # Aliases (sorted alphabetically)
alias jja='jj abandon'
alias jjb='jj bookmark' alias jjb='jj bookmark'
alias jjbc='jj bookmark create' alias jjbc='jj bookmark create'
alias jjbd='jj bookmark delete' alias jjbd='jj bookmark delete'

View File

@@ -385,9 +385,9 @@ kube_ps1() {
local KUBE_PS1_RESET_COLOR="${_KUBE_PS1_OPEN_ESC}${_KUBE_PS1_DEFAULT_FG}${_KUBE_PS1_CLOSE_ESC}" local KUBE_PS1_RESET_COLOR="${_KUBE_PS1_OPEN_ESC}${_KUBE_PS1_DEFAULT_FG}${_KUBE_PS1_CLOSE_ESC}"
# If background color is set, reset color should also reset the background # If background color is set, reset color should also reset the background
if [[ -n "${KUBE_PS1_BG_COLOR}" ]]; then # if [[ -n "${KUBE_PS1_BG_COLOR}" ]]; then
KUBE_PS1_RESET_COLOR="${_KUBE_PS1_OPEN_ESC}${_KUBE_PS1_DEFAULT_FG}${_KUBE_PS1_DEFAULT_BG}${_KUBE_PS1_CLOSE_ESC}" # KUBE_PS1_RESET_COLOR="${_KUBE_PS1_OPEN_ESC}${_KUBE_PS1_DEFAULT_FG}${_KUBE_PS1_DEFAULT_BG}${_KUBE_PS1_CLOSE_ESC}"
fi # fi
# Background Color # Background Color
[[ -n "${KUBE_PS1_BG_COLOR}" ]] && KUBE_PS1+="$(_kube_ps1_color_bg "${KUBE_PS1_BG_COLOR}")" [[ -n "${KUBE_PS1_BG_COLOR}" ]] && KUBE_PS1+="$(_kube_ps1_color_bg "${KUBE_PS1_BG_COLOR}")"

View File

@@ -23,8 +23,8 @@ lwd() {
# #
# - This isn't the first time the plugin is loaded # - This isn't the first time the plugin is loaded
# - We're not in the $HOME directory (e.g. if terminal opened a different folder) # - We're not in the $HOME directory (e.g. if terminal opened a different folder)
[[ -z "$ZSH_LAST_WORKING_DIRECTORY" ]] || return [[ -z "$ZSH_LAST_WORKING_DIRECTORY" ]] || return 0
[[ "$PWD" == "$HOME" ]] || return [[ "$PWD" == "$HOME" ]] || return 0
if lwd 2>/dev/null; then if lwd 2>/dev/null; then
ZSH_LAST_WORKING_DIRECTORY=1 ZSH_LAST_WORKING_DIRECTORY=1

View File

@@ -1,27 +1,17 @@
# TODO: 2024-01-03 remove rtx support
local __mise=mise
if (( ! $+commands[mise] )); then if (( ! $+commands[mise] )); then
if (( $+commands[rtx] )); then return
__mise=rtx
else
return
fi
fi fi
# Load mise hooks # Load mise hooks
eval "$($__mise activate zsh)" eval "$(mise activate zsh)"
# Hook mise into current environment
eval "$($__mise hook-env -s zsh)"
# If the completion file doesn't exist yet, we need to autoload it and # 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. # bind it to `mise`. Otherwise, compinit will have already done that.
if [[ ! -f "$ZSH_CACHE_DIR/completions/_$__mise" ]]; then if [[ ! -f "$ZSH_CACHE_DIR/completions/_mise" ]]; then
typeset -g -A _comps typeset -g -A _comps
autoload -Uz _$__mise autoload -Uz _mise
_comps[$__mise]=_$__mise _comps[mise]=_mise
fi fi
# Generate and load mise completion # Generate and load mise completion
$__mise completion zsh >| "$ZSH_CACHE_DIR/completions/_$__mise" &| mise completion zsh >| "$ZSH_CACHE_DIR/completions/_mise" &|
unset __mise

View File

@@ -0,0 +1,20 @@
# Molecule plugin
This plugin adds aliases and completion for [Molecule](https://ansible.readthedocs.io/projects/molecule/), the
project designed to aid in the development and testing of Ansible roles..
To use it, add `molecule` to the plugins array in your zshrc file:
```zsh
plugins=(... molecule)
```
## Aliases
| Alias | Command | Description |
| :---- | :---------------- | ---------------------------------------------------------------------------------- |
| mol | molecule | Molecule aids in the development and testing of Ansible roles. |
| mcr | molecule create | Use the provisioner to start the instances. |
| mcon | molecule converge | Use the provisioner to configure instances (dependency, create, prepare converge). |
| mls | molecule list | List status of instances. |
| mvf | molecule verify | Run automated tests against instances. |

View File

@@ -0,0 +1,22 @@
# Completion
if (( ! $+commands[molecule] )); then
return
fi
# If the completion file doesn't exist yet, we need to autoload it and
# bind it to `molecule`. Otherwise, compinit will have already done that.
if [[ ! -f "$ZSH_CACHE_DIR/completions/_molecule" ]]; then
typeset -g -A _comps
autoload -Uz _molecule
_comps[molecule]=_molecule
fi
_MOLECULE_COMPLETE=zsh_source molecule >| "$ZSH_CACHE_DIR/completions/_molecule" &|
# Alias
# molecule: https://docs.ansible.com/projects/molecule/
alias mol='molecule'
alias mcr='molecule create'
alias mcon='molecule converge'
alias mls='molecule list'
alias mvf='molecule verify'

View File

@@ -1,6 +1,8 @@
# Pre-commit plugin # Pre-commit plugin
This plugin adds aliases for common commands of [pre-commit](https://pre-commit.com/). This plugin adds aliases for common commands of [pre-commit](https://pre-commit.com/).
It also supports [prek](https://github.com/prek/prek) as a drop-in replacement.
If `prek` is available, it will be used; otherwise, `pre-commit` is used as fallback.
To use this plugin, add it to the plugins array in your zshrc file: To use this plugin, add it to the plugins array in your zshrc file:
@@ -10,10 +12,11 @@ plugins=(... pre-commit)
## Aliases ## Aliases
| Alias | Command | Description | | Alias | Command | Description |
| ------- | -------------------------------------- | ------------------------------------------------------ | | ----- | ------------------------------------------------------ | --------------------------------------------- |
| prc | `pre-commit` | The `pre-commit` command | | prc | `prek` or `pre-commit` | The pre-commit command |
| prcau | `pre-commit autoupdate` | Update hooks automatically | | prcau | `prek auto-update` or `pre-commit autoupdate` | Update hooks automatically |
| prcr | `pre-commit run` | The `pre-commit run` command | | prcr | `prek run` or `pre-commit run` | The pre-commit run command |
| prcra | `pre-commit run --all-files` | Run pre-commit hooks on all files | | prcra | `prek run --all-files` or `pre-commit run --all-files` | Run pre-commit hooks on all files |
| prcrf | `pre-commit run --files` | Run pre-commit hooks on a given list of files | | prcrf | `prek run --files` or `pre-commit run --files` | Run pre-commit hooks on a given list of files |

View File

@@ -1,8 +1,17 @@
# Aliases for pre-commit # Aliases for pre-commit (uses prek if available, else pre-commit)
alias prc='pre-commit' if command -v prek &> /dev/null; then
_prc_cmd='prek'
_prc_autoupdate='auto-update'
else
_prc_cmd='pre-commit'
_prc_autoupdate='autoupdate'
fi
alias prcau='pre-commit autoupdate' alias prc="$_prc_cmd"
alias prcau="$_prc_cmd $_prc_autoupdate"
alias prcr="$_prc_cmd run"
alias prcra="$_prc_cmd run --all-files"
alias prcrf="$_prc_cmd run --files"
alias prcr='pre-commit run'
alias prcra='pre-commit run --all-files'
alias prcrf='pre-commit run --files'

View File

@@ -5,8 +5,8 @@ if [[ -z $commands[thefuck] ]]; then
fi fi
# Register alias # Register alias
[[ ! -a $ZSH_CACHE_DIR/thefuck ]] && thefuck --alias > $ZSH_CACHE_DIR/thefuck [[ ! -a "$ZSH_CACHE_DIR/thefuck" ]] && thefuck --alias > "$ZSH_CACHE_DIR/thefuck"
source $ZSH_CACHE_DIR/thefuck source "$ZSH_CACHE_DIR/thefuck"
fuck-command-line() { fuck-command-line() {
local FUCK="$(THEFUCK_REQUIRE_CONFIRMATION=0 thefuck $(fc -ln -1 | tail -n 1) 2> /dev/null)" local FUCK="$(THEFUCK_REQUIRE_CONFIRMATION=0 thefuck $(fc -ln -1 | tail -n 1) 2> /dev/null)"

View File

@@ -4,6 +4,7 @@ function {
$commands[virtualenvwrapper.sh] \ $commands[virtualenvwrapper.sh] \
/usr/share/virtualenvwrapper/virtualenvwrapper{_lazy,}.sh \ /usr/share/virtualenvwrapper/virtualenvwrapper{_lazy,}.sh \
/usr/local/bin/virtualenvwrapper{_lazy,}.sh \ /usr/local/bin/virtualenvwrapper{_lazy,}.sh \
/usr/bin/virtualenvwrapper{_lazy,}.sh \
/etc/bash_completion.d/virtualenvwrapper \ /etc/bash_completion.d/virtualenvwrapper \
/usr/share/bash-completion/completions/virtualenvwrapper \ /usr/share/bash-completion/completions/virtualenvwrapper \
$HOME/.local/bin/virtualenvwrapper.sh $HOME/.local/bin/virtualenvwrapper.sh

View File

@@ -10,7 +10,7 @@ plugins=(... vscode)
## Requirements ## Requirements
This plugin requires to have a flavour of VS Code installed and it's executable available in PATH. This plugin requires to have a flavour of VS Code installed and its executable available in PATH.
You can install either: You can install either:

View File

@@ -22,6 +22,6 @@ plugins=(... yum)
| yi | `sudo yum install` | Install package | | yi | `sudo yum install` | Install package |
| ygi | `sudo yum groupinstall` | Install package group | | ygi | `sudo yum groupinstall` | Install package group |
| yr | `sudo yum remove` | Remove package | | yr | `sudo yum remove` | Remove package |
| ygr | `sudo yum groupremove` | Remove pagage group | | ygr | `sudo yum groupremove` | Remove package group |
| yrl | `sudo yum remove --remove-leaves` | Remove package and leaves | | yrl | `sudo yum remove --remove-leaves` | Remove package and leaves |
| yc | `sudo yum clean all` | Clean yum cache | | yc | `sudo yum clean all` | Clean yum cache |

View File

@@ -55,9 +55,9 @@ _nlist_cursor_visibility() {
[ "$1" = "1" ] && { tput cvvis; tput cnorm } [ "$1" = "1" ] && { tput cvvis; tput cnorm }
[ "$1" = "0" ] && tput civis [ "$1" = "0" ] && tput civis
elif [ "$_nlist_has_terminfo" = "1" ]; then elif [ "$_nlist_has_terminfo" = "1" ]; then
[ "$1" = "1" ] && { [ -n $terminfo[cvvis] ] && echo -n $terminfo[cvvis]; [ "$1" = "1" ] && { [ -n "$terminfo[cvvis]" ] && echo -n "$terminfo[cvvis]";
[ -n $terminfo[cnorm] ] && echo -n $terminfo[cnorm] } [ -n "$terminfo[cnorm]" ] && echo -n "$terminfo[cnorm]" }
[ "$1" = "0" ] && [ -n $terminfo[civis] ] && echo -n $terminfo[civis] [ "$1" = "0" ] && [ -n "$terminfo[civis]" ] && echo -n "$terminfo[civis]"
fi fi
} }