diff --git a/home/.chezmoidata.yaml b/home/.chezmoidata.yaml index bb16167d..621ddf30 100644 --- a/home/.chezmoidata.yaml +++ b/home/.chezmoidata.yaml @@ -341,6 +341,7 @@ softwareGroups: - juju - lexicon - logcli + - mongodb-atlas - nextcloud - psu - rancher-cli @@ -693,6 +694,7 @@ softwareGroups: - assh - endlessh - fail2ban + - mosh - openssh-server - skm - ssh-vault diff --git a/home/.chezmoiexternal.toml.tmpl b/home/.chezmoiexternal.toml.tmpl index 383b3bcf..0b092c36 100644 --- a/home/.chezmoiexternal.toml.tmpl +++ b/home/.chezmoiexternal.toml.tmpl @@ -219,6 +219,13 @@ clone.args = ["--depth", "1"] pull.args = ["--ff-only"] +### PowerShell +[".local/share/powershell/docker"] + type = "git-repo" + url = "https://github.com/matt9ucci/DockerCompletion.git" + clone.args = ["--depth", "1"] + pull.args = ["--ff-only"] + ### JumpUSB [".local/src/jumpusb"] type = "git-repo" diff --git a/home/.chezmoitemplates/secrets/OPENAI_API_KEY b/home/.chezmoitemplates/secrets/OPENAI_API_KEY new file mode 100644 index 00000000..5e505672 --- /dev/null +++ b/home/.chezmoitemplates/secrets/OPENAI_API_KEY @@ -0,0 +1,8 @@ +-----BEGIN AGE ENCRYPTED FILE----- +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYM3FFdVQ2M3I2M2RwbkFP +MkVsVTd5NnQ3VERuRy85V1BJbHhUTUlDODN3ClNvU3NvLzJlSkNSRU54M1ZMdk1j +bXZPZ0p0SHRSR1dabjBuZlY5TzhjWVEKLS0tIGxSRlR4bEZDMC9MZlgvbWZ6eVZw +RzZXTFlLcXVHVTZ2RkxIRHVVT0NqN3cKb21RMG+MnY2n66YWLaDveDP8MhBlSTaE +xAtubAEGqbeSjCsRns7Cqx9ayJIY7kMs1BC/7SoaMmKy8iIyYskncfSJFqbIslph +vGekBcRu/VKgM7D8 +-----END AGE ENCRYPTED FILE----- \ No newline at end of file diff --git a/home/dot_bashrc b/home/dot_bashrc index 2794c953..116e8605 100644 --- a/home/dot_bashrc +++ b/home/dot_bashrc @@ -81,6 +81,11 @@ if [ "$BASH_SUPPORT" = 'true' ]; then fi fi + ### Cod + if command -v cod > /dev/null; then + source <(cod init $$ bash) + fi + ### direnv if command -v direnv > /dev/null; then eval "$(direnv hook bash)" diff --git a/home/dot_config/cod/config.toml b/home/dot_config/cod/config.toml new file mode 100644 index 00000000..3129dba0 --- /dev/null +++ b/home/dot_config/cod/config.toml @@ -0,0 +1,56 @@ +# cod configuration +# Put this configuration into '~/.config/cod/config.toml'. +# +# Lines starting with '#' are comments. + + +# +# Misc options +# ============ +# 'command-execution-timout' controls how long cod waits for completion of command (in milliseconds). +# Default value is 1000 (i.e. 1 second). +# +# command-execution-timeout = 1000 + + +# +# Rules +# ===== + +# Configuration might have several '[[rule]]' sections. +# Whenever cod detects usage of help command in the shell it will scan all +# such sections. When it finds first appropriate rule (see 'executable' key) +# 'policy' from this rule is used. If no appropriate rule is found default +# policy is used. + +# 'executable' controls which executables this rule is applied to. +# 'executble' might have one of following forms: +# - '/path/to/executable' :: current rule applies to specified executable +# - '/path/to/dir/*' :: current rule applies to all executables +# in '/path/to/dir' directory but not in +# its subdirectories. +# - '/path/to/dir/**' :: current rule applies to all executables +# in '/path/to/dir' directory or its subdirectory +# - 'exec-name' :: current rule applies to all executables with basename +# 'exec-name' +# +# Paths must be absolute. '~/' is expanded to home directory. + +# 'policy' controls cod actions whenever it detects usage of help command +# in the shell. Possible values for 'policy' are: +# - 'ask' :: default policy, cod will ask if you want to learn command; +# - 'trust' :: cod will automatically learn detected help command; +# - 'ignore' :: cod will ignore all command for this executable. + +# Examples: +# [[rule]] +# executable = "/usr/bin/*" +# policy = 'ignore' +# +# [[rule]] +# executable = "~/bin/*" +# policy = 'trust' + +# [[rule]] +# executable = "~/my/repo/**" +# policy = 'trust' diff --git a/home/dot_config/powershell/profile.ps1 b/home/dot_config/powershell/profile.ps1 index 631dcd16..18693ecd 100644 --- a/home/dot_config/powershell/profile.ps1 +++ b/home/dot_config/powershell/profile.ps1 @@ -9,6 +9,9 @@ $env:GIT_SSH = "C:\Windows\system32\OpenSSH\ssh.exe" Install-Module posh-git oh-my-posh init pwsh --config "$env:HOME/.config/oh-my-posh/Betelgeuse.omp.json" | Invoke-Expression +### Docker Completion +Import-Module "$env:HOME/.local/share/powershell/docker/DockerCompletion/DockerCompletion" + # Import-Module -Name Terminal-Icons # PSReadLine diff --git a/home/dot_config/shell/exports.sh.tmpl b/home/dot_config/shell/exports.sh.tmpl index 0262068f..40755a77 100644 --- a/home/dot_config/shell/exports.sh.tmpl +++ b/home/dot_config/shell/exports.sh.tmpl @@ -337,6 +337,10 @@ export LESS_TERMCAP_us=$'\e[1;4;31m' export LESSHISTFILE=- export MANPAGER="less -X" +### Magic Enter (ZSH) +export MAGIC_ENTER_GIT_COMMAND='git status -u .' +export MAGIC_ENTER_OTHER_COMMAND='ls -lh .' + ### Line Wrap setterm -linewrap on 2>/dev/null diff --git a/home/dot_config/shell/private_private.sh.tmpl b/home/dot_config/shell/private_private.sh.tmpl index 0e61664f..ce2b3ff8 100644 --- a/home/dot_config/shell/private_private.sh.tmpl +++ b/home/dot_config/shell/private_private.sh.tmpl @@ -41,6 +41,9 @@ export FULLY_AUTOMATED_TASKS=true ### NPM export NPM_TOKEN="{{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "NPM_TOKEN")) }}{{ includeTemplate "secrets/NPM_TOKEN" | decrypt }}{{ else }}{{ env "NPM_TOKEN" }}{{ end }}" +### OpenAI +export OPENAI_API_KEY="{{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "OPENAI_API_KEY")) }}{{ includeTemplate "secrets/OPENAI_API_KEY" | decrypt }}{{ else }}{{ env "OPENAI_API_KEY" }}{{ end }}" + ### PyPi export PYPI_TOKEN="{{ if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "PYPI_TOKEN")) }}{{ includeTemplate "secrets/PYPI_TOKEN" | decrypt }}{{ else }}{{ env "PYPI_TOKEN" }}{{ end }}" diff --git a/home/dot_zshrc b/home/dot_zshrc index 5ea66183..b4e3e73e 100644 --- a/home/dot_zshrc +++ b/home/dot_zshrc @@ -265,30 +265,75 @@ fi if command -v antigen > /dev/null; then # Fix for oh-my-zsh overriding exa aliases export DISABLE_LS_COLORS=true + # Official Oh-My-ZSH plugins antigen use oh-my-zsh antigen bundle adb + antigen bundle bazel + antigen bundle codeclimate # antigen bundle colored-man-pages antigen bundle command-not-found antigen bundle copybuffer # TODO: Add as an alias available to Bash as well antigen bundle encode64 antigen bundle fd + antigen bundle flutter + antigen bundle fzf + antigen bundle gcloud + antigen bundle gem + antigen bundle gh antigen bundle git-auto-fetch + antigen bundle git-extras + antigen bundle git-flow + antigen bundle gitfast + antigen bundle github # antigen bundle gnu-utils - # antigen bundle heroku + antigen bundle golang + # antigen bundle gpg-agent + antigen bundle gradle + antigen bundle helm + antigen bundle heroku + antigen bundle httpie + antigen bundle ionic + antigen bundle ipfs + antigen bundle isodate # antigen bundle keychain + antigen bundle kn + antigen bundle kubectl antigen bundle kubectx + antigen bundle last-working-dir + antigen bundle lxd antigen bundle macos + antigen bundle macports antigen bundle magic-enter + antigen bundle marktext + antigen bundle microk8s antigen bundle minikube + antigen bundle mongo-atlas + antigen bundle mongocli + antigen bundle mosh + antigen bundle multipass antigen bundle ng + antigen bundle node-docs antigen bundle nomad antigen bundle npm + antigen bundle oc + antigen bundle pass + # antigen bundle pep8 + antigen bundle pip + # antigen bundle pipenv + antigen bundle pm2 + antigen bundle poetry + antigen bundle qrcode + antigen bundle react-native antigen bundle redis-cli antigen bundle ripgrep antigen bundle rust antigen bundle safe-paste + antigen bundle sdk + # antigen bundle skaffold + antigen bundle spring # antigen bundle shell-proxy + antigen bundle sprunge # antigen bundle ssh-agent antigen bundle sudo antigen bundle ufw @@ -303,6 +348,10 @@ if command -v antigen > /dev/null; then antigen bundle vagrant antigen bundle yarn + # Third-party plugins + antigen bundle jscutlery/nx-completion + antigen bundle lukechilds/zsh-better-npm-completion + antigen bundle zsh-interactive-cd # antigen bundle zsh-navigation-tools antigen bundle zsh-users/zsh-completions src @@ -324,6 +373,11 @@ if command -v zoxide > /dev/null; then zstyle ':autocomplete:recent-dirs' backend zoxide fi +### Cod +if command -v cod > /dev/null; then + source <(cod init $$ zsh) +fi + ### direnv if command -v direnv > /dev/null; then eval "$(direnv hook zsh)" diff --git a/software.yml b/software.yml index 1f56b90c..90692858 100644 --- a/software.yml +++ b/software.yml @@ -955,6 +955,49 @@ softwarePackages: scoop: bottom snap: bottom _type: cli + cod: + _bin: cod + _todo: Check for brew install later on (5/14/2023) + _desc: Cod is a completion daemon for bash/fish/zsh that automatically adds auto-completions when --help is used + _docs: https://github.com/dim-an/cod + _github: https://github.com/dim-an/cod + _home: https://github.com/dim-an/cod + _name: Cod + go: github.com/dim-an/cod@master + opencommit: + _bin: opencommit + _desc: GPT CLI to auto-generate impressive commits in 1 second + _docs: https://github.com/di-sukharev/opencommit + _github: https://github.com/di-sukharev/opencommit + _home: https://www.npmjs.com/package/opencommit + _name: OpenCommit + npm: opencommit + mosh: + _bin: mosh + _desc: Remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes. + _docs: https://mosh.org/#usage + _github: https://github.com/mobile-shell/mosh + _home: https://mosh.org/ + _name: Mosh + apk: mosh + apt: mosh + brew: mosh + dnf: mosh + emerge: net-misc/mosh + pacman: mosh + pkg-freebsd: net/mosh + pkg_add: mosh + port: mosh + zypper: mosh + mongodb-atlas: + _bin: atlas + _desc: Install the Atlas CLI to quickly provision and manage Atlas database deployments from the terminal. (Official MongoDB hosted service provider CLI) + _docs: https://www.mongodb.com/docs/atlas/cli/stable/command/atlas/ + _github: https://github.com/mongodb/mongodb-atlas-cli + _home: https://www.mongodb.com/docs/atlas/cli/stable/ + _name: MongoDB Atlas + brew: mongodb-atlas + choco: mongodb-atlas privaxy: _bin: privaxy _desc: Privaxy is the next generation tracker and advertisement blocker. It blocks ads and trackers by MITMing HTTP(s) traffic.