Compare commits

...

49 Commits

Author SHA1 Message Date
36e0f36e06 chore: move to .tool-versions 2024-09-19 17:02:14 +03:00
e2c37d29e8 chore: more cleanup, linting and fixes 2024-09-19 12:40:16 +03:00
78716fa8ce feat(config): few handy date aliases 2024-09-19 09:49:59 +03:00
81e9b20eb6 chore(config): cleanup and removal of duplicates 2024-09-19 09:49:35 +03:00
renovate[bot]
94e58b307b chore(deps): update node to v22.9.0 (#27)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-18 02:43:47 +03:00
98aca096a9 feat(lint): add pre-commit config, yamlignore 2024-09-18 02:29:59 +03:00
121e31c7d4 chore(config): add-submodules.sh to dotbot config 2024-09-18 02:28:58 +03:00
f6bcd10ac5 chore(config): update exports 2024-09-18 02:27:30 +03:00
619c772fcc chore(config): tweak direnv config, hide output 2024-09-18 02:26:34 +03:00
746d44151c chore(workflow): cleanup new-release, tweak cron 2024-09-18 02:24:31 +03:00
b9585209be chore(deps): update yarn packages, fix prettier 2024-09-18 02:23:44 +03:00
930dcf00c4 Revert "chore(config): remove tmux dark-notify"
This reverts commit bb8e3bba56.
2024-09-17 00:17:08 +03:00
bb8e3bba56 chore(config): remove tmux dark-notify 2024-09-17 00:15:47 +03:00
6431c2e6dc chore(nvim): update nvim-kickstart 2024-09-17 00:15:03 +03:00
248eca1ae6 chore(config): tweak rector function 2024-09-17 00:14:46 +03:00
4b1ab2e1b8 chore(nvim): update lazyvim 2024-09-17 00:14:11 +03:00
c0f537439b chore(config): tweak tmux aliases 2024-09-17 00:13:50 +03:00
9ab132d37c chore(config): disable alacritty dark-notify 2024-09-17 00:13:20 +03:00
2b9ddc232b chore(config): tweak oh-my-posh config 2024-09-16 16:42:34 +03:00
1a244ce0b1 chore(deps): asdf update 2024-09-16 09:12:46 +03:00
fdc0f45b23 chore(workflows): tweak gh workflows 2024-09-16 09:12:30 +03:00
3fa90eef3b chore(bin): dfm, update install-* scripts 2024-09-15 17:46:42 +03:00
7ea7c12f0b chore(nvim): update lazyvim 2024-09-15 17:46:13 +03:00
f76492b942 chore(deps): update asdf deps, rearrange order 2024-09-15 17:45:58 +03:00
7947340663 chore(config): alias and shared git config 2024-09-15 17:00:04 +03:00
300c48b1e9 feat(bin): x-term-colors to test term colors 2024-09-15 16:59:38 +03:00
772527cc66 chore(asdf): update versions, clean plugins 2024-09-15 16:58:51 +03:00
renovate[bot]
370fdcbcbe fix(container): update image python ( 3.12.5 → 3.12.6 ) (#26)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-10 09:21:57 +03:00
b32c86bac2 chore(deps): update nvim-kickstart submodule 2024-09-05 10:44:25 +03:00
8d85809b1c fix(dfm): asdf install parameter + asdf updates 2024-09-05 10:36:10 +03:00
7fc40e3eab chore(nvim): update keymaps, update lazyvim 2024-09-04 13:20:59 +03:00
renovate[bot]
1aca769ebf chore(deps): update node to v22.8.0 (#25) 2024-09-04 12:43:33 +03:00
57df4edf6c chore(config): add .phpactor.json to .gitignore 2024-08-29 14:47:28 +03:00
240ac35aa8 chore(config): add brew autocompletion to fpath 2024-08-29 14:46:38 +03:00
ad0ba59b67 chore(deps): upgrade asdf package versions 2024-08-29 14:46:05 +03:00
bbc26e66dd chore: disable antigen tmux, add xdg-ninja alias 2024-08-29 13:19:22 +03:00
1803d41969 feat(config): rework exports, fix virtualenv location 2024-08-29 13:18:17 +03:00
34d547433f feat(asdf): rework installer, add python, markdownlint-cli2 2024-08-29 13:16:20 +03:00
dff4b9a9c5 feat(config): direnv config 2024-08-29 13:15:11 +03:00
c33404eb27 chore(lint): markdown linting fixes, ignore file 2024-08-29 13:14:27 +03:00
99e7578d60 feat(config): oh-my-posh autoupgrade 2024-08-29 13:13:21 +03:00
d8011728c7 chore(config): no more cheat theme 2024-08-29 13:12:30 +03:00
2f67d4a2e2 fix(shell): eza works now, oh-my-zsh was the cause 2024-08-29 13:11:56 +03:00
dependabot[bot]
ef37681087 chore(deps): bump micromatch from 4.0.7 to 4.0.8 (#24) 2024-08-25 11:26:14 +03:00
renovate[bot]
0c014033d1 chore(deps): update @ivuorinen/base-configs to 2.0.0 (#23) 2024-08-25 10:04:17 +03:00
renovate[bot]
14635009d2 chore(deps): update node to v22.7.0 (#22)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-23 09:26:17 +03:00
70118fee52 chore(deps): update asdf tool-versions 2024-08-21 10:54:44 +03:00
ivuorinen
0dce28ea6a chore(git): Update submodules (automated)
asdf v0.14.1
2024-08-20 03:06:19 +00:00
ba15f82302 chore: tweak bashrc, zshrc, alias and exports 2024-08-20 01:24:14 +03:00
53 changed files with 3389 additions and 1258 deletions

View File

@@ -19,7 +19,7 @@ indent_size = 1
indent_size = 1
indent_style = tab
[{local/bin/*,**/*.sh,**/zshrc,config/*}]
[{local/bin/*,**/*.sh,**/zshrc,config/*,scripts/*}]
shell_variant = bash # --language-variant
binary_next_line = true
switch_case_indent = true # --case-indent

5
.gitattributes vendored
View File

@@ -220,8 +220,3 @@ git/* text
**/alias text
ssh/* text
# Git Crypt special files
*-secret filter=git-crypt diff=git-crypt
*.key filter=git-crypt diff=git-crypt
secrets/** filter=git-crypt diff=git-crypt

View File

@@ -1,3 +1,4 @@
---
name: Debug Changelog # Workflow name displayed on GitHub
on:
workflow_dispatch: # Trigger manually

View File

@@ -1,3 +1,4 @@
---
name: reviewdog
on: [push]
jobs:

View File

@@ -1,21 +1,24 @@
name: Release Daily State # Workflow name displayed on GitHub
---
name: Release Daily State
on:
workflow_dispatch: # Trigger manually
workflow_dispatch:
schedule:
- cron: '30 20 * * *' # UTC is 2-3 hours behind Europe/Helsinki, my timezone
permissions:
contents: write
- cron: '0 21 * * *' # 00:00 at Europe/Helsinki
jobs:
new-daily-release:
runs-on: self-hosted
permissions:
contents: write
outputs:
created: ${{ steps.daily-version.outputs.created }}
version: ${{ steps.daily-version.outputs.version }}
steps:
- uses: actions/checkout@v4 # Checkout our working repository
- uses: actions/checkout@v4
- name: Create tag if necessary
uses: fregante/daily-version-action@v2
id: daily-version
- name: Create changelog text
if: steps.daily-version.outputs.created
id: changelog
@@ -23,6 +26,7 @@ jobs:
with:
token: ${{ secrets.GITHUB_TOKEN }}
config_file: .github/tag-changelog-config.js
- name: Create release
if: steps.daily-version.outputs.created
uses: actions/create-release@latest

View File

@@ -1,3 +1,4 @@
---
name: Semantic PR
on:

View File

@@ -1,13 +1,14 @@
---
name: Update submodules
on:
schedule: [{ cron: 0 3 * * * }]
workflow_dispatch:
permissions:
contents: write
issues: write
pull-requests: write
jobs:
update-submodules:
permissions:
contents: write
issues: write
pull-requests: write
runs-on: self-hosted
steps:
- name: Checkout repository

View File

@@ -1,6 +1,8 @@
# only care about files that are under our control
# only care about files that are directly under our control
config/cheat/cheatsheets/community/*
config/cheat/cheatsheets/tldr/*
config/tmux/plugins/*
local/bin/asdf/*
tools/*
node_modules/*

1
.nvmrc
View File

@@ -1 +0,0 @@
22.6.0

50
.pre-commit-config.yaml Normal file
View File

@@ -0,0 +1,50 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]
- id: check-case-conflict
- id: check-merge-conflict
- id: check-shebang-scripts-are-executable
- id: check-symlinks
- id: check-toml
- id: check-xml
- id: check-yaml
args: [--allow-multiple-documents]
- id: end-of-file-fixer
- id: mixed-line-ending
args: [--fix=auto]
- id: pretty-format-json
args: [--autofix, --no-sort-keys]
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.41.0
hooks:
- id: markdownlint
args: [-c, .markdownlint.yaml, --fix]
- repo: https://github.com/adrienverge/yamllint
rev: v1.35.1
hooks:
- id: yamllint
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v4.0.0-alpha.8
hooks:
- id: prettier
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.10.0.1
hooks:
- id: shellcheck
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.9.0-1
hooks:
- id: shfmt
- repo: https://github.com/rhysd/actionlint
rev: v1.7.1
hooks:
- id: actionlint

View File

@@ -1,5 +1,4 @@
module.exports = {
plugins: ['prettier-plugin-sh'],
...require('@ivuorinen/prettier-config'),
trailingComma: 'all',
// Add custom options below:

View File

@@ -1 +0,0 @@
3.12

2
.tool-versions Normal file
View File

@@ -0,0 +1,2 @@
python 3.12.6
nodejs 22.9.0

0
.yamlignore Normal file
View File

View File

@@ -18,9 +18,6 @@ x-have oh-my-posh && {
eval "$(oh-my-posh init bash --config "$DOTFILES/config/omp/own.toml")"
}
. "$XDG_BIN_HOME/asdf/asdf.sh"
. "$XDG_BIN_HOME/asdf/completions/asdf.bash"
x-have antidot && {
eval "$(antidot init)"
}

View File

@@ -1,29 +1,30 @@
asdf-plugin-manager 1.3.1
nodejs 22.8.0
golang 1.23.1
python 3.12.6
ruby 3.3.4
rust 1.81.0
direnv 2.34.0
eza 0.19.3
fd 10.2.0
1password-cli 2.30.0
age 1.2.0
asdf-plugin-manager 1.3.1
bottom 0.10.2
direnv 2.34.0
dotenv-linter 3.3.0
editorconfig-checker 2.8.0
eza 0.19.0
fd 10.1.0
github-cli 2.54.0
golang 1.23.0
github-cli 2.56.0
hadolint 2.12.0
kubectl 1.31.0
lazygit 0.43.1
nodejs 22.4.1
pipx 1.6.0
kubectl 1.31.1
pipx 1.7.1
pre-commit 3.8.0
ripgrep 14.1.0
ruby 3.3.4
rust 1.80.1
semgrep system
ripgrep 14.1.1
shellcheck 0.10.0
shfmt 3.8.0
terraform-lsp 0.0.12
terragrunt 0.66.3
shfmt 3.9.0
terragrunt 0.67.5
tf-summarize 0.3.10
vault 1.17.3+ent
yamllint 1.35.1
yq 4.44.3
bats 1.11.0
gitleaks 8.18.4
delta 0.18.1
lazygit 0.44.0

View File

@@ -5,23 +5,14 @@
# export DEBUG=1
export DOTFILES="$HOME/.dotfiles"
export PATH="$HOME/.local/bin:$DOTFILES/local/bin:$HOME/.local/share/bob/nvim-bin:$HOME/.local/share/cargo/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
LOCAL_SHARE="$HOME/.local/share"
export PATH="$HOME/.local/bin:$DOTFILES/local/bin:$LOCAL_SHARE/nvim-kickstart/mason/bin:$LOCAL_SHARE/bob/nvim-bin:$LOCAL_SHARE/cargo/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
export SHARED_SCRIPTS_SOURCED=0
source "$DOTFILES/config/shared.sh"
eval "$(oh-my-posh init zsh --config "$DOTFILES/config/omp/own.toml")"
# Load asdf
export ASDF_DIR="$XDG_BIN_HOME/asdf"
if [[ -d $ASDF_DIR ]]; then
[[ -d $ASDF_DIR/bin ]] && x-path-prepend "$ASDF_DIR/bin"
[[ -d $ASDF_DIR/shims ]] && x-path-prepend "$ASDF_DIR/shims"
[[ -d $ASDF_DIR/completions ]] && fpath=("$ASDF_DIR/completions" $fpath)
[[ -d $ASDF_DIR/plugins ]] && fpath=("$ASDF_DIR/plugins" $fpath)
source "$ASDF_DIR/asdf.sh"
fi
# Function to load antigen if available
load_antigen()
{
@@ -32,30 +23,37 @@ load_antigen()
antigen use oh-my-zsh
# Disable ls colors to avoid issues with eza
export DISABLE_LS_COLORS=true
export ZSH_TMUX_AUTOSTART=false
export ZSH_TMUX_CONFIG="$DOTFILES/config/tmux/tmux.conf"
export ZSH_TMUX_UNICODE=true
export ZSH_TMUX_AUTOQUIT=false
export ZSH_TMUX_DEFAULT_SESSION_NAME=main
zstyle :omz:plugins:ssh-agent quiet yes
zstyle ':omz:plugins:eza' 'dirs-first' yes
zstyle ':omz:plugins:eza' 'git-status' yes
zstyle ':omz:plugins:eza' 'icons' yes
zstyle ':omz:plugins:eza' 'ls' yes
zstyle ':omz:plugins:eza' 'prompt' yes
if [[ "$OSTYPE" == darwin* ]]; then
zstyle :omz:plugins:ssh-agent keychain yes
fi
zstyle :omz:plugins:ssh-agent lazy yes
zstyle :omz:plugins:ssh-agent quiet yes
# z, the zsh version
export ZSHZ_DATA="$XDG_STATE_HOME/z"
antigen bundle z
x-have python && antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv
# these should be always available
antigen bundle gpg-agent
antigen bundle brew
antigen bundle tmux
antigen bundle colored-man-pages
# antigen bundle ssh-agent
antigen bundle jreese/zsh-titles
antigen bundle brew
antigen bundle colored-man-pages
antigen bundle zsh-users/zsh-completions
antigen bundle eza
# this needs to be the last item
antigen bundle zsh-users/zsh-syntax-highlighting
@@ -73,17 +71,6 @@ source_fzf_config()
fi
}
# Function to initialize pyenv if available
initialize_pyenv()
{
if x-have pyenv; then
[[ -d $PYENV_ROOT/bin ]] && x-path-append "$PYENV_ROOT/bin"
[[ -d $PYENV_ROOT/shims ]] && x-path-append "$PYENV_ROOT/shims"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
fi
}
# Function to set up tmux window name plugin if tmux is active
setup_tmux_window_name_plugin()
{
@@ -100,28 +87,15 @@ setup_tmux_window_name_plugin()
fi
}
# Function to initialize antidot if available
initialize_antidot()
{
if x-have antidot; then
eval "$(antidot init)"
fi
}
initialize_direnv()
{
source "${XDG_CONFIG_HOME:-$HOME/.config}/asdf-direnv/zshrc"
}
main()
{
load_antigen
source_fzf_config
initialize_pyenv
setup_tmux_window_name_plugin
initialize_antidot
initialize_direnv
if x-have antidot; then
eval "$(antidot init)"
fi
source "${XDG_CONFIG_HOME:-$HOME/.config}/asdf-direnv/zshrc"
}
main "$@"

View File

@@ -52,15 +52,23 @@ alias flush="dscacheutil -flushcache"
# Update locatedb
alias updatedb="sudo /usr/libexec/locate.updatedb"
# Date helpers
alias isodate="date +'%Y-%m-%d'"
alias x-datetime="date +'%Y-%m-%d %H:%M:%S'"
alias x-timestamp="date +'%s'"
# tmux: automatically attach or create session with name 'main'
alias tmux='tmux new-session -A -s main'
alias tm='command tmux new-session -A -s main'
# tmux: attach or create new session
alias ta='tmux attach || tmux'
alias ta='command tmux attach || command tmux'
# nvim
alias nvim-ks='NVIM_APPNAME="nvim-kickstart" nvim'
alias ks='NVIM_APPNAME="nvim-kickstart" nvim'
# xdg-ninja aliases for better experience
alias xdg='xdg-ninja --skip-ok --skip-unsupported'
# watch with: differences, precise, beep and color
alias watchx='watch -dpbc'
# delete .DS_Store files
@@ -112,3 +120,14 @@ if [[ $(uname) == 'Darwin' ]]; then
# Using herd for php now, so this is not needed anymore
# x-set-php-aliases
fi
X_ALIAS_FILES=(
"$HOME/.config/alias-secret"
"$HOME/.config/alias-$(hostname)"
"$HOME/.config/alias-$(hostname)-secret"
)
for aliasFile in "${X_ALIAS_FILES[@]}"; do
# shellcheck source=$HOME/.config/alias-secret
[ -f "$aliasFile" ] && source "$aliasFile" && msg "Sourced $aliasFile"
done
unset X_ALIAS_FILES

3
config/asdf-direnv/zshrc Normal file
View File

@@ -0,0 +1,3 @@
### Do not edit. This was autogenerated by 'asdf direnv setup' ###
export ASDF_DIRENV_BIN="$(asdf where direnv)/bin/direnv"
eval "$($ASDF_DIRENV_BIN hook zsh)"

View File

@@ -1,8 +1,6 @@
// These are golang packages I use,
// so they should be available with all versions
// sysadmin/scripting utilities, distributed as a single binary
github.com/skx/sysbox@release-0.18.0
// Git Profile allows you to switch between user profiles in git repos
github.com/dotzero/git-profile@v1.4.0
// An extensible command line tool or library to format yaml files.

View File

@@ -1,28 +1,27 @@
1password-cli https://github.com/NeoHsu/asdf-1password-cli.git f5d5aab
age https://github.com/threkk/asdf-age.git 4df80a0
asdf-plugin-manager https://github.com/asdf-community/asdf-plugin-manager.git 50d2735
bottom https://github.com/carbonteq/asdf-btm.git fd8a55a
dotenv-linter https://github.com/wesleimp/asdf-dotenv-linter.git 1369f53
editorconfig-checker https://github.com/gabitchov/asdf-editorconfig-checker.git 585c1d5
eza https://github.com/lwiechec/asdf-eza.git 08c1b65
fd https://gitlab.com/wt0f/asdf-fd.git 17d56e0
github-cli https://github.com/bartlomiejdanek/asdf-github-cli.git e0605b7
hadolint https://github.com/devlincashman/asdf-hadolint.git 335e230
kubectl https://github.com/asdf-community/asdf-kubectl.git cbe6df4
lazygit https://github.com/nklmilojevic/asdf-lazygit.git 78e04f1
neovim https://github.com/richin13/asdf-neovim d6118ad
nodejs https://github.com/asdf-vm/asdf-nodejs.git c5b7c40
pipx https://github.com/yozachar/asdf-pipx.git 31db618
pre-commit https://github.com/jonathanmorley/asdf-pre-commit.git 26bfc42
ripgrep https://gitlab.com/wt0f/asdf-ripgrep.git e836665
rust https://github.com/code-lever/asdf-rust.git 95acf4f
semgrep https://github.com/brentjanderson/asdf-semgrep.git 13ff78b
shellcheck https://github.com/luizm/asdf-shellcheck.git 780d78d
shfmt https://github.com/luizm/asdf-shfmt.git a42c5ff
terraform-ls https://github.com/asdf-community/asdf-hashicorp.git f1602b6
terraform-lsp https://github.com/bartlomiejdanek/asdf-terraform-lsp.git bba7106
terragrunt https://github.com/ohmer/asdf-terragrunt 4a6651a
tf-summarize https://github.com/adamcrews/asdf-tf-summarize.git 880ad26
vault https://github.com/asdf-community/asdf-hashicorp.git f1602b6
yamllint https://github.com/ericcornelissen/asdf-yamllint.git d5c3161
yq https://github.com/sudermanjr/asdf-yq.git 772992f
1password-cli https://github.com/NeoHsu/asdf-1password-cli.git f5d5aab
age https://github.com/threkk/asdf-age.git 4df80a0
asdf-plugin-manager https://github.com/asdf-community/asdf-plugin-manager.git ecd1642
bottom https://github.com/carbonteq/asdf-btm.git fd8a55a
direnv https://github.com/asdf-community/asdf-direnv.git a2219c2
dotenv-linter https://github.com/wesleimp/asdf-dotenv-linter.git 1369f53
editorconfig-checker https://github.com/gabitchov/asdf-editorconfig-checker.git 585c1d5
eza https://github.com/lwiechec/asdf-eza.git eee3d59
fd https://gitlab.com/wt0f/asdf-fd.git 17d56e0
github-cli https://github.com/bartlomiejdanek/asdf-github-cli.git e0605b7
golang https://github.com/asdf-community/asdf-golang.git 0e86b1d
hadolint https://github.com/devlincashman/asdf-hadolint.git 335e230
kubectl https://github.com/asdf-community/asdf-kubectl.git cbe6df4
lazygit https://github.com/nklmilojevic/asdf-lazygit.git 78e04f1
nodejs https://github.com/asdf-vm/asdf-nodejs.git c5b7c40
pipx https://github.com/yozachar/asdf-pipx.git 31db618
pre-commit https://github.com/jonathanmorley/asdf-pre-commit.git 26bfc42
python https://github.com/asdf-community/asdf-python 7b0af87
ripgrep https://gitlab.com/wt0f/asdf-ripgrep.git e836665
ruby https://github.com/asdf-vm/asdf-ruby.git 27f78c9
rust https://github.com/code-lever/asdf-rust.git 95acf4f
shellcheck https://github.com/luizm/asdf-shellcheck.git 780d78d
shfmt https://github.com/luizm/asdf-shfmt.git a42c5ff
terragrunt https://github.com/ohmer/asdf-terragrunt.git 4a6651a
tf-summarize https://github.com/adamcrews/asdf-tf-summarize.git 880ad26
yamllint https://github.com/ericcornelissen/asdf-yamllint.git 2f4fd4c
yq https://github.com/sudermanjr/asdf-yq.git 772992f

View File

@@ -0,0 +1,3 @@
ansible
pipenv
semgrep

View File

@@ -7,7 +7,7 @@ colorize: false
# Which 'chroma' colorscheme should be applied to the output?
# Options are available here:
# https://github.com/alecthomas/chroma/tree/master/styles
style: 'tokyonight'
# style: 'tokyonight-day'
# Which 'chroma' "formatter" should be applied?
# One of: "terminal", "terminal256", "terminal16m"
formatter: terminal256

13
config/direnv/direnv.toml Normal file
View File

@@ -0,0 +1,13 @@
[global]
disable_stdin = true
load_dotenv = true
hide_env_diff = true
[whitelist]
prefix = [
"~/Code/ivuorinen/"
]
exact = [
"~/.dotfiles/.envrc"
]

View File

@@ -0,0 +1,4 @@
### Do not edit. This was autogenerated by 'asdf direnv setup' ###
use_asdf() {
source_env "$(asdf direnv envrc "$@")"
}

View File

@@ -9,12 +9,29 @@
[ -z "$XDG_CACHE_HOME" ] && export XDG_CACHE_HOME="$HOME/.cache"
[ -z "$XDG_STATE_HOME" ] && export XDG_STATE_HOME="$HOME/.local/state"
[ -z "$XDG_BIN_HOME" ] && export XDG_BIN_HOME="$HOME/.local/bin"
[ -z "$XDG_RUNTIME_DIR" ] && export XDG_RUNTIME_DIR="$HOME/.local/run"
# if DOTFILES is not set, set it to the default location
[ -z "$DOTFILES" ] && export DOTFILES="$HOME/.dotfiles"
export PATH="$XDG_BIN_HOME:$DOTFILES/local/bin:$XDG_DATA_HOME/bob/nvim-bin:$XDG_DATA_HOME/cargo/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
# Load bash completions if available for zsh
if [[ -n "$ZSH_VERSION" ]]; then
autoload bashcompinit
bashcompinit
fi
# Load asdf
export ASDF_DIR="$XDG_BIN_HOME/asdf"
if [[ -d $ASDF_DIR ]]; then
[[ -d $ASDF_DIR/bin ]] && x-path-prepend "$ASDF_DIR/bin"
[[ -d $ASDF_DIR/shims ]] && x-path-prepend "$ASDF_DIR/shims"
[[ -d $ASDF_DIR/completions ]] && fpath=("$ASDF_DIR/completions" $fpath)
[[ -d $ASDF_DIR/plugins ]] && fpath=("$ASDF_DIR/plugins" $fpath)
source "$ASDF_DIR/asdf.sh"
fi
if ! command -v msg &> /dev/null; then
# Function to print messages if VERBOSE is enabled
# $1 - message (string)
@@ -77,7 +94,7 @@ darknotify_alacritty()
}
return 0
}
darknotify_alacritty
# darknotify_alacritty
# Function to list installed Homebrew packages using bkt caching
brew_installed()
@@ -131,7 +148,7 @@ rector()
{
local php="${1:-82}"
docker run -v "$(pwd)":/project rector/rector:latest process \
"/project/$1" \
"/project/" \
--set "php${php}" \
--autoload-file /project/vendor/autoload.php
}
@@ -254,6 +271,7 @@ export BASH_COMPLETION_USER_FILE="${XDG_CONFIG_HOME}/bash-completion/bash_comple
# History env variables
export HIST_STAMPS="yyyy-mm-dd"
export HISTFILE="${XDG_STATE_HOME}/zsh/history"
# Larger bash history (allow 32³ entries; default is 500)
export HISTSIZE=32768
export HISTFILESIZE=$HISTSIZE
@@ -285,6 +303,8 @@ export GREP_OPTIONS="--color=auto"
# update the values of LINES and COLUMNS.
hash shopt 2> /dev/null && shopt -s checkwinsize
export SHORT_HOST=$(hostname -s)
# Antigen configuration
# https://github.com/zsh-users/antigen/wiki/Configuration
msg "Setting up Antigen configuration"
@@ -310,15 +330,37 @@ export ASDF_CONFIG_FILE="${XDG_CONFIG_HOME}/asdf/asdfrc"
export ASDF_DATA_DIR="${ASDF_DIR}"
export ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME="${XDG_CONFIG_HOME}/asdf/plugin-versions"
export ASDF_LOG_FILE="${XDG_CACHE_HOME}/asdf/asdf.log"
export ASDF_NODEJS_LEGACY_FILE_DYNAMIC_STRATEGY="latest_available"
export ASDF_NPM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/npm-packages"
export ASDF_GOLANG_MOD_VERSION_ENABLED=true
export ASDF_GOLANG_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/golang-packages"
export ASDF_FORCE_PREPEND=yes
## Default package files
export ASDF_CRATE_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/cargo-packages"
export ASDF_GEM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/gem-packages"
export ASDF_GOLANG_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/golang-packages"
export ASDF_NPM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/npm-packages"
export ASDF_PYTHON_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/python-packages"
## Plugin configuration
export ASDF_DIRENV_IGNORE_MISSING_PLUGINS=1
export ASDF_GOLANG_MOD_VERSION_ENABLED=true
export ASDF_NODEJS_LEGACY_FILE_DYNAMIC_STRATEGY="latest_available"
## Add asdf to path
export PATH="${ASDF_DIR}/bin:${PATH}"
# aws
# https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html
# https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html
# https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html
msg "Setting up AWS configuration"
export AWS_CONFIG_FILE="${XDG_STATE_HOME}/aws/config"
export AWS_SHARED_CREDENTIALS_FILE="${XDG_STATE_HOME}/aws/credentials"
export AWS_DATA_PATH="${XDG_DATA_HOME}/aws"
export AWS_DEFAULT_REGION="eu-west-1"
export AWS_DEFAULT_OUTPUT="table"
export AWS_CONFIGURE_KEYS=true
export AWS_CONFIGURE_REGION=true
export AWS_CONFIGURE_OUTPUT=true
export AWS_CONFIGURE_PROFILE=true
export AWS_CONFIGURE_PROMPT=true
export AWS_CONFIGURE_PROMPT_DEFAULT="default"
# bob manages nvim versions
msg "Setting up bob configuration"
x-path-prepend "$XDG_DATA_HOME/bob/nvim-bin"
@@ -334,6 +376,8 @@ export HOMEBREW_NO_ENV_HINTS=true
export HOMEBREW_BUNDLE_MAS_SKIP=true
export HOMEBREW_BUNDLE_FILE="$XDG_CONFIG_HOME/homebrew/Brewfile"
x-have brew && {
# Add brew autocompletion to fpath
FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}"
eval "$(brew shellenv)"
}
@@ -346,25 +390,20 @@ export PATH="$COMPOSER_BIN:$PATH"
# direnv, https://direnv.net/
# https://direnv.net/docs/hook.html
# Set the hook to show the direnv message in a different color
export DIRENV_LOG_FORMAT=$'\033[2mdirenv: %s\033[0m'
# export DIRENV_LOG_FORMAT=$'\033[2mdirenv: %s\033[0m'
export DIRENV_LOG_FORMAT=
# docker, https://docs.docker.com/engine/reference/commandline/cli/
msg "Setting up Docker configuration"
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
export DOCKER_CONFIG="${XDG_CONFIG_HOME}/docker"
x-dc "$DOCKER_CONFIG"
# Docker: Disable snyk ad
export DOCKER_SCAN_SUGGEST=false
# ffmpeg
# https://ffmpeg.org/ffmpeg.html
msg "Setting up FFmpeg configuration"
export FFMPEG_DATADIR="$XDG_CONFIG_HOME/ffmpeg"
x-have ffmpeg && x-dc "$FFMPEG_DATADIR"
# GnuPG
# https://gnupg.org/documentation/manuals/gnupg/Invoking-GPG.html
msg "Setting up GnuPG configuration"
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
export GNUPGHOME="${XDG_DATA_HOME}/gnupg"
# Go
# https://golang.org/doc/code.html
@@ -372,11 +411,6 @@ msg "Setting up Go configuration"
export GOPATH="$XDG_DATA_HOME/go"
export GOBIN="$XDG_BIN_HOME"
# nb, https://xwmx.github.io/nb/
msg "Setting up nb configuration"
export NBRC_PATH="$XDG_CONFIG_HOME/nbrc"
export NB_DIR="$XDG_STATE_HOME/nb"
# NPM: Add npm packages to path
msg "Setting up NPM configuration"
x-have node && {
@@ -398,29 +432,13 @@ export OP_CACHE="$XDG_STATE_HOME/1password"
msg "Setting up Python configuration"
export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
export PYENV_ROOT="$XDG_STATE_HOME/pyenv"
## for MichaelAquilina/zsh-autoswitch-virtualenv
export AUTOSWITCH_VIRTUAL_ENV_DIR="$WORKON_HOME"
export PATH="$PYENV_ROOT/bin:$PYENV_ROOT/shims:$PATH"
x-have pyenv && {
eval "$(pyenv init -)"
}
# Ruby
#
# including: bundler, rbenv
msg "Setting up Ruby configuration"
export GEM_HOME="${XDG_DATA_HOME}"/gem
export GEM_SPEC_CACHE="${XDG_CACHE_HOME}"/gem
export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME"/bundle
export BUNDLE_USER_CACHE="$XDG_CACHE_HOME"/bundle
export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME"/bundle
export RBENV_ROOT="$XDG_STATE_HOME/rbenv"
x-dc "$RBENV_ROOT"
x-have gem && export PATH="${GEM_HOME}/bin:$PATH"
# Rust / cargo
msg "Setting up Rust/Cargo configuration"
export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
export CARGO_HOME="$XDG_DATA_HOME/cargo"
export PATH="$CARGO_HOME/bin:$PATH"
export RUST_WITHOUT=rust-docs
# screen
# https://www.gnu.org/software/screen/manual/screen.html
@@ -440,10 +458,6 @@ export TF_DATA_DIR="$XDG_STATE_HOME/terraform"
export TF_CLI_CONFIG_FILE="$XDG_CONFIG_HOME/terraform/terraformrc"
export TF_PLUGIN_CACHE_DIR="$XDG_CACHE_HOME/terraform/plugin-cache"
# tldr / tealdeer
msg "Setting up tldr configuration"
export TEALDEER_CONFIG_DIR="$XDG_CONFIG_HOME/tealdeer/"
# tmux
# https://tmux.github.io/
msg "Setting up tmux configuration"
@@ -468,4 +482,3 @@ for exportFile in "${X_EXPORTS_FILES[@]}"; do
[ -f "$exportFile" ] && source "$exportFile" && msg "Sourced $exportFile"
done
unset X_EXPORTS_FILES

View File

@@ -19,3 +19,4 @@ wp_*.sh
auth.json
dfm.sh
.scannerwork
.phpactor.json

View File

@@ -17,11 +17,12 @@
llog = log --pretty=fuller
logs = log --graph --pretty=format:'%C(magenta)%h%Creset -%C(red)%d%Creset %s %C(dim green)(%cr) %C(cyan)<%an>%Creset' --abbrev-commit
nah = !git reset --hard && git clean -df
recent = "!r() { count=$1; git for-each-ref --sort=-committerdate refs/heads --format='%(HEAD)%(color:yellow)%(refname:short)|%(color:bold green)%(committerdate:relative)|%(color:blue)%(subject)|%(color:magenta)%(authorname)%(color:reset)' --color=always --count=${count:=10} | column -ts'|';}; r"
reset-origin = !git fetch origin && git reset --hard origin/master && git clean -f -d
reset-upstream = !git fetch upstream && git reset --hard upstream/master && git clean -f -d
recent = "!r() { count=$1; git for-each-ref --sort=-committerdate refs/heads --format='%(HEAD)%(color:yellow)%(refname:short)|%(color:bold green)%(committerdate:relative)|%(color:blue)%(subject)|%(color:magenta)%(authorname)%(color:reset)' --color=always --count=${count:=10} | column -ts'|';}; r"
rl = reflog --format='%C(auto)%h %<|(20)%gd %C(blue)%cr%C(reset) %gs (%s)'
tagdate = log --date-order --graph --tags --simplify-by-decoration --pretty=format:\"%ai %h %d\"
undo = reset --soft HEAD^
undo-commit = reset HEAD~ --soft
[filter "lfs"]
@@ -30,15 +31,6 @@
process = git-lfs filter-process
required = true
[diff]
tool = difftastic
[difftool]
prompt = false
[difftool "difftastic"]
cmd = difft "$LOCAL" "$REMOTE"
[color]
ui = true
diff = auto

View File

@@ -16,24 +16,11 @@ tap "mongodb/brew"
tap "reviewdog/tap"
tap "shivammathur/extensions"
tap "shivammathur/php"
tap "snyk/tap"
tap "teamookla/speedtest"
tap "xwmx/taps"
# Run your GitHub Actions locally
brew "act"
# Simple, modern, secure file encryption
brew "age"
# Mozilla CA certificate store
brew "ca-certificates"
# Mozilla CA bundle for Python
brew "certifi"
# Cryptographic recipes and primitives for Python
brew "cryptography"
# YAML Parser
brew "libyaml"
# Automate deployment, configuration, and upgrading
brew "ansible"
# Checks ansible playbooks for practices and behaviour
brew "ansible-lint"
# Generic-purpose lossless compression algorithm by Google
brew "brotli"
# Library and utilities for processing GIFs
@@ -52,32 +39,28 @@ brew "jpeg-xl"
brew "aom"
# Apache Portable Runtime library
brew "apr"
# Mozilla CA certificate store
brew "ca-certificates"
# Cryptography and SSL/TLS Toolkit
brew "openssl@3"
# Companion library to apr, the Apache Portable Runtime library
brew "apr-util"
# Password hashing library and CLI utility
brew "argon2"
# Spell checker with better logic than ispell
brew "aspell"
# Automatic configure script builder
brew "autoconf"
# Tool for generating GNU Standards-compliant Makefiles
brew "automake"
# Collection of over 500 reusable autoconf macros
brew "autoconf-archive"
# Bourne-Again SHell, a UNIX command interpreter
brew "bash"
# GNU multiple precision arithmetic library
brew "gmp"
# GNU File, Shell, and Text utilities
brew "coreutils"
# Extendable version manager with support for Ruby, Node.js, Erlang & more
brew "asdf"
# Spell checker with better logic than ispell
brew "aspell"
# Collection of over 500 reusable autoconf macros
brew "autoconf-archive"
# Manage compile and link flags for libraries
brew "pkg-config"
# Automated text file generator
brew "autogen"
# Bourne-Again SHell, a UNIX command interpreter
brew "bash"
# Clone of cat(1) with syntax highlighting and Git integration
brew "bat"
# Bash Automated Testing System
brew "bats-core"
# Software library to render fonts
brew "freetype"
# XML-based font configuration API for X Windows
@@ -86,56 +69,32 @@ brew "fontconfig"
brew "gettext"
# Core application library for C
brew "glib"
# Human-friendly and fast alternative to cut and (sometimes) awk
brew "choose-rust"
# Cross-platform make
brew "cmake"
# Mozilla CA bundle for Python
brew "certifi"
# Cryptographic recipes and primitives for Python
brew "cryptography"
# Get a file from an HTTP, HTTPS or FTP server
brew "curl"
# Lightweight DNS forwarder and DHCP server
brew "dnsmasq"
# Spellchecker wrapping library
brew "enchant"
# Perl lib for reading and writing EXIF metadata
brew "exiftool"
# Banner-like program prints strings as ASCII art
brew "figlet"
# Lock file during command
brew "flock"
# Libraries to talk to Microsoft SQL Server and Sybase databases
brew "freetds"
# Monitor a directory for changes and run a shell command
brew "fswatch"
# Command-line fuzzy finder written in Go
brew "fzf"
# Graphics library to dynamically manipulate images
brew "gd"
# Disk usage analyzer with console interface written in Go
brew "gdu"
# GitHub command-line tool
brew "gh"
# Distributed revision control system
brew "git"
# Enable transparent encryption/decryption of files in a git repo
brew "git-crypt"
# Small git utilities
brew "git-extras"
# See your latest local git branches, formatted real fancy
brew "git-recent"
# Render markdown on the CLI
brew "glow"
# GNU implementation of the famous stream editor
brew "gnu-sed"
# Validating, recursive, caching DNS resolver
brew "unbound"
# GNU Transport Layer Security (TLS) Library
brew "gnutls"
# GNU Pretty Good Privacy (PGP) package
brew "gnupg"
# Library access to GnuPG
brew "gpgme"
# Open source suite of directory software
brew "openldap"
# Manage your GnuPG keys with ease!
brew "gpg-tui"
# Image manipulation
brew "netpbm"
# C/C++ and Java libraries for Unicode and globalization
@@ -148,8 +107,6 @@ brew "pango"
brew "librsvg"
# Graph visualization software from AT&T and Bell Labs
brew "graphviz"
# GNU grep, egrep and fgrep
brew "grep"
# Popular GNU data compression program
brew "gzip"
# Improved top (interactive process viewer)
@@ -166,8 +123,8 @@ brew "irssi"
brew "jq"
# JSON parser for C
brew "json-c"
# Scanning your k8s clusters, diagnosing, and triaging issues in simple English
brew "k8sgpt"
# Network authentication protocol
brew "krb5"
# Tool to detect/remediate misconfig and security risks of GitHub/GitLab assets
brew "legitify"
# Secure hashing function
@@ -176,58 +133,32 @@ brew "libb2"
brew "libpq"
# Multi-platform support library with a focus on asynchronous I/O
brew "libuv"
# YAML Parser
brew "libyaml"
# Package manager for the Lua programming language
brew "luarocks"
# LZMA-based compression program similar to gzip or bzip2
brew "lzip"
# Swiss Army Knife for macOS
brew "m-cli"
# Collection of tools that nobody wrote when UNIX was young
brew "moreutils"
# Mongrel of mail user agents (part elm, pine, mush, mh, etc.)
brew "mutt"
# NCurses Disk Usage
brew "ncdu"
# HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
brew "nginx"
# Port scanning utility for large networks
brew "nmap"
# ISO-C API and CLI for generating UUIDs
brew "ossp-uuid"
# Coreutils progress viewer
brew "progress"
# Python version management
brew "pyenv"
# Migrate pip packages from one Python version to another
brew "pyenv-pip-migrate"
# Pyenv plugin to manage virtualenv
brew "pyenv-virtualenv"
# Interpreted, interactive, object-oriented programming language
brew "python@3.11"
# Install various Ruby versions and implementations
brew "ruby-build"
# Ruby version manager
brew "rbenv"
# Static analysis and lint tool, for (ba)sh scripts
brew "shellcheck"
# Feature-rich console based todo list manager
brew "task"
# Open source suite of directory software
brew "openldap"
# General-purpose scripting language
brew "php"
# Manage compile and link flags for libraries
brew "pkg-config"
# Send macOS User Notifications from the command-line
brew "terminal-notifier"
# Tool which checks for the support of TLS/SSL ciphers and flaws
brew "testssl"
# Terraform version manager inspired by rbenv
brew "tfenv"
# Linter for Terraform files
brew "tflint"
# Static analysis security scanner for your terraform code
brew "tfsec"
# Terminal multiplexer
brew "tmux"
# Display directories as trees (with optional color/HTML output)
brew "tree"
# Tool for creating isolated virtual python environments
brew "virtualenv"
# Command-line interface to the WakaTime api
brew "wakatime-cli"
# Executes a program periodically, showing output fullscreen
@@ -238,12 +169,8 @@ brew "wget"
brew "xdg-ninja", args: ["HEAD"]
# Watcher for macOS 10.14+ light/dark mode changes
brew "cormacrelf/tap/dark-notify"
# Cleans up your $HOME from those pesky dotfiles
brew "doron-cohen/tap/antidot"
# lets you quickly switch between multiple git user profiles
brew "gesquive/tap/git-user"
# Automated code review tool integrated with any code analysis tools regardless of programming language.
brew "reviewdog/tap/reviewdog"
# Igbinary PHP extension
brew "shivammathur/extensions/igbinary@8.3"
# Imagick PHP extension
brew "shivammathur/extensions/imagick@8.3"
# Mcrypt PHP extension
@@ -259,13 +186,9 @@ brew "shivammathur/extensions/uuid@8.3"
# Yaml PHP extension
brew "shivammathur/extensions/yaml@8.3"
# General-purpose scripting language
brew "shivammathur/php/php"
# General-purpose scripting language
brew "shivammathur/php/php-debug"
# Command-line interface for 1Password
cask "1password-cli"
# GPU-accelerated terminal emulator
cask "alacritty"
# Find & fix known vulnerabilities in open-source dependencies
brew "snyk/tap/snyk"
# Text editor
cask "coda"
# Universal database tool and SQL client
@@ -274,6 +197,15 @@ cask "dbeaver-community"
cask "dbngin"
# App to build and share containerised applications and microservices
cask "docker"
cask "font-jetbrains-mono"
cask "font-jetbrains-mono-nerd-font"
cask "font-lato"
cask "font-open-sans"
cask "font-roboto"
cask "font-source-code-pro"
cask "font-source-code-pro-for-powerline"
cask "font-source-sans-pro"
cask "font-source-serif-pro"
# GIT client
cask "fork"
# HTTP and GraphQL Client
@@ -284,18 +216,12 @@ cask "jetbrains-toolbox"
cask "keybase"
# Kubernetes IDE
cask "lens"
# Keep all tasks from your todo apps on your menu bar
cask "monofocus"
# Reverse proxy, secure introspectable tunnels to localhost
cask "ngrok"
# Simple application that will prevent iTunes or Apple Music from launching
cask "notunes"
# Knowledge base that works on top of a local folder of plain text Markdown files
cask "obsidian"
# Scheduling application focusing on organisation
cask "omnifocus"
# Collaboration platform for API development
cask "postman"
# Display image info and preview unsupported formats in QuickLook
cask "qlimagesize"
# Quick Look generator for Markdown files
@@ -326,6 +252,8 @@ cask "suspicious-package"
cask "syntax-highlight"
# Python IDE for beginners
cask "thonny"
# To-do list
cask "todoist"
# Configuration application for the Ultimate Hacking Keyboard
cask "uhk-agent"
# Open-source code editor
@@ -334,6 +262,8 @@ cask "visual-studio-code"
cask "vlc"
# Spell-checking service for Finnish
cask "voikkospellservice"
# GPU-accelerated cross-platform terminal emulator and multiplexer
cask "wezterm"
# Application for generating TOTP and HOTP codes
cask "yubico-authenticator"
# Multiplayer code editor

53
config/htop/htoprc Normal file
View File

@@ -0,0 +1,53 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
htop_version=3.3.0
config_reader_min_version=3
fields=0 48 17 18 38 39 2 46 47 49 1
hide_kernel_threads=1
hide_userland_threads=0
hide_running_in_container=0
shadow_other_users=0
show_thread_names=0
show_program_path=1
highlight_base_name=0
highlight_deleted_exe=1
shadow_distribution_path_prefix=0
highlight_megabytes=1
highlight_threads=1
highlight_changes=0
highlight_changes_delay_secs=5
find_comm_in_cmdline=1
strip_exe_from_cmdline=1
show_merged_command=0
header_margin=1
screen_tabs=1
detailed_cpu_time=0
cpu_count_from_one=0
show_cpu_usage=1
show_cpu_frequency=0
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=0
enable_mouse=1
delay=15
hide_function_bar=0
header_layout=two_50_50
column_meters_0=LeftCPUs2 Memory Swap
column_meter_modes_0=1 1 1
column_meters_1=RightCPUs2 Tasks LoadAverage Uptime
column_meter_modes_1=1 2 2 2
tree_view=0
sort_key=46
tree_sort_key=0
sort_direction=-1
tree_sort_direction=1
tree_view_always_by_pid=0
all_branches_collapsed=0
screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT STATE PERCENT_CPU PERCENT_MEM TIME Command
.sort_key=PERCENT_CPU
.tree_sort_key=PID
.tree_view_always_by_pid=0
.tree_view=0
.sort_direction=-1
.tree_sort_direction=1
.all_branches_collapsed=0

73
config/ideavim/ideavimrc Normal file
View File

@@ -0,0 +1,73 @@
"" Source your .vimrc
"source ~/.vimrc
"" -- Suggested options --
" Show a few lines of context around the cursor. Note that this makes the
" text scroll if you mouse-click near the start or end of the window.
set scrolloff=5
" Don't use Ex mode, use Q for formatting.
map Q gq
"" -- Map IDE actions to IdeaVim -- https://jb.gg/abva4t
"" Map \r to the Reformat Code action
"map \r <Action>(ReformatCode)
"" Map <leader>d to start debug
"map <leader>d <Action>(Debug)
"" Map \b to toggle the breakpoint on the current line
"map \b <Action>(ToggleLineBreakpoint)
" Find more examples here: https://jb.gg/share-ideavimrc
" https://github.com/ville6000/dotfiles/blob/main/vimrc
set nocompatible " disable compatibility mode with vi
filetype off " disable filetype detection (but re-enable later, see below)
set encoding=utf-8 " UTF-8
set number " Show line numbers
set laststatus=2 " Always show statusline (even with only single window)
set showmatch " Highlight matching brace
set visualbell " Use visual bell (no beeping)
set hlsearch " Highlight all search results
set smartcase " Enable smart-case search
set ignorecase " Always case-insensitive
set incsearch " Searches for strings incrementally
set cindent " Use 'C' style program indenting
set expandtab " Use spaces instead of tabs
set shiftwidth=4 " Number of auto-indent spaces
set smartindent " Enable smart-indent
set smarttab " Enable smart-tabs
set softtabstop=4 " Number of spaces per Tab
set ruler " Show row and column ruler information
set cursorline " Highlight current line
set undolevels=1000 " Number of undo levels
set backspace=indent,eol,start " Backspace behaviour
set so=5
" move vertically by visual line (don't skip wrapped lines)
nmap j gj
nmap k gk
syntax enable
filetype plugin indent on
call plug#begin('~/.vim/plugged')
Plug 'ayu-theme/ayu-vim'
Plug 'ctrlpvim/ctrlp.vim'
call plug#end()
set termguicolors
set background=dark
let ayucolor="dark"
colorscheme ayu
if has('gui_running')
set macligatures
set guifont=JetBrainsMono:h14
endif

View File

@@ -29,7 +29,7 @@
"lazyvim.plugins.extras.util.mini-hipatterns"
],
"news": {
"NEWS.md": "6077"
"NEWS.md": "6520"
},
"version": 6
}
}

View File

@@ -6,17 +6,11 @@ local wk = require("which-key")
-- ╭──────────────────────────────────────────────────────────╮
-- │ Comment box │
-- ╰──────────────────────────────────────────────────────────╯
wk.register({
["<Leader>"] = {
b = {
c = {
name = "□ Comment boxes",
b = { "<Cmd>CBccbox<CR>", "Box Title" },
t = { "<Cmd>CBllline<CR>", "Titled Line" },
l = { "<Cmd>CBline<CR>", "Simple Line" },
m = { "<Cmd>CBllbox14<CR>", "Marked" },
d = { "<Cmd>CBd<CR>", "Remove a box" },
},
},
},
wk.add({
{ "<Leader>bc", group = "□ Comment box" },
{ "<Leader>bcb", "<Cmd>CBccbox<CR>", desc = "Box Title" },
{ "<Leader>bcd", "<Cmd>CBd<CR>", desc = "Remove a box" },
{ "<Leader>bcl", "<Cmd>CBline<CR>", desc = "Simple Line" },
{ "<Leader>bcm", "<Cmd>CBllbox14<CR>", desc = "Marked" },
{ "<Leader>bct", "<Cmd>CBllline<CR>", desc = "Titled Line" },
})

View File

@@ -1,7 +0,0 @@
blade-formatter
corepack
editorconfig-checker
github-release-notes
neovim
stylelint-lsp

View File

@@ -2,6 +2,7 @@
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"final_space": true,
"console_title_template": "{{.UserName}}@{{.HostName}} {{.Shell}} in {{.PWD}}",
"auto_upgrade": true,
"blocks": [
{
"alignment": "left",
@@ -111,7 +112,9 @@
{
"background": "transparent",
"foreground": "lightGreen",
"foreground_templates": ["{{ if gt .Code 0 }}red{{ end }}"],
"foreground_templates": [
"{{ if gt .Code 0 }}red{{ end }}"
],
"properties": {
"always_enabled": true
},
@@ -126,7 +129,9 @@
"transient_prompt": {
"background": "transparent",
"foreground": "lightGreen",
"foreground_templates": ["{{ if gt .Code 0 }}red{{ end }}"],
"foreground_templates": [
"{{ if gt .Code 0 }}red{{ end }}"
],
"template": "\u279c "
},
"version": 2

View File

@@ -2,6 +2,7 @@
final_space = true
console_title_template = "{{.UserName}}@{{.HostName}} {{.Shell}} in {{.PWD}}"
version = 2
auto_upgrade = true
[[blocks]]
alignment = "left"
@@ -28,13 +29,15 @@ type = "prompt"
style = "mixed"
[blocks.segments.mapped_locations]
"~/Code/*" = ""
"~/Code/*" = ""
"~/Code/ivuorinen/" = ""
[[blocks.segments]]
type = "git"
style = "plain"
foreground = "lightGreen"
template = "{{ .UpstreamIcon }}{{ if or (.Staging.Changed) (.Working.Changed) }}({{if .Behind }}\u2193 {{ .Behind }} {{ end }}{{if .Staging.Changed }}\uF046 {{ .Staging.String }} {{ end }}{{ if and (.Staging.Changed) (.Working.Changed) }}| {{ end }}{{ if .Working.Changed }} {{ .Working.String }}{{ end }}){{ end }}"
# template = "{{ .UpstreamIcon }}{{ .HEAD }} {{ if or (.Staging.Changed) (.Working.Changed) }}({{if .Behind }}\u2193 {{ .Behind }} {{ end }}{{if .Staging.Changed }}\uF046 {{ .Staging.String }} {{ end }}{{ if and (.Staging.Changed) (.Working.Changed) }}| {{ end }}{{ if .Working.Changed }} {{ .Working.String }}{{ end }}){{ end }}"
template = "{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }}  {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }}  {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }}  {{ .StashCount }}{{ end }}"
[blocks.segments.properties]
fetch_status = true

View File

@@ -3,6 +3,7 @@
version = 2
final_space = true
console_title_template = '{{ .Shell }} in {{ .Folder }}'
auto_upgrade = true
[[blocks]]
type = 'prompt'

8
config/yamlfmt/.yamlfmt Normal file
View File

@@ -0,0 +1,8 @@
formatter:
type: basic
indent: 2
retain_line_breaks: false
disallow_anchors: false
max_line_length: 0
scan_folded_as_literal: false
indentless_arrays: false

View File

@@ -79,4 +79,3 @@ Leader: `<ctrl><space>`
S-Left Move the visible part of the window left
S-Right Move the visible part of the window right
```

View File

@@ -4,276 +4,276 @@
Default key table
-----------------
CTRL Tab -> ActivateTabRelative(1)
SHIFT | CTRL Tab -> ActivateTabRelative(-1)
ALT Enter -> ToggleFullScreen
CTRL ! -> ActivateTab(0)
SHIFT | CTRL ! -> ActivateTab(0)
ALT | CTRL " -> SplitVertical(SpawnCommand domain=CurrentPaneDomain)
SHIFT | ALT | CTRL " -> SplitVertical(SpawnCommand domain=CurrentPaneDomain)
CTRL # -> ActivateTab(2)
SHIFT | CTRL # -> ActivateTab(2)
CTRL $ -> ActivateTab(3)
SHIFT | CTRL $ -> ActivateTab(3)
CTRL % -> ActivateTab(4)
SHIFT | CTRL % -> ActivateTab(4)
ALT | CTRL % -> SplitHorizontal(SpawnCommand domain=CurrentPaneDomain)
SHIFT | ALT | CTRL % -> SplitHorizontal(SpawnCommand domain=CurrentPaneDomain)
CTRL & -> ActivateTab(6)
SHIFT | CTRL & -> ActivateTab(6)
SHIFT | ALT | CTRL ' -> SplitVertical(SpawnCommand domain=CurrentPaneDomain)
CTRL ( -> ActivateTab(-1)
SHIFT | CTRL ( -> ActivateTab(-1)
CTRL ) -> ResetFontSize
SHIFT | CTRL ) -> ResetFontSize
CTRL * -> ActivateTab(7)
SHIFT | CTRL * -> ActivateTab(7)
CTRL + -> IncreaseFontSize
SHIFT | CTRL + -> IncreaseFontSize
CTRL - -> DecreaseFontSize
SHIFT | CTRL - -> DecreaseFontSize
SUPER - -> DecreaseFontSize
CTRL 0 -> ResetFontSize
SHIFT | CTRL 0 -> ResetFontSize
SUPER 0 -> ResetFontSize
SHIFT | CTRL 1 -> ActivateTab(0)
SUPER 1 -> ActivateTab(0)
SHIFT | CTRL 2 -> ActivateTab(1)
SUPER 2 -> ActivateTab(1)
SHIFT | CTRL 3 -> ActivateTab(2)
SUPER 3 -> ActivateTab(2)
SHIFT | CTRL 4 -> ActivateTab(3)
SUPER 4 -> ActivateTab(3)
SHIFT | CTRL 5 -> ActivateTab(4)
SHIFT | ALT | CTRL 5 -> SplitHorizontal(SpawnCommand domain=CurrentPaneDomain)
SUPER 5 -> ActivateTab(4)
SHIFT | CTRL 6 -> ActivateTab(5)
SUPER 6 -> ActivateTab(5)
SHIFT | CTRL 7 -> ActivateTab(6)
SUPER 7 -> ActivateTab(6)
SHIFT | CTRL 8 -> ActivateTab(7)
SUPER 8 -> ActivateTab(7)
SHIFT | CTRL 9 -> ActivateTab(-1)
SUPER 9 -> ActivateTab(-1)
CTRL = -> IncreaseFontSize
SHIFT | CTRL = -> IncreaseFontSize
SUPER = -> IncreaseFontSize
CTRL @ -> ActivateTab(1)
SHIFT | CTRL @ -> ActivateTab(1)
CTRL C -> CopyTo(Clipboard)
SHIFT | CTRL C -> CopyTo(Clipboard)
CTRL F -> Search(CurrentSelectionOrEmptyString)
SHIFT | CTRL F -> Search(CurrentSelectionOrEmptyString)
CTRL H -> HideApplication
SHIFT | CTRL H -> HideApplication
CTRL K -> ClearScrollback(ScrollbackOnly)
SHIFT | CTRL K -> ClearScrollback(ScrollbackOnly)
CTRL L -> ShowDebugOverlay
SHIFT | CTRL L -> ShowDebugOverlay
CTRL M -> Hide
SHIFT | CTRL M -> Hide
CTRL N -> SpawnWindow
SHIFT | CTRL N -> SpawnWindow
CTRL P -> ActivateCommandPalette
SHIFT | CTRL P -> ActivateCommandPalette
CTRL Q -> QuitApplication
SHIFT | CTRL Q -> QuitApplication
CTRL R -> ReloadConfiguration
SHIFT | CTRL R -> ReloadConfiguration
CTRL T -> SpawnTab(CurrentPaneDomain)
SHIFT | CTRL T -> SpawnTab(CurrentPaneDomain)
CTRL U -> CharSelect(CharSelectArguments { group: None, copy_on_select: true, copy_to: ClipboardAndPrimarySelection })
SHIFT | CTRL U -> CharSelect(CharSelectArguments { group: None, copy_on_select: true, copy_to: ClipboardAndPrimarySelection })
CTRL V -> PasteFrom(Clipboard)
SHIFT | CTRL V -> PasteFrom(Clipboard)
CTRL W -> CloseCurrentTab { confirm: true }
SHIFT | CTRL W -> CloseCurrentTab { confirm: true }
CTRL X -> ActivateCopyMode
SHIFT | CTRL X -> ActivateCopyMode
CTRL Z -> TogglePaneZoomState
SHIFT | CTRL Z -> TogglePaneZoomState
SHIFT | SUPER [ -> ActivateTabRelative(-1)
SHIFT | SUPER ] -> ActivateTabRelative(1)
CTRL ^ -> ActivateTab(5)
SHIFT | CTRL ^ -> ActivateTab(5)
CTRL _ -> DecreaseFontSize
SHIFT | CTRL _ -> DecreaseFontSize
SHIFT | CTRL c -> CopyTo(Clipboard)
SUPER c -> CopyTo(Clipboard)
SHIFT | CTRL f -> Search(CurrentSelectionOrEmptyString)
SUPER f -> Search(CurrentSelectionOrEmptyString)
SHIFT | CTRL h -> HideApplication
SUPER h -> HideApplication
SHIFT | CTRL k -> ClearScrollback(ScrollbackOnly)
SUPER k -> ClearScrollback(ScrollbackOnly)
SHIFT | CTRL l -> ShowDebugOverlay
SHIFT | CTRL m -> Hide
SUPER m -> Hide
SHIFT | CTRL n -> SpawnWindow
SUPER n -> SpawnWindow
SHIFT | CTRL p -> ActivateCommandPalette
SHIFT | CTRL q -> QuitApplication
SUPER q -> QuitApplication
SHIFT | CTRL r -> ReloadConfiguration
SUPER r -> ReloadConfiguration
SHIFT | CTRL t -> SpawnTab(CurrentPaneDomain)
SUPER t -> SpawnTab(CurrentPaneDomain)
SHIFT | CTRL u -> CharSelect(CharSelectArguments { group: None, copy_on_select: true, copy_to: ClipboardAndPrimarySelection })
SHIFT | CTRL v -> PasteFrom(Clipboard)
SUPER v -> PasteFrom(Clipboard)
SHIFT | CTRL w -> CloseCurrentTab { confirm: true }
SUPER w -> CloseCurrentTab { confirm: true }
SHIFT | CTRL x -> ActivateCopyMode
SHIFT | CTRL z -> TogglePaneZoomState
SUPER { -> ActivateTabRelative(-1)
SHIFT | SUPER { -> ActivateTabRelative(-1)
SUPER } -> ActivateTabRelative(1)
SHIFT | SUPER } -> ActivateTabRelative(1)
SHIFT | CTRL Space (Physical) -> QuickSelect
SHIFT PageUp -> ScrollByPage(NotNan(-1.0))
CTRL PageUp -> ActivateTabRelative(-1)
SHIFT | CTRL PageUp -> MoveTabRelative(-1)
SHIFT PageDown -> ScrollByPage(NotNan(1.0))
CTRL PageDown -> ActivateTabRelative(1)
SHIFT | CTRL PageDown -> MoveTabRelative(1)
SHIFT | CTRL LeftArrow -> ActivatePaneDirection(Left)
SHIFT | ALT | CTRL LeftArrow -> AdjustPaneSize(Left, 1)
SHIFT | CTRL RightArrow -> ActivatePaneDirection(Right)
SHIFT | ALT | CTRL RightArrow -> AdjustPaneSize(Right, 1)
SHIFT | CTRL UpArrow -> ActivatePaneDirection(Up)
SHIFT | ALT | CTRL UpArrow -> AdjustPaneSize(Up, 1)
SHIFT | CTRL DownArrow -> ActivatePaneDirection(Down)
SHIFT | ALT | CTRL DownArrow -> AdjustPaneSize(Down, 1)
Copy -> CopyTo(Clipboard)
Paste -> PasteFrom(Clipboard)
CTRL Tab -> ActivateTabRelative(1)
SHIFT | CTRL Tab -> ActivateTabRelative(-1)
ALT Enter -> ToggleFullScreen
CTRL ! -> ActivateTab(0)
SHIFT | CTRL ! -> ActivateTab(0)
ALT | CTRL " -> SplitVertical(SpawnCommand domain=CurrentPaneDomain)
SHIFT | ALT | CTRL " -> SplitVertical(SpawnCommand domain=CurrentPaneDomain)
CTRL # -> ActivateTab(2)
SHIFT | CTRL # -> ActivateTab(2)
CTRL $ -> ActivateTab(3)
SHIFT | CTRL $ -> ActivateTab(3)
CTRL % -> ActivateTab(4)
SHIFT | CTRL % -> ActivateTab(4)
ALT | CTRL % -> SplitHorizontal(SpawnCommand domain=CurrentPaneDomain)
SHIFT | ALT | CTRL % -> SplitHorizontal(SpawnCommand domain=CurrentPaneDomain)
CTRL & -> ActivateTab(6)
SHIFT | CTRL & -> ActivateTab(6)
SHIFT | ALT | CTRL ' -> SplitVertical(SpawnCommand domain=CurrentPaneDomain)
CTRL ( -> ActivateTab(-1)
SHIFT | CTRL ( -> ActivateTab(-1)
CTRL ) -> ResetFontSize
SHIFT | CTRL ) -> ResetFontSize
CTRL * -> ActivateTab(7)
SHIFT | CTRL * -> ActivateTab(7)
CTRL + -> IncreaseFontSize
SHIFT | CTRL + -> IncreaseFontSize
CTRL - -> DecreaseFontSize
SHIFT | CTRL - -> DecreaseFontSize
SUPER - -> DecreaseFontSize
CTRL 0 -> ResetFontSize
SHIFT | CTRL 0 -> ResetFontSize
SUPER 0 -> ResetFontSize
SHIFT | CTRL 1 -> ActivateTab(0)
SUPER 1 -> ActivateTab(0)
SHIFT | CTRL 2 -> ActivateTab(1)
SUPER 2 -> ActivateTab(1)
SHIFT | CTRL 3 -> ActivateTab(2)
SUPER 3 -> ActivateTab(2)
SHIFT | CTRL 4 -> ActivateTab(3)
SUPER 4 -> ActivateTab(3)
SHIFT | CTRL 5 -> ActivateTab(4)
SHIFT | ALT | CTRL 5 -> SplitHorizontal(SpawnCommand domain=CurrentPaneDomain)
SUPER 5 -> ActivateTab(4)
SHIFT | CTRL 6 -> ActivateTab(5)
SUPER 6 -> ActivateTab(5)
SHIFT | CTRL 7 -> ActivateTab(6)
SUPER 7 -> ActivateTab(6)
SHIFT | CTRL 8 -> ActivateTab(7)
SUPER 8 -> ActivateTab(7)
SHIFT | CTRL 9 -> ActivateTab(-1)
SUPER 9 -> ActivateTab(-1)
CTRL = -> IncreaseFontSize
SHIFT | CTRL = -> IncreaseFontSize
SUPER = -> IncreaseFontSize
CTRL @ -> ActivateTab(1)
SHIFT | CTRL @ -> ActivateTab(1)
CTRL C -> CopyTo(Clipboard)
SHIFT | CTRL C -> CopyTo(Clipboard)
CTRL F -> Search(CurrentSelectionOrEmptyString)
SHIFT | CTRL F -> Search(CurrentSelectionOrEmptyString)
CTRL H -> HideApplication
SHIFT | CTRL H -> HideApplication
CTRL K -> ClearScrollback(ScrollbackOnly)
SHIFT | CTRL K -> ClearScrollback(ScrollbackOnly)
CTRL L -> ShowDebugOverlay
SHIFT | CTRL L -> ShowDebugOverlay
CTRL M -> Hide
SHIFT | CTRL M -> Hide
CTRL N -> SpawnWindow
SHIFT | CTRL N -> SpawnWindow
CTRL P -> ActivateCommandPalette
SHIFT | CTRL P -> ActivateCommandPalette
CTRL Q -> QuitApplication
SHIFT | CTRL Q -> QuitApplication
CTRL R -> ReloadConfiguration
SHIFT | CTRL R -> ReloadConfiguration
CTRL T -> SpawnTab(CurrentPaneDomain)
SHIFT | CTRL T -> SpawnTab(CurrentPaneDomain)
CTRL U -> CharSelect(CharSelectArguments { group: None, copy_on_select: true, copy_to: ClipboardAndPrimarySelection })
SHIFT | CTRL U -> CharSelect(CharSelectArguments { group: None, copy_on_select: true, copy_to: ClipboardAndPrimarySelection })
CTRL V -> PasteFrom(Clipboard)
SHIFT | CTRL V -> PasteFrom(Clipboard)
CTRL W -> CloseCurrentTab { confirm: true }
SHIFT | CTRL W -> CloseCurrentTab { confirm: true }
CTRL X -> ActivateCopyMode
SHIFT | CTRL X -> ActivateCopyMode
CTRL Z -> TogglePaneZoomState
SHIFT | CTRL Z -> TogglePaneZoomState
SHIFT | SUPER [ -> ActivateTabRelative(-1)
SHIFT | SUPER ] -> ActivateTabRelative(1)
CTRL ^ -> ActivateTab(5)
SHIFT | CTRL ^ -> ActivateTab(5)
CTRL _ -> DecreaseFontSize
SHIFT | CTRL _ -> DecreaseFontSize
SHIFT | CTRL c -> CopyTo(Clipboard)
SUPER c -> CopyTo(Clipboard)
SHIFT | CTRL f -> Search(CurrentSelectionOrEmptyString)
SUPER f -> Search(CurrentSelectionOrEmptyString)
SHIFT | CTRL h -> HideApplication
SUPER h -> HideApplication
SHIFT | CTRL k -> ClearScrollback(ScrollbackOnly)
SUPER k -> ClearScrollback(ScrollbackOnly)
SHIFT | CTRL l -> ShowDebugOverlay
SHIFT | CTRL m -> Hide
SUPER m -> Hide
SHIFT | CTRL n -> SpawnWindow
SUPER n -> SpawnWindow
SHIFT | CTRL p -> ActivateCommandPalette
SHIFT | CTRL q -> QuitApplication
SUPER q -> QuitApplication
SHIFT | CTRL r -> ReloadConfiguration
SUPER r -> ReloadConfiguration
SHIFT | CTRL t -> SpawnTab(CurrentPaneDomain)
SUPER t -> SpawnTab(CurrentPaneDomain)
SHIFT | CTRL u -> CharSelect(CharSelectArguments { group: None, copy_on_select: true, copy_to: ClipboardAndPrimarySelection })
SHIFT | CTRL v -> PasteFrom(Clipboard)
SUPER v -> PasteFrom(Clipboard)
SHIFT | CTRL w -> CloseCurrentTab { confirm: true }
SUPER w -> CloseCurrentTab { confirm: true }
SHIFT | CTRL x -> ActivateCopyMode
SHIFT | CTRL z -> TogglePaneZoomState
SUPER { -> ActivateTabRelative(-1)
SHIFT | SUPER { -> ActivateTabRelative(-1)
SUPER } -> ActivateTabRelative(1)
SHIFT | SUPER } -> ActivateTabRelative(1)
SHIFT | CTRL Space (Physical) -> QuickSelect
SHIFT PageUp -> ScrollByPage(NotNan(-1.0))
CTRL PageUp -> ActivateTabRelative(-1)
SHIFT | CTRL PageUp -> MoveTabRelative(-1)
SHIFT PageDown -> ScrollByPage(NotNan(1.0))
CTRL PageDown -> ActivateTabRelative(1)
SHIFT | CTRL PageDown -> MoveTabRelative(1)
SHIFT | CTRL LeftArrow -> ActivatePaneDirection(Left)
SHIFT | ALT | CTRL LeftArrow -> AdjustPaneSize(Left, 1)
SHIFT | CTRL RightArrow -> ActivatePaneDirection(Right)
SHIFT | ALT | CTRL RightArrow -> AdjustPaneSize(Right, 1)
SHIFT | CTRL UpArrow -> ActivatePaneDirection(Up)
SHIFT | ALT | CTRL UpArrow -> AdjustPaneSize(Up, 1)
SHIFT | CTRL DownArrow -> ActivatePaneDirection(Down)
SHIFT | ALT | CTRL DownArrow -> AdjustPaneSize(Down, 1)
Copy -> CopyTo(Clipboard)
Paste -> PasteFrom(Clipboard)
Key Table: copy_mode
--------------------
Tab -> CopyMode(MoveForwardWord)
SHIFT Tab -> CopyMode(MoveBackwardWord)
Enter -> CopyMode(MoveToStartOfNextLine)
Escape -> CopyMode(Close)
Space -> CopyMode(SetSelectionMode(Some(Cell)))
$ -> CopyMode(MoveToEndOfLineContent)
SHIFT $ -> CopyMode(MoveToEndOfLineContent)
, -> CopyMode(JumpReverse)
0 -> CopyMode(MoveToStartOfLine)
; -> CopyMode(JumpAgain)
F -> CopyMode(JumpBackward { prev_char: false })
SHIFT F -> CopyMode(JumpBackward { prev_char: false })
G -> CopyMode(MoveToScrollbackBottom)
SHIFT G -> CopyMode(MoveToScrollbackBottom)
H -> CopyMode(MoveToViewportTop)
SHIFT H -> CopyMode(MoveToViewportTop)
L -> CopyMode(MoveToViewportBottom)
SHIFT L -> CopyMode(MoveToViewportBottom)
M -> CopyMode(MoveToViewportMiddle)
SHIFT M -> CopyMode(MoveToViewportMiddle)
O -> CopyMode(MoveToSelectionOtherEndHoriz)
SHIFT O -> CopyMode(MoveToSelectionOtherEndHoriz)
T -> CopyMode(JumpBackward { prev_char: true })
SHIFT T -> CopyMode(JumpBackward { prev_char: true })
V -> CopyMode(SetSelectionMode(Some(Line)))
SHIFT V -> CopyMode(SetSelectionMode(Some(Line)))
^ -> CopyMode(MoveToStartOfLineContent)
SHIFT ^ -> CopyMode(MoveToStartOfLineContent)
b -> CopyMode(MoveBackwardWord)
ALT b -> CopyMode(MoveBackwardWord)
CTRL b -> CopyMode(PageUp)
CTRL c -> CopyMode(Close)
CTRL d -> CopyMode(MoveByPage(NotNan(0.5)))
e -> CopyMode(MoveForwardWordEnd)
f -> CopyMode(JumpForward { prev_char: false })
ALT f -> CopyMode(MoveForwardWord)
CTRL f -> CopyMode(PageDown)
g -> CopyMode(MoveToScrollbackTop)
CTRL g -> CopyMode(Close)
h -> CopyMode(MoveLeft)
j -> CopyMode(MoveDown)
k -> CopyMode(MoveUp)
l -> CopyMode(MoveRight)
ALT m -> CopyMode(MoveToStartOfLineContent)
o -> CopyMode(MoveToSelectionOtherEnd)
q -> CopyMode(Close)
t -> CopyMode(JumpForward { prev_char: true })
CTRL u -> CopyMode(MoveByPage(NotNan(-0.5)))
v -> CopyMode(SetSelectionMode(Some(Cell)))
CTRL v -> CopyMode(SetSelectionMode(Some(Block)))
w -> CopyMode(MoveForwardWord)
y -> Multiple([CopyTo(ClipboardAndPrimarySelection), CopyMode(Close)])
PageUp -> CopyMode(PageUp)
PageDown -> CopyMode(PageDown)
End -> CopyMode(MoveToEndOfLineContent)
Home -> CopyMode(MoveToStartOfLine)
LeftArrow -> CopyMode(MoveLeft)
ALT LeftArrow -> CopyMode(MoveBackwardWord)
RightArrow -> CopyMode(MoveRight)
ALT RightArrow -> CopyMode(MoveForwardWord)
UpArrow -> CopyMode(MoveUp)
DownArrow -> CopyMode(MoveDown)
Tab -> CopyMode(MoveForwardWord)
SHIFT Tab -> CopyMode(MoveBackwardWord)
Enter -> CopyMode(MoveToStartOfNextLine)
Escape -> CopyMode(Close)
Space -> CopyMode(SetSelectionMode(Some(Cell)))
$ -> CopyMode(MoveToEndOfLineContent)
SHIFT $ -> CopyMode(MoveToEndOfLineContent)
, -> CopyMode(JumpReverse)
0 -> CopyMode(MoveToStartOfLine)
; -> CopyMode(JumpAgain)
F -> CopyMode(JumpBackward { prev_char: false })
SHIFT F -> CopyMode(JumpBackward { prev_char: false })
G -> CopyMode(MoveToScrollbackBottom)
SHIFT G -> CopyMode(MoveToScrollbackBottom)
H -> CopyMode(MoveToViewportTop)
SHIFT H -> CopyMode(MoveToViewportTop)
L -> CopyMode(MoveToViewportBottom)
SHIFT L -> CopyMode(MoveToViewportBottom)
M -> CopyMode(MoveToViewportMiddle)
SHIFT M -> CopyMode(MoveToViewportMiddle)
O -> CopyMode(MoveToSelectionOtherEndHoriz)
SHIFT O -> CopyMode(MoveToSelectionOtherEndHoriz)
T -> CopyMode(JumpBackward { prev_char: true })
SHIFT T -> CopyMode(JumpBackward { prev_char: true })
V -> CopyMode(SetSelectionMode(Some(Line)))
SHIFT V -> CopyMode(SetSelectionMode(Some(Line)))
^ -> CopyMode(MoveToStartOfLineContent)
SHIFT ^ -> CopyMode(MoveToStartOfLineContent)
b -> CopyMode(MoveBackwardWord)
ALT b -> CopyMode(MoveBackwardWord)
CTRL b -> CopyMode(PageUp)
CTRL c -> CopyMode(Close)
CTRL d -> CopyMode(MoveByPage(NotNan(0.5)))
e -> CopyMode(MoveForwardWordEnd)
f -> CopyMode(JumpForward { prev_char: false })
ALT f -> CopyMode(MoveForwardWord)
CTRL f -> CopyMode(PageDown)
g -> CopyMode(MoveToScrollbackTop)
CTRL g -> CopyMode(Close)
h -> CopyMode(MoveLeft)
j -> CopyMode(MoveDown)
k -> CopyMode(MoveUp)
l -> CopyMode(MoveRight)
ALT m -> CopyMode(MoveToStartOfLineContent)
o -> CopyMode(MoveToSelectionOtherEnd)
q -> CopyMode(Close)
t -> CopyMode(JumpForward { prev_char: true })
CTRL u -> CopyMode(MoveByPage(NotNan(-0.5)))
v -> CopyMode(SetSelectionMode(Some(Cell)))
CTRL v -> CopyMode(SetSelectionMode(Some(Block)))
w -> CopyMode(MoveForwardWord)
y -> Multiple([CopyTo(ClipboardAndPrimarySelection), CopyMode(Close)])
PageUp -> CopyMode(PageUp)
PageDown -> CopyMode(PageDown)
End -> CopyMode(MoveToEndOfLineContent)
Home -> CopyMode(MoveToStartOfLine)
LeftArrow -> CopyMode(MoveLeft)
ALT LeftArrow -> CopyMode(MoveBackwardWord)
RightArrow -> CopyMode(MoveRight)
ALT RightArrow -> CopyMode(MoveForwardWord)
UpArrow -> CopyMode(MoveUp)
DownArrow -> CopyMode(MoveDown)
Key Table: search_mode
----------------------
Enter -> CopyMode(PriorMatch)
Escape -> CopyMode(Close)
CTRL n -> CopyMode(NextMatch)
CTRL p -> CopyMode(PriorMatch)
CTRL r -> CopyMode(CycleMatchType)
CTRL u -> CopyMode(ClearPattern)
PageUp -> CopyMode(PriorMatchPage)
PageDown -> CopyMode(NextMatchPage)
UpArrow -> CopyMode(PriorMatch)
DownArrow -> CopyMode(NextMatch)
Enter -> CopyMode(PriorMatch)
Escape -> CopyMode(Close)
CTRL n -> CopyMode(NextMatch)
CTRL p -> CopyMode(PriorMatch)
CTRL r -> CopyMode(CycleMatchType)
CTRL u -> CopyMode(ClearPattern)
PageUp -> CopyMode(PriorMatchPage)
PageDown -> CopyMode(NextMatchPage)
UpArrow -> CopyMode(PriorMatch)
DownArrow -> CopyMode(NextMatch)
Mouse
-----
Down { streak: 1, button: Left } -> SelectTextAtMouseCursor(Cell)
SHIFT Down { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Cell)
ALT Down { streak: 1, button: Left } -> SelectTextAtMouseCursor(Block)
SHIFT | ALT Down { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Block)
Down { streak: 1, button: Middle } -> PasteFrom(PrimarySelection)
Down { streak: 1, button: WheelUp(1) } -> ScrollByCurrentEventWheelDelta
Down { streak: 1, button: WheelDown(1) } -> ScrollByCurrentEventWheelDelta
Down { streak: 2, button: Left } -> SelectTextAtMouseCursor(Word)
Down { streak: 3, button: Left } -> SelectTextAtMouseCursor(Line)
Drag { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Cell)
ALT Drag { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Block)
SHIFT | CTRL Drag { streak: 1, button: Left } -> StartWindowDrag
SUPER Drag { streak: 1, button: Left } -> StartWindowDrag
Drag { streak: 2, button: Left } -> ExtendSelectionToMouseCursor(Word)
Drag { streak: 3, button: Left } -> ExtendSelectionToMouseCursor(Line)
Up { streak: 1, button: Left } -> CompleteSelectionOrOpenLinkAtMouseCursor(ClipboardAndPrimarySelection)
SHIFT Up { streak: 1, button: Left } -> CompleteSelectionOrOpenLinkAtMouseCursor(ClipboardAndPrimarySelection)
ALT Up { streak: 1, button: Left } -> CompleteSelection(ClipboardAndPrimarySelection)
SHIFT | ALT Up { streak: 1, button: Left } -> CompleteSelectionOrOpenLinkAtMouseCursor(PrimarySelection)
Up { streak: 2, button: Left } -> CompleteSelection(ClipboardAndPrimarySelection)
Up { streak: 3, button: Left } -> CompleteSelection(ClipboardAndPrimarySelection)
Down { streak: 1, button: Left } -> SelectTextAtMouseCursor(Cell)
SHIFT Down { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Cell)
ALT Down { streak: 1, button: Left } -> SelectTextAtMouseCursor(Block)
SHIFT | ALT Down { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Block)
Down { streak: 1, button: Middle } -> PasteFrom(PrimarySelection)
Down { streak: 1, button: WheelUp(1) } -> ScrollByCurrentEventWheelDelta
Down { streak: 1, button: WheelDown(1) } -> ScrollByCurrentEventWheelDelta
Down { streak: 2, button: Left } -> SelectTextAtMouseCursor(Word)
Down { streak: 3, button: Left } -> SelectTextAtMouseCursor(Line)
Drag { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Cell)
ALT Drag { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Block)
SHIFT | CTRL Drag { streak: 1, button: Left } -> StartWindowDrag
SUPER Drag { streak: 1, button: Left } -> StartWindowDrag
Drag { streak: 2, button: Left } -> ExtendSelectionToMouseCursor(Word)
Drag { streak: 3, button: Left } -> ExtendSelectionToMouseCursor(Line)
Up { streak: 1, button: Left } -> CompleteSelectionOrOpenLinkAtMouseCursor(ClipboardAndPrimarySelection)
SHIFT Up { streak: 1, button: Left } -> CompleteSelectionOrOpenLinkAtMouseCursor(ClipboardAndPrimarySelection)
ALT Up { streak: 1, button: Left } -> CompleteSelection(ClipboardAndPrimarySelection)
SHIFT | ALT Up { streak: 1, button: Left } -> CompleteSelectionOrOpenLinkAtMouseCursor(PrimarySelection)
Up { streak: 2, button: Left } -> CompleteSelection(ClipboardAndPrimarySelection)
Up { streak: 3, button: Left } -> CompleteSelection(ClipboardAndPrimarySelection)
Mouse: alt_screen
-----------------
Down { streak: 1, button: Left } -> SelectTextAtMouseCursor(Cell)
SHIFT Down { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Cell)
ALT Down { streak: 1, button: Left } -> SelectTextAtMouseCursor(Block)
SHIFT | ALT Down { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Block)
Down { streak: 1, button: Middle } -> PasteFrom(PrimarySelection)
Down { streak: 2, button: Left } -> SelectTextAtMouseCursor(Word)
Down { streak: 3, button: Left } -> SelectTextAtMouseCursor(Line)
Drag { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Cell)
ALT Drag { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Block)
SHIFT | CTRL Drag { streak: 1, button: Left } -> StartWindowDrag
SUPER Drag { streak: 1, button: Left } -> StartWindowDrag
Drag { streak: 2, button: Left } -> ExtendSelectionToMouseCursor(Word)
Drag { streak: 3, button: Left } -> ExtendSelectionToMouseCursor(Line)
Up { streak: 1, button: Left } -> CompleteSelectionOrOpenLinkAtMouseCursor(ClipboardAndPrimarySelection)
SHIFT Up { streak: 1, button: Left } -> CompleteSelectionOrOpenLinkAtMouseCursor(ClipboardAndPrimarySelection)
ALT Up { streak: 1, button: Left } -> CompleteSelection(ClipboardAndPrimarySelection)
SHIFT | ALT Up { streak: 1, button: Left } -> CompleteSelectionOrOpenLinkAtMouseCursor(PrimarySelection)
Up { streak: 2, button: Left } -> CompleteSelection(ClipboardAndPrimarySelection)
Up { streak: 3, button: Left } -> CompleteSelection(ClipboardAndPrimarySelection)
Down { streak: 1, button: Left } -> SelectTextAtMouseCursor(Cell)
SHIFT Down { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Cell)
ALT Down { streak: 1, button: Left } -> SelectTextAtMouseCursor(Block)
SHIFT | ALT Down { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Block)
Down { streak: 1, button: Middle } -> PasteFrom(PrimarySelection)
Down { streak: 2, button: Left } -> SelectTextAtMouseCursor(Word)
Down { streak: 3, button: Left } -> SelectTextAtMouseCursor(Line)
Drag { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Cell)
ALT Drag { streak: 1, button: Left } -> ExtendSelectionToMouseCursor(Block)
SHIFT | CTRL Drag { streak: 1, button: Left } -> StartWindowDrag
SUPER Drag { streak: 1, button: Left } -> StartWindowDrag
Drag { streak: 2, button: Left } -> ExtendSelectionToMouseCursor(Word)
Drag { streak: 3, button: Left } -> ExtendSelectionToMouseCursor(Line)
Up { streak: 1, button: Left } -> CompleteSelectionOrOpenLinkAtMouseCursor(ClipboardAndPrimarySelection)
SHIFT Up { streak: 1, button: Left } -> CompleteSelectionOrOpenLinkAtMouseCursor(ClipboardAndPrimarySelection)
ALT Up { streak: 1, button: Left } -> CompleteSelection(ClipboardAndPrimarySelection)
SHIFT | ALT Up { streak: 1, button: Left } -> CompleteSelectionOrOpenLinkAtMouseCursor(PrimarySelection)
Up { streak: 2, button: Left } -> CompleteSelection(ClipboardAndPrimarySelection)
Up { streak: 3, button: Left } -> CompleteSelection(ClipboardAndPrimarySelection)
```

View File

@@ -35,10 +35,6 @@
relink: true
path: config/*
exclude: [config/nvm]
~/.config/nvm/default-packages:
create: true
relink: true
path: config/nvm/default-packages
~/.local/bin:
glob: true
path: local/bin/*
@@ -53,6 +49,7 @@
mode: 0600
path: ssh/*
- shell:
- bash add-submodules.sh || true
- git submodule update --init --recursive --force
- bash local/bin/dfm install all
- pipx:

View File

@@ -44,6 +44,23 @@ if ! declare -f msg_done > /dev/null; then
}
fi
if ! declare -f array_diff > /dev/null; then
# Function to compare two arrays and return the difference
# Example: array_diff DIFFERENCE ARRAY1 ARRAY2
# $1 - variable to store the difference
# $2 - first array
# $3 - second array
# Output to $1 the difference between $2 and $3
# Source: https://stackoverflow.com/a/42399479/594940
array_diff()
{
eval local ARR1=\(\"\${$2[@]}\"\)
eval local ARR2=\(\"\${$3[@]}\"\)
local IFS=$'\n'
mapfile -t "$1" < <(comm -23 <(echo "${ARR1[*]}" | sort) <(echo "${ARR2[*]}" | sort))
}
fi
VERSION_NVM="v0.39.5"
# Loads configs for better installation experience
@@ -161,7 +178,7 @@ section_install()
;;
asdf)
msg "Installing asdf..."
bash "$DOTFILES/scripts/install-asdf.sh" \
bash "$DOTFILES/scripts/install-asdf.sh both" \
&& msg_yay "asdf installed!"
;;
cargo)
@@ -293,6 +310,7 @@ section_brew()
"autoupdate:Setups brew auto-update and runs it immediately"
"leaves:List brew leaves (installed on request)"
"clean:Clean up brew packages"
"untracked:List untracked brew packages"
)
x-have brew && {
@@ -309,11 +327,55 @@ section_brew()
brew bundle dump \
--force \
--file="$BREWFILE" \
--cleanup \
--tap \
--formula \
--cask \
--describe && msg_yay "Done!"
;;
leaves)
brew leaves --installed-on-request
;;
untracked)
declare -a BREW_LIST_ALL
while IFS= read -r line; do
BREW_LIST_ALL+=("$line")
done < <(brew list --formula --installed-on-request -1 --full-name)
while IFS= read -r c; do
BREW_LIST_ALL+=("$c")
done < <(brew list --cask -1 --full-name)
# Remove entries that are installed as dependencies
declare -a BREW_LIST_DEPENDENCIES
while IFS= read -r l; do
BREW_LIST_DEPENDENCIES+=("$l")
done < <(brew list -1 --installed-as-dependency)
declare -a BREW_LIST_BUNDLED
while IFS= read -r b; do
BREW_LIST_BUNDLED+=("$b")
done < <(brew bundle list --all --file="$BREWFILE")
declare -a BREW_LIST_TRACKED_WITHOUT_DEPS
for f in "${BREW_LIST_ALL[@]}"; do
if [[ ! " ${BREW_LIST_DEPENDENCIES[@]} " =~ " ${f} " ]]; then
BREW_LIST_TRACKED_WITHOUT_DEPS+=("$f")
fi
done
array_diff BREW_LIST_UNTRACKED BREW_LIST_TRACKED_WITHOUT_DEPS BREW_LIST_BUNDLED
# If there are no untracked packages, exit
if [ ${#BREW_LIST_UNTRACKED[@]} -eq 0 ]; then
msg_yay "No untracked packages found!"
exit 0
fi
echo "Untracked:"
for f in "${BREW_LIST_UNTRACKED[@]}"; do
echo " $f"
done
;;
clean)
brew bundle cleanup --file="$BREWFILE" && msg_yay "Done!"
;;
@@ -417,7 +479,9 @@ section_dotfiles()
! x-have shfmt && msg_err "shfmt not found, install with asdf"
# Format shell scripts according to following rules.
fd --full-path "$DOTFILES" -tx \
--hidden \
-E '*.pl' -E '*.php' -E '*.py' -E '*.zsh' -E 'plugins' -E 'fzf' -E 'dotbot' \
-E 'test' -E '**/bin/asdf/**' -E '**/tldr/*' \
-x shfmt \
--language-dialect bash \
--func-next-line --list --write \

92
local/bin/x-term-colors Executable file
View File

@@ -0,0 +1,92 @@
#!/usr/bin/env bash
#
# This file echoes a bunch of 24-bit color codes
# to the terminal to demonstrate its functionality.
# The foreground escape sequence is ^[38;2;<r>;<g>;<b>m
# The background escape sequence is ^[48;2;<r>;<g>;<b>m
# <r> <g> <b> range from 0 to 255 inclusive.
# The escape sequence ^[0m returns output to default
setBackgroundColor()
{
echo -en "\x1b[48;2;$1;$2;$3""m"
}
resetOutput()
{
echo -en "\x1b[0m\n"
}
# Gives a color $1/255 % along HSV
# Who knows what happens when $1 is outside 0-255
# Echoes "$red $green $blue" where
# $red $green and $blue are integers
# ranging between 0 and 255 inclusive
rainbowColor()
{
let h=$1/43
let f=$1-43*$h
let t=$f*255/43
let q=255-t
if [ $h -eq 0 ]; then
echo "255 $t 0"
elif [ $h -eq 1 ]; then
echo "$q 255 0"
elif [ $h -eq 2 ]; then
echo "0 255 $t"
elif [ $h -eq 3 ]; then
echo "0 $q 255"
elif [ $h -eq 4 ]; then
echo "$t 0 255"
elif [ $h -eq 5 ]; then
echo "255 0 $q"
else
# execution should never reach here
echo "0 0 0"
fi
}
for i in $(seq 0 127); do
setBackgroundColor "$i" 0 0
echo -en " "
done
resetOutput
for i in $(seq 255 128); do
setBackgroundColor "$i" 0 0
echo -en " "
done
resetOutput
for i in $(seq 0 127); do
setBackgroundColor 0 "$i" 0
echo -n " "
done
resetOutput
for i in $(seq 255 128); do
setBackgroundColor 0 "$i" 0
echo -n " "
done
resetOutput
for i in $(seq 0 127); do
setBackgroundColor 0 0 "$i"
echo -n " "
done
resetOutput
for i in $(seq 255 128); do
setBackgroundColor 0 0 "$i"
echo -n " "
done
resetOutput
for i in $(seq 0 127); do
setBackgroundColor $(rainbowColor "$i")
echo -n " "
done
resetOutput
for i in $(seq 255 128); do
setBackgroundColor $(rainbowColor "$i")
echo -n " "
done
resetOutput

View File

@@ -2,7 +2,6 @@
"name": "ivuorinen-dotfiles",
"version": "1.0.0",
"description": "ivuorinen's dotfiles, this is for linting and formatters",
"main": "index.js",
"directories": {
"doc": "docs"
},
@@ -28,8 +27,7 @@
},
"homepage": "https://github.com/ivuorinen/dotfiles#readme",
"devDependencies": {
"@ivuorinen/base-configs": "^1.1.0",
"prettier-plugin-sh": "^0.14.0"
"@ivuorinen/base-configs": "^2.0.0"
},
"packageManager": "yarn@1.22.22"
}

View File

@@ -1,6 +1,13 @@
#!/usr/bin/env bash
#
# Install asdf
# Install asdf and plugins I use
#
# It also updates asdf and the plugins, and then reshim asdf.
#
# Usage: ./install-asdf.sh [both|install|add_plugins]
# Author: Ismo Vuorinen <https://github.com/ivuorinen>
# License: MIT
#
source "${DOTFILES}/config/shared.sh"
export ASDF_DIR="${XDG_BIN_HOME}/asdf"
@@ -12,8 +19,6 @@ msg "Sourcing asdf in your shell"
# Function to update asdf and plugins
update_asdf()
{
asdf update
asdf plugin add asdf-plugin-manager https://github.com/asdf-community/asdf-plugin-manager.git
asdf install asdf-plugin-manager latest
asdf global asdf-plugin-manager "$(asdf latest asdf-plugin-manager)"
@@ -21,58 +26,91 @@ update_asdf()
asdf-plugin-manager add-all
asdf install
}
ASDF_INSTALLABLES=(
"1password-cli:github.com/NeoHsu/asdf-1password-cli.git"
"age:github.com/threkk/asdf-age.git"
"bottom:github.com/carbonteq/asdf-btm.git"
"direnv:github.com/asdf-community/asdf-direnv.git"
"dotenv-linter:github.com/wesleimp/asdf-dotenv-linter.git"
"editorconfig-checker:github.com/gabitchov/asdf-editorconfig-checker.git"
"eza:github.com/lwiechec/asdf-eza.git"
"fd:gitlab.com/wt0f/asdf-fd.git"
"github-cli:github.com/bartlomiejdanek/asdf-github-cli.git"
"golang:github.com/asdf-community/asdf-golang.git"
"hadolint:github.com/devlincashman/asdf-hadolint.git"
"kubectl:github.com/asdf-community/asdf-kubectl.git"
"lazygit:github.com/nklmilojevic/asdf-lazygit.git"
"nodejs:github.com/asdf-vm/asdf-nodejs.git"
"pipx:github.com/yozachar/asdf-pipx.git"
"pre-commit:github.com/jonathanmorley/asdf-pre-commit.git"
"ripgrep:gitlab.com/wt0f/asdf-ripgrep.git"
"rust:github.com/code-lever/asdf-rust.git"
"semgrep:github.com/brentjanderson/asdf-semgrep.git"
"shellcheck:github.com/luizm/asdf-shellcheck.git"
"shfmt:github.com/luizm/asdf-shfmt.git"
"terraform-ls:github.com/asdf-community/asdf-hashicorp.git"
"terraform-lsp:github.com/bartlomiejdanek/asdf-terraform-lsp.git"
"terragrunt:github.com/ohmer/asdf-terragrunt.git"
"tf-summarize:github.com/adamcrews/asdf-tf-summarize.git"
"vault:github.com/asdf-community/asdf-hashicorp.git"
"yamllint:github.com/ericcornelissen/asdf-yamllint.git"
"yq:github.com/sudermanjr/asdf-yq.git"
)
return 0
}
# Function to install asdf plugins
install_asdf_plugins()
{
msg "Installing asdf plugins, if not already installed"
ASDF_INSTALLABLES=(
"1password-cli:github.com/NeoHsu/asdf-1password-cli.git"
"age:github.com/threkk/asdf-age.git"
"bottom:github.com/carbonteq/asdf-btm.git"
"direnv:github.com/asdf-community/asdf-direnv.git"
"dotenv-linter:github.com/wesleimp/asdf-dotenv-linter.git"
"editorconfig-checker:github.com/gabitchov/asdf-editorconfig-checker.git"
"eza:github.com/lwiechec/asdf-eza.git"
"fd:gitlab.com/wt0f/asdf-fd.git"
"github-cli:github.com/bartlomiejdanek/asdf-github-cli.git"
"golang:github.com/asdf-community/asdf-golang.git"
"hadolint:github.com/devlincashman/asdf-hadolint.git"
"kubectl:github.com/asdf-community/asdf-kubectl.git"
"lazygit:github.com/nklmilojevic/asdf-lazygit.git"
"nodejs:github.com/asdf-vm/asdf-nodejs.git"
"pipx:github.com/yozachar/asdf-pipx.git"
"pre-commit:github.com/jonathanmorley/asdf-pre-commit.git"
"python:github.com/asdf-community/asdf-python.git"
"ripgrep:gitlab.com/wt0f/asdf-ripgrep.git"
"rust:github.com/code-lever/asdf-rust.git"
"shellcheck:github.com/luizm/asdf-shellcheck.git"
"shfmt:github.com/luizm/asdf-shfmt.git"
"terragrunt:github.com/ohmer/asdf-terragrunt.git"
"tf-summarize:github.com/adamcrews/asdf-tf-summarize.git"
"yamllint:github.com/ericcornelissen/asdf-yamllint.git"
"yq:github.com/sudermanjr/asdf-yq.git"
)
msg "Installing asdf plugins"
for item in "${ASDF_INSTALLABLES[@]}"; do
CMD=$(echo "${item}" | awk -F ":" '{print $1}')
URL=$(echo "${item}" | awk -F ":" '{print $2}')
asdf plugin add "${CMD}" "https://${URL}"
asdf install "${CMD}" latest
asdf global "${CMD}" "$(asdf latest "${CMD}")"
done
msg "Exporting asdf plugin versions"
asdf-plugin-manager export > "${XDG_CONFIG_HOME}/asdf/plugin-versions"
return 0
}
reshim()
{
msg "Reshim asdf"
asdf reshim
return 0
}
# create usage function
usage()
{
echo "Usage: $0 [both|install|add_plugins]"
exit 1
}
main()
{
update_asdf
install_asdf_plugins
msg "Reshim asdf"
asdf reshim
case $1 in
"both")
install_asdf_plugins
update_asdf
reshim
;;
"install")
update_asdf
reshim
;;
"add_plugins")
install_asdf_plugins
reshim
;;
*)
usage
;;
esac
}
main "$@"

View File

@@ -2,6 +2,10 @@
# Install cargo/rust packages.
#
# shellcheck source=shared.sh
echo "This file has been deprecated in favor of asdf. Please use asdf instead."
exit 0
eval "$HOME/.dotfiles/config/shared.sh"
msg "Starting to install rust/cargo packages"

View File

@@ -2,6 +2,10 @@
# Install Go packages
#
# shellcheck source=shared.sh
echo "This file has been deprecated in favor of asdf. Please use asdf instead."
exit 0
eval "$DOTFILES/config/shared.sh"
# Enable verbosity with VERBOSE=1

View File

@@ -2,6 +2,10 @@
# Install npm packages globally.
#
# shellcheck source=shared.sh
echo "This file has been deprecated in favor of asdf. Please use asdf instead."
exit 0
eval "$DOTFILES/config/shared.sh"
# Enable verbosity with VERBOSE=1

View File

@@ -2,6 +2,10 @@
# Install python/pip packages.
#
# shellcheck source=shared.sh
echo "This file has been deprecated in favor of asdf. Please use asdf instead."
exit 0
source "${DOTFILES}/config/shared.sh"
# Enable verbosity with VERBOSE=1

Binary file not shown.

3068
yarn.lock

File diff suppressed because it is too large Load Diff