Compare commits

...

40 Commits

Author SHA1 Message Date
Jacopo De Simoi ba4018df89 Force truecolor in urxvt 2 months ago
Jacopo De Simoi 9ee043274d Add a comment about dropbox 2 months ago
Jacopo De Simoi 4360c52276 Try to push to the fork only when working on the work-tree 2 months ago
Jacopo De Simoi cb378fd117 Force registering of async git_prompt_info 2 months ago
Jacopo De Simoi da25038592 Fix theme with the async git prompt 2 months ago
Jacopo De Simoi 37295c2fac Fix branch not appearing in recent oh-my-zsh versions 2 months ago
Jacopo De Simoi 01f60b17d5 Push on upgrade 2 months ago
Jacopo De Simoi 463c90aa68 Prevent stalling on remote mounts 2 months ago
Jacopo De Simoi 8ea67f82ef Fix issue with number of jobs not detected anymore 2 months ago
Jacopo De Simoi c27b635c49 Fix whitespace 2 months ago
Jacopo De Simoi e1d64a687b Tint the vertical bar according to exit code 2 months ago
Jacopo De Simoi 329315d9c2 Fix jobs counting 2 months ago
Jacopo De Simoi 26ff6660e3 Fix another typo (should fixup with previous commit) 2 months ago
Jacopo De Simoi cc971f048a Add git_commits_behind 2 months ago
Jacopo De Simoi f0c254fcea Add todo about exit status 2 months ago
Jacopo De Simoi d8f12533cf Tint the # if root 2 months ago
Jacopo De Simoi bdddfc6d86 add old single-line configuration 2 months ago
Jacopo De Simoi 092ab22eef Use with solarized colorscheme 2 months ago
Jacopo De Simoi a447f3162e Unsure of what this is 2 months ago
Jacopo De Simoi 724d5b5bac use PoP-like marks for number of jobs 2 months ago
Jacopo De Simoi 19b27b4d17 Add number of jobs on the right 2 months ago
Jacopo De Simoi 7d9660340d Add commits ahead to prompt 2 months ago
Jacopo De Simoi a17932d77a Add variation on gentoo theme 2 months ago
Jacopo De Simoi f94cbb9c91 do not mess with ssh-agent identites 2 months ago
Chris Schindlbeck 7c10d9839f feat(terraform): add aliases for terraform: tfapp, tfpo 2 months ago
Chris Schindlbeck 103246c198 feat(opentofu): add aliases for opentofu: ttap, ttapp, ttir, ttiu, ttiur, ttpo 2 months ago
dependabot[bot] 887a864aba
chore(deps): bump charset-normalizer in /.github/workflows/dependencies (#13669) 2 months ago
dependabot[bot] d1fb3ebfc7
chore(deps): bump requests in /.github/workflows/dependencies (#13668) 2 months ago
dependabot[bot] beab0c0b3c
chore(deps): bump step-security/harden-runner from 2.16.0 to 2.16.1 (#13667) 2 months ago
ohmyzsh[bot] f0e2160abb
chore(kube-ps1): update to e19c9ee8 (#13666) 2 months ago
dependabot[bot] 9e2c1548c3
chore(deps): bump github/codeql-action from 4.34.1 to 4.35.1 (#13654) 2 months ago
Adam Alston cb13cc539f
docs(vscode): align README with current CLI behavior (#13653) 2 months ago
Marc Cornellà 76ffd9e22a
fix(installer): handle sudo shims that don't support -k flag (#13651) 2 months ago
dependabot[bot] 11c1718983
chore(deps): bump requests from 2.32.5 to 2.33.0 in /.github/workflows/dependencies (#13649) 2 months ago
Alexey Trofimenko 9151236d1e
feat(yarn): use proper `$PWD` var (#13639) 2 months ago
Nathanael Tehilla Gunawan 7e7cb5a23c
fix(dpoggi): ensure correct Ghostty rendering (#13644) 2 months ago
Przemysław Janiszewski 2614f529ce
docs(poetry): fix typo (#13646) 2 months ago
dependabot[bot] df64afb062
chore(deps): bump charset-normalizer from 3.4.5 to 3.4.6 (#13643) 2 months ago
dependabot[bot] 21dbafa904
chore(deps): bump github/codeql-action from 4.32.6 to 4.34.1 (#13642) 2 months ago
dependabot[bot] cfad9e07f6
chore(deps): bump step-security/harden-runner from 2.15.1 to 2.16.0 (#13641) 2 months ago
  1. 2
      .github/dependencies.yml
  2. 2
      .github/workflows/dependencies.yml
  3. 4
      .github/workflows/dependencies/requirements.txt
  4. 4
      .github/workflows/installer.yml
  5. 2
      .github/workflows/main.yml
  6. 2
      .github/workflows/project.yml
  7. 4
      .github/workflows/scorecard.yml
  8. 6
      .gitignore
  9. 4
      lib/git.zsh
  10. 36
      plugins/kube-ps1/kube-ps1.plugin.zsh
  11. 6
      plugins/opentofu/opentofu.plugin.zsh
  12. 1
      plugins/per-directory-history/per-directory-history.plugin.zsh
  13. 149
      plugins/per-directory-history/per-directory-history.plugin.zsh
  14. 10
      plugins/poetry/README.md
  15. 6
      plugins/ssh-agent/ssh-agent.plugin.zsh
  16. 11
      plugins/terraform/terraform.plugin.zsh
  17. 75
      plugins/vscode/README.md
  18. 4
      plugins/yarn/_yarn
  19. 5
      themes/dpoggi.zsh-theme
  20. 66
      themes/gentoo-wilder.zsh-theme
  21. 24
      themes/gentoo-wildersingleline.zsh-theme
  22. 3
      tools/install.sh
  23. 6
      tools/upgrade.sh

@ -30,7 +30,7 @@ dependencies:
plugins/kube-ps1:
repo: jonmosco/kube-ps1
branch: master
version: 9b41c091d5dd4a99e58cf58b5d98a4847937b1bb
version: e19c9ee867c5655814c384a6bf543e330e6ef1b7
precopy: |
set -e
find . ! -name kube-ps1.sh ! -name LICENSE ! -name README.md -delete

@ -13,7 +13,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@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
with:
egress-policy: audit

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

@ -26,7 +26,7 @@ jobs:
- macos-latest
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
with:
egress-policy: audit
@ -47,7 +47,7 @@ jobs:
- test
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
with:
egress-policy: audit

@ -24,7 +24,7 @@ jobs:
if: github.repository == 'ohmyzsh/ohmyzsh'
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
with:
egress-policy: audit

@ -17,7 +17,7 @@ jobs:
if: github.repository == 'ohmyzsh/ohmyzsh'
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
with:
egress-policy: audit
- name: Authenticate as @ohmyzsh

@ -36,7 +36,7 @@ jobs:
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1
uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d # v2.16.1
with:
egress-policy: audit
@ -60,6 +60,6 @@ jobs:
retention-days: 5
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@0d579ffd059c29b07949a3cce3983f0780820c98 # v4.32.6
uses: github/codeql-action/upload-sarif@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
with:
sarif_file: results.sarif

6
.gitignore vendored

@ -4,7 +4,12 @@ custom/
# temp files directories
cache/
log/
# Vim swap/backup files
*.swp
*.swo
# macOS system files
.DS_Store
# editor configs
@ -13,3 +18,4 @@ log/
# zcompile cached files
*.zwc
*.zwc.old

@ -162,11 +162,7 @@ if zstyle -t ':omz:alpha:lib:git' async-prompt \
# or any of the other prompt variables
function _defer_async_git_register() {
# Check if git_prompt_info is used in a prompt variable
case "${PS1}:${PS2}:${PS3}:${PS4}:${RPROMPT}:${RPS1}:${RPS2}:${RPS3}:${RPS4}" in
*(\$\(git_prompt_info\)|\`git_prompt_info\`)*)
_omz_register_handler _omz_git_prompt_info
;;
esac
case "${PS1}:${PS2}:${PS3}:${PS4}:${RPROMPT}:${RPS1}:${RPS2}:${RPS3}:${RPS4}" in
*(\$\(git_prompt_status\)|\`git_prompt_status\`)*)

@ -55,7 +55,17 @@ _kube_ps1_shell_type() {
_kube_ps1_init() {
[[ -f "${_KUBE_PS1_DISABLE_PATH}" ]] && KUBE_PS1_ENABLED=off
case "$(_kube_ps1_shell_type)" in
# Detect shell type once and cache it
_KUBE_PS1_SHELL="$(_kube_ps1_shell_type)"
# Check tput availability once
if tput setaf 1 &> /dev/null; then
_KUBE_PS1_TPUT_AVAILABLE=true
else
_KUBE_PS1_TPUT_AVAILABLE=false
fi
case "${_KUBE_PS1_SHELL}" in
"zsh")
_KUBE_PS1_OPEN_ESC="%{"
_KUBE_PS1_CLOSE_ESC="%}"
@ -96,10 +106,10 @@ _kube_ps1_color_fg() {
if [[ "${_KUBE_PS1_FG_CODE}" == "default" ]]; then
_KUBE_PS1_FG_CODE="${_KUBE_PS1_DEFAULT_FG}"
return
elif [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
elif [[ "${_KUBE_PS1_SHELL}" == "zsh" ]]; then
_KUBE_PS1_FG_CODE="%F{$_KUBE_PS1_FG_CODE}"
elif [[ "$(_kube_ps1_shell_type)" == "bash" ]]; then
if tput setaf 1 &> /dev/null; then
elif [[ "${_KUBE_PS1_SHELL}" == "bash" ]]; then
if [[ "${_KUBE_PS1_TPUT_AVAILABLE}" == "true" ]]; then
_KUBE_PS1_FG_CODE="$(tput setaf "${_KUBE_PS1_FG_CODE}")"
elif [[ $_KUBE_PS1_FG_CODE -ge 0 ]] && [[ $_KUBE_PS1_FG_CODE -le 256 ]]; then
_KUBE_PS1_FG_CODE="\033[38;5;${_KUBE_PS1_FG_CODE}m"
@ -129,15 +139,15 @@ _kube_ps1_color_bg() {
if [[ "${_KUBE_PS1_BG_CODE}" == "default" ]]; then
_KUBE_PS1_FG_CODE="${_KUBE_PS1_DEFAULT_BG}"
return
elif [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
elif [[ "${_KUBE_PS1_SHELL}" == "zsh" ]]; then
_KUBE_PS1_BG_CODE="%K{$_KUBE_PS1_BG_CODE}"
elif [[ "$(_kube_ps1_shell_type)" == "bash" ]]; then
if tput setaf 1 &> /dev/null; then
elif [[ "${_KUBE_PS1_SHELL}" == "bash" ]]; then
if [[ "${_KUBE_PS1_TPUT_AVAILABLE}" == "true" ]]; then
_KUBE_PS1_BG_CODE="$(tput setab "${_KUBE_PS1_BG_CODE}")"
elif [[ $_KUBE_PS1_BG_CODE -ge 0 ]] && [[ $_KUBE_PS1_BG_CODE -le 256 ]]; then
_KUBE_PS1_BG_CODE="\033[48;5;${_KUBE_PS1_BG_CODE}m"
else
_KUBE_PS1_BG_CODE="${DEFAULT_BG}"
_KUBE_PS1_BG_CODE="${_KUBE_PS1_DEFAULT_BG}"
fi
fi
echo "${_KUBE_PS1_OPEN_ESC}${_KUBE_PS1_BG_CODE}${_KUBE_PS1_CLOSE_ESC}"
@ -174,7 +184,7 @@ _kube_ps1_symbol() {
symbol="$(_kube_ps1_color_fg ${oc_symbol_color})${oc_glyph}${KUBE_PS1_RESET_COLOR}"
;;
*)
case "$(_kube_ps1_shell_type)" in
case "${_KUBE_PS1_SHELL}" in
bash)
if ((BASH_VERSINFO[0] >= 4)) && [[ $'\u2388' != "\\u2388" ]]; then
symbol="$(_kube_ps1_color_fg $custom_symbol_color)${symbol_default}${KUBE_PS1_RESET_COLOR}"
@ -212,7 +222,7 @@ _kube_ps1_file_newer_than() {
local file=$1
local check_time=$2
if [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
if [[ "${_KUBE_PS1_SHELL}" == "zsh" ]]; then
# Use zstat '-F %s.%s' to make it compatible with low zsh version (eg: 5.0.2)
mtime=$(zstat -L +mtime -F %s.%s "${file}")
elif stat -c "%s" /dev/null &> /dev/null; then
@ -292,13 +302,13 @@ _kube_ps1_get_ns() {
_kube_ps1_get_context_ns() {
# Set the command time
if [[ "$(_kube_ps1_shell_type)" == "bash" ]]; then
if [[ "${_KUBE_PS1_SHELL}" == "bash" ]]; then
if ((BASH_VERSINFO[0] >= 4 && BASH_VERSINFO[1] >= 2)); then
_KUBE_PS1_LAST_TIME=$(printf '%(%s)T')
else
_KUBE_PS1_LAST_TIME=$(date +%s)
fi
elif [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
elif [[ "${_KUBE_PS1_SHELL}" == "zsh" ]]; then
_KUBE_PS1_LAST_TIME=$EPOCHREALTIME
fi
@ -325,7 +335,7 @@ Toggle kube-ps1 prompt on
Usage: kubeon [-g | --global] [-h | --help]
With no arguments, turn oon kube-ps1 status for this shell instance (default).
With no arguments, turn on kube-ps1 status for this shell instance (default).
-g --global turn on kube-ps1 status globally
-h --help print this message

@ -30,14 +30,20 @@ function tofu_version_prompt_info() {
alias tt='tofu'
alias tta='tofu apply'
alias tta!='tofu apply -auto-approve'
alias ttap='tofu apply -parallelism=1'
alias ttapp='tofu apply tfplan'
alias ttc='tofu console'
alias ttd='tofu destroy'
alias ttd!='tofu destroy -auto-approve'
alias ttf='tofu fmt'
alias ttfr='tofu fmt -recursive'
alias tti='tofu init'
alias ttir='tofu init -reconfigure'
alias ttiu='tofu init -upgrade'
alias ttiur='tofu init -upgrade -reconfigure'
alias tto='tofu output'
alias ttp='tofu plan'
alias ttpo='tofu plan -out tfplan'
alias ttv='tofu validate'
alias tts='tofu state'
alias ttsh='tofu show'

@ -0,0 +1,149 @@
#!/usr/bin/env zsh
#
# This is a implementation of per directory history for zsh, some
# implementations of which exist in bash[1,2]. It also implements
# a per-directory-history-toggle-history function to change from using the
# directory history to using the global history. In both cases the history is
# always saved to both the global history and the directory history, so the
# toggle state will not effect the saved histories. Being able to switch
# between global and directory histories on the fly is a novel feature as far
# as I am aware.
#
#-------------------------------------------------------------------------------
# Configuration
#-------------------------------------------------------------------------------
#
# HISTORY_BASE a global variable that defines the base directory in which the
# directory histories are stored
#
#-------------------------------------------------------------------------------
# History
#-------------------------------------------------------------------------------
#
# The idea/inspiration for a per directory history is from Stewart MacArthur[1]
# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh
# mailing list[3]. The implementation is by Jim Hester in September 2012.
#
# [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html
# [2]: http://dieter.plaetinck.be/per_directory_bash
# [3]: http://www.zsh.org/mla/users/1997/msg00226.html
#
################################################################################
#
# Copyright (c) 2012 Jim Hester
#
# This software is provided 'as-is', without any express or implied warranty.
# In no event will the authors be held liable for any damages arising from the
# use of this software.
#
# Permission is granted to anyone to use this software for any purpose,
# including commercial applications, and to alter it and redistribute it
# freely, subject to the following restrictions:
#
# 1. The origin of this software must not be misrepresented; you must not claim
# that you wrote the original software. If you use this software in a product,
# an acknowledgment in the product documentation would be appreciated but is
# not required.
#
# 2. Altered source versions must be plainly marked as such, and must not be
# misrepresented as being the original software.
#
# 3. This notice may not be removed or altered from any source distribution..
#
################################################################################
#-------------------------------------------------------------------------------
# configuration, the base under which the directory histories are stored
#-------------------------------------------------------------------------------
[[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history"
#-------------------------------------------------------------------------------
# toggle global/directory history used for searching - ctrl-G by default
#-------------------------------------------------------------------------------
function per-directory-history-toggle-history() {
if [[ $_per_directory_history_is_global == true ]]; then
_per-directory-history-set-directory-history
print -n "\nusing local history"
else
_per-directory-history-set-global-history
print -n "\nusing global history"
fi
zle .push-line
zle .accept-line
}
autoload per-directory-history-toggle-history
zle -N per-directory-history-toggle-history
bindkey '^G' per-directory-history-toggle-history
#-------------------------------------------------------------------------------
# implementation details
#-------------------------------------------------------------------------------
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
function _per-directory-history-change-directory() {
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
mkdir -p ${_per_directory_history_directory:h}
if [[ $_per_directory_history_is_global == false ]]; then
#save to the global history
fc -AI $HISTFILE
#save history to previous file
local prev="$HISTORY_BASE${OLDPWD:A}/history"
mkdir -p ${prev:h}
fc -AI $prev
#discard previous directory's history
local original_histsize=$HISTSIZE
HISTSIZE=0
HISTSIZE=$original_histsize
#read history in new file
if [[ -e $_per_directory_history_directory ]]; then
fc -R $_per_directory_history_directory
fi
fi
}
function _per-directory-history-addhistory() {
print -Sr -- ${1%%$'\n'}
fc -p $_per_directory_history_directory
}
function _per-directory-history-set-directory-history() {
if [[ $_per_directory_history_is_global == true ]]; then
fc -AI $HISTFILE
local original_histsize=$HISTSIZE
HISTSIZE=0
HISTSIZE=$original_histsize
if [[ -e "$_per_directory_history_directory" ]]; then
fc -R "$_per_directory_history_directory"
fi
fi
_per_directory_history_is_global=false
}
function _per-directory-history-set-global-history() {
if [[ $_per_directory_history_is_global == false ]]; then
fc -AI $_per_directory_history_directory
local original_histsize=$HISTSIZE
HISTSIZE=0
HISTSIZE=$original_histsize
if [[ -e "$HISTFILE" ]]; then
fc -R "$HISTFILE"
fi
fi
_per_directory_history_is_global=true
}
#add functions to the exec list for chpwd and zshaddhistory
chpwd_functions=(${chpwd_functions[@]} "_per-directory-history-change-directory")
zshaddhistory_functions=(${zshaddhistory_functions[@]} "_per-directory-history-addhistory")
#start in directory mode
mkdir -p ${_per_directory_history_directory:h}
_per_directory_history_is_global=true
_per-directory-history-set-directory-history

@ -10,27 +10,27 @@ plugins=(... poetry)
## Aliases
| Alias | Command | Description
| Alias | Command | Description |
|:----- |--------------------------------------------------- |:--------------------------------------------------------------------------------------- |
| pad | `poetry add` | Add packages to `pyproject.toml` and install them |
| pbld | `poetry build` | Build the source and wheels archives |
| pch | `poetry check` | Validate the content of the `pyproject.toml` and its consistency with the `poetry.lock` |
| pcmd | `poetry list` | Display all the available Poetry commands |
| pconf | `poetry config --list` | Allow you to edit poetry config settings and repositories |
| pexp | `poetry export --without-hashes > requirements.txt | Export the lock file to `requirements.txt` |
| pexp | `poetry export --without-hashes > requirements.txt` | Export the lock file to `requirements.txt` |
| pin | `poetry init` | Create a `pyproject.toml` interactively |
| pinst | `poetry install` | Read the `pyproject.toml`, resolve the dependencies, and install them |
| plck | `poetry lock` | Lock the dependencies in `pyproject.toml` without installing |
| pnew | `poetry new` | Create a directory structure suitable for most Python projects |
| ppath | `poetry env info --path` | Get the path of the currently activated virtualenv` |
| ppath | `poetry env info --path` | Get the path of the currently activated virtualenv |
| pplug | `poetry self show plugins` | List all the installed Poetry plugins |
| ppub | `poetry publish` | Publish the builded (`poetry build` command) package to the remote repository |
| ppub | `poetry publish` | Publish the built (`poetry build` command) package to the remote repository |
| prm | `poetry remove` | Remove packages from `pyproject.toml` and uninstall them |
| prun | `poetry run` | Executes the given command inside the project’s virtualenv |
| psad | `poetry self add` | Add the Poetry plugin and install dependencies to make it work |
| psh | `poetry shell` | Spawns a shell within the virtual environment. If one doesn’t exist, it will be created |
| pshw | `poetry show` | List all the available dependencies |
| pslt | `poetry show --latest` | List lastest version of the dependencies |
| pslt | `poetry show --latest` | List latest version of the dependencies |
| psup | `poetry self update` | Update Poetry to the latest version (default) or to the specified version |
| psync | `poetry install --sync` | Synchronize your environment with the `poetry.lock` |
| ptree | `poetry show --tree` | List the dependencies as tree |

@ -74,8 +74,8 @@ function _add_identities() {
fi
# pass extra arguments to ssh-add
local args
zstyle -a :omz:plugins:ssh-agent ssh-add-args args
# local args
# zstyle -a :omz:plugins:ssh-agent ssh-add-args args
# if ssh-agent quiet mode, pass -q to ssh-add
zstyle -t :omz:plugins:ssh-agent quiet && args=(-q $args)
@ -93,7 +93,7 @@ function _add_identities() {
fi
fi
ssh-add "${args[@]}" ${^not_loaded}
# Ssh-add "${args[@]}" ${^not_loaded}
}
# Add a nifty symlink for screen/tmux if agent forwarding is enabled

@ -4,21 +4,21 @@ function tf_prompt_info() {
# check if in terraform dir and file exists
[[ -d "${TF_DATA_DIR:-.terraform}" && -r "${TF_DATA_DIR:-.terraform}/environment" ]] || return
local workspace="$(< "${TF_DATA_DIR:-.terraform}/environment")"
local workspace="$(<"${TF_DATA_DIR:-.terraform}/environment")"
echo "${ZSH_THEME_TF_PROMPT_PREFIX-[}${workspace:gs/%/%%}${ZSH_THEME_TF_PROMPT_SUFFIX-]}"
}
function tf_version_prompt_info() {
local terraform_version
terraform_version=$(terraform --version | head -n 1 | cut -d ' ' -f 2)
echo "${ZSH_THEME_TF_VERSION_PROMPT_PREFIX-[}${terraform_version:gs/%/%%}${ZSH_THEME_TF_VERSION_PROMPT_SUFFIX-]}"
local terraform_version
terraform_version=$(terraform --version | head -n 1 | cut -d ' ' -f 2)
echo "${ZSH_THEME_TF_VERSION_PROMPT_PREFIX-[}${terraform_version:gs/%/%%}${ZSH_THEME_TF_VERSION_PROMPT_SUFFIX-]}"
}
alias tf='terraform'
alias tfa='terraform apply'
alias tfa!='terraform apply -auto-approve'
alias tfap='terraform apply -parallelism=1'
alias tfapp='terraform apply tfplan'
alias tfc='terraform console'
alias tfd='terraform destroy'
alias tfd!='terraform destroy -auto-approve'
@ -31,6 +31,7 @@ alias tfiu='terraform init -upgrade'
alias tfiur='terraform init -upgrade -reconfigure'
alias tfo='terraform output'
alias tfp='terraform plan'
alias tfpo='terraform plan -out tfplan'
alias tfv='terraform validate'
alias tfs='terraform state'
alias tft='terraform test'

@ -1,6 +1,6 @@
# VS Code
This plugin provides useful aliases to simplify the interaction between the command line and VS Code, VSCodium, or Cursor editor.
This plugin provides useful aliases to simplify interaction between the command line and VS Code, VSCodium, or Cursor.
To start using it, add the `vscode` plugin to your `plugins` array in `~/.zshrc`:
@ -10,46 +10,45 @@ plugins=(... vscode)
## Requirements
This plugin requires to have a flavour of VS Code installed and its executable available in PATH.
This plugin requires one of the supported editors to be installed and its executable to be available in `PATH`.
You can install either:
You can install one of the following:
- VS Code (code)
- VS Code Insiders (code-insiders)
- VSCodium (codium)
- Cursor (cursor)
- VS Code (`code`)
- VS Code Insiders (`code-insiders`)
- VSCodium (`codium`)
- Cursor (`cursor`)
### MacOS
### macOS
While Linux installations will add the executable to PATH, MacOS users might still have to do this manually:
While Linux installations usually add the executable to `PATH`, macOS users might still have to do this manually:
[For VS Code and VS Code Insiders](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line),
open the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell Command:
open the Command Palette with `F1` or `Shift+Cmd+P`, then search for the following command:
> Shell Command: Install 'code' command in PATH
[For VSCodium](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#how-do-i-open-vscodium-from-the-terminal),
open the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell Command:
open the Command Palette with `F1` or `Shift+Cmd+P`, then search for the following command:
> Shell Command: Install 'codium' command in PATH
For Cursor, open the Command Palette via (F1 or ⌘⇧P) and type shell command to find the Shell Command:
For Cursor, open the Command Palette with `F1` or `Cmd+Shift+P`, then search for the following command:
> Shell Command: Install 'cursor' command in PATH
## Using multiple flavours
## Choosing an editor
If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code
Insiders, you can manually specify the flavour's executable. Add the following line to the .zshrc file
(between the `ZSH_THEME` and the `plugins=()` lines). This will make the plugin use your manually defined
executable.
If you have multiple supported editors installed, e.g., VS Code (stable) and VS Code Insiders, you can manually
specify which executable the plugin should use. Add the following line to `~/.zshrc` between the `ZSH_THEME`
and `plugins=()` lines. This makes the plugin use your manually defined executable.
```zsh
ZSH_THEME=...
# Choose between one [code, code-insiders, codium, or cursor]
# The following line will make the plugin to open VS Code Insiders
# Invalid entries will be ignored, no aliases will be added
# Choose one of `code`, `code-insiders`, `codium`, or `cursor`.
# The following line makes the plugin open VS Code Insiders.
# Invalid entries are ignored and no aliases are added.
VSCODE=code-insiders
plugins=(... vscode)
@ -61,29 +60,29 @@ source $ZSH/oh-my-zsh.sh
| Alias | Command | Description |
| ----------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------- |
| vsc | code . | Open the current folder in VS code |
| vsc `dir` | code `dir` | Open passed folder in VS code |
| vsca `dir` | code --add `dir` | Add folder(s) to the last active window |
| vsc | code . | Open the current folder in VS Code |
| vsc `[args ...]` | code `[args ...]` | Pass arguments through to VS Code, e.g., a file, folder, or CLI flags. |
| vsca `dir` | code --add `dir` | Add one or more folders to the last active window. |
| vscd `file` `file` | code --diff `file` `file` | Compare two files with each other. |
| vscg `file:line[:char]` | code --goto `file:line[:char]` | Open a file at the path on the specified line and character position. |
| vscn | code --new-window | Force to open a new window. |
| vscr | code --reuse-window | Force to open a file or folder in the last active window. |
| vscn | code --new-window | Force opening in a new window. |
| vscr | code --reuse-window | Force opening a file or folder in the last active window. |
| vscw | code --wait | Wait for the files to be closed before returning. |
| vscu `dir` | code --user-data-dir `dir` | Specifies the directory that user data is kept in. Can be used to open multiple distinct instances of Code. |
| vscu `dir` | code --user-data-dir `dir` | Specifies the directory where user data is stored. Can be used to open multiple distinct instances of Code. |
| vscp `profile` | code --profile `profile` | Specifies the profile to open Code with. |
## Extensions aliases
## Extension aliases
| Alias | Command | Description |
| ----------------------- | ---------------------------------------------------------------- | --------------------------------- |
| vsced `dir` | code --extensions-dir `dir` | Set the root path for extensions. |
| vscie `id or vsix-path` | code --install-extension `extension-id> or <extension-vsix-path` | Installs an extension. |
| vscue `id or vsix-path` | code --uninstall-extension `id or vsix-path` | Uninstalls an extension. |
| Alias | Command | Description |
| --------------------------- | ---------------------------------------------- | -------------------------------------- |
| vsced `dir` | code --extensions-dir `dir` | Set the root directory for extensions. |
| vscie `ext-id or vsix-path` | code --install-extension `ext-id or vsix-path` | Installs or updates an extension. |
| vscue `ext-id` | code --uninstall-extension `ext-id` | Uninstalls an extension. |
## Other options:
## Other options
| Alias | Command | Description |
| ------------ | ------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| vscv | code --verbose | Print verbose output (implies --wait). |
| vscl `level` | code --log `level` | Log level to use. Default is 'info'. Allowed values are 'critical', 'error', 'warn', 'info', 'debug', 'trace', 'off'. |
| vscde | code --disable-extensions | Disable all installed extensions. |
| Alias | Command | Description |
| ------------ | ------------------------- | ---------------------------------------- |
| vscv | code --verbose | Print verbose output (implies `--wait`). |
| vscl `level` | code --log `level` | Log level to use. Default is `info`. |
| vscde | code --disable-extensions | Disable all installed extensions. |

@ -111,7 +111,7 @@ _yarn_commands_scripts() {
packageJson=$(_yarn_find_package_json $opt_args[--cwd])
binaries=($(builtin cd $opt_args[--cwd] && echo node_modules/.bin/*(x:t)))
else
packageJson=$(_yarn_find_package_json $pwd)
packageJson=$(_yarn_find_package_json $PWD)
binaries=($(echo node_modules/.bin/*(x:t)))
fi
@ -135,7 +135,7 @@ _yarn_scripts() {
binaries=($(builtin cd $_yarn_run_cwd && yarn bin | perl -wln -e 'm{^[^:]+: (\S+)$} and print $1'))
fi
else
packageJson=$(_yarn_find_package_json $pwd)
packageJson=$(_yarn_find_package_json $PWD)
if [[ -d node_modules ]]; then
binaries=($(echo node_modules/.bin/*(x:t)))
else

@ -1,10 +1,7 @@
if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
PROMPT='%{$fg[$NCOLOR]%}%n%{$reset_color%}@%{$fg[cyan]%}%m\
%{$reset_color%}:%{$fg[magenta]%}%~\
$(git_prompt_info) \
%{$fg[red]%}%(!.#.»)%{$reset_color%} '
PROMPT='%{$fg[$NCOLOR]%}%n%{$reset_color%}@%{$fg[cyan]%}%m%{$reset_color%}:%{$fg[magenta]%}%~$(git_prompt_info) %{$fg[red]%}%(!.#.»)%{$reset_color%} '
PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
RPS1='${return_code}'

@ -0,0 +1,66 @@
#! /bin/zsh
jobs_marker=( )
# Solarized
solarized_base03=$'\e[1;30m'
solarized_base02=$'\e[0;30m'
solarized_base01=$'\e[1;32m'
solarized_base00=$'\e[1;33m'
solarized_base0=$'\e[1;34m'
solarized_base1=$'\e[1;36m'
solarized_base2=$'\e[0;37m'
solarized_base3=$'\e[1;37m'
solarized_yellow=$'\e[0;33m'
solarized_orange=$'\e[1;31m'
solarized_red=$'\e[0;31m'
solarized_magenta=$'\e[0;35m'
solarized_violet=$'\e[1;35m'
solarized_blue=$'\e[0;34m'
solarized_cyan=$'\e[0;36m'
solarized_green=$'\e[0;32m'
dir_tint=$solarized_blue
jobs_tint=$solarized_green
root_tint=$solarized_magenta
function prompt_char {
if [ $UID -eq 0 ]; then echo "%{$root_tint%}#%{$reset_color%}" && return;
fi
is_curr_dir_remote || {git branch >/dev/null 2>/dev/null && echo '±' && return}
echo '%#'
}
function is_curr_dir_remote {
[[ $(pwd) =~ .*nextcloud.* ]] # || [[ $(pwd) =~ .*dropbox.* ]]
}
function git_stuff {
is_curr_dir_remote || echo -n $(git_prompt_info)$(git_commits_ahead)$(git_commits_behind)
}
# newline ⎡⎧⎛⎢
return_code_vertical_top="%(?.%{$reset_color%}.%{$solarized_magenta%})⎥%{$reset_color%} "
return_code_vertical="%(?.%{$reset_color%}.%{$solarized_magenta%})⎥%{$reset_color%} "
PROMPT="
$return_code_vertical_top"
# add username only from remote
[[ "$SSH_CONNECTION" != '' ]] && PROMPT+=$'%(!.%{\e[0;34m%}%}.%{\e[0;32m%}%}%n@)%m '
PROMPT+=$'%{$dir_tint%}%(!.%1~.%~)%{$reset_color%}$(git_stuff)
${return_code_vertical}$(prompt_char)%{$reset_color%} '
RPROMPT=$'%{$jobs_tint%}$jobs_marker[${(%):-%j}]%{$reset_color%}'
ZSH_THEME_GIT_PROMPT_PREFIX="%{\033[1;32m%} · %{\033[0;36m%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg_bold[blue]%}"
ZSH_THEME_GIT_PROMPT_DIRTY="%{\e[0;35m%} !"
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?"
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX="%{\033[0;36m%} "
ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX="↑%{$fg_bold[blue]%}"
ZSH_THEME_GIT_COMMITS_BEHIND_PREFIX="%{\033[0;36m%} "
ZSH_THEME_GIT_COMMITS_BEHIND_SUFFIX="↓%{$fg_bold[blue]%}"

@ -0,0 +1,24 @@
function prompt_char {
if [ $UID -eq 0 ]; then echo "#" && return;
fi
git branch >/dev/null 2>/dev/null && echo '±' && return
echo '%#'
}
function get_nr_jobs() {
repeat $(jobs | wc -l) printf '▶'
}
PROMPT='
%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~)$(git_prompt_info)$(git_commits_ahead)
$(prompt_char)%{$reset_color%} '
RPROMPT='%{$fg_bold[green]%}$(get_nr_jobs)%{$reset_color%}'
ZSH_THEME_GIT_PROMPT_PREFIX="%{\033[0;36m%}·"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg_bold[blue]%}"
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%}!"
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?"
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX="%{\033[0;36m%} "
ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX="↑%{$fg_bold[blue]%}"

@ -473,7 +473,8 @@ EOF
# be prompted for the password either way, so this shouldn't cause any issues.
#
if user_can_sudo; then
sudo -k chsh -s "$zsh" "$USER" # -k forces the password prompt
sudo -k >/dev/null 2>&1 # -k forces the password prompt
sudo chsh -s "$zsh" "$USER"
else
chsh -s "$zsh" "$USER" # run chsh normally
fi

@ -134,6 +134,7 @@ supports_truecolor() {
tmux-truecolor |\
linux-truecolor |\
xterm-truecolor |\
rxvt-unicode |\
screen-truecolor) return 0 ;;
esac
@ -252,6 +253,11 @@ if LANG= git pull --quiet --rebase $remote $branch; then
# Save the commit prior to updating
git config oh-my-zsh.lastVersion "$last_commit"
# Push to fork
if [[ $remote == upstream ]]; then
git push --force origin $branch
fi
# Print changelog to the terminal
if [[ $interactive == true && $verbose_mode == default ]]; then
ZSH="$ZSH" command zsh -f "$ZSH/tools/changelog.sh" HEAD "$last_commit"

Loading…
Cancel
Save