Skip to content

Commit 138002d

Browse files
committed
feat: add zsh config
1 parent c1a3059 commit 138002d

File tree

20 files changed

+274
-3
lines changed

20 files changed

+274
-3
lines changed

.env

-1
This file was deleted.

.markdownlint.jsonc

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"default": true,
3+
"extends": null,
4+
"MD002": false,
5+
"MD004": false,
6+
"MD013": {
7+
"line_length": 80,
8+
"heading_line_length": 80,
9+
"code_block_line_length": 80,
10+
"code_blocks": true,
11+
"tables": true,
12+
"headings": true,
13+
"strict": false,
14+
"stern": false
15+
},
16+
"MD034": false,
17+
"MD036": false,
18+
"MD041": false,
19+
"MD046": {
20+
"style": "fenced"
21+
}
22+
}

.pre-commit-config.yaml

+13-2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ default_install_hook_types:
1010
- pre-commit
1111
- commit-msg
1212
repos:
13+
- repo: https://github.com/igorshubovych/markdownlint-cli
14+
rev: v0.40.0
15+
hooks:
16+
- id: markdownlint
17+
stages: [commit]
1318
- repo: https://github.com/compilerla/conventional-pre-commit
1419
rev: v3.1.0
1520
hooks:
@@ -23,7 +28,10 @@ repos:
2328
exclude: |
2429
(?x)^(
2530
exact_private_dot_bashrc.d/05-complete-alias.bash|
26-
exact_private_dot_bashrc.d/10-bash-preexec.bash
31+
exact_private_dot_bashrc.d/10-bash-preexec.bash|
32+
exact_private_dot_zprofile.d/.*|
33+
exact_private_dot_zshenv.d/.*|
34+
exact_private_dot_zshrc.d/.*
2735
)$
2836
stages: [commit]
2937
- repo: https://github.com/shellcheck-py/shellcheck-py
@@ -33,7 +41,10 @@ repos:
3341
exclude: |
3442
(?x)^(
3543
exact_private_dot_bashrc.d/05-complete-alias.bash|
36-
exact_private_dot_bashrc.d/10-bash-preexec.bash
44+
exact_private_dot_bashrc.d/10-bash-preexec.bash|
45+
exact_private_dot_zprofile.d/.*|
46+
exact_private_dot_zshenv.d/.*|
47+
exact_private_dot_zshrc.d/.*
3748
)$
3849
stages: [commit]
3950
- repo: https://github.com/google/yamlfmt

.prettierrc

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"printWidth": 80,
3+
"trailingComma": "es5",
4+
"proseWrap": "always",
5+
"overrides": [
6+
{
7+
"files": [
8+
"*.jsonc"
9+
],
10+
"options": {
11+
"trailingComma": "none"
12+
}
13+
}
14+
]
15+
}

dot_zprofile

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
eval "$(/opt/homebrew/bin/brew shellenv)"

dot_zsh_plugins.txt.tmpl

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{ .chezmoi.homeDir }}/.zshrc.d

dot_zshenv

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# always sourced first, stuff here is also available in X applications
2+
3+
# pull in my zsh environmental stuff
4+
CUSTOM=$HOME
5+
for config_file ($CUSTOM/.zshenv.d/*.zsh(N)); do
6+
# (N) is setting NULL_GLOB so we don't complain if there are no matches.
7+
source $config_file
8+
done
9+
unset config_file
10+
11+
# -*-mode: zsh;-*- vim:ft=zsh:

dot_zshrc.tmpl

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
EDITOR=nvim
2+
VISUAL="$EDITOR"
3+
4+
# add custom completions
5+
FPATH=$HOME/.zsh_completions.d:$FPATH
6+
autoload -Uz compinit
7+
compinit
8+
9+
# Lazy-load antidote and generate the static load file only when needed
10+
zsh_plugins=${ZDOTDIR:-$HOME}/.zsh_plugins
11+
if [[ ! ${zsh_plugins}.zsh -nt ${zsh_plugins}.txt ]]; then
12+
(
13+
if [ -d "/opt/homebrew/share/antidote" ]; then
14+
source /opt/homebrew/share/antidote/antidote.zsh
15+
else
16+
source /usr/local/share/antidote/antidote.zsh
17+
fi
18+
antidote bundle <${zsh_plugins}.txt >${zsh_plugins}.zsh
19+
)
20+
fi
21+
source ${zsh_plugins}.zsh
22+
23+
eval "$(starship init zsh)"
24+
25+
# -*-mode: zsh;-*- vim:ft=zsh:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2+
export HOMEBREW_NO_ENV_HINTS=true
3+
# -*-mode: zsh;-*- vim:ft=zsh:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# set up minimum path I want to have available everywhere
2+
# "real" path get sets in .zshenv.d/00-paths.zsh
3+
export PATH="${HOME}/bin":"${HOME}/.local/bin":${PATH}
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Ensure path arrays do not contain duplicates.
2+
typeset -gU cdpath fpath mailpath path
3+
4+
# Set the the list of directories that cd searches.
5+
# cdpath=(
6+
# $cdpath
7+
# )
8+
9+
# Set the list of directories that Zsh searches for programs.
10+
path=(
11+
${HOME}/.local/bin
12+
${HOME}/go/bin
13+
${HOME}/.pyenv/bin
14+
${HOME}/.yarn/bin
15+
${HOME}/.yarn/global/node_modules/global/bin
16+
/opt/homebrew/{bin,sbin}
17+
${path}
18+
/usr/local/{bin,sbin}
19+
)
20+
# ... then remove those that are either dead links (-/) or do not
21+
# exist at all (N) and apply that to all in array (^) source:
22+
# http://stackoverflow.com/a/9352979/1469693
23+
path=($^path(-/N))
24+
25+
26+
27+
# -*-mode: zsh;-*- vim:ft=zsh:
+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
if [ -d "/opt/homebrew/bin" ]; then
3+
eval "$(/opt/homebrew/bin/brew shellenv)"
4+
else
5+
eval "$(/usr/local/bin/brew shellenv)"
6+
fi
7+
# -*-mode: zsh;-*- vim:ft=zsh:

exact_private_dot_zshrc.d/aliases.zsh

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
alias vim=nvim
2+
3+
alias g=git
4+
alias nah="git reset --hard; git clean -df;"
5+
6+
alias cz=chezmoi
7+
alias czcd="cd ~/.local/share/chezmoi"
8+
alias czg="chezmoi git"
9+
10+
alias eza="eza --color=automatic --group-directories-first"
11+
alias ls=eza
12+
alias ll="eza --long --icons --git"
13+
alias la="eza --all"
14+
alias lla="eza --long --all --icons --git"
15+
16+
alias cat=bat
17+
18+
# -*-mode: zsh;-*- vim:ft=zsh:

exact_private_dot_zshrc.d/atuin.zsh

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
source <(atuin init zsh)
2+
3+
# -*-mode: zsh;-*- vim:ft=zsh:

exact_private_dot_zshrc.d/podman.zsh

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
if command -v podman &>/dev/null; then
2+
if command -v kind &>/dev/null; then
3+
export KIND_EXPERIMENTAL_PROVIDER=podman
4+
fi
5+
fi
6+
7+
# -*-mode: zsh;-*- vim:ft=zsh:

exact_private_dot_zshrc.d/zellij.zsh

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
zellij_tab_name_update() {
2+
if [[ -n $ZELLIJ ]]; then
3+
tab_name=''
4+
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
5+
tab_name+=$(basename "$(git rev-parse --show-toplevel)")/
6+
tab_name+=$(git rev-parse --show-prefix)
7+
tab_name=${tab_name%/}
8+
else
9+
tab_name=$PWD
10+
if [[ "$tab_name" == "$HOME" ]]; then
11+
tab_name="~"
12+
else
13+
tab_name=${tab_name##*/}
14+
fi
15+
fi
16+
command nohup zellij action rename-tab $tab_name >/dev/null 2>&1
17+
fi
18+
}
19+
20+
#zellij_tab_name_update
21+
#chpwd_functions+=(zellij_tab_name_update)
22+
23+
# -*-mode: zsh;-*- vim:ft=zsh:

exact_private_dot_zshrc.d/zoxide.zsh

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
source <(zoxide init zsh)
2+
alias cd=z
3+
4+
# -*-mode: zsh;-*- vim:ft=zsh:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---@type LazySpec
2+
return {
3+
{
4+
"catppuccin/nvim",
5+
name = "catppuccin",
6+
lazy = false,
7+
priority = 1000,
8+
config = function()
9+
require("catppuccin").setup {
10+
transparent_background = true,
11+
integrations = {
12+
aerial = true,
13+
alpha = true,
14+
cmp = true,
15+
dap = true,
16+
dap_ui = true,
17+
gitsigns = true,
18+
illuminate = true,
19+
indent_blankline = true,
20+
markdown = true,
21+
mason = true,
22+
native_lsp = true,
23+
neotree = true,
24+
notify = true,
25+
semantic_tokens = true,
26+
symbols_outline = true,
27+
telescope = true,
28+
treesitter = true,
29+
ts_rainbow = false,
30+
ufo = true,
31+
which_key = true,
32+
window_picker = true,
33+
},
34+
}
35+
end,
36+
},
37+
{
38+
"vuki656/package-info.nvim",
39+
config = function()
40+
local palette = require("catppuccin.palettes").get_palette "mocha"
41+
require("package-info").setup {
42+
colors = {
43+
up_to_date = palette.green,
44+
outdated = palette.red,
45+
},
46+
}
47+
end,
48+
},
49+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---@type LazySpec
2+
return {
3+
"Mofiqul/dracula.nvim",
4+
config = function()
5+
local colors = require("dracula").colors()
6+
require("dracula").setup {
7+
italic_comment = true,
8+
transparent_bg = true,
9+
overrides = {},
10+
show_end_of_buffer = true,
11+
colors = colors,
12+
}
13+
end,
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---@type LazySpec
2+
return {
3+
{
4+
"MunifTanjim/nui.nvim",
5+
lazy = true,
6+
},
7+
{
8+
"vuki656/package-info.nvim",
9+
config = function()
10+
require("package-info").setup {
11+
colors = {
12+
up_to_date = "#00aa00",
13+
outdated = "#aa0000",
14+
},
15+
icons = {
16+
enable = true,
17+
style = {
18+
up_to_date = "|  ",
19+
outdated = "|  ",
20+
},
21+
},
22+
autostart = true,
23+
hide_up_to_date = false,
24+
package_manager = "pnpm",
25+
}
26+
end,
27+
},
28+
}

0 commit comments

Comments
 (0)