Compare commits

...
Sign in to create a new pull request.

30 commits
whoa ... main

Author SHA1 Message Date
6040cac5f8 drop wsl and devterm (closes #1) 2025-04-05 16:42:18 -04:00
fc831dbc7f forgejo updates 2025-03-29 14:42:28 -04:00
2fe1980518 ollama config zsh 2025-03-23 11:58:14 -04:00
e6fc9c6773 misc aider config tweaks 2025-03-19 09:25:10 -04:00
506ef00045 nb config 2025-03-17 10:05:24 -04:00
9014e226ca k9s config 2025-03-17 10:04:05 -04:00
f1d2679354 additional work config 2025-03-17 10:00:44 -04:00
e53e8efb68 jj: ignore octopus merge commits 2025-03-17 10:00:44 -04:00
b6e88a7dd5 consolidate custom helix actions 2025-03-12 12:29:32 -04:00
5b9f0fd465 maint: stop including month in jj prefix 2025-03-12 12:12:02 -04:00
21effb58f9 new: glow 2025-03-11 22:04:53 -04:00
d72d5fe7d8 misc work qol improvements 2025-03-06 09:47:08 -05:00
b705eec0b0 roll back inline helix alerts - these are super annoying 2025-03-03 16:10:46 -05:00
04590d9bfc work-related edits 2025-03-03 16:10:22 -05:00
18c2db7e4b maint: aider config 2025-03-03 09:13:24 -05:00
f8756dae22 misc helix tweaks 2025-03-03 08:13:20 -05:00
92beb62be2 bootstrapping aider 2025-03-03 08:03:37 -05:00
5d7846756e new: yazi keymap 2025-03-03 06:26:08 -05:00
b27081aa84 done with nvim experiment. keeping configs for now but i miss helix. 2025-03-02 21:33:16 -05:00
14f6531071 misc nvim lsp tweaks 2025-03-02 21:30:45 -05:00
68213db5e0 nvim keymap cleanup 2025-02-16 15:27:51 -05:00
4db7bcac3b editor: setting up neovim again
been using helix for a few years now, but wanted to test the neovim
waters again. mostly just ripped off "neovim for newbs"
https://www.youtube.com/watch?v=zHTeCSVAFNY&list=PLsz00TDipIffreIaUNk64KxTIkQaGguqn
2025-02-16 15:17:09 -05:00
25e22570c8 repo: mini-lsm course 2025-02-14 08:11:44 -05:00
cb39600f6f lint: toml formatter 2025-02-14 08:11:18 -05:00
ebc736f780 zed: install some extensions 2025-02-14 08:10:14 -05:00
2e5e8fbc4f zed: enable new prediction features 2025-02-14 08:09:49 -05:00
e8cfaf2eae maint: tweaking zed config 2025-02-13 16:39:22 -05:00
5ddaf90681 new: zed config 2025-02-07 06:58:54 -05:00
bd0a601a9b work-related changes 2025-02-04 08:45:42 -05:00
3d9120c762 new project repo 2025-02-03 18:44:05 -05:00
49 changed files with 1722 additions and 372 deletions

View file

@ -1,54 +1,22 @@
# dotfiles
## hostnames
- `rattusrattus`: macbook
- `yersiniapestis`: wsl (debian)
- `devterm`: devterm (debian)
## steps
(1) set the fqdn (this is necessary for some of the host-specific chezmoi config):
## 1. set the fqdn:
```bash
# debian standalone
sudo hostnamectl set-hostname $MY_HOSTNAME.local
# debian wsl
echo -e "[network]\nhostname = $MY_HOSTNAME" | sudo tee -a /etc/wsl.conf
# macos
# macos-specific commands
sudo scutil --set HostName $MY_HOSTNAME.local
sudo scutil --set LocalHostName $MY_HOSTNAME
sudo scutil --set ComputerName $MY_HOSTNAME
dscacheutil -flushcache
```
(2) reboot
## 2. reboot
(3) set up the package manager and bootstrap dependencies:
## 3. install https://typeof.net/Iosevka/
```bash
# debian
sudo apt update
sudo apt install curl zsh git
```
## 4. install `age` private key from password manager into `~/.key.txt`
(4) set the initial shell:
```bash
# debian
chsh -s $(which zsh)
# macos
# NA
```
(5) https://typeof.net/Iosevka/
(6) install `age` private key from password manager into `~/.key.txt`
(7) bootstrap chezmoi:
## 5. bootstrap chezmoi:
```bash
sh -c "$(curl -fsLS get.chezmoi.io)" -- \
@ -58,42 +26,4 @@ sh -c "$(curl -fsLS get.chezmoi.io)" -- \
--guess-repo-url=false
```
(8) set the new shell (in case installing from 3rd-party package manager):
```bash
# debian
# NA
# macos
sudo chpass -s '/opt/local/bin/zsh' $USER
```
(9) restart shell
(10) grab project source
```bash
ssh -T git@github.com
gwar ~/.local/share/chezmoi/data/personal.toml
```
(11) install miniconda:
```bash
# debian
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
# macos
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -O miniconda.sh
# then, for either os:
chmod +x miniconda.sh
sudo ./miniconda.sh -b -u -p /opt/miniconda3
```
(12) set up non-automated software and tools:
- steermouse (license in email): btn4==fwd, btn5==bck
- logitech control center
- lunar
- magnet
## 6. restart shell

View file

@ -2,16 +2,18 @@
[[workspace]]
path = "$HOME/projects/personal"
ssh_key_path = "$HOME/.ssh/id_ecdsa"
origin.base_addr = "ssh://git@pingo.thermokar.st"
origin.base_addr = "ssh://git@git.thermokar.st/thermokarst"
origin.name = "pingo"
repos = [
"devlog",
"dsort",
"gitolite-admin",
"gpx-web-utils",
"gwar",
"leaving-hope",
"pingo",
"devlog",
"dsort",
"gitolite-admin",
"gpx-web-utils",
"gwar",
"leaving-hope",
"mini-lsm",
"pingo",
"talent-plan",
]
remotes = []
@ -19,36 +21,34 @@ remotes = []
[[workspace]]
path = "$HOME/projects/personal"
ssh_key_path = "$HOME/.ssh/id_ecdsa"
origin.base_addr = "ssh://git@pingo.thermokar.st"
origin.base_addr = "ssh://git@git.thermokar.st/thermokarst"
origin.name = "pingo"
repos = [
"akdillon",
"planner",
# dokku app name is thermokarst, not thermokar.st
"thermokar.st",
"zettel",
]
remotes = [
{ name = "dokku", base_addr = "ssh://dokku@pingo.thermokar.st" },
"akdillon",
"planner",
# dokku app name is thermokarst, not thermokar.st
"thermokar.st",
"zettel",
]
remotes = [{ name = "dokku", base_addr = "ssh://dokku@pingo.thermokar.st" }]
# mds
[[workspace]]
path = "$HOME/projects/mds"
ssh_key_path = "$HOME/.ssh/id_ecdsa"
origin.base_addr = "ssh://git@pingo.thermokar.st"
origin.base_addr = "ssh://git@git.thermokar.st/thermokarst"
origin.name = "pingo"
repos = [
"arctic_hibernators_schema",
"bactdb",
"bactdb_data",
"ccdb-api",
"ccdb-old",
"ccdb-web",
"drf_ember_pagination",
"hibernators",
"hibernators-web",
"hymenobacterdotinfo",
"arctic_hibernators_schema",
"bactdb",
"bactdb_data",
"ccdb-api",
"ccdb-old",
"ccdb-web",
"drf_ember_pagination",
"hibernators",
"hibernators-web",
"hymenobacterdotinfo",
]
remotes = []
@ -58,7 +58,5 @@ path = "$HOME/projects/personal"
ssh_key_path = "$HOME/.ssh/id_ecdsa"
origin.base_addr = "ssh://git@github.com/thermokarst"
origin.name = "thermokarst"
repos = [
"thermokarst",
]
repos = ["thermokarst"]
remotes = []

View file

@ -3,7 +3,7 @@
{{- $hostname := output "scutil" "--get" "ComputerName" | trim -}}
{{- end -}}
{{- $choices := list "wsl" "devterm" "personal" "work" -}}
{{- $choices := list "personal" "work" -}}
{{- $hosttype := promptChoiceOnce . "hosttype" "What type of host are you on" $choices -}}
{{ $name := promptString "name" -}}

View file

@ -1,9 +1,3 @@
{{- if eq .hosttype "devterm" }}
["ttyscheme"]
type = "git-repo"
url = "https://github.com/kolunmi/ttyscheme.git"
refreshPeriod = "168h"
{{- end }}
[".config/zellij/plugins/room.wasm"]
type = "file"
url = "https://github.com/rvcas/room/releases/latest/download/room.wasm"

View file

@ -1,5 +1,8 @@
{{- if ne .hosttype "work" }}
.zshklaviyo
{{- end }}
{{- if ne .hosttype "personal" }}
.zshprivate
{{- end }}
work_paths
work_packages

View file

@ -0,0 +1,23 @@
{{ if eq .hosttype "personal" -}}
model: ollama_chat/qwen2.5-coder:14b
{{ else -}}
model: ollama_chat/qwen2.5-coder:32b
{{- end }}
cache-prompts: true
gitignore: false
auto-commits: false
watch-files: true
subtree-only: true
stream: false
code-theme: "lightbulb"
user-input-color: "#a6e3a1"
tool-output-color: "#89b4fa"
tool-error-color: "#f38ba8"
tool-warning-color: "#fab387"
assistant-output-color: "#cba6f7"
completion-menu-color: "#cdd6f4"
completion-menu-bg-color: "#313244"
completion-menu-current-color: "#f9e2af"
completion-menu-current-bg-color: "#45475a"

View file

@ -64,3 +64,6 @@
[includeIf "gitdir:~/Klaviyo/"]
path = ~/.gitconfig-work
[includeIf "gitdir:~/.klaviyocli/"]
path = ~/.gitconfig-work

14
home/dot_nbrc Normal file
View file

@ -0,0 +1,14 @@
#!/usr/bin/env bash
###############################################################################
# .nbrc
#
# Configuration file for `nb`, a command line note-taking, bookmarking,
# and knowledge base application with encryption, search, Git-backed syncing,
# and more in a single portable script.
#
# Edit this file manually or manage settings using the `nb settings`
# subcommand. Configuration options are set as environment variables, eg:
# export NB_ENCRYPTION_TOOL=gpg
#
# https://github.com/xwmx/nb
###############################################################################

View file

@ -9,6 +9,3 @@
zcompile "$zcompdump"
fi
} &!
# this seems like the easiest way to get a wsl startup script to work
2>/dev/null 1>/dev/null mpd

View file

@ -66,6 +66,9 @@ check_paths=(
# homebrew
/opt/homebrew/bin
# uv
$HOME/.local/bin
{{ join .chezmoi.sourceDir "encrypted_work_paths.age" | include | decrypt -}}
)
@ -78,4 +81,5 @@ done
export -U PATH
export RIPGREP_CONFIG_PATH=$HOME/.ripgreprc
export XDG_CONFIG_HOME=$HOME/.config
export OLLAMA_API_BASE=http://127.0.0.1:11434

View file

@ -51,6 +51,7 @@ srcs=(
"/opt/miniforge3/etc/profile.d/mamba.sh"
"$HOME/.cargo/env"
"$HOME/.zshklaviyo"
"$HOME/.zshprivate"
)
for fp in $srcs; do
@ -59,62 +60,21 @@ for fp in $srcs; do
fi
done
alias i="ipython3"
alias devlog="cd ~/projects/personal/devlog && hx logs/$(date '+%Y-%m-%d').gmi && cd -"
{{ if eq .chezmoi.hostname "rattusrattus" -}}
alias colima_start="colima start --memory 8 --vm-type vz --mount-type virtiofs --dns 8.8.8.8 --dns 8.8.4.4"
{{- end }}
{{- if eq .chezmoi.hostname "devterm" }}
function battery() {
upower -i /org/freedesktop/UPower/devices/battery_axp20x_battery
}
function battery_percentage() {
battery | grep 'percentage' | awk '{print $2}'
}
function battery_time_to_empty() {
battery | grep 'time to empty' | awk '{print $4, $5}'
}
export LPDEST=devterm_printer
alias receipt="lp"
function receipt_feed () {
echo -e "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" > /tmp/DEVTERM_PRINTER_IN
}
function brightness_half {
brightnessctl set 5
}
function brightness_max {
brightnessctl set 9
}
function brightness_min {
brightnessctl set 1
}
# ttyscheme
{{- end -}}
{{ if eq .hosttype "work" -}}
{{ if eq .hosttype "work" "personal" -}}
eval "$(/opt/homebrew/bin/brew shellenv)"
{{ end }}
eval "$(direnv hook zsh)"
eval "$(jj util completion zsh)"
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"
{{ end }}
function reldate() {
date -v "${1}" "+%Y-%m-%d"
}
function _zkhx() {
hx --hsplit tasks.xit ${1}
}
[ "$TERM" = "xterm-kitty" ] && alias ssh="TERM=xterm ssh"
alias strip_jira="sed 's/\[\{0,1\}[a-zA-Z]*-[0-9]*\]\{0,1\}//g'"

View file

@ -1,50 +1,60 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnc0VIdHNOMi90ZURJYVIz
OEV3N1A2UGZIMUx0QWVZeklZK2NGdnh1eEhBCldEeVM4L3RybURERWFCQnMrUHJM
WlFmb0Fwa3MvZzh1N2Z4ZXNsYy9iNlEKLS0tIGV5OTZLdFNPYWRPVGxwbVU1b2xs
S0ZROTRDeE9xazEvUDZLbHJWRnAzT28KTlGHRcCRxLbpNDBwtoc/hBCp5LnHtgb3
+DC/wBi6wsdgbpCkNwQufTFqqVjoLVMn4KjMunYvEytgx1scYtwk4ShcvRZpeld0
MZ6r9anRnk9brGPzg++dhHdBN0fX/qrMZlDlcn/+mpYzJXYgkZUnQBSt4gJgj79k
QQbWUnV01vd7v8YWvzW/Si2mDHXuc+3gf6v1Uk86aIP1TxDyHy+VAUcxeQo3BDwv
pOgc7NqX4LiwphrjXxsplZ6eN/uTAdNkHGzgBqUSPdwLmwBmZGWjImGH68wzDhq4
2PNE9nVutECNSQRGBUDHU7cYmJ7WnRJNeQD917LO7Y6PMzed70k4UxyBbGbVuvsq
1jWwEbcp3i/48D4XxEgWiY4WnmG9hskIeUAtM5MxWySRYzySzP6fM+xPzRFa0DRi
SKTjby5+dr1OFWYWnVfzZLcJCnEVA8EEXtWD5+/iwh2xmv53U/ctorjsKvAMLwok
PJC/jshXgt1fbaD6e8tM5k3WVwKIyhEL4Cudmv8ANTE0B7Q1F8sjPg3PCaNWGkH0
JoJwl7eRpcR45muFgpSE1ceGW2Iy/rIrqJq0R8dHGsO1/CiadvUFJsvlHrmVuPno
FERmS3mgEn5mjKQ5ELwB0ws7nOrTXrhQJX2W8iy8lvHvDqYNaohuzU1vBe+XpDAV
pJdieQ7/EcykbD4Yg9pImKcqOYfe3H7z4X0EbI4ayBs5uyhQpGFl8CIwt+wAW6vY
wgXjRsmmkd/IhEZD+tDKaBgQ9vVDNVskRmbudSXLSTrqn93v4IcefDBySZzm+RS3
oasJ6Yktx/j1uKhRAf5oqR8dtWAjwbhMY5X3s2E/M++ASiO3PbW/ZIjH8ArD5eC2
0jynaPkObGM3Yo6aDR5KHsF79DSZnmKK/vdf/aAW+B1w2KE2liJyFJwASqdcX8II
7mDQ67EbtkV201UFcXZ+1Z8DCv3C2FLm5VyZLZxwZ0hNBDiX55oBq4h+t6FdwkXc
/8vUM3r7Wu7wrd1K/pRJzI45pb/o9zIrtigM8VRPrcfZre0EaSoZW78g63gRMtTo
F6S/gmg6HEWJIl64CMznEjieaWNzPOog0atV2xnqBjWuHWgg0tell1+mtbPVvYyD
JHkSlVHJ/coFiPDH8gGJqr2MaRi01TwQ5iBu7//zntwXfJlnrp0fwhyA2U478oFG
jzW3ICG4I4EDPcDUVI1/WVSequIoV07WCWjh0WiPUxj7FCqFQl7VXLjvPMP+xjFc
oxJL1U5lcgQt4R1JWu+HvmrhqcwtzcwntU0WZfn7OHBYXRRibQERQvmX3gXPTo2a
noB23PuCIwW+ARjaEU9pD+bmk1Ym8ti1jb2QiMh8n60werJe2yCd9It+TkeVc7Em
RJmtEmiGryd/V+HCNdpRpouzSzIJOFDtIXWnX8k9r7g/YwGFcyfpiah6Fl+CW4bY
XtXLCdoWfswdYJXwevVaEhEBA2wIrQ43055K7+4LI/y1JmR4L1xqVGG/ZWTGhvKM
LJ/9BLwoevpwnSGaAHpdjIpZEp05XMKi2vR+xA0nmjcXFEIrPCvh2kaRWjuzCi9R
lFi0GUj+mUA1zmvFo7pIQseBNoWM49N3sNPm3GV39S27OtZDEjRxlvvbziPB5gLN
MyKrWJSu9PQyXyI5sBdhv78E+dsm8vLNIBv8MYHrE6J+2QIky1Xe+TyH+1dYvUXt
SXJmNS+xq/K0qsV6VBeCUdstbiNgPeeR0ToNOtmMQKJ4ONjX6Jw9srJTpaRuoKCt
PmxiJ5ibYWK2Ye7lSKA9XiOyn3PEXK+YdP4S+UXNdDhnajLGOq8Xqq0MLtlAeUlc
8oNXg83rQejCUAvXJH8v8QiNl39uVSx7fevvkJrg1ANdcpia8Qf8f6QtwDaeTQSl
kIsOfNCyrZqYeW7PvTtdqCA/Vnezv8ujru75gTEfmV2jU1RAND8CuIxTqy8j0XFc
DqVDnGuNyDH/K4XLyyu8z/wmRCTPQyhMlCZiRL1lRf3/N7XrhEK+uGlX99gfPXAP
QI+ST5loDtFTPiEPDiFtwDhjwldcajv+NlMMW37OB99SJQwfqiLNd3RGWcyf+jPz
3UzMK1v8lpoqa2rj0KlrBIXYixo2GEjmkteOkcr8/vhTVzEQR8XwRbpI8AtyicpU
cX+ijEfPnhnCTHI/MpXGaIHGizyTPSyNmUqQJZfDgpBjew7/M/ADdAk0qYvF45yu
JYsl40CUSOjaT4TVizK0Zmdlo21Dcin7JfFscy2T7l6hmhv/g7tmvLzlhB9EPZUx
xjgPbNOmD18NtW4pFq2t7NtG8aXma/1Ht1m9n7bITUE+qr7tJrSM6xCFE+I1kDlT
CHRbw8Q0/SgVzsEVRlNDZCXLqfhnBhDLOhktEiRIMEpAb2POfn97mVZjVFhuGeW1
GyP/8ggUDmFo66iEl8sbG8f28JRaHP43GDhaq9d4SRdfEwqc6atH6uIcvV6v8qT1
XWnyllB0wIzcvv6ZVUMnN3mil7oHVwit5Ax2tPbLo5JiAZURqhXJwWRUPVCl7ypa
qDCc4aInHhDCISvYSrIYO54cX/uNwxrjGuYfNHWJYnJVJwFQMa/0ILhPVOoV7/EE
pH1NVwezgBn4tx6laO4yB7sHEIU6agKYvgE0XSLxNQOCfl3Hi12Ic9ys2vpwhR0d
12rNW/niTlzWIDpHbP09RutK9gNNYKUQc4HgIgaIVfWo6F2VcjZR4lncgg806mZo
lT3S+Bsbp5w6teo6wUqFjuSOPoCGdbVLkr/fTfJmGwidUNKGdmvAiquHiscYWQbC
sN49bjdEqGQHiCZoB2RUBuO9Cn3IRd9JBeY0lvkB9FrcrC/8
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArNkJpN0loQjNDejZjZ0ly
TjNxejQ3R3Y2aUhnRStGc2YwVjJpanlIdENZCnpkK3BRZ3J5SVNFai81Nk5NU2la
SnQyZ0pmc1BIcVFGUVF4YkR2RDh5NFEKLS0tIFdaMzhabFlXU3EwdEcvbUhTc3RM
SXN3c201Y1RLOVFyM3FrWi93WFNQWm8KvwxUae58osmwQN6RgFDkJGfRtODD5ahq
HZCZoBbtE0G532rmb7gh6AapgIiNp12AMfXkcmn9M+sYEswh2c59LX7dihVYlgQP
PjiQGWjZIJj748taiKnLNO2wDFB8IOA87O2rMN5xM2Tf7jnqnRwB4ONW8NZABvW+
fS2MhtgYlcXiTEkxxZPe5fxrUqNKj9Z+k0vWlBmT5IAMCzDmtVPTLXnZdIjwFFlZ
ISh7LScNjxduoddTXXZiMR3fvjNVOAN5yYz6lM6xzJFAc5EXnvuRBBAyljP23pci
js31obyBwPDEFHiQt68RWqDkm01Pgpz8r4RohwrbkHb/KHxIQMh8XScHR8hIL4AV
SDuukKNL3pgiO+N/u3XJBs1KWUye2wv/lrN0wAi0g30S0AYEVERNy8IlWYScw8Qs
6mr3cO3dL+ZfSBNrleFMbFVRYuTgKxk/92PgG38G2OKof+YmmZ+aFrBkG9v/g6P7
3SFVODrnAD2vE8J6LwrFhNM5hsATiZaJ6o8Jrsp7ZJcH/ig6ydUex77z5Ya/QUli
ZInPKBdStpOLKC1T12op6PMs52PvLtJclS5DFjPOsvxGjTIAYK2tHMpSipkNuEYG
Zo2P0YS0aEm6XFzNzkTRg0IRmZCZSx5mRyZl5mWoOKVPsyIMyKG4+N3KhzJPnfKL
PaQ95SWAZaufQ1+zTRGbEcVIsDzZpB9TywZhQaTx/8rdZ61XCV3HQMGZ+tVbnUrk
+FmrEGa6WEQrtTy1D32XvEWBijFXBuVsARSgijnbkyjCph8edD845RWJRJlypMNG
SIoC+31jKf/bnwZqdwMjOkgtKb0ys7pZ/1x18dTjFjlPn+OV+DcArTSlSTe4N6IW
vqWfmo2SQN/a9qytiETgnb+M27fpp8CWQnkxLyO2o8rcE0TdeRxiNh0tH+xGgEtf
ohjbbUuS3fqFbN5FGKfHTh7oRVujpE0baHh+8zg33PEbGXu896hMGpUXZRhPF057
QJDUAN9pt3m67hGJq/776yd6xvaavVrIuAwIsuriUCwtDHt91tCQP3qlZgIwLFf8
Dvs5pWXcZR34XiszEiy47Mbt3PkCeX9vpbp8gsdyijNg5QeU4b1X0+qN6Mf+YCAJ
ltwQ1Uu2QxSd8k+w63mOQd0et4WLjLX+t0P1a95fBElQhxYX47DdS+4s0jJeVKDa
iYiAEZPmlzH9qXHwlQyLKlRf6fvuE6mLkPDorMl/CVrPn1Kp9riaus5aag31cmaY
2iwTBPi+UQNSqmo0p3sgZxgjeY/o1u8W/v1ZDJn8LdeRsCufEKvYbi3VRcjZf4le
7FKGfSc7eAeX0gTsooJ54Zn2q6Cqg7n4DxIQUZvWTG6ubxY/FRXH/XrJWAHEnrO7
ENxlXkn7XHUIhXYRTlIpX60rGR4DEcJFmAqQDRGMK4dXQ7FLpYNsNJX/larD2EKi
SASFiThkajlamiGzBW+lBHRUWY3TpVyAGy8l3HCB9rI233+t4ZMNoWcRpCW4EWhn
1AL7YE9VzUJYJ8w/SCQezKhIpkHvNozTFnIeLllmW5TQVOnRFbK35ZSsUJfFqt+X
8ALc1EAVXfWD/gvcQGtdJmLsM4XIGwPuhfkR2SBcmlqWZ34TnN5zOHhxndOtNDaa
LovvkAqUuwcS70Em5ektp+yMkCXf/6VVOesTKtAC/vFqlPwnLEwtUUOKxc5Yem1w
OqOn33TEaG/BbzsVoQk0ZrltSeNntJw97t4v1hajEdX8wZ9I1xthXCUxEbEgEpSw
YfOadenI6y4EkIluZj01oECnTD4Viv9QbUg2M7AyU8jQxN/HH8+qQKpgdeqyC3QM
RZrCw5NwaBy1t9jGvlzeybXAmROM0CD5xDI0Lafr/5nLQkGkxw5NiKA1IGNL5iQl
eZ2FJHXqm72texP/27MhLj0hxLwIOFN0DPm3i/9b7ejv5HZaQgI2aUvTzriLQgp/
0hIk3Ecin0Qt3Mo71hXp/EPYKphq8HyeZAdye4BEU/+hF04qAHPaF7t/5j0YC36R
Bdjb6uAhVeckEtkmLdv0ChvbH9Ig/e0UD9LycHyt8Jfd5nDxvwGZG7/VDhz5EvYP
SwciU+fhopCtZPrBVxI/9xiQfgprWcWe5CwrYxmj5uyr8mWuPwATwHw6V81gMWdQ
uKCpRAgXeIh4LIWR3DXY681sz4vMtZAyCDXNWZySVxxj+1ivsG9QkhrtmgA/p6zd
fV177LHbYlAXYCu2k6ln/AyIxZDYK5IDNiqPXz/i6BfTFiFh771qUrNmfo/CIsbO
2PkKzAgjaWvvRtj2NtrukVtH+UcDni3XR8HKWjKNgigKpZot1+PM+7khhqW9YUJ3
cQUjQnzcVzulH3Ev76PfyhFxutqxad0LUU2hN2v3HLSU/whIrFU8V7ANFKWiq2c7
qd/oofStiPqc/e7ePQ7N5ehxxRaEPk3Wpu5o/pBjuOJ0udZqwVN/C5oo7MQkPBLx
vuN/Jwgl5Dy/ofYBwL5sseBc4zckQ4S77vyZJq0q+ppUkTq40nDhFAr0JdazWnuN
Bh1H/HDpdqAQTYUubareWdF1FWqiR8LvNjAht6O5RsBxrZrI/tS9IACB04s29KYb
yINB3CT5VwOb5PLM4KbMAxaVDAhoWCEeBehfRfKsvgjcEArOGl/rDxgjD234j/Ml
F9XPU45HBzYouNxbz51ch/PZAhBSH21Pcz101rzp5pL9E/Ik+/F9LbIPEHD1T+vI
eLwRSH3M5jvD7ZXIHjFsZVYVBFAQ5/J/C/H80Ft5hChp8DUG3nvdxOgiaQvVW2Pk
dvJF94s+iuwchCqGuDoHED9i8doz/9nUHE3SxYrPrOasftBipD/9dURB5UMkIQrN
ch4gyB2KUE0yoEgkrtSgjVQBIs540pfxk06nxRr2JTzT7uBYRlEllhFfoHVcPoNY
V6MinTZBQXmuC1IAEMI4GC5hqQcV6s9YbvLxC3Stqys48rBHluJhVX1PtHFGpFpC
XMTCJwWAPslW9HYrvrIwgz0Ko3gSUASMvjn8bfQu1NKmuIJvMX6onhY1+FEymsil
ynfTx4wKq0mKpX9wTV77P08jIuLovUh9OVSUys89kknWfoHtI8A1t0ncRKMy17n+
xNwmcccMcWgk1QdusLEHbdmuUNoQ5UAd51V5D86HIhDH4NvaErrxHbJ7+lUTn+FA
CbF6m2In9Z0ei5oNXaJvWy2CON1Y3qivYFSK1C1YR2telgv0R5mFb8AexzXC9ix6
Godax7NQwwwmChraY7KTWBweIl4YuFqvJnwjOhTrPt7zVy1exE5GUAzndZgrQXWr
cY+hbaiZykCnTCh6/d40uXCUu0VwVxiuKAxfRsvitDizlMKUcib9VTMcAf6PS4Qu
6MFJq9TCtQs9A+t/q2DZ82qpHHH3l8xHdOvhAUYZ4htF3OtjHwMhNKYkzY3vMqGs
GsXV5nqiuyCPLXvMGiF3tS5A7oExtg==
-----END AGE ENCRYPTED FILE-----

View file

@ -0,0 +1,9 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaTUNxWEJoK1FsdzZma3Bv
N0ExZjl0L0wyME5SNFFLeWlwTmQxKzBhYzNnClJpcVljQ2tVQVE5V0dWM3pVM0l6
L25aNyszbUpJdkQ4U3BiMzJqZG1VMUkKLS0tIG1hU2F3T3JwWVlocDBaTytVSEhS
eGFRdS83K3Z5Q1k5SjZKaklGeFNzTVEKSfDagViJt1sc8+MBK7wuAFUzuOhTEeR/
n1npKF9k7EJ7zGlstQrIANUk6/k1ArIhJHCJizrMX1QqRAEsUKKZ+J/ckdD1uBEE
/GIPBwb43l01Yj162XLzT9+zjHL2E8BDRwQDHYd/xjgQTUHGrgpc2zHzWOzkIOf+
ASAe+lix9By7mfkiRA==
-----END AGE ENCRYPTED FILE-----

View file

@ -1,16 +1,21 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXQ0tGTHh2cm9Dd3RyVjk1
RGw0a2U1dDNhTGxIVVBNOUxIeThuRllBWnc0Cm5wSFd1RTAyaUptaHk3Y05VYkcy
REtiWFdkWkE3NDFHVjZmdk5yMWd5c0UKLS0tIFVySXI4bmFiQ3B6K0ZYQUNpK1VW
WWs2QmsxajNWNXdNdW1WN0tqYVltQzAKRt8AYM34DDCutguPZeS2yN9oJ5FCCGCz
PFmV+aLrqn14Mf8TrsuZvxdMx8th2CAkueZCblvBOQzj+FwETeXW/XTmy0y8Wy7N
F5yNzQfLOig9rW0qyK82sWEglunFM2u6g1rqCul9fZwuhvGOa1vSGYfnHNFwlIIl
fPZ8h4HEWOf75p0qakt0mA+KrbAKmvrTFVmPvBcqaVfImka5e+PYNXeJ9lw8Rl8M
5pka+BKBSmDYtfhN8Y9i9UhPbv+UfDULNURCsWT9isx8tAeYmIJPdJ6+VoKHlt1R
gXgg08268d0X+ZFWIKJyluFNLBt35YSFNeNMKGe1DcTzop+VWxjVgS7uSRQj2Sti
jym2L8m7bfieFvo37IG+wrIC0J1i4tqxIIZqPSYCrM45h5D2pkPT+8IQGnO+PUXu
DbYypym6ndbD5VLY/etETIIYxWBkcHeOVGBEy5d2BR627ii0AW8gxU5pWHW3IZcn
Diwi5tnq5TD27eIYd4U6DxqneIwmWJvnxfZ3EpUqgAAhg/Wc3ZiTz7SMf9QO8tAW
KZQYi3oKd+d44WcM5uhGyKF5j7HB4qicPfGVuTH0fh4YNHF66AhEJuhRhAvZawpa
9PlqpoIrmMUU1DuD6PSLGe8VmL6EPp1zfg==
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQQS9VY252K3R1ak16YXY4
cEZvUk1OVERHZzBSM2VRVkIxbG00UEk4bW1nCnJVSVg2RVpYTGhNSWVWMW91N3ZX
TmdSTFdyNEhuMmFOdGt4NENURUZGU2MKLS0tIEpNTWI2YWROcmdlaEQ0MnFIL2Rp
TTZoWnBuSDF4T1lBb285UC9CbllUMUUKBUx9kY7qD0CjcH0rVrniED9orkg84C2T
TqQ1ERCvbNoxIyg4lHRUaJ/yzQ59MJYryum72ReK5kcTCsy/YhWHb1pK651P6KGm
kPz4BVaEDCqD61JscCSk92r8Z/0syrb6JZ7WDKfD23IdPy75kfCuwnh5JRutmTqu
xK6nzNV6WmIoXqvR2LsIO/CcnnKoqWlI60hzq2O4uzxP4pFyHZKJS6uSvTlRSk3w
oUan7bEAZdZ49Fx7JPMi4KWht/zT0PqVda7D0ZUwYOaOmvxOSZ31oO+3fET/0Xf9
pOYYAvvIKq9kC4WSJGFDtBXEJ2sD8g+HI+NhfiowsOCH4SU6QqiwK7G9MJpb+bVd
w7ABmiod28oz34Va85tP9E9eHHK4jJFy9FpyTVp83QKzAnU6/wFOrtBltlVOe7fJ
XvMfSXWFxzwTa6qrLsxSJMRx97qRVsCJM1AcYwfp8pgcVhahi1OncNhsb8Y7VBlW
iO7CbvhJMfSQeqjzsqBPHmP+RX2ujR6oC+OTT6NulqZg9x1raWmLhhrgohuaL56U
D2gPbvtwhrlGAUf8miipvjRiA8NBZUT/mqw4uEJ5zEagoINM43nqQUTDTE3iumWl
Cd6cCEePV1kqGfr8Dar+Y6NTFgj5WQ7xz8K+xAOhEqcQUx+eT+T8agAeip3VIySc
/M8BHOxA7aapyqaVUW2lvcj/iJ6nzT2JNEUrDPCIEzAfjBGHJIQKChdeO8ZQb3fE
R7cKDv8bEgC64cmnCETID74MVzefTQCKBPVeCcVSHgOp+0PLHzT5BWZ378oWO2o/
O+lJhTsqK7Mo0tOY7OKoBwU23BILrZhu0AOZ++FQ5lZZtruf3n/VnhfLfn0a82n2
TPTBw7jSSM1TWgMPe4vSfmcOADUTwpvXz1je3rDs2Si5ej4Xw1ZA6exK946KjQeC
6xADwUCP2k6APt2kNkbnEB+9sMUH8tuBqgRxAAKrNOi3BtvU
-----END AGE ENCRYPTED FILE-----

View file

@ -4,7 +4,7 @@ email = {{ .email_personal | quote }}
[git]
push-bookmark-prefix = "{{ .github_personal }}_jj_"
private-commits = "description(glob:'private:*')"
private-commits = "description(glob:'private:*') | bookmarks('merge')"
[revset-aliases]
'stack()' = 'main..@'
@ -33,4 +33,4 @@ diff-args = [
[--scope.user]
email = {{ .email_work | quote }}
[--scope.git]
push-bookmark-prefix = "202501_{{ .github_work }}_jj_"
push-bookmark-prefix = "2025_{{ .github_work }}_jj_"

View file

@ -3,3 +3,4 @@
.idea
.vscode
.envrc
.aider*

View file

@ -7,10 +7,8 @@ insert-final-newline = false
[editor.file-picker]
hidden = false
[keys.normal]
C-r = ":reload-all"
C-y = ":sh zellij run -c -f -x 10% -y 10% --width 80% --height 80% -- bash ~/.config/helix/yazi-picker.sh open"
[keys.normal.C-m]
[keys.normal.space.m]
r = ":reload-all"
s = ":toggle-option soft-wrap.enable"
t = ":sh run_test_under_cursor"
j = ":sh zellij run -f -x 10% -y 10% --width 80% --height 80% -- jj diff"
y = ":sh zellij run -c -f -x 5% -y 5% --width 90% --height 90% -- bash ~/.config/helix/yazi-picker.sh open"

View file

@ -1,93 +0,0 @@
# Scheme name: Ashes
# Scheme author: Jannik Siebert (https://github.com/janniks)
# Template author: Tinted Theming (https://github.com/tinted-theming)
"attributes" = "base09"
"comment" = { fg = "base03", modifiers = ["italic"] }
"constant" = "base09"
"constant.character.escape" = "base0C"
"constant.numeric" = "base09"
"constructor" = "base0D"
"debug" = "base03"
"diagnostic" = { modifiers = ["underlined"] }
"diff.delta" = "base09"
"diff.minus" = "base08"
"diff.plus" = "base0B"
"error" = "base08"
"function" = "base0D"
"hint" = "base03"
"info" = "base0D"
"keyword" = "base0E"
"label" = "base0E"
"namespace" = "base0E"
"operator" = "base05"
"special" = "base0D"
"string" = "base0B"
"type" = "base0A"
"variable" = "base08"
"variable.other.member" = "base0B"
"warning" = "base09"
"markup.bold" = { fg = "base0A", modifiers = ["bold"] }
"markup.heading" = "base0D"
"markup.italic" = { fg = "base0E", modifiers = ["italic"] }
"markup.link.text" = "base08"
"markup.link.url" = { fg = "base09", modifiers = ["underlined"] }
"markup.list" = "base08"
"markup.quote" = "base0C"
"markup.raw" = "base0B"
"markup.strikethrough" = { modifiers = ["crossed_out"] }
"diagnostic.hint" = { underline = { style = "curl" } }
"diagnostic.info" = { underline = { style = "curl" } }
"diagnostic.warning" = { underline = { style = "curl" } }
"diagnostic.error" = { underline = { style = "curl" } }
"ui.background" = { bg = "base00" }
"ui.bufferline.active" = { fg = "base00", bg = "base03", modifiers = ["bold"] }
"ui.bufferline" = { fg = "base04", bg = "base00" }
"ui.cursor" = { fg = "base0A", modifiers = ["reversed"] }
"ui.cursor.insert" = { fg = "base0A", modifiers = ["reversed"] }
"ui.cursorline.primary" = { fg = "base05", bg = "base01" }
"ui.cursor.match" = { fg = "base0A", modifiers = ["reversed"] }
"ui.cursor.select" = { fg = "base0A", modifiers = ["reversed"] }
"ui.gutter" = { bg = "base00" }
"ui.help" = { fg = "base06", bg = "base01" }
"ui.linenr" = { fg = "base03", bg = "base00" }
"ui.linenr.selected" = { fg = "base04", bg = "base01", modifiers = ["bold"] }
"ui.menu" = { fg = "base05", bg = "base01" }
"ui.menu.scroll" = { fg = "base03", bg = "base01" }
"ui.menu.selected" = { fg = "base01", bg = "base04" }
"ui.popup" = { bg = "base01" }
"ui.selection" = { bg = "base02" }
"ui.selection.primary" = { bg = "base02" }
"ui.statusline" = { fg = "base04", bg = "base01" }
"ui.statusline.inactive" = { bg = "base01", fg = "base03" }
"ui.statusline.insert" = { fg = "base00", bg = "base0B" }
"ui.statusline.normal" = { fg = "base00", bg = "base03" }
"ui.statusline.select" = { fg = "base00", bg = "base0F" }
"ui.text" = "base05"
"ui.text.focus" = "base05"
"ui.virtual.indent-guide" = { fg = "base03" }
"ui.virtual.inlay-hint" = { fg = "base03" }
"ui.virtual.ruler" = { bg = "base01" }
"ui.virtual.jump-label" = { fg = "base0A", modifiers = ["bold"] }
"ui.window" = { bg = "base01" }
[palette]
base00 = "#1c2023" # Default Background
base01 = "#393f45" # Lighter Background (Used for status bars, line number and folding marks)
base02 = "#565e65" # Selection Background
base03 = "#747c84" # Comments, Invisibles, Line Highlighting
base04 = "#adb3ba" # Dark Foreground (Used for status bars)
base05 = "#c7ccd1" # Default Foreground, Caret, Delimiters, Operators
base06 = "#dfe2e5" # Light Foreground (Not often used)
base07 = "#f3f4f5" # Light Background (Not often used)
base08 = "#c7ae95" # Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted
base09 = "#c7c795" # Integers, Boolean, Constants, XML Attributes, Markup Link Url
base0A = "#aec795" # Classes, Markup Bold, Search Text Background
base0B = "#95c7ae" # Strings, Inherited Class, Markup Code, Diff Inserted
base0C = "#95aec7" # Support, Regular Expressions, Escape Characters, Markup Quotes
base0D = "#ae95c7" # Functions, Methods, Attribute IDs, Headings
base0E = "#c795ae" # Keywords, Storage, Selector, Markup Italic, Diff Changed
base0F = "#c79595" # Deprecated, Opening/Closing Embedded Language Tags, e.g. <?php ?>

View file

@ -1,15 +0,0 @@
pid_file "~/.config/mpd/mpd.pid"
playlist_directory "~/.config/mpd/playlists"
music_directory "http://anonymous@wren.local:5005/music"
database {
plugin "proxy"
host "wren.local"
}
audio_output {
type "pulse"
name "spleen"
server "/mnt/wslg/PulseServer"
}

View file

@ -0,0 +1,5 @@
{
"diagnostics.globals": [
"vim"
]
}

View file

@ -0,0 +1,20 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
-- order matters here!
require("vim-options")
require("lazy").setup("plugins")

View file

@ -0,0 +1,25 @@
return {
"yetone/avante.nvim",
opts = {
provider = "copilot",
},
dependencies = {
{
"zbirenbaum/copilot.lua",
config = function()
require("copilot").setup({
copilot_node_command = vim.fn.expand("$HOME") .. "/.nvm/versions/node/v22.14.0/bin/node",
suggestion = { enabled = false },
panel = { enabled = false },
})
end,
},
{
"MeanderingProgrammer/render-markdown.nvim",
opts = {
file_types = { "markdown", "Avante" },
},
ft = { "markdown", "Avante" },
},
},
}

View file

@ -0,0 +1,9 @@
return {
"catppuccin/nvim",
lazy = false,
name = "catppuccin",
priority = 1000,
config = function()
vim.cmd.colorscheme("catppuccin")
end,
}

View file

@ -0,0 +1,38 @@
return {
{
"hrsh7th/cmp-nvim-lsp",
},
{
"zbirenbaum/copilot-cmp",
config = function()
require("copilot_cmp").setup()
end,
},
{
"hrsh7th/nvim-cmp",
config = function()
local cmp = require("cmp")
cmp.setup({
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert({
["<C-b>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.abort(),
["<CR>"] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
}, {
{ name = "buffer" },
}, {
{ name = "copilot" },
}),
})
end,
},
}

View file

@ -0,0 +1,49 @@
return {
{
"williamboman/mason.nvim",
config = function()
require("mason").setup()
end,
},
{
"williamboman/mason-lspconfig.nvim",
config = function()
require("mason-lspconfig").setup({
ensure_installed = { "lua_ls", "marksman", "rust_analyzer", "pyright" },
})
end,
},
{
"neovim/nvim-lspconfig",
config = function()
local capabilities = require("cmp_nvim_lsp").default_capabilities()
local lspconfig = require("lspconfig")
-- lua
lspconfig.lua_ls.setup({
capabilities = capabilities,
})
-- markdown
lspconfig.marksman.setup({
capabilities = capabilities,
})
-- rust
lspconfig.rust_analyzer.setup({
capabilities = capabilities,
})
-- python
lspconfig.pyright.setup({
capabilities = capabilities,
})
vim.keymap.set("n", "K", vim.lsp.buf.hover, {})
vim.keymap.set("n", "gd", vim.lsp.buf.definition, {})
vim.keymap.set({ "n", "v" }, "<leader>c", "", { desc = "+code" })
vim.keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, { desc = "action" })
vim.keymap.set({ "n", "v" }, "<leader>cr", vim.lsp.buf.rename, { desc = "rename" })
end,
},
}

View file

@ -0,0 +1,6 @@
return {
"nvim-lualine/lualine.nvim",
config = function()
require("lualine").setup()
end,
}

View file

@ -0,0 +1,12 @@
return {
"nvim-neo-tree/neo-tree.nvim",
branch = "v3.x",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-tree/nvim-web-devicons",
"MunifTanjim/nui.nvim",
},
config = function()
vim.keymap.set("n", "<leader>e", ":Neotree toggle<CR>", { desc = "toggle file tree" })
end,
}

View file

@ -0,0 +1,14 @@
return {
"nvimtools/none-ls.nvim",
config = function()
local null_ls = require("null-ls")
null_ls.setup({
sources = {
null_ls.builtins.formatting.stylua,
},
})
vim.keymap.set("n", "<leader>cf", vim.lsp.buf.format, { desc = "format" })
end,
}

View file

@ -0,0 +1,39 @@
return {
{
"nvim-telescope/telescope.nvim",
tag = "0.1.8",
dependencies = { "nvim-lua/plenary.nvim" },
config = function()
local builtin = require("telescope.builtin")
vim.keymap.set("n", "<leader>f", builtin.find_files, { desc = "find files" })
vim.keymap.set("n", "<leader>b", builtin.buffers, { desc = "find buffers" })
vim.keymap.set("n", "<leader>/", builtin.live_grep, { desc = "live grep" })
vim.keymap.set("n", "<leader>j", builtin.jumplist, { desc = "jumplist" })
local actions = require("telescope.actions")
require("telescope").setup({
defaults = {
mappings = {
i = {
["<esc>"] = actions.close,
},
},
},
})
end,
},
{
"nvim-telescope/telescope-ui-select.nvim",
config = function()
require("telescope").setup({
extensions = {
["ui-select"] = {
require("telescope.themes").get_dropdown({}),
},
},
})
require("telescope").load_extension("ui-select")
end,
},
}

View file

@ -0,0 +1,56 @@
return {
{
"nvim-neotest/neotest",
dependencies = {
"nvim-neotest/nvim-nio",
"nvim-lua/plenary.nvim",
"antoinemadec/FixCursorHold.nvim",
"nvim-treesitter/nvim-treesitter",
},
config = function()
require("neotest").setup({
adapters = {
require("neotest-python"),
require("rustaceanvim.neotest"),
},
})
vim.keymap.set({ "n", "v" }, "<leader>t", "", { desc = "+testing" })
vim.keymap.set({ "n", "v" }, "<leader>tt", function()
require("neotest").run.run(vim.fn.expand("%"))
end, { desc = "run file" })
vim.keymap.set({ "n", "v" }, "<leader>tT", function()
require("neotest").run.run(vim.uv.cwd())
end, { desc = "run all test files" })
vim.keymap.set({ "n", "v" }, "<leader>tr", function()
require("neotest").run.run()
end, { desc = "run nearest" })
vim.keymap.set({ "n", "v" }, "<leader>tl", function()
require("neotest").run.run_last()
end, { desc = "run last" })
vim.keymap.set({ "n", "v" }, "<leader>ts", function()
require("neotest").summary.toggle()
end, { desc = "toggle summary" })
vim.keymap.set({ "n", "v" }, "<leader>to", function()
require("neotest").output.open({ enter = true, auto_close = true })
end, { desc = "show output" })
vim.keymap.set({ "n", "v" }, "<leader>to", function()
require("neotest").output_panel.toggle()
end, { desc = "toggle output panel" })
vim.keymap.set({ "n", "v" }, "<leader>ts", function()
require("neotest").run.stop()
end, { desc = "stop" })
vim.keymap.set({ "n", "v" }, "<leader>tw", function()
require("neotest").watch.toggle(vim.fn.expand("%"))
end, { desc = "toggle watch" })
end,
},
{
"nvim-neotest/neotest-python",
},
{
"mrcjkb/rustaceanvim",
version = "^5",
lazy = false,
},
}

View file

@ -0,0 +1,15 @@
return {
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
config = function()
local configs = require("nvim-treesitter.configs")
configs.setup({
ensure_installed = { "lua", "vim", "query", "javascript", "html", "python", "rust", "markdown" },
sync_install = false,
auto_install = true,
highlight = { enable = true },
indent = { enable = true },
})
end,
}

View file

@ -0,0 +1,14 @@
return {
"folke/which-key.nvim",
event = "VeryLazy",
opts = {},
keys = {
{
"<leader>?",
function()
require("which-key").show({ global = false })
end,
desc = "buffer local keymaps (which-key)",
},
},
}

View file

@ -0,0 +1,11 @@
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"
vim.o.cursorline = true
vim.o.expandtab = true
vim.o.number = true
vim.o.shiftwidth = 2
vim.o.softtabstop = 2
vim.o.tabstop = 2
vim.keymap.set({ "n", "v" }, "<leader>y", "\"*y", { desc = "yank to clipboard" })

View file

@ -0,0 +1,5 @@
style: {{ .chezmoi.homeDir }}/.config/glow/themes/catppuccin-mocha.json
mouse: false
pager: false
width: 80
all: false

View file

@ -0,0 +1,199 @@
{
"document": {
"block_prefix": "\n",
"block_suffix": "\n",
"color": "#cdd6f4",
"margin": 2
},
"block_quote": {
"indent": 1,
"indent_token": "│ "
},
"paragraph": {},
"list": {
"level_indent": 2
},
"heading": {
"block_suffix": "\n",
"color": "#cdd6f4",
"bold": true
},
"h1": {
"prefix": "▓▓▓ ",
"suffix": " ",
"color": "#f38ba8",
"bold": true
},
"h2": {
"prefix": "▓▓▓▓ ",
"color": "#fab387"
},
"h3": {
"prefix": "▓▓▓▓▓ ",
"color": "#f9e2af"
},
"h4": {
"prefix": "▓▓▓▓▓▓ ",
"color": "#a6e3a1"
},
"h5": {
"prefix": "▓▓▓▓▓▓▓ ",
"color": "#74c7ec"
},
"h6": {
"prefix": "▓▓▓▓▓▓▓▓ ",
"color": "#b4befe"
},
"text": {},
"strikethrough": {
"crossed_out": true
},
"emph": {
"italic": true
},
"strong": {
"bold": true
},
"hr": {
"color": "#6c7086",
"format": "\n--------\n"
},
"item": {
"block_prefix": "• "
},
"enumeration": {
"block_prefix": ". "
},
"task": {
"ticked": "[✓] ",
"unticked": "[ ] "
},
"link": {
"color": "#89b4fa",
"underline": true
},
"link_text": {
"color": "#b4befe",
"bold": true
},
"image": {
"color": "#89b4fa",
"underline": true
},
"image_text": {
"color": "#b4befe",
"format": "Image: {{.text}} →"
},
"code": {
"prefix": " ",
"suffix": " ",
"color": "#eba0ac",
"background_color": "#181825"
},
"code_block": {
"color": "#181825",
"margin": 2,
"chroma": {
"text": {
"color": "#cdd6f4"
},
"error": {
"color": "#cdd6f4",
"background_color": "#f38ba8"
},
"comment": {
"color": "#6c7086"
},
"comment_preproc": {
"color": "#89b4fa"
},
"keyword": {
"color": "#cba6f7"
},
"keyword_reserved": {
"color": "#cba6f7"
},
"keyword_namespace": {
"color": "#f9e2af"
},
"keyword_type": {
"color": "#f9e2af"
},
"operator": {
"color": "#89dceb"
},
"punctuation": {
"color": "#9399b2"
},
"name": {
"color": "#b4befe"
},
"name_builtin": {
"color": "#fab387"
},
"name_tag": {
"color": "#cba6f7"
},
"name_attribute": {
"color": "#f9e2af"
},
"name_class": {
"color": "#f9e2af"
},
"name_constant": {
"color": "#f9e2af"
},
"name_decorator": {
"color": "#f5c2e7"
},
"name_exception": {},
"name_function": {
"color": "#89b4fa"
},
"name_other": {},
"literal": {},
"literal_number": {
"color": "#fab387"
},
"literal_date": {},
"literal_string": {
"color": "#a6e3a1"
},
"literal_string_escape": {
"color": "#f5c2e7"
},
"generic_deleted": {
"color": "#f38ba8"
},
"generic_emph": {
"color": "#cdd6f4",
"italic": true
},
"generic_inserted": {
"color": "#a6e3a1"
},
"generic_strong": {
"color": "#cdd6f4",
"bold": true
},
"generic_subheading": {
"color": "#89dceb"
},
"background": {
"background_color": "#181825"
}
}
},
"table": {
"center_separator": "┼",
"column_separator": "│",
"row_separator": "─"
},
"definition_list": {},
"definition_term": {},
"definition_description": {
"block_prefix": "\n🠶 "
},
"html_block": {},
"html_span": {}
}

View file

@ -0,0 +1,9 @@
aliases:
dp: deployments
sec: v1/secrets
jo: jobs
cr: clusterroles
crb: clusterrolebindings
ro: roles
rb: rolebindings
np: networkpolicies

View file

@ -0,0 +1,44 @@
k9s:
liveViewAutoRefresh: false
screenDumpDir: {{ .chezmoi.homeDir }}/Library/Application Support/k9s/screen-dumps
refreshRate: 2
maxConnRetry: 5
readOnly: false
noExitOnCtrlC: false
portForwardAddress: localhost
ui:
skin: catppuccin-mocha
enableMouse: false
headless: false
logoless: false
crumbsless: false
reactive: false
noIcons: false
defaultsToFullScreen: false
skipLatestRevCheck: false
disablePodCounting: false
shellPod:
image: busybox:1.35.0
namespace: default
limits:
cpu: 100m
memory: 100Mi
imageScans:
enable: false
exclusions:
namespaces: []
labels: {}
logger:
tail: 100
buffer: 5000
sinceSeconds: -1
textWrap: false
disableAutoscroll: false
showTime: false
thresholds:
cpu:
critical: 90
warn: 70
memory:
critical: 90
warn: 70

View file

@ -0,0 +1,100 @@
k9s:
body:
fgColor: '#c6d0f5'
bgColor: default
logoColor: '#ca9ee6'
prompt:
fgColor: '#c6d0f5'
bgColor: default
suggestColor: '#8caaee'
help:
fgColor: '#c6d0f5'
bgColor: default
sectionColor: '#a6d189'
keyColor: '#8caaee'
numKeyColor: '#ea999c'
frame:
title:
fgColor: '#81c8be'
bgColor: default
highlightColor: '#f4b8e4'
counterColor: '#e5c890'
filterColor: '#a6d189'
border:
fgColor: '#ca9ee6'
focusColor: '#babbf1'
menu:
fgColor: '#c6d0f5'
keyColor: '#8caaee'
numKeyColor: '#ea999c'
crumbs:
fgColor: '#303446'
bgColor: default
activeColor: '#eebebe'
status:
newColor: '#8caaee'
modifyColor: '#babbf1'
addColor: '#a6d189'
pendingColor: '#ef9f76'
errorColor: '#e78284'
highlightColor: '#99d1db'
killColor: '#ca9ee6'
completedColor: '#737994'
info:
fgColor: '#ef9f76'
sectionColor: '#c6d0f5'
views:
table:
fgColor: '#c6d0f5'
bgColor: default
cursorFgColor: '#414559'
cursorBgColor: '#51576d'
markColor: '#f2d5cf'
header:
fgColor: '#e5c890'
bgColor: default
sorterColor: '#99d1db'
xray:
fgColor: '#c6d0f5'
bgColor: default
cursorColor: '#51576d'
cursorTextColor: '#303446'
graphicColor: '#f4b8e4'
charts:
bgColor: default
chartBgColor: default
dialBgColor: default
defaultDialColors:
- '#a6d189'
- '#e78284'
defaultChartColors:
- '#a6d189'
- '#e78284'
resourceColors:
cpu:
- '#ca9ee6'
- '#8caaee'
mem:
- '#e5c890'
- '#ef9f76'
yaml:
keyColor: '#8caaee'
valueColor: '#c6d0f5'
colonColor: '#a5adce'
logs:
fgColor: '#c6d0f5'
bgColor: default
indicator:
fgColor: '#babbf1'
bgColor: default
toggleOnColor: '#a6d189'
toggleOffColor: '#a5adce'
dialog:
fgColor: '#e5c890'
bgColor: default
buttonFgColor: '#303446'
buttonBgColor: default
buttonFocusFgColor: '#303446'
buttonFocusBgColor: '#f4b8e4'
labelFgColor: '#f2d5cf'
fieldFgColor: '#c6d0f5'

View file

@ -0,0 +1,100 @@
k9s:
body:
fgColor: '#c6d0f5'
bgColor: '#303446'
logoColor: '#ca9ee6'
prompt:
fgColor: '#c6d0f5'
bgColor: '#292c3c'
suggestColor: '#8caaee'
help:
fgColor: '#c6d0f5'
bgColor: '#303446'
sectionColor: '#a6d189'
keyColor: '#8caaee'
numKeyColor: '#ea999c'
frame:
title:
fgColor: '#81c8be'
bgColor: '#303446'
highlightColor: '#f4b8e4'
counterColor: '#e5c890'
filterColor: '#a6d189'
border:
fgColor: '#ca9ee6'
focusColor: '#babbf1'
menu:
fgColor: '#c6d0f5'
keyColor: '#8caaee'
numKeyColor: '#ea999c'
crumbs:
fgColor: '#303446'
bgColor: '#ea999c'
activeColor: '#eebebe'
status:
newColor: '#8caaee'
modifyColor: '#babbf1'
addColor: '#a6d189'
pendingColor: '#ef9f76'
errorColor: '#e78284'
highlightColor: '#99d1db'
killColor: '#ca9ee6'
completedColor: '#737994'
info:
fgColor: '#ef9f76'
sectionColor: '#c6d0f5'
views:
table:
fgColor: '#c6d0f5'
bgColor: '#303446'
cursorFgColor: '#414559'
cursorBgColor: '#51576d'
markColor: '#f2d5cf'
header:
fgColor: '#e5c890'
bgColor: '#303446'
sorterColor: '#99d1db'
xray:
fgColor: '#c6d0f5'
bgColor: '#303446'
cursorColor: '#51576d'
cursorTextColor: '#303446'
graphicColor: '#f4b8e4'
charts:
bgColor: '#303446'
chartBgColor: '#303446'
dialBgColor: '#303446'
defaultDialColors:
- '#a6d189'
- '#e78284'
defaultChartColors:
- '#a6d189'
- '#e78284'
resourceColors:
cpu:
- '#ca9ee6'
- '#8caaee'
mem:
- '#e5c890'
- '#ef9f76'
yaml:
keyColor: '#8caaee'
valueColor: '#c6d0f5'
colonColor: '#a5adce'
logs:
fgColor: '#c6d0f5'
bgColor: '#303446'
indicator:
fgColor: '#babbf1'
bgColor: '#303446'
toggleOnColor: '#a6d189'
toggleOffColor: '#a5adce'
dialog:
fgColor: '#e5c890'
bgColor: '#949cbb'
buttonFgColor: '#303446'
buttonBgColor: '#838ba7'
buttonFocusFgColor: '#303446'
buttonFocusBgColor: '#f4b8e4'
labelFgColor: '#f2d5cf'
fieldFgColor: '#c6d0f5'

View file

@ -0,0 +1,100 @@
k9s:
body:
fgColor: '#4c4f69'
bgColor: default
logoColor: '#8839ef'
prompt:
fgColor: '#4c4f69'
bgColor: default
suggestColor: '#1e66f5'
help:
fgColor: '#4c4f69'
bgColor: default
sectionColor: '#40a02b'
keyColor: '#1e66f5'
numKeyColor: '#e64553'
frame:
title:
fgColor: '#179299'
bgColor: default
highlightColor: '#ea76cb'
counterColor: '#df8e1d'
filterColor: '#40a02b'
border:
fgColor: '#8839ef'
focusColor: '#7287fd'
menu:
fgColor: '#4c4f69'
keyColor: '#1e66f5'
numKeyColor: '#e64553'
crumbs:
fgColor: '#eff1f5'
bgColor: default
activeColor: '#dd7878'
status:
newColor: '#1e66f5'
modifyColor: '#7287fd'
addColor: '#40a02b'
pendingColor: '#fe640b'
errorColor: '#d20f39'
highlightColor: '#04a5e5'
killColor: '#8839ef'
completedColor: '#9ca0b0'
info:
fgColor: '#fe640b'
sectionColor: '#4c4f69'
views:
table:
fgColor: '#4c4f69'
bgColor: default
cursorFgColor: '#ccd0da'
cursorBgColor: '#bcc0cc'
markColor: '#dc8a78'
header:
fgColor: '#df8e1d'
bgColor: default
sorterColor: '#04a5e5'
xray:
fgColor: '#4c4f69'
bgColor: default
cursorColor: '#bcc0cc'
cursorTextColor: '#eff1f5'
graphicColor: '#ea76cb'
charts:
bgColor: default
chartBgColor: default
dialBgColor: default
defaultDialColors:
- '#40a02b'
- '#d20f39'
defaultChartColors:
- '#40a02b'
- '#d20f39'
resourceColors:
cpu:
- '#8839ef'
- '#1e66f5'
mem:
- '#df8e1d'
- '#fe640b'
yaml:
keyColor: '#1e66f5'
valueColor: '#4c4f69'
colonColor: '#6c6f85'
logs:
fgColor: '#4c4f69'
bgColor: default
indicator:
fgColor: '#7287fd'
bgColor: default
toggleOnColor: '#40a02b'
toggleOffColor: '#6c6f85'
dialog:
fgColor: '#df8e1d'
bgColor: default
buttonFgColor: '#eff1f5'
buttonBgColor: default
buttonFocusFgColor: '#eff1f5'
buttonFocusBgColor: '#ea76cb'
labelFgColor: '#dc8a78'
fieldFgColor: '#4c4f69'

View file

@ -0,0 +1,100 @@
k9s:
body:
fgColor: '#4c4f69'
bgColor: '#eff1f5'
logoColor: '#8839ef'
prompt:
fgColor: '#4c4f69'
bgColor: '#e6e9ef'
suggestColor: '#1e66f5'
help:
fgColor: '#4c4f69'
bgColor: '#eff1f5'
sectionColor: '#40a02b'
keyColor: '#1e66f5'
numKeyColor: '#e64553'
frame:
title:
fgColor: '#179299'
bgColor: '#eff1f5'
highlightColor: '#ea76cb'
counterColor: '#df8e1d'
filterColor: '#40a02b'
border:
fgColor: '#8839ef'
focusColor: '#7287fd'
menu:
fgColor: '#4c4f69'
keyColor: '#1e66f5'
numKeyColor: '#e64553'
crumbs:
fgColor: '#eff1f5'
bgColor: '#e64553'
activeColor: '#dd7878'
status:
newColor: '#1e66f5'
modifyColor: '#7287fd'
addColor: '#40a02b'
pendingColor: '#fe640b'
errorColor: '#d20f39'
highlightColor: '#04a5e5'
killColor: '#8839ef'
completedColor: '#9ca0b0'
info:
fgColor: '#fe640b'
sectionColor: '#4c4f69'
views:
table:
fgColor: '#4c4f69'
bgColor: '#eff1f5'
cursorFgColor: '#ccd0da'
cursorBgColor: '#bcc0cc'
markColor: '#dc8a78'
header:
fgColor: '#df8e1d'
bgColor: '#eff1f5'
sorterColor: '#04a5e5'
xray:
fgColor: '#4c4f69'
bgColor: '#eff1f5'
cursorColor: '#bcc0cc'
cursorTextColor: '#eff1f5'
graphicColor: '#ea76cb'
charts:
bgColor: '#eff1f5'
chartBgColor: '#eff1f5'
dialBgColor: '#eff1f5'
defaultDialColors:
- '#40a02b'
- '#d20f39'
defaultChartColors:
- '#40a02b'
- '#d20f39'
resourceColors:
cpu:
- '#8839ef'
- '#1e66f5'
mem:
- '#df8e1d'
- '#fe640b'
yaml:
keyColor: '#1e66f5'
valueColor: '#4c4f69'
colonColor: '#6c6f85'
logs:
fgColor: '#4c4f69'
bgColor: '#eff1f5'
indicator:
fgColor: '#7287fd'
bgColor: '#eff1f5'
toggleOnColor: '#40a02b'
toggleOffColor: '#6c6f85'
dialog:
fgColor: '#df8e1d'
bgColor: '#7c7f93'
buttonFgColor: '#eff1f5'
buttonBgColor: '#8c8fa1'
buttonFocusFgColor: '#eff1f5'
buttonFocusBgColor: '#ea76cb'
labelFgColor: '#dc8a78'
fieldFgColor: '#4c4f69'

View file

@ -0,0 +1,100 @@
k9s:
body:
fgColor: '#cad3f5'
bgColor: default
logoColor: '#c6a0f6'
prompt:
fgColor: '#cad3f5'
bgColor: default
suggestColor: '#8aadf4'
help:
fgColor: '#cad3f5'
bgColor: default
sectionColor: '#a6da95'
keyColor: '#8aadf4'
numKeyColor: '#ee99a0'
frame:
title:
fgColor: '#8bd5ca'
bgColor: default
highlightColor: '#f5bde6'
counterColor: '#eed49f'
filterColor: '#a6da95'
border:
fgColor: '#c6a0f6'
focusColor: '#b7bdf8'
menu:
fgColor: '#cad3f5'
keyColor: '#8aadf4'
numKeyColor: '#ee99a0'
crumbs:
fgColor: '#24273a'
bgColor: default
activeColor: '#f0c6c6'
status:
newColor: '#8aadf4'
modifyColor: '#b7bdf8'
addColor: '#a6da95'
pendingColor: '#f5a97f'
errorColor: '#ed8796'
highlightColor: '#91d7e3'
killColor: '#c6a0f6'
completedColor: '#6e738d'
info:
fgColor: '#f5a97f'
sectionColor: '#cad3f5'
views:
table:
fgColor: '#cad3f5'
bgColor: default
cursorFgColor: '#363a4f'
cursorBgColor: '#494d64'
markColor: '#f4dbd6'
header:
fgColor: '#eed49f'
bgColor: default
sorterColor: '#91d7e3'
xray:
fgColor: '#cad3f5'
bgColor: default
cursorColor: '#494d64'
cursorTextColor: '#24273a'
graphicColor: '#f5bde6'
charts:
bgColor: default
chartBgColor: default
dialBgColor: default
defaultDialColors:
- '#a6da95'
- '#ed8796'
defaultChartColors:
- '#a6da95'
- '#ed8796'
resourceColors:
cpu:
- '#c6a0f6'
- '#8aadf4'
mem:
- '#eed49f'
- '#f5a97f'
yaml:
keyColor: '#8aadf4'
valueColor: '#cad3f5'
colonColor: '#a5adcb'
logs:
fgColor: '#cad3f5'
bgColor: default
indicator:
fgColor: '#b7bdf8'
bgColor: default
toggleOnColor: '#a6da95'
toggleOffColor: '#a5adcb'
dialog:
fgColor: '#eed49f'
bgColor: default
buttonFgColor: '#24273a'
buttonBgColor: default
buttonFocusFgColor: '#24273a'
buttonFocusBgColor: '#f5bde6'
labelFgColor: '#f4dbd6'
fieldFgColor: '#cad3f5'

View file

@ -0,0 +1,100 @@
k9s:
body:
fgColor: '#cad3f5'
bgColor: '#24273a'
logoColor: '#c6a0f6'
prompt:
fgColor: '#cad3f5'
bgColor: '#1e2030'
suggestColor: '#8aadf4'
help:
fgColor: '#cad3f5'
bgColor: '#24273a'
sectionColor: '#a6da95'
keyColor: '#8aadf4'
numKeyColor: '#ee99a0'
frame:
title:
fgColor: '#8bd5ca'
bgColor: '#24273a'
highlightColor: '#f5bde6'
counterColor: '#eed49f'
filterColor: '#a6da95'
border:
fgColor: '#c6a0f6'
focusColor: '#b7bdf8'
menu:
fgColor: '#cad3f5'
keyColor: '#8aadf4'
numKeyColor: '#ee99a0'
crumbs:
fgColor: '#24273a'
bgColor: '#ee99a0'
activeColor: '#f0c6c6'
status:
newColor: '#8aadf4'
modifyColor: '#b7bdf8'
addColor: '#a6da95'
pendingColor: '#f5a97f'
errorColor: '#ed8796'
highlightColor: '#91d7e3'
killColor: '#c6a0f6'
completedColor: '#6e738d'
info:
fgColor: '#f5a97f'
sectionColor: '#cad3f5'
views:
table:
fgColor: '#cad3f5'
bgColor: '#24273a'
cursorFgColor: '#363a4f'
cursorBgColor: '#494d64'
markColor: '#f4dbd6'
header:
fgColor: '#eed49f'
bgColor: '#24273a'
sorterColor: '#91d7e3'
xray:
fgColor: '#cad3f5'
bgColor: '#24273a'
cursorColor: '#494d64'
cursorTextColor: '#24273a'
graphicColor: '#f5bde6'
charts:
bgColor: '#24273a'
chartBgColor: '#24273a'
dialBgColor: '#24273a'
defaultDialColors:
- '#a6da95'
- '#ed8796'
defaultChartColors:
- '#a6da95'
- '#ed8796'
resourceColors:
cpu:
- '#c6a0f6'
- '#8aadf4'
mem:
- '#eed49f'
- '#f5a97f'
yaml:
keyColor: '#8aadf4'
valueColor: '#cad3f5'
colonColor: '#a5adcb'
logs:
fgColor: '#cad3f5'
bgColor: '#24273a'
indicator:
fgColor: '#b7bdf8'
bgColor: '#24273a'
toggleOnColor: '#a6da95'
toggleOffColor: '#a5adcb'
dialog:
fgColor: '#eed49f'
bgColor: '#939ab7'
buttonFgColor: '#24273a'
buttonBgColor: '#8087a2'
buttonFocusFgColor: '#24273a'
buttonFocusBgColor: '#f5bde6'
labelFgColor: '#f4dbd6'
fieldFgColor: '#cad3f5'

View file

@ -0,0 +1,100 @@
k9s:
body:
fgColor: '#cdd6f4'
bgColor: default
logoColor: '#cba6f7'
prompt:
fgColor: '#cdd6f4'
bgColor: default
suggestColor: '#89b4fa'
help:
fgColor: '#cdd6f4'
bgColor: default
sectionColor: '#a6e3a1'
keyColor: '#89b4fa'
numKeyColor: '#eba0ac'
frame:
title:
fgColor: '#94e2d5'
bgColor: default
highlightColor: '#f5c2e7'
counterColor: '#f9e2af'
filterColor: '#a6e3a1'
border:
fgColor: '#cba6f7'
focusColor: '#b4befe'
menu:
fgColor: '#cdd6f4'
keyColor: '#89b4fa'
numKeyColor: '#eba0ac'
crumbs:
fgColor: '#1e1e2e'
bgColor: default
activeColor: '#f2cdcd'
status:
newColor: '#89b4fa'
modifyColor: '#b4befe'
addColor: '#a6e3a1'
pendingColor: '#fab387'
errorColor: '#f38ba8'
highlightColor: '#89dceb'
killColor: '#cba6f7'
completedColor: '#6c7086'
info:
fgColor: '#fab387'
sectionColor: '#cdd6f4'
views:
table:
fgColor: '#cdd6f4'
bgColor: default
cursorFgColor: '#313244'
cursorBgColor: '#45475a'
markColor: '#f5e0dc'
header:
fgColor: '#f9e2af'
bgColor: default
sorterColor: '#89dceb'
xray:
fgColor: '#cdd6f4'
bgColor: default
cursorColor: '#45475a'
cursorTextColor: '#1e1e2e'
graphicColor: '#f5c2e7'
charts:
bgColor: default
chartBgColor: default
dialBgColor: default
defaultDialColors:
- '#a6e3a1'
- '#f38ba8'
defaultChartColors:
- '#a6e3a1'
- '#f38ba8'
resourceColors:
cpu:
- '#cba6f7'
- '#89b4fa'
mem:
- '#f9e2af'
- '#fab387'
yaml:
keyColor: '#89b4fa'
valueColor: '#cdd6f4'
colonColor: '#a6adc8'
logs:
fgColor: '#cdd6f4'
bgColor: default
indicator:
fgColor: '#b4befe'
bgColor: default
toggleOnColor: '#a6e3a1'
toggleOffColor: '#a6adc8'
dialog:
fgColor: '#f9e2af'
bgColor: default
buttonFgColor: '#1e1e2e'
buttonBgColor: default
buttonFocusFgColor: '#1e1e2e'
buttonFocusBgColor: '#f5c2e7'
labelFgColor: '#f5e0dc'
fieldFgColor: '#cdd6f4'

View file

@ -0,0 +1,100 @@
k9s:
body:
fgColor: '#cdd6f4'
bgColor: '#1e1e2e'
logoColor: '#cba6f7'
prompt:
fgColor: '#cdd6f4'
bgColor: '#181825'
suggestColor: '#89b4fa'
help:
fgColor: '#cdd6f4'
bgColor: '#1e1e2e'
sectionColor: '#a6e3a1'
keyColor: '#89b4fa'
numKeyColor: '#eba0ac'
frame:
title:
fgColor: '#94e2d5'
bgColor: '#1e1e2e'
highlightColor: '#f5c2e7'
counterColor: '#f9e2af'
filterColor: '#a6e3a1'
border:
fgColor: '#cba6f7'
focusColor: '#b4befe'
menu:
fgColor: '#cdd6f4'
keyColor: '#89b4fa'
numKeyColor: '#eba0ac'
crumbs:
fgColor: '#1e1e2e'
bgColor: '#eba0ac'
activeColor: '#f2cdcd'
status:
newColor: '#89b4fa'
modifyColor: '#b4befe'
addColor: '#a6e3a1'
pendingColor: '#fab387'
errorColor: '#f38ba8'
highlightColor: '#89dceb'
killColor: '#cba6f7'
completedColor: '#6c7086'
info:
fgColor: '#fab387'
sectionColor: '#cdd6f4'
views:
table:
fgColor: '#cdd6f4'
bgColor: '#1e1e2e'
cursorFgColor: '#313244'
cursorBgColor: '#45475a'
markColor: '#f5e0dc'
header:
fgColor: '#f9e2af'
bgColor: '#1e1e2e'
sorterColor: '#89dceb'
xray:
fgColor: '#cdd6f4'
bgColor: '#1e1e2e'
cursorColor: '#45475a'
cursorTextColor: '#1e1e2e'
graphicColor: '#f5c2e7'
charts:
bgColor: '#1e1e2e'
chartBgColor: '#1e1e2e'
dialBgColor: '#1e1e2e'
defaultDialColors:
- '#a6e3a1'
- '#f38ba8'
defaultChartColors:
- '#a6e3a1'
- '#f38ba8'
resourceColors:
cpu:
- '#cba6f7'
- '#89b4fa'
mem:
- '#f9e2af'
- '#fab387'
yaml:
keyColor: '#89b4fa'
valueColor: '#cdd6f4'
colonColor: '#a6adc8'
logs:
fgColor: '#cdd6f4'
bgColor: '#1e1e2e'
indicator:
fgColor: '#b4befe'
bgColor: '#1e1e2e'
toggleOnColor: '#a6e3a1'
toggleOffColor: '#a6adc8'
dialog:
fgColor: '#f9e2af'
bgColor: '#9399b2'
buttonFgColor: '#1e1e2e'
buttonBgColor: '#7f849c'
buttonFocusFgColor: '#1e1e2e'
buttonFocusBgColor: '#f5c2e7'
labelFgColor: '#f5e0dc'
fieldFgColor: '#cdd6f4'

View file

@ -0,0 +1,4 @@
[[input.prepend_keymap]]
on = "<Esc>"
run = "close"
desc = "Cancel input"

View file

@ -0,0 +1,57 @@
[
{
"context": "Terminal || ProjectPanel || CollabPanel || OutlinePanel || ChatPanel || VimControl || EmptyPane || SharedScreen || MarkdownPreview || KeyContextView",
"bindings": {
"ctrl-w": null,
"ctrl-w left": ["workspace::ActivatePaneInDirection", "Left"],
"ctrl-w right": ["workspace::ActivatePaneInDirection", "Right"],
"ctrl-w up": ["workspace::ActivatePaneInDirection", "Up"],
"ctrl-w down": ["workspace::ActivatePaneInDirection", "Down"],
"ctrl-w ctrl-h": ["workspace::ActivatePaneInDirection", "Left"],
"ctrl-w ctrl-l": ["workspace::ActivatePaneInDirection", "Right"],
"ctrl-w ctrl-k": ["workspace::ActivatePaneInDirection", "Up"],
"ctrl-w ctrl-j": ["workspace::ActivatePaneInDirection", "Down"],
"ctrl-w h": ["workspace::ActivatePaneInDirection", "Left"],
"ctrl-w l": ["workspace::ActivatePaneInDirection", "Right"],
"ctrl-w k": ["workspace::ActivatePaneInDirection", "Up"],
"ctrl-w j": ["workspace::ActivatePaneInDirection", "Down"],
"ctrl-w shift-left": ["workspace::SwapPaneInDirection", "Left"],
"ctrl-w shift-right": ["workspace::SwapPaneInDirection", "Right"],
"ctrl-w shift-up": ["workspace::SwapPaneInDirection", "Up"],
"ctrl-w shift-down": ["workspace::SwapPaneInDirection", "Down"],
"ctrl-w shift-h": ["workspace::SwapPaneInDirection", "Left"],
"ctrl-w shift-l": ["workspace::SwapPaneInDirection", "Right"],
"ctrl-w shift-k": ["workspace::SwapPaneInDirection", "Up"],
"ctrl-w shift-j": ["workspace::SwapPaneInDirection", "Down"],
"ctrl-w >": ["vim::ResizePane", "Widen"],
"ctrl-w <": ["vim::ResizePane", "Narrow"],
"ctrl-w -": ["vim::ResizePane", "Shorten"],
"ctrl-w +": ["vim::ResizePane", "Lengthen"],
"ctrl-w _": "vim::MaximizePane",
"ctrl-w =": "vim::ResetPaneSizes",
"ctrl-w g t": "pane::ActivateNextItem",
"ctrl-w ctrl-g t": "pane::ActivateNextItem",
"ctrl-w g shift-t": "pane::ActivatePrevItem",
"ctrl-w ctrl-g shift-t": "pane::ActivatePrevItem",
"ctrl-w w": "workspace::ActivateNextPane",
"ctrl-w ctrl-w": "workspace::ActivateNextPane",
"ctrl-w p": "workspace::ActivatePreviousPane",
"ctrl-w ctrl-p": "workspace::ActivatePreviousPane",
"ctrl-w shift-w": "workspace::ActivatePreviousPane",
"ctrl-w ctrl-shift-w": "workspace::ActivatePreviousPane",
"ctrl-w ctrl-v": "pane::SplitVertical",
"ctrl-w v": "pane::SplitVertical",
"ctrl-w shift-s": "pane::SplitHorizontal",
"ctrl-w ctrl-s": "pane::SplitHorizontal",
"ctrl-w s": "pane::SplitHorizontal",
"ctrl-w ctrl-c": "pane::CloseAllItems",
"ctrl-w c": "pane::CloseAllItems",
"ctrl-w ctrl-q": "pane::CloseAllItems",
"ctrl-w q": "pane::CloseAllItems",
"ctrl-w ctrl-o": "workspace::CloseInactiveTabsAndPanes",
"ctrl-w o": "workspace::CloseInactiveTabsAndPanes",
"ctrl-w ctrl-n": "workspace::NewFileSplitHorizontal",
"ctrl-w n": "workspace::NewFileSplitHorizontal"
}
}
]

View file

@ -0,0 +1,96 @@
// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run `zed: open default settings` from the
// command palette (cmd-shift-p / ctrl-shift-p)
{
"outline_panel": {
"dock": "left"
},
"features": { "edit_prediction_provider": "zed" },
"assistant": {
"enable_experimental_live_diffs": true,
"default_model": {
"provider": "copilot_chat",
"model": "gpt-4o"
},
"version": "2"
},
"vim_mode": true,
"ui_font_size": 14,
"buffer_font_family": "Iosevka Term",
"buffer_font_size": 14,
"font_size": 14,
"font_family": "Iosevka Term",
"theme": {
"mode": "dark",
"light": "One Light",
"dark": "Catppuccin Mocha"
},
"terminal": {
"line_height": "standard"
},
"auto_install_extensions": {
"html": true,
"toml": true,
"catppuccin": true,
"make": true,
"dockerfile": true,
"sql": true,
"terraform": true,
"lua": true,
"log": true,
"docker-compose": true,
"csv": true,
"basher": true,
"proto": true,
"gdscript": true,
"jinja2": true,
"roc": true,
"gemini": true,
"graphviz": true,
"ssh-config": true
},
"languages": {
"Python": {
"language_servers": ["pyright", "ruff"]
}
},
"lsp": {
"ruff": {
"initialization_options": {
"settings": {
"lint": {
"extendSelect": ["I"]
}
}
}
},
"rust-analyzer": {
"initialization_options": {
"inlayHints": {
"maxLength": null,
"lifetimeElisionHints": {
"enable": "skip_trivial",
"useParameterNames": true
},
"closureReturnTypeHints": {
"enable": "always"
}
}
}
}
}
}

View file

@ -2,21 +2,7 @@
set -e
{{ if eq .hosttype "devterm" -}}
sudo apt install \
brightnessctl \
git \
libncurses-dev \
libssl-dev \
lynx \
ripgrep \
tmux \
tree \
wget \
zsh \
-y
{{ else if eq .hosttype "personal" -}}
{{ if eq .hosttype "personal" -}}
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
eval "$(/opt/homebrew/bin/brew shellenv)"
brew install \
@ -27,9 +13,12 @@ brew install \
fzf \
git \
git-delta \
glow \
helix \
jj \
kitty \
neovim \
nvm \
ripgrep \
sqlite \
tree \
@ -42,21 +31,14 @@ brew install \
zlib \
zsh
{{ else if eq .hosttype "wsl" -}}
sudo apt update
sudo apt install \
build-essential \
clang \
libssl-dev \
pkg-config \
ripgrep \
tmux \
tree \
wget \
yazi \
-y
{{ end }}
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"
nvm install 22
nvm use 22
{{ if eq .hosttype "work" -}}
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install --force --python python3.12 aider-chat@latest
{{ else if eq .hosttype "work" -}}
{{ join .chezmoi.sourceDir "encrypted_work_packages.age" | include | decrypt -}}
{{ end }}