Compare commits

..

1 commit

Author SHA1 Message Date
29580c89e5 wip 2021-01-18 17:29:01 -07:00
111 changed files with 1694 additions and 3078 deletions

View file

@ -1 +0,0 @@
home

2
.gitignore vendored
View file

@ -107,5 +107,3 @@ dmypy.json
.pyre/
# End of https://www.gitignore.io/api/python
step.log

4
.gitmodules vendored Normal file
View file

@ -0,0 +1,4 @@
[submodule "dotbot"]
path = dotbot
url = https://github.com/anishathalye/dotbot
ignore = dirty

View file

@ -1,29 +1,92 @@
# dotfiles
## 1. set the fqdn:
```bash
# macos-specific commands
sudo scutil --set HostName $MY_HOSTNAME.local
sudo scutil --set LocalHostName $MY_HOSTNAME
sudo scutil --set ComputerName $MY_HOSTNAME
dscacheutil -flushcache
$ git clone https://github.com/thermokarst/dotfiles.git ~/.dotfiles
$ cd ~/.dotfiles
$ git remote rename origin thermokarst
$ git clone https://github.com/chriskempson/base16-shell.git ~/.config/base16-shell
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
$ ./install
$ sh <(curl -L https://nixos.org/nix/install) --darwin-use-unencrypted-nix-store-volume
$ source ~/.zshrc
$ nix-env -i \
coreutils \
elixir \
ffmpeg \
git \
heroku \
htop \
kakoune \
nodejs \
packer \
reattach-to-user-namespace \
silver-searcher \
sslmate \
tmux \
tree \
vim \
watch \
wget \
xz
$ base16_ashes
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
$ vim +PlugInstall
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
$ sudo sh Miniconda3-latest-MacOSX-x86_64.sh -p /opt/miniconda3 -b
$ sudo conda update conda
$ wget https://raw.githubusercontent.com/qiime2/environment-files/master/latest/staging/qiime2-latest-py36-osx-conda.yml
$ conda env create -n q2dev --file qiime2-latest-py36-osx-conda.yml
$ git clone <some private repo> # this will bootstrap the macos keychain
$ python3 bin/bootstrap_git_repos.py
$ sudo rm ~/Desktop ~/Downloads
$ ln -s ~/desk ~/Desktop
$ ln -s ~/Desktop ~/Downloads
$ chflags hidden ~/Documents ~/Library ~/Movies ~/Music ~/Pictures ~/Public
$ chflags -h hidden ~/Desktop ~/Downloads
$ chflags nohidden desk
```
## 2. reboot
## todos
## 3. install https://typeof.net/Iosevka/
- rework git bootstrap script
- add in neuron install
- cmus won't install
## 4. install `age` private key from password manager into `~/.key.txt`
## manual install/setup
## 5. bootstrap chezmoi:
- anonymous pro
- docker
- firefox
- freedom
- iterm2
- postgres.app
- printer drivers
- rust
- slack
- ssh keys
- steermouse
- syncthing
- thunderbird
- virtualbox
- vscode
- wakatime key
- zoom
## optional vscode extensions
```bash
sh -c "$(curl -fsLS get.chezmoi.io)" -- \
init \
git://pingo.thermokar.st/dotfiles \
--apply \
--guess-repo-url=false
$ code --install-extension AndrsDC.base16-themes
$ code --install-extension ecmel.vscode-html-css
$ code --install-extension formulahendry.auto-close-tag
$ code --install-extension hollowtree.vue-snippets
$ code --install-extension JakeBecker.elixir-ls
$ code --install-extension karigari.chat
$ code --install-extension lextudio.restructuredtext
$ code --install-extension ms-python.python
$ code --install-extension ms-vscode.Go
$ code --install-extension ms-vsliveshare.vsliveshare
$ code --install-extension redhat.vscode-yaml
$ code --install-extension vscodevim.vim
$ code --install-extension wakatime.vscode-wakatime
```
## 6. restart shell

View file

@ -0,0 +1,54 @@
import json
import os
import subprocess
from qiime2_projects import PROJECTS as Q2_PROJECTS
from mds_projects import PROJECTS as MDS_PROJECTS
from personal_projects import PROJECTS as PERSONAL_PROJECTS
def fetch_projects(projects, base_fp, remotes):
for org, repos in projects.items():
base_fp = os.path.join('~', 'projects', base_fp)
base_fp = os.path.expanduser(base_fp)
for repo in repos:
print('repo: %s/%s' % (org, repo))
repo_fp = os.path.join(base_fp, repo)
repo_fp = os.path.expanduser(repo_fp)
if not os.path.isdir(repo_fp):
url = 'https://github.com/%s/%s' % (org, repo)
subprocess.run(['git', 'clone', url, repo_fp])
subprocess.run(['git', 'remote', 'rename', 'origin', org],
cwd=repo_fp)
for remote in remotes:
url = 'https://github.com/%s/%s' % (remote, repo)
try:
subprocess.run(['git', 'remote', 'add', remote, url],
cwd=repo_fp, check=True,
capture_output=True)
except subprocess.CalledProcessError as e:
msg = 'remote %s already exists' % (remote, )
if msg not in str(e.stderr):
raise
try:
subprocess.run(['git', 'fetch', remote],
cwd=repo_fp, check=True,
capture_output=True)
except subprocess.CalledProcessError as e:
if url not in str(e.stderr):
raise
else:
subprocess.run(['git', 'remote', 'remove', remote],
cwd=repo_fp)
if __name__ == '__main__':
remotes = ['thermokarst', 'ebolyen', 'gregcaporaso', 'ChrisKeefe',
'Oddant1', 'nbokulich', 'andrewsanchez', 'David-Rod']
fetch_projects(Q2_PROJECTS, 'qiime2', remotes)
fetch_projects(MDS_PROJECTS, 'mds', [])
fetch_projects(PERSONAL_PROJECTS, 'personal', [])

View file

@ -0,0 +1,57 @@
import json
import os
from qiime2_projects import PROJECTS as Q2_PROJECTS
from mds_projects import PROJECTS as MDS_PROJECTS
from personal_projects import PROJECTS as PERSONAL_PROJECTS
def render_vscode_workspace(projects, project_name, output_fp,
include_dotfiles=True, extra_dirs=None):
folders = []
for org, repos in projects.items():
for repo in repos:
fp = os.path.join('~', 'projects', project_name, repo)
fp = os.path.expanduser(fp)
folders.append({'name': repo.lower(),
'path': fp})
if include_dotfiles:
dotfile_fp = os.path.join(os.sep, 'Users', 'matthew', '.dotfiles')
folders.append({'name': 'dotfiles',
'path': dotfile_fp})
if extra_dirs is not None:
for name, path in extra_dirs.items():
fp = os.path.join('~', 'projects', project_name, path)
fp = os.path.expanduser(fp)
folders.append({'name': name,
'path': fp})
with open(output_fp, 'w') as fh:
json.dump({'folders': sorted(folders, key=lambda x: x['name'])},
fh, sort_keys=True, indent=4)
if __name__ == '__main__':
def qws(ws_number: int):
return render_vscode_workspace(
Q2_PROJECTS,
'qiime2',
os.path.join('vscode', 'qiime2-%d.code-workspace' % (ws_number, )),
extra_dirs={'data': 'data'},
)
[qws(i) for i in range(1, 4)]
render_vscode_workspace(
MDS_PROJECTS,
'mds',
os.path.join('vscode', 'mds.code-workspace'),
)
render_vscode_workspace(
PERSONAL_PROJECTS,
'personal',
os.path.join('vscode', 'personal.code-workspace'),
)

10
bin/mds_projects.py Normal file
View file

@ -0,0 +1,10 @@
PROJECTS = {
'thermokarst': [
'ccdb-api',
'ccdb-web',
'tucotuco',
'fathm',
'hibernators',
'hibernators-web',
],
}

5
bin/personal_projects.py Normal file
View file

@ -0,0 +1,5 @@
PROJECTS = {
'thermokarst': [
'elixir-class',
],
}

79
bin/qiime2_projects.py Normal file
View file

@ -0,0 +1,79 @@
PROJECTS = {
'qiime2': [
'Keemei',
'action-library-packaging',
'busywork',
'data302',
'dev-docs',
'discourse-unhandled-tagger',
'docs',
'environment-files',
'library',
'logos',
'paper2',
'q2-alignment',
'q2-composition',
'q2-cutadapt',
'q2-dada2',
'q2-deblur',
'q2-demux',
'q2-diversity',
'q2-diversity-lib',
'q2-emperor',
'q2-feature-classifier',
'q2-feature-table',
'q2-fragment-insertion',
'q2-gneiss',
'q2-longitudinal',
'q2-metadata',
'q2-mystery-stew',
'q2-phylogeny',
'q2-quality-control',
'q2-quality-filter',
'q2-sample-classifier',
'q2-shogun',
'q2-taxa',
'q2-types',
'q2-vsearch',
'q2cli',
'q2cwl',
'q2galaxy',
'q2studio',
'q2templates',
'q2view',
'qiime2',
'qiime2.github.io',
'static-site-infrastructure',
'template-repo',
'view.qiime2.org',
'vm-playbooks',
'workshop-playbooks',
'workshops.qiime2.org',
],
'caporaso-lab': [
'caporaso-lab.github.io',
'pretrained-feature-classifiers',
'q2-phylogenomics',
'genome-sampler',
],
'gregcaporaso': [
'caporaso-lab-secrets',
'qiime2-meta-figures',
],
'biocore': [
'scikit-bio',
'deblur',
],
'thermokarst': [
'q2-no-op',
'busywork2_action_playground',
],
'bioconda': [
'bioconda-recipes',
]
}

View file

@ -1,62 +0,0 @@
# personal
[[workspace]]
path = "$HOME/projects/personal"
ssh_key_path = "$HOME/.ssh/id_ecdsa"
origin.base_addr = "ssh://git@git.thermokar.st/thermokarst"
origin.name = "pingo"
repos = [
"devlog",
"dsort",
"gitolite-admin",
"gpx-web-utils",
"gwar",
"leaving-hope",
"mini-lsm",
"pingo",
"talent-plan",
]
remotes = []
# personal-dokku
[[workspace]]
path = "$HOME/projects/personal"
ssh_key_path = "$HOME/.ssh/id_ecdsa"
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" }]
# mds
[[workspace]]
path = "$HOME/projects/mds"
ssh_key_path = "$HOME/.ssh/id_ecdsa"
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",
]
remotes = []
# github-thermokarst-personal
[[workspace]]
path = "$HOME/projects/personal"
ssh_key_path = "$HOME/.ssh/id_ecdsa"
origin.base_addr = "ssh://git@github.com/thermokarst"
origin.name = "thermokarst"
repos = ["thermokarst"]
remotes = []

1
dotbot Submodule

@ -0,0 +1 @@
Subproject commit 5d83f9e797b1950199e127a8196803f5e33e0916

View file

@ -1,23 +1,9 @@
[include]
path = /opt/local/share/git-delta/themes.gitconfig
[user]
name = {{ .name }}
email = {{ .email_personal }}
name = Matthew Dillon
email = matthewrdillon@gmail.com
[core]
editor = hx
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
features = chameleon
navigate = true
light = false
side-by-side = true
true-color = always
colorMoved = default
syntax-theme = base16
[diff]
colorMoved = default
editor = vim
excludesfile = /Users/matthew/.gitignore_global
[color]
diff = auto
status = auto
@ -28,9 +14,12 @@
auto = 1
[merge]
summary = true
tool = vimdiff
conflictstyle = diff3
prompt = false
[alias]
unstage = reset HEAD
uncommit = reset --soft HEAD^
# http://stackoverflow.com/a/9074343
lg1 = log \
--graph \
@ -49,21 +38,19 @@
a = add
c = commit --verbose
ca = commit -a --verbose
m = commit --amend --verbose
d = diff
dc = diff --cached
s = status -s
sw = switch
swc = switch -c
co = checkout
cob = checkout -b
# list branches sorted by last modified
b = "!git for-each-ref --sort='-authordate' --format='%(authordate)%09%(objectname:short)%09%(refname)' refs/heads | sed -e 's-refs/heads/--'"
# list aliases
la = "!git config -l | grep alias | cut -c 7-"
[push]
default = upstream
[credential]
helper = osxkeychain
[pull]
rebase = true
[init]
defaultBranch = main
[includeIf "gitdir:~/Klaviyo/"]
path = ~/.gitconfig-work
[includeIf "gitdir:~/.klaviyocli/"]
path = ~/.gitconfig-work

View file

@ -2,5 +2,3 @@
.DS_Store
.idea
.vscode
.envrc
.aider*

View file

@ -1,26 +0,0 @@
{{- $hostname := .chezmoi.hostname -}}
{{- if eq .chezmoi.os "darwin" -}}
{{- $hostname := output "scutil" "--get" "ComputerName" | trim -}}
{{- end -}}
{{- $choices := list "personal" "work" -}}
{{- $hosttype := promptChoiceOnce . "hosttype" "What type of host are you on" $choices -}}
{{ $name := promptString "name" -}}
{{ $email_personal := promptString "email_personal" -}}
{{ $email_work := promptString "email_work" -}}
{{ $github_personal := promptString "github_personal" -}}
{{ $github_work := promptString "github_work" -}}
encryption = "age"
[age]
identity = "~/.key.txt"
recipient = "age1yd87u4ae86erpem2tynyl959ppc8a3jt4ztssykytzaklut6uvus5prt2t"
[data]
hostname = {{ $hostname | quote }}
hosttype = {{ $hosttype | quote }}
name = {{ $name | quote }}
email_personal = {{ $email_personal | quote }}
email_work = {{ $email_work | quote }}
github_personal = {{ $github_personal | quote }}
github_work = {{ $github_work | quote }}

View file

@ -1,4 +0,0 @@
[".config/zellij/plugins/room.wasm"]
type = "file"
url = "https://github.com/rvcas/room/releases/latest/download/room.wasm"
refreshPeriod = "168h"

View file

@ -1,10 +0,0 @@
{{- if eq .hosttype "work" }}
.zshprivate
{{- end }}
{{- if eq .hosttype "personal" }}
.apprc
.s2a_login
.work_packages
.work_paths
.zshklaviyo
{{- end }}

View file

@ -1,45 +0,0 @@
#!/usr/bin/env python
import argparse
import ast
import pathlib
def find_definition(fp, line):
symbols = {}
with fp.open() as fh:
tree = ast.parse(fh.read())
for node in ast.walk(tree):
if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef, ast.ClassDef)):
start, end = compute_size(node)
symbols[node.name] = (start, end)
matches = []
for key, (start, end) in symbols.items():
if start <= line <= end:
matches.append(key)
return matches
def compute_size(node):
min_lineno = node.lineno
max_lineno = node.lineno
for node in ast.walk(node):
if hasattr(node, "lineno"):
min_lineno = min(min_lineno, node.lineno)
max_lineno = max(max_lineno, node.lineno)
return (min_lineno, max_lineno + 1)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('filepath', type=pathlib.Path)
parser.add_argument('line', type=int)
args = parser.parse_args()
symbols = find_definition(args.filepath, args.line)
for symbol in symbols:
print(symbol)

View file

@ -1,27 +0,0 @@
#!/usr/bin/env sh
set -e
tmpfile=$(mktemp)
zellij action dump-screen $tmpfile
status_line=$(cat $tmpfile | rg -e "(?:NOR|INS|SEL)\s+[\x{2800}-\x{28FF}]*\s+(\S*)\s[^│]* (\d+):*.*" -o --replace '$1 $2')
filename=$(echo $status_line | awk '{ print $1 }')
escaped_filename=$(echo "$filename" | sed 's/[\/&]/\\&/g')
line_number=$(echo $status_line | awk '{ print $2 }')
extension="${filename##*.}"
case "$extension" in
"py")
# this is pretty pytest-specific, but will probably be fine for the time being
test_runner=${PYTEST:-pytest}
cmd="get_python_function_at_position.py $filename $line_number | pytester.py - | sed 's/^/$test_runner /;s/$/ $escaped_filename/' | sh"
;;
*)
echo "uh oh!"
exit 1
;;
esac
full_cmd="echo \"running $cmd\" && $cmd"
zellij action new-pane --direction down -- zsh -c "$full_cmd"

View file

@ -1,35 +0,0 @@
#!/usr/bin/env python
import argparse
import os
import pathlib
import sys
def main():
parser = argparse.ArgumentParser()
parser.add_argument('symbols', type=argparse.FileType('r'))
args = parser.parse_args()
symbols = args.symbols.read()
try:
symbols = symbols.strip()
symbols = symbols.split("\n")
expressions = " and ".join(symbols)
if expressions:
print(f"-k \"{expressions}\"")
else:
print("")
finally:
args.symbols.close()
if __name__ == "__main__":
try:
main()
sys.stdout.flush()
except BrokenPipeError:
devnull = os.open(os.devnull, os.O_WRONLY)
os.dup2(devnull, sys.stdout.fileno())
sys.exit(1)

View file

@ -1,23 +0,0 @@
{{ 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

@ -1,5 +0,0 @@
[user]
email = {{ .email_work }}
[core]
sshCommand = "ssh -i ~/.ssh/id_rsa_work"

View file

@ -1,14 +0,0 @@
#!/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

View file

@ -1 +0,0 @@
--glob=!.git/*

View file

@ -1,5 +0,0 @@
# {{ .name }}
# {{ .email_personal }}
# Added by OrbStack: command-line tools and integration
source ~/.orbstack/shell/init.zsh 2>/dev/null || :

View file

@ -1,78 +0,0 @@
# Remove older command from the history if a duplicate is to be added.
setopt HIST_IGNORE_ALL_DUPS
# Set editor default keymap to emacs (`-e`) or vi (`-v`)
bindkey -v
# Remove path separator from WORDCHARS.
WORDCHARS=${WORDCHARS//[\/]}
# Disable automatic widget re-binding on each precmd. This can be set when
# zsh-users/zsh-autosuggestions is the last module in your ~/.zimrc.
ZSH_AUTOSUGGEST_MANUAL_REBIND=1
# Set what highlighters will be used.
# See https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets)
ZIM_HOME=${ZDOTDIR:-${HOME}}/.zim
# Download zimfw plugin manager if missing.
if [[ ! -e ${ZIM_HOME}/zimfw.zsh ]]; then
if (( ${+commands[curl]} )); then
curl -fsSL --create-dirs -o ${ZIM_HOME}/zimfw.zsh \
https://github.com/zimfw/zimfw/releases/latest/download/zimfw.zsh
else
mkdir -p ${ZIM_HOME} && wget -nv -O ${ZIM_HOME}/zimfw.zsh \
https://github.com/zimfw/zimfw/releases/latest/download/zimfw.zsh
fi
fi
# Install missing modules, and update ${ZIM_HOME}/init.zsh if missing or outdated.
if [[ ! ${ZIM_HOME}/init.zsh -nt ${ZDOTDIR:-${HOME}}/.zimrc ]]; then
source ${ZIM_HOME}/zimfw.zsh init -q
fi
# Initialize modules.
source ${ZIM_HOME}/init.zsh
# zsh-history-substring-search
zmodload -F zsh/terminfo +p:terminfo
# Bind ^[[A/^[[B manually so up/down works both before and after zle-line-init
for key ('^[[A' '^P' ${terminfo[kcuu1]}) bindkey ${key} history-substring-search-up
for key ('^[[B' '^N' ${terminfo[kcud1]}) bindkey ${key} history-substring-search-down
for key ('k') bindkey -M vicmd ${key} history-substring-search-up
for key ('j') bindkey -M vicmd ${key} history-substring-search-down
unset key
srcs=(
"/opt/miniforge3/etc/profile.d/conda.sh"
"/opt/miniforge3/etc/profile.d/mamba.sh"
"$HOME/.cargo/env"
"$HOME/.zshklaviyo"
"$HOME/.zshprivate"
)
for fp in $srcs; do
if [[ -s "$fp" ]]; then
source "$fp"
fi
done
alias devlog="cd ~/projects/personal/devlog && hx logs/$(date '+%Y-%m-%d').gmi && cd -"
eval "$(/opt/homebrew/bin/brew shellenv)"
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"
function reldate() {
date -v "${1}" "+%Y-%m-%d"
}
[ "$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,11 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYcS9JQTB5TkZGVTlFVEkx
T0pkZWtQeVA0OGJGcTJCTi9zK2o5VkNVQ3dnClFQdWVuWUpwOStuZTNqQ0N1dm9z
aUJsMktNd1N6MDhaN1RlYmZ1YVAwSE0KLS0tIElubG8wNVlOUXYzdTBieGpYRGFQ
RFhHSTM2Yit0WWVRVXpWcUhDVlU3a2sKwiBHRNxbfp6imiMrKPiBmSmq7W8qZOTY
dY6gANHwmwYahtVAFjLMySiTiheRCNqMRbkII8sbOZRvE0Nx7BneE2enHc+gX5kJ
PnOjbqmAYtR58FBhX3aL578cxkdMmEJC+lT4189ywPhWsuZb2j9ysbyNT4WwYcdk
NjY58Tpt/v5kDb5Roj6eMfoQiR3lBJEbPeP7QI9VlJNa1vP242bK7gYWLKMsTB4Q
pbdF+3dJ58khvCpdw3gNz11tBCE+qKeiPwQSj1ghPzeNOOM4fpPftdU8HPDWNMWh
qNJtqwwZl6FLCw==
-----END AGE ENCRYPTED FILE-----

View file

@ -1,10 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLVVd1WlkyUitSUWdFSzBG
ZnJWc3pYZmVGSzBxKzhRcmpnSGVjSnZVdUdZCmFDOHcySkhtVXd4L2tuaERDRjRq
UzBvY1h5cmhQM09JTzZpTEVJQVcyWDgKLS0tIE9pYm9CUzRFdjh4NkN3eWEvUE9V
KzZyUm1qMVA5Tm54c1UzZTdROW5qakUKBuIeMGy+Jff9ZUueA8j7zSu1M0LVYTHH
udpQLQIJXMS/UGRSWimfIn9jdRv1wrovPYE/hQJCLcuL3cf5iejZAmmKj/+3ODF0
cS4RAO/t8W2GFCXvoc2fiiqN6lu5Cq79aLMu7W5CtgOLB2nbov+WgapZ4T/5gogX
n7Ks/+M13urAphxvdBegNkDOLz7bkF0JJ8v3HcHS9JPZ9WkpOF4nBGycwdnYFplU
ws0nrpLwFg6QEmScqxtyh8G2ZXQgd+P3m3M68jtQkD6nK2Q=
-----END AGE ENCRYPTED FILE-----

View file

@ -1,9 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0R1ZRL1VJVW5URzZoZXJC
Wm1XcjVzeE5rdXBVVFJ4RmpVS3FqVE5LRmtjCjVia29aeklXUkRWWWpKY2hGRlJh
cWlRTlIyNlZqbUNoTmhaNzFoOWc2czQKLS0tIDUwTFJZVlcxVjRzOVV0QUJBdEZV
Mm5SamhSYlgvZUgxd1NlcFhRd2R3MDgKHuVfpKp1BQBx1xXur5x8N8Ohli0rYY6+
MmmKTDdYvuZKDqGrI+EpQw0yywLyUgeWfDUx5OSx1Z9PKMAU1+KYGAWB0WLYXafT
51UZSNj835YVZUChLKwLhthKg8KTl6h4FxE4K/88iHVOlRyVhuUAkZfGlGpL21uC
XgKaOnt/i5IFeGj459sR0io2m0sjCcZJA/3F1SBkVch3Lw1Xx4GrPmKq
-----END AGE ENCRYPTED FILE-----

View file

@ -1,7 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByV0J4aGFoR3hDSTJvNVp2
a1F1NzJmaERoYWwycStJeC9OS0tLaUp0aXpvCjhndzJrQmhRaWo4STRzdWtYTE94
Y0V4UHJ5UHlwaXZJOVJXSjdhMktvUWcKLS0tIDRtUHptRjYzT0RHQVJxT2RBbXNa
OUwxak52ZVhQL2psSUlpRVhHdzUxZjgKtcrEfrCDzTmLFhPNcnJ/PBMoiIxF0KAE
B2lhLyJ6+0OVTHMM6byVr+JnjnIXoA35537EUkQZ+A==
-----END AGE ENCRYPTED FILE-----

View file

@ -1,66 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3ZVVGeW9icVBjbXk4VnZo
aEQxVTNoTFpSSUlZcEpVRHp1VWRGdjBwYmtnCnk4L241UmUyb0QyZUVVVU50SmdR
ckNPWVFVM3dSWmxTeGRrL0hwZ0xqN1UKLS0tIFpjZkE1QWt3UFBPanY2WmtwckFw
bkoyZ3pWWXEzem50ZG1uY3E2MjB4Q3cK9gtlN1NleI5+MF5SJfO7AJPpTmej3f9g
JYRXjja1eBDkl91/pgjV5Q8k5lh+X+DrUWlZ6ddigFijBUt5gdjCpeK7ETKZhJuU
qSLEZo84/ICOBB1GJk1DMNpSTCqm17SMrTHCiue8NCuy+U22mlduuEbN3M9MzZkt
L5NrxNwzlHVBpznwNCJsFfK8tAsND+alAXZICDDD5NrGt2kKbUnu5DQoacxDVqt8
o95/7Ce6LS1/p/+/JvAehF+z/H9CySE5sRVZmuVrrgXwjOqvAvPNfc8cjWHmeN8m
SOEemrYjQkJ2aZpnj1Lj2h1pjqnM6VJP98WPZInXIbTIVDi+cOig/igR976U8aM6
oEBBMDNOxH3d/3smGL2qbaKb9ZHvJHxFG64p2Xc+mZ7Tr0xDvETsS8qEm/zF4dyz
RIKYUOEZJqLwwNRRd7kkFGHyMH/Exiz36oEYFjN9UGm5c3XEaKhVbn7PuEOyjdis
hdlZxfx9Ijz2mKib8wFqjgLLeIBFusomov2zeruXtOWUl8piNyZFrzmW/D8naIXL
2HlZt43ESJdmWTESMZvUYCnnz5JitQm8yvWTG+VNd/XI5jJAIuLOb2tZqKIkSHms
uPPp/Ihjt94lAxrE745zVPq6Sbz2lzUtMQ14yCWqRDobCh1mzbuixo9W3QOTDlcw
zUgxdF3cUIx290GZwVKqftbbOrlP3tpxDKvJRp/XG069zr21hwSDOzWqa1ZYzyOd
fssrDV3IocpGJs7qi0mTMJh5gSf9yBncudGxk+E3b6Z+a0XKKeFIgA7cBeeiyQJh
EL7A6BOzN1XSMat11fxogXoouB8hrnnPhAd2SyTimYjSLJ0c3xB35r0i2Xe3Zjp6
1YQEoo/i5WiHccEzy7QuyjqwxxvVoLazQBIUU154O/FMnOWs1jBcnL+AbdOBTiKC
gkFdYnm/ly3NqEGMbFCcpDsuQcPnqgZs7bh/6CZk4UB0v4LyCCoTfUoE1/22z6um
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
-----END AGE ENCRYPTED FILE-----

View file

@ -1,9 +0,0 @@
-----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,14 +0,0 @@
theme = "catppuccin_mocha"
[editor]
true-color = true
insert-final-newline = false
[editor.file-picker]
hidden = false
[keys.normal.space.m]
r = ":reload-all"
s = ":toggle-option soft-wrap.enable"
t = ":sh run_test_under_cursor"
y = ":sh zellij run -c -f -x 5% -y 5% --width 90% --height 90% -- bash ~/.config/helix/yazi-picker.sh open"

View file

@ -1,44 +0,0 @@
[[language]]
name = "rust"
[language-server.rust-analyzer.config.check]
command = "clippy"
{{ if eq .hosttype "work" -}}
[language-server.pyright]
command = "pyright-langserver"
args = ["--stdio"]
config = {}
environment = { "PYENV_VERSION" = "pyright" }
[[language]]
name = "python"
language-servers = ["pyright"]
{{- end }}
[language-server.roc-ls]
command = "roc_language_server"
[[language]]
name = "roc"
scope = "source.roc"
injection-regex = "roc"
file-types = ["roc"]
shebangs = ["roc"]
roots = []
comment-token = "#"
language-servers = ["roc-ls"]
indent = { tab-width = 2, unit = " " }
auto-format = true
formatter = { command = "roc", args =[ "format", "--stdin", "--stdout"]}
[language.auto-pairs]
'(' = ')'
'{' = '}'
'[' = ']'
'"' = '"'
[[grammar]]
name = "roc"
source = { git = "https://github.com/faldor20/tree-sitter-roc.git", rev = "ef46edd0c03ea30a22f7e92bc68628fb7231dc8a" }

View file

@ -1,12 +0,0 @@
#!/usr/bin/env bash
paths=$(yazi --chooser-file=/dev/stdout | while read -r; do printf "%q " "$REPLY"; done)
if [[ -n "$paths" ]]; then
zellij action toggle-floating-panes
zellij action write 27 # send <Escape> key
zellij action write-chars ":$1 $paths"
zellij action write 13 # send <Enter> key
else
zellij action toggle-floating-panes
fi

View file

@ -1,37 +0,0 @@
[user]
name = {{ .name | quote }}
email = {{ .email_personal | quote }}
[git]
push-bookmark-prefix = "{{ .github_personal }}_jj_"
private-commits = "description(glob:'private:*') | bookmarks('merge')"
[revset-aliases]
"stack()" = "trunk()..@"
"immutable_heads()" = "builtin_immutable_heads() | (trunk().. & ~mine())"
[ui]
default-command = ["log"]
pager = "delta"
[ui.diff]
format = "git"
[merge-tools.delta]
diff-args = [
"--color-only",
"--features", "chameleon",
"--navigate",
"--dark",
"--side-by-side",
"--true-color", "always",
"--syntax-theme", "base16",
"$left", "$right",
]
[[--scope]]
--when.repositories = ["~/Klaviyo"]
[--scope.user]
email = {{ .email_work | quote }}
[--scope.git]
push-bookmark-prefix = "2025_{{ .github_work }}_jj_"

View file

@ -1,80 +0,0 @@
font_family Iosevka Term Extralight
font_size 14.0
shell .
clipboard_control write-clipboard write-primary no-append
macos_option_as_alt yes
# Bell
enable_audio_bell no
visual_bell_duration 0.5
# The basic colors
foreground #cdd6f4
background #1e1e2e
selection_foreground #1e1e2e
selection_background #f5e0dc
# Cursor colors
cursor #f5e0dc
cursor_text_color #1e1e2e
# URL underline color when hovering with mouse
url_color #f5e0dc
# Kitty window border colors
active_border_color #b4befe
inactive_border_color #6c7086
bell_border_color #f9e2af
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #11111b
active_tab_background #cba6f7
inactive_tab_foreground #cdd6f4
inactive_tab_background #181825
tab_bar_background #11111b
# Colors for marks (marked text in the terminal)
mark1_foreground #1e1e2e
mark1_background #b4befe
mark2_foreground #1e1e2e
mark2_background #cba6f7
mark3_foreground #1e1e2e
mark3_background #74c7ec
# The 16 terminal colors
# black
color0 #45475a
color8 #585b70
# red
color1 #f38ba8
color9 #f38ba8
# green
color2 #a6e3a1
color10 #a6e3a1
# yellow
color3 #f9e2af
color11 #f9e2af
# blue
color4 #89b4fa
color12 #89b4fa
# magenta
color5 #f5c2e7
color13 #f5c2e7
# cyan
color6 #94e2d5
color14 #94e2d5
# white
color7 #bac2de
color15 #a6adc8

View file

@ -1,10 +0,0 @@
[
{
"name": "default",
"path": "/Users/matthew.dillon/notebook/klaviyo/work.klg"
},
{
"name": "work",
"path": "/Users/matthew.dillon/notebook/klaviyo/work.klg"
}
]

View file

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

View file

@ -1,20 +0,0 @@
-- 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

@ -1,25 +0,0 @@
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

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

View file

@ -1,38 +0,0 @@
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

@ -1,49 +0,0 @@
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

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

View file

@ -1,12 +0,0 @@
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

@ -1,14 +0,0 @@
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

@ -1,39 +0,0 @@
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

@ -1,56 +0,0 @@
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

@ -1,15 +0,0 @@
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

@ -1,14 +0,0 @@
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

@ -1,11 +0,0 @@
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

@ -1,3 +0,0 @@
defaults:
max_columns: 150
theme: "catppuccin-mocha"

View file

@ -1,24 +0,0 @@
### catppuccin
set color_cmdline_bg=default
set color_cmdline_fg=254
set color_error=211
set color_info=223
set color_separator=117
set color_statusline_bg=default
set color_statusline_fg=254
set color_titleline_bg=151
set color_titleline_fg=16
set color_win_bg=default
set color_win_cur=117
set color_win_cur_sel_bg=151
set color_win_cur_sel_fg=16
set color_win_dir=254
set color_win_fg=254
set color_win_inactive_cur_sel_bg=181
set color_win_inactive_cur_sel_fg=235
set color_win_inactive_sel_bg=152
set color_win_inactive_sel_fg=235
set color_win_sel_bg=117
set color_win_sel_fg=235
set color_win_title_bg=default
set color_win_title_fg=117

View file

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

View file

@ -1,199 +0,0 @@
{
"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

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

View file

@ -1,44 +0,0 @@
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

@ -1,100 +0,0 @@
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

@ -1,100 +0,0 @@
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

@ -1,100 +0,0 @@
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

@ -1,100 +0,0 @@
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

@ -1,100 +0,0 @@
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

@ -1,100 +0,0 @@
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

@ -1,100 +0,0 @@
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

@ -1,100 +0,0 @@
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

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

View file

@ -1,57 +0,0 @@
[
{
"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

@ -1,96 +0,0 @@
// 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

@ -1,275 +0,0 @@
keybinds clear-defaults=true {
tmux {
bind "[" { SwitchToMode "Scroll"; }
bind "Ctrl a" { ToggleTab; SwitchToMode "Normal"; }
bind "\"" { NewPane "Down"; SwitchToMode "Normal"; }
bind "%" { NewPane "Right"; SwitchToMode "Normal"; }
bind "z" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
bind "c" { NewTab; SwitchToMode "Normal"; }
bind "," { SwitchToMode "RenameTab"; }
bind "p" { GoToPreviousTab; SwitchToMode "Normal"; }
bind "n" { GoToNextTab; SwitchToMode "Normal"; }
bind "Left" { MoveFocus "Left"; SwitchToMode "Normal"; }
bind "Right" { MoveFocus "Right"; SwitchToMode "Normal"; }
bind "Down" { MoveFocus "Down"; SwitchToMode "Normal"; }
bind "Up" { MoveFocus "Up"; SwitchToMode "Normal"; }
bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; }
bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; }
bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; }
bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; }
bind "o" { FocusNextPane; }
bind "d" { Detach; }
bind "Space" { NextSwapLayout; }
bind "x" { CloseFocus; SwitchToMode "Normal"; }
}
shared_except "locked" {
bind "Ctrl u" {
LaunchOrFocusPlugin "file:~/.config/zellij/plugins/room.wasm" {
floating true
ignore_case true
quick_jump true
}
}
}
shared_except "normal" "locked" {
bind "Enter" "Esc" { SwitchToMode "Normal"; }
}
shared_except "tmux" "locked" {
bind "Ctrl a" { SwitchToMode "Tmux"; }
}
}
plugins {
tab-bar location="zellij:tab-bar"
status-bar location="zellij:status-bar"
strider location="zellij:strider"
compact-bar location="zellij:compact-bar"
session-manager location="zellij:session-manager"
welcome-screen location="zellij:session-manager" {
welcome_screen true
}
filepicker location="zellij:strider" {
cwd "/"
}
}
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
// eg. when terminal window with an active zellij session is closed
// Options:
// - detach (Default)
// - quit
//
// on_force_close "quit"
// Send a request for a simplified ui (without arrow fonts) to plugins
// Options:
// - true
// - false (Default)
//
// simplified_ui true
// Choose the path to the default shell that zellij will use for opening new panes
// Default: $SHELL
//
// default_shell "fish"
// Choose the path to override cwd that zellij will use for opening new panes
//
// default_cwd ""
// Toggle between having pane frames around the panes
// Options:
// - true (default)
// - false
//
pane_frames false
// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
// Options:
// - true (default)
// - false
//
// auto_layout true
// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected
// Options:
// - true (default)
// - false
//
// session_serialization false
// Whether pane viewports are serialized along with the session, default is false
// Options:
// - true
// - false (default)
// serialize_pane_viewport true
// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0
// defaults to the scrollback size. If this number is higher than the scrollback size, it will
// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true.
//
// scrollback_lines_to_serialize 10000
// Define color themes for Zellij
// For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes
// Once these themes are defined, one of them should to be selected in the "theme" section of this file
themes {
dracula {
fg 248 248 242
bg 40 42 54
red 255 85 85
green 80 250 123
yellow 241 250 140
blue 98 114 164
magenta 255 121 198
orange 255 184 108
cyan 139 233 253
black 0 0 0
white 255 255 255
}
catppuccin-latte {
bg "#acb0be" // Surface2
fg "#4c4f69" // Text
red "#d20f39"
green "#40a02b"
blue "#1e66f5"
yellow "#df8e1d"
magenta "#ea76cb" // Pink
orange "#fe640b" // Peach
cyan "#04a5e5" // Sky
black "#e6e9ef" // Mantle
white "#4c4f69" // Text
}
catppuccin-frappe {
bg "#626880" // Surface2
fg "#c6d0f5" // Text
red "#e78284"
green "#a6d189"
blue "#8caaee"
yellow "#e5c890"
magenta "#f4b8e4" // Pink
orange "#ef9f76" // Peach
cyan "#99d1db" // Sky
black "#292c3c" // Mantle
white "#c6d0f5" // Text
}
catppuccin-macchiato {
bg "#5b6078" // Surface2
fg "#cad3f5" // Text
red "#ed8796"
green "#a6da95"
blue "#8aadf4"
yellow "#eed49f"
magenta "#f5bde6" // Pink
orange "#f5a97f" // Peach
cyan "#91d7e3" // Sky
black "#1e2030" // Mantle
white "#cad3f5" // Text
}
catppuccin-mocha {
bg "#585b70" // Surface2
fg "#cdd6f4" // Text
red "#f38ba8"
green "#a6e3a1"
blue "#89b4fa"
yellow "#f9e2af"
magenta "#f5c2e7" // Pink
orange "#fab387" // Peach
cyan "#89dceb" // Sky
black "#181825" // Mantle
white "#cdd6f4" // Text
}
}
// Choose the theme that is specified in the themes section.
// Default: default
//
theme "catppuccin-mocha"
// The name of the default layout to load on startup
// Default: "default"
//
// default_layout "compact"
// Choose the mode that zellij uses when starting up.
// Default: normal
//
// default_mode "locked"
// Toggle enabling the mouse mode.
// On certain configurations, or terminals this could
// potentially interfere with copying text.
// Options:
// - true (default)
// - false
//
// mouse_mode false
// Configure the scroll back buffer size
// This is the number of lines zellij stores for each pane in the scroll back
// buffer. Excess number of lines are discarded in a FIFO fashion.
// Valid values: positive integers
// Default value: 10000
//
// scroll_buffer_size 10000
// Provide a command to execute when copying text. The text will be piped to
// the stdin of the program to perform the copy. This can be used with
// terminal emulators which do not support the OSC 52 ANSI control sequence
// that will be used by default if this option is not set.
// Examples:
//
// copy_command "xclip -selection clipboard" // x11
// copy_command "wl-copy" // wayland
// copy_command "pbcopy" // osx
// Choose the destination for copied text
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
// Does not apply when using copy_command.
// Options:
// - system (default)
// - primary
//
// copy_clipboard "primary"
// Enable or disable automatic copy (and clear) of selection when releasing mouse
// Default: true
//
// copy_on_select false
// Path to the default editor to use to edit pane scrollbuffer
// Default: $EDITOR or $VISUAL
//
// scrollback_editor "/usr/bin/vim"
// When attaching to an existing session with other users,
// should the session be mirrored (true)
// or should each user have their own cursor (false)
// Default: false
//
// mirror_session true
// The folder in which Zellij will look for layouts
//
// layout_dir "/path/to/my/layout_dir"
// The folder in which Zellij will look for themes
//
// theme_dir "/path/to/my/theme_dir"
// Enable or disable the rendering of styled and colored underlines (undercurl).
// May need to be disabled for certain unsupported terminals
// Default: true
//
// styled_underlines false
// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know
// metadata info on this session)
// Default: false
//
// disable_session_metadata true

View file

@ -1,35 +0,0 @@
[notebook]
dir = "~/notebook"
[note]
language = "en"
default-title = "untitled"
filename = "{{id}}-{{slug title}}"
extension = "md"
template = "default.md"
id-charset = "alphanum"
id-length = 4
id-case = "lower"
[group.journal]
paths = ["journal/daily"]
[group.journal.note]
filename = "{{format-date now}}"
template = "daily.md"
[lsp]
[lsp.diagnostics]
wiki-title = "hint"
dead-link = "error"
[alias]
save = 'jj desc -m "$*" && jj bookmark set main -r @ && jj new'
sync = 'jj git fetch && jj git push'
log = 'jj log -r ".."'
diff = 'jj diff'
daily = 'zk new --no-input "$ZK_NOTEBOOK_DIR/journal/daily"'
[tool]
editor = "hx --hsplit journal/tasks.xit"

View file

@ -1 +0,0 @@
# {{ format-date now }}

View file

@ -1,5 +0,0 @@
# {{ title }}
{{ format-date now }}
{{ content }}

View file

@ -1,3 +0,0 @@
{{ if eq .chezmoi.os "darwin" -}}
Include ~/.orbstack/ssh/config
{{ end }}

View file

@ -1,12 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1Y1Z4ZEpoK2RidUgrZFFV
VElqZDlNdXZ3czRwSVZiSWx3WnZGUFIrbkZzCnhTMG1MUWMraFVwSjFNQUFvMjhU
RUFHZE1nTDBwRGt4MXNHTUxVZFhUTUEKLS0tIDNsSjlsMWlSbnlRbTM5TmFVVmQy
am9LSzI0SjBBZ3pXSVhxQnlzTWR5ZFEKrx4z3Usu6NUqMyuM0UJeGa3X7SJed50o
lNYgdEatTd52LmkBDBeId4uilJU4Hw7g+NK80uxLgsXyjjfI+FznigNl8Ofd6n57
uPMuLj2shrslWRYoLq3Dtw03X/q/2eUuJPG9T7H98RQvsEl/N7zekymgoXUFT44v
eRZBr5mg5i57sX539Z1jZmmaWEcPyR9OYFSRCrtRATOEF520hU2LTxIRSxF194/e
NzGh6lrvK/m8VGClGHk/UqdItH5S6+dAg+P4v2FSFQwls/uzq9j0n/bK0A06F6Vs
lL+mSumS9d+zvXzsu0iHLSoECP31kAfNuWPj9j0WCekISdwJmoXR+gp3iCf6IUOh
w0vP1Vsz4cIWUC6SgoK2rrWqmfSkD2TFPom3MzFhr3yw+60LwtYZQ3LzIJQQ
-----END AGE ENCRYPTED FILE-----

View file

@ -1,9 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzZlFZSzBiYXVpdzl5VGR6
OWZYTk8zaVBxZE4yK1dNN2ZqMWtyMmlzY2lZCkhSM3ZGbkgwTXlVR0RNbFZPM3ps
R21IM2N5d2RXQmt4RUY3RUV1YjZmTVEKLS0tIEJSK2ZocWFPUE40OGlBN3I1TCtR
QWhjVGVPMk1LdVNzeCtSYTA5NzQ2d1UKKff/PWU7776PpbUztvJE3X8AnG+CKfW/
l/Ha2puxfpa30d0gD9TeeqiEYFgGAujHinV4NvrsbLrWbia8tM3Ycl+wiCF2fdAh
oerskCiUow212eOXwIUEYKobe/pWjVka6ZOPOrviwVLlwAjMBtF9y+G6M2v/g6nK
lt03ojnwkFLWd8UTJyFKqZeFMlA=
-----END AGE ENCRYPTED FILE-----

View file

@ -1,22 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwekJ1R1Z6M0hLN2pESFBY
NW1BYjFPTjNKMEFaeFJsdWtzK2lnQkl3emdzCitrREJ3RGd4TWh0R25yaDRRd0pi
bDlrbG1ucDV2SXd5NklMeUx3K2F0Z0UKLS0tIDZTUjBYV1Q1TDh4RVJQUzlTUENS
YllMcXlQalVoUkY5VzN6bWJTakt4L2cKlYHzGnnjKZQpZzc7NdjrRsXum2tfcjwk
T45iSastj8gFQLbB3fIElsprJAgCPhu0jcWtbvgiFpESRlmThzP1wWf9DmgDNnHI
68IBPaM4Ru6PWBY6HTMQ4EsyzFrnuKj8ZM/RYF7fjOmKG/K1hYB7+iqwR3tlt1D2
6Cryn5qLU0Ou68nwnsXdFIcPEolVvMX4XsGrSaSnprNVF3hCW9vtYEdjJvIgKNUz
3xX+J3MfGIR+oSfYb6o81aA9F5xS2obbPaBIW04x9ZQ4ik20GiYt+gI2H3QTOp7z
+/Je1HIF2/biWwP7qgdbusAd+XFbwPs4wh/M3XEqiEVcY+MvshmWUbjShjYq0c0e
ySqF+ZPSw0NKg50O+avZeH1LxPXqshr2RHpGDNFGHaJRIKse0W1hNPZ5rj8daJj1
f8eIcfZ4fcIAgci3Je5PZHdErEnhU2LsvTEeGuINdNjiEpV+YqMEhZlKE2h0sdeF
oYRQt8enCCqFEizMTm1CQRcix7WYLx2CCJEbH8jnDlnlJnNRQ4utHA+q8c0ERndz
iDtgbjhktDgNRtXx/gvf9Fu1Jh4fHz2brFTIeuI27hy9OmtcNF5Z2U+86K3QkGyr
Dp3NFQUXlkv5NLDeCACbsqE99BBfczhliVFCeR1WaUtriNbXkzO17KDy7vI7XUwb
+V4OW7y5+2v4UQX4GbhViUSioxIfjil5NHXYIXIhlk2QB50odvbkfhfEboir0+vC
fx1+9SzZB+Krp+/29u+mN357OSRTWMkZephjUCPP42rOqe+WYFBVLQJ60JAHsyye
Vb9ge7FPCHHO7TmzD2a5rWU3u0Mzh5l8x0KoVoaP7PZnmQmFJ8TdRAGaMowH/Ej+
IiHbStLtMqLpRtHMou5+wC+oIJW6mgJCS8m+dJPG522xHpDnTmg3rHRax771i9SP
fpL9OPDcqCQABCU8iTL1K/iisj/1+0sjV3ojBZb6FTk14rrJyCes6BgVU46Yr19T
i52qXa5Pq0i1V4Md72ucws8Y7qaOjkNd/5Zrzy/7qOh7Iuv1fLo=
-----END AGE ENCRYPTED FILE-----

View file

@ -1,22 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzMEJ4N2R4bFlLR1JIdEVO
Vm93M0h3QmE2c05jRG1CaVJXamVrQWVtQVUwCml0b0xWdExQQ2oxd1p0ODBPcnJa
U1RQR080cHI2VGVmUWt2SWxHVGZrREkKLS0tIDdwMTZJWVQrZFFqSlpJT3Q5VDZz
MXJPWGs1enAvUjNmMC9MbitqREVhZzAK5TvmoMNf7PPPYRjTY/ysv6s6ryX8b/eK
6wuJRiWLEYUlB5cZrMRZuJMJF2v/zXdooyglEsd+cLMac0PEYb+RL6Ao9HZR1lS5
ZW482zkYS2WTOey2wp8kcqPeMIybWcbBXc1P9fE5+skLnVmmHicV2kH8ZJ2jksk+
95Mitr+RjUrVhYVP0pY6uNQex3As1OYaipBr/H9/VVM56t1lee8tREnpjWw4V22A
QbwQn0CHZAug1ZUkrERDAdV+1WLpNrtcADyoOGX1j1FG5UzQzEE4K++Al2QOawQL
YoTvEXvHMyz30zmToZmI6hLQWxp6mkYcSMbJVf472v2Nbt8NiGlU6fU6+cnnCQfw
FjykqTF1Lem+yWN+OigBVbSkZFGRMRhgHzdV53Px7qU6uivKbGHXyyp/nL4C1plM
pZnl5JSWt2ukgCKFWQGo+1ccHrUB5dBOJ/G01kmqvIk/eHMd/Qn2WYeMwKz3H7U0
DB7YDGRTo4j2lKjNUuLRf6zPng0jZ/HDXbgyjYU51R7CKS7alqPsa5d24xZ/iWpF
GYCAdMJXTWdqHj60K25F41Ym9B+dB/TUJ4uz+/ylgcoeVsBjESk22OZp1nRbJ+Ak
qC6gGuoZV9aOyrm3M00SlHOlkZzJT8ZElOTXYX4hpydCBZ5UTU9r8sjIsMTWV4FM
3e+tfG0pyF6zgy2q/X21mFBpZCwy8hgRoUHBtqS5n1+DgiFeasZbFB1tTW66Drz4
ojtOCgztU54V0LRZuTJJ7WfNDZ+LBWzbnZZfzACCe9llIkY1BbFMfN5BnCWi0zNW
7v4k+nZ+XfWXsQ3+pvAjsInDwvEcjLke/efiXfHEjQ7avsu4iRfApbEWfOazilax
uRPcvXGK30lZKPuaCPjhNmxZm7oh2+jsXSkrirx+rmTx+sLBqU+NXcDp2iZO8Eq8
ek1MGbyXi9EypJvYMs2eGbHona+YfnvP5ryZBDA8ZAP7qzKLBVrrVUej7NzD3byg
MXxBe8OOjxwhhAB+YK10jegte6SFS2sFIFLEe59kccM0qm40ZJSAOg==
-----END AGE ENCRYPTED FILE-----

View file

@ -1,22 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2SEFzdmNyTWdiSXpIZGhs
T2kxOXpXczc4VE9nWkNFbi9yelJvdmtVOEhVClVaWlZ0dUJLaXhMRCs1dW9MY1Nl
NUpNcGR3WW5vcG1tTCtTOXcwZEt0M1UKLS0tIHhvWDJDTFkzcWd2bjRoRDdzS2hs
RzBLdFZvWlc2VW1OczZOak9YMzlzZmcKARnp+EZvwPa2LvmGeI1EDaaVtroC6SKe
qEhhN3Oq8zX9jEIYJxGU49HHr+V9qS2e3v992alPdstejkuJA1sMBoEzI5UuJFDI
zZ4YUj6tJjzNQiW2L018jYfvywZRbCv55M3y63LTzHMsVIvWRcJYwf5KBDvJXK6g
Bivbxobm41KL6ftMqsPIShQwUmbitdIO2hw7ZxEQc+VXrGZeU2pU5oRSbAXxxY/p
F2OBm/mWfxrcmN7OvhjfQkp52mquK5bYCSBf41hipA+bHhRGajzzhRWuKHqaPB60
d8KEgPIDP673BAhUNH+PLkoar1b7SDX63OsMmHECkS+cdpuuXAIlm1OaTTEb5tUD
+DxXCD5W5jYQAEjNoihXgxRfXFS7ADUtn7m/xoTwAaTScZmJKXfCMFwP2aOdQFa2
eWOFFIo93+rpwFuSHNw2r2mEAd7UD3ctEWkpYfagaVT4kWJFa7aprBmi7hb3IPZa
L7KnnokXWZiVmMEuRz69eqJ5/PWM/097mg03E62bS0KHM5yz4QhD2t3ExwqdfR2g
5EYqDnvY0TtT+mJqW1SRNNOTD69Xrrud/j01GobTrDgkAZf8afUm1NXozgZJh+dl
RFqdyvbYtgmQ9VGuJyPgHlHmiCGgNuMJ6h6Q8xI+fOemvjDVZ0sOa/Upggl2Wi8+
RxbSXSw/SXBH0eOkP2Wi52U8cM6K5Q++YgG8lljYiGSwGqJ87hBSOYJme5qN5UVF
s1e2/OZEixtvtD7wFqZji699ZZwonqXWbP1g8/Wg9oOS0rFKKFpGnprMcbaZp3ac
4ioIpe5xbKyoB5phzWK1L2U6pVD7BdVSbx3S0KNvsvkQ2g9CjrsbkY/7YsKYnZMJ
CLw/paagNm/1RNJTtGi1lz6rPwsYNVE8ilq7QwbTrDUJRQaicywJpyx+uxv0FcA/
5lR1KBvURANX/8g4AOh1tD4nlHCnQXQ1w1miObJaayxuoEzvawhH6gxP3jMcfpXZ
BSZNelSQuTnErxhjtaIiWgM8ITVw7j+WigVZR080Ipl72xLA
-----END AGE ENCRYPTED FILE-----

View file

@ -1,15 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyQVYvNlBnd1VrTXdaOXov
RVV2dTBJWTRwSnIzNkdVUm5mTStNcnFRVW40CmhJNmpaa1NQV2FEd0xBa2RSMGdF
WnhWLzAzMFl5SFJzQ3FwS3dQZWU4NkEKLS0tIDBvWUJiN3BVVy9hc3M1VE9udEpR
OG1Bc1JmRjhYNm1PU2tHL1Vrcmp4WmMKUlnXIK32N1ckGjILWLehf1rBDwzlozWV
WZ6s1JAIFsqswNTDMbrSzK9rho8B5r0blIOz0ik4imtz3NE1kNj3D8F4VnGm0m7M
TljtehOxSXLJbF5S2Gf6G1j9td0t6H6XVLHlUC0qhZkF1H+dHJoBfiGpLLYxp569
V3B8XItIpmA1oJHNTcV7HZBbdZchR/jQTUBhogmwIWU5RVPwofoIiq/ID3ack9ZZ
4YhDgjqi9fjkdxQUChjS4Sl4bekWrafuGjKZixWGofV7nlYHMNWsI5x3Y0Y60lWD
WEZbSzwq4NgtRS4l/8G1F3In40OM5/TbbVIJYzmiwkisNw0kCApeb7EOtsDsTTxx
lu9lxUbORXUelVrmcyjmllqQJ8QsNnUnAdXlQ6WeLa4UaA4xRXEHZ1es2pAMMTm9
S0RXa3ZGXHwCmaU2Qz5JgDhmnRXfTsfMnv+jjtV1xohgT1Pkwv3uOLmgCnT4K4IH
lMGfIlwcTVtS+6tDJcOW4CbRET1hhXDXR+o6FzTGNSzQE5YuO8wCEoAZ3P/9aKQC
vT7ni7KA7WwJEWXTbw+cTy/qZa2b8vPTPKOFhdKXHyD5ArRj2yUKcOwdIQ==
-----END AGE ENCRYPTED FILE-----

View file

@ -1,77 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2dTJtOXhNTXRJSW5XaVk2
cVFrZlg1bkEvWk0zMEpVTnVIQXZtYWhlRmdVCkFOTDljY3l3dVF6eitzTTZEYk9T
L2V6cWJPQnRnaGRMMkI4Q0I4K1M2bFkKLS0tIEpDQ2hKYWVPS3hvbkt3NDJuTmpa
ZXgwa24wODVLZE1IRENYTXd4SGdXdVEK/4D4Bobna1iIX2ot9uMiyO4hE4mhs9mU
QK691AjAnY0DnOC7P+ZCjMFnA3PphfwXI5AEPMYW/hq0wpNjRZfhZm2vDT/IkSjR
H2knv/AW5WwERu2HxIHETGoQQlrAm+NANeca+OWF3+OFkO1+Mpsu5Dfyr3Txmz9Z
yG8INKwmunU5SqtdpRCg/YQmwylA6Nmmw8fjFREWD+eLxvuDmUYIGBUOfetrP78l
h1Vanx9zhj85J89qAkLFaQ8uZy7NezgIUe81L7+QY98H2wwnc279tvnv/vc3QLc1
hwH9D5Pdrq6KUNBv1pG5hItLbh1yY3ho5/vMWIMXHw5LxQsE2nLHkvXGhZXN8YyM
bR0BWMH6n1w5KQHR8nnHCuJsCuFC7KUoXAwaljbbbv/xO/+uAihJu3/2RrgMgA+y
dOUtNkl9VrvXll5frAAijZzgd/JgQk3OrJGlpCxamcbPjvKok8aYfqeJa+MVr3lU
akc7lJpBE54rsHw+wR844rgdve4x5z3sSQ1sMmThVu2VvDw+SqKGbcgSu0sdARgz
c/ktCxSbC3x6j2sVv4Eie+1mtkfky9pX6GKzfvrGb6sLXtHL+nwli1F3ahP3TNK3
7y8+57Ob6/XSGfxGdRe0ylMSXPCQ7NiU8fQAKyY92larkKpBZJfaoyrYwbPmTnPP
W2Y1WtXecKKvE6S0GToMOqKkESJQhQNj57zBSGF+CjPTtuKN/WafwQy2sL9H+XxJ
JLLh4DVfdcnbmz6Kh/+hcGQbpwHcW0Lm1ZOAi+VKgCe45oaUWM5h/D7xb6C4SbAh
IXlPewrk+6TqSUSoK4GLYEaFEC4i5x+1HlouNDHSoFacMrbEgZ3KooK+/+Rcsr1J
L4j1AG6EAaxd39XtffA3a4GsgcoeXmekg5V9b/MwwmXOTjdrq5cJCU5izrQFuFEw
faTi3OgQJJDLiKbaFNzLhfD6bf9gprKFDtjr/wLE7fxHGywPG6QDFo2ARQKfYiSd
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
-----END AGE ENCRYPTED FILE-----

View file

@ -1,22 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwekJ1R1Z6M0hLN2pESFBY
NW1BYjFPTjNKMEFaeFJsdWtzK2lnQkl3emdzCitrREJ3RGd4TWh0R25yaDRRd0pi
bDlrbG1ucDV2SXd5NklMeUx3K2F0Z0UKLS0tIDZTUjBYV1Q1TDh4RVJQUzlTUENS
YllMcXlQalVoUkY5VzN6bWJTakt4L2cKlYHzGnnjKZQpZzc7NdjrRsXum2tfcjwk
T45iSastj8gFQLbB3fIElsprJAgCPhu0jcWtbvgiFpESRlmThzP1wWf9DmgDNnHI
68IBPaM4Ru6PWBY6HTMQ4EsyzFrnuKj8ZM/RYF7fjOmKG/K1hYB7+iqwR3tlt1D2
6Cryn5qLU0Ou68nwnsXdFIcPEolVvMX4XsGrSaSnprNVF3hCW9vtYEdjJvIgKNUz
3xX+J3MfGIR+oSfYb6o81aA9F5xS2obbPaBIW04x9ZQ4ik20GiYt+gI2H3QTOp7z
+/Je1HIF2/biWwP7qgdbusAd+XFbwPs4wh/M3XEqiEVcY+MvshmWUbjShjYq0c0e
ySqF+ZPSw0NKg50O+avZeH1LxPXqshr2RHpGDNFGHaJRIKse0W1hNPZ5rj8daJj1
f8eIcfZ4fcIAgci3Je5PZHdErEnhU2LsvTEeGuINdNjiEpV+YqMEhZlKE2h0sdeF
oYRQt8enCCqFEizMTm1CQRcix7WYLx2CCJEbH8jnDlnlJnNRQ4utHA+q8c0ERndz
iDtgbjhktDgNRtXx/gvf9Fu1Jh4fHz2brFTIeuI27hy9OmtcNF5Z2U+86K3QkGyr
Dp3NFQUXlkv5NLDeCACbsqE99BBfczhliVFCeR1WaUtriNbXkzO17KDy7vI7XUwb
+V4OW7y5+2v4UQX4GbhViUSioxIfjil5NHXYIXIhlk2QB50odvbkfhfEboir0+vC
fx1+9SzZB+Krp+/29u+mN357OSRTWMkZephjUCPP42rOqe+WYFBVLQJ60JAHsyye
Vb9ge7FPCHHO7TmzD2a5rWU3u0Mzh5l8x0KoVoaP7PZnmQmFJ8TdRAGaMowH/Ej+
IiHbStLtMqLpRtHMou5+wC+oIJW6mgJCS8m+dJPG522xHpDnTmg3rHRax771i9SP
fpL9OPDcqCQABCU8iTL1K/iisj/1+0sjV3ojBZb6FTk14rrJyCes6BgVU46Yr19T
i52qXa5Pq0i1V4Md72ucws8Y7qaOjkNd/5Zrzy/7qOh7Iuv1fLo=
-----END AGE ENCRYPTED FILE-----

View file

@ -1,77 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2dTJtOXhNTXRJSW5XaVk2
cVFrZlg1bkEvWk0zMEpVTnVIQXZtYWhlRmdVCkFOTDljY3l3dVF6eitzTTZEYk9T
L2V6cWJPQnRnaGRMMkI4Q0I4K1M2bFkKLS0tIEpDQ2hKYWVPS3hvbkt3NDJuTmpa
ZXgwa24wODVLZE1IRENYTXd4SGdXdVEK/4D4Bobna1iIX2ot9uMiyO4hE4mhs9mU
QK691AjAnY0DnOC7P+ZCjMFnA3PphfwXI5AEPMYW/hq0wpNjRZfhZm2vDT/IkSjR
H2knv/AW5WwERu2HxIHETGoQQlrAm+NANeca+OWF3+OFkO1+Mpsu5Dfyr3Txmz9Z
yG8INKwmunU5SqtdpRCg/YQmwylA6Nmmw8fjFREWD+eLxvuDmUYIGBUOfetrP78l
h1Vanx9zhj85J89qAkLFaQ8uZy7NezgIUe81L7+QY98H2wwnc279tvnv/vc3QLc1
hwH9D5Pdrq6KUNBv1pG5hItLbh1yY3ho5/vMWIMXHw5LxQsE2nLHkvXGhZXN8YyM
bR0BWMH6n1w5KQHR8nnHCuJsCuFC7KUoXAwaljbbbv/xO/+uAihJu3/2RrgMgA+y
dOUtNkl9VrvXll5frAAijZzgd/JgQk3OrJGlpCxamcbPjvKok8aYfqeJa+MVr3lU
akc7lJpBE54rsHw+wR844rgdve4x5z3sSQ1sMmThVu2VvDw+SqKGbcgSu0sdARgz
c/ktCxSbC3x6j2sVv4Eie+1mtkfky9pX6GKzfvrGb6sLXtHL+nwli1F3ahP3TNK3
7y8+57Ob6/XSGfxGdRe0ylMSXPCQ7NiU8fQAKyY92larkKpBZJfaoyrYwbPmTnPP
W2Y1WtXecKKvE6S0GToMOqKkESJQhQNj57zBSGF+CjPTtuKN/WafwQy2sL9H+XxJ
JLLh4DVfdcnbmz6Kh/+hcGQbpwHcW0Lm1ZOAi+VKgCe45oaUWM5h/D7xb6C4SbAh
IXlPewrk+6TqSUSoK4GLYEaFEC4i5x+1HlouNDHSoFacMrbEgZ3KooK+/+Rcsr1J
L4j1AG6EAaxd39XtffA3a4GsgcoeXmekg5V9b/MwwmXOTjdrq5cJCU5izrQFuFEw
faTi3OgQJJDLiKbaFNzLhfD6bf9gprKFDtjr/wLE7fxHGywPG6QDFo2ARQKfYiSd
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
-----END AGE ENCRYPTED FILE-----

View file

@ -1,74 +0,0 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4aVhyNDdpNERyeS9nYkRG
STB2YUV4Rm8yL1VJRGVYZW11MW1iWXlmdWk0CmJWeUNlcEdlNVhMKzduZFNCSFpo
U1lJVzlKZ09OU0lmdytLZ0FtVzZCd2sKLS0tIG5IM0tzclJuTDVWYWVYak9JL3kx
emYwZEhpNTdlbkRyc2VadEtQbGpvZ2MKIfg4lE/XfD3NVUr+q7KfPUL0mxMxf6Jr
vMSe3nySaXOeHep5HCCFNzIW3UUk+sZml0Y3nZNlIm5ZTCbzG0nCT+R4aYzwFUmq
W22IlXNlTd+4KuGS0UODztBivY4dU2LkKsAZFboYD7RYxhKShSygab9TkJJ18tEU
O8Oqewnh4t7cnos0NegazQ0bWcv9k1SFT3AfovBRIqMfBKbn6Lufgy3k5qLPWOs3
GuWEtr8lHVeHiFo+g3WrKUc1AEXsYAIyO+0ry05VG0svVAD9krTxCyB0x55cymuy
hSWPNpu0+7cXIsMAwO6EM7TQgM/CDhYDcXu84Kz7iZp1N0QY7X0q7nvc6w/mNRnd
XxezMgJSGFhZ9tktWwbEG5hbzk+BtccLnjLvzr939U5HjoALh+SEu3HJmslpifmr
AHiRxV3/XKTbJDhHqCEXkWiR3m38czIkJrtvOp3VxCUEBXl+xu4kDBu57/0tZqmq
DHo87J3Jj+TmvJqRly4xM+Q2aHfzCxGFMNriSEvAvlMTXBnklFEoSQM+1VR33sVQ
eeisQzwgi9koAwilM+zUbYjcQaZ4AUneUdYUcz6V1gEkSDG8RWBelywmDsSX5srj
r1tvEG95poNOYD/mXRyG9DEUG4RBdzrrAr2/NTEYOrsPATabp/HCdqnmld0nHvkl
LTizBKa1JeQ7Ldw5zoyS5qqzVV/xG0Gs5f6pyLc/oMLV21De5Ypt7i4+Oipxm1mE
gf9eJKjFd1TcfwqiWr549q7sot1ZMCyInutEmNk+c8KlfBDGal1OcvoQaBlMWbus
ozd3hEGOLdwn/PmgGKg3nLOl3HrXYOd+v72zSb0ke1pnpdL0F1QdmL5l+qaJ3VHS
ynFX1Lv/Se9lswktB2z0zjXXpw7qxvv2aP9kEy8vmJbYeYUuYgSczB1CO5VYHTcD
OVoGYj/ACICqDzRaAnAtLjiK+O+3PVAAe2Gwf/qe5KWDTryh/bjNzw4RQdpaipms
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
-----END AGE ENCRYPTED FILE-----

View file

@ -1,49 +0,0 @@
### Modules ###
# Sets sane Zsh built-in environment options.
zmodule environment
# Provides handy git aliases and functions.
zmodule git
# Applies correct bindkeys for input events.
zmodule input
# Sets a custom terminal title.
zmodule termtitle
# Utility aliases and functions. Adds colour to ls, grep and less.
zmodule utility
### Prompt ###
# Exposes to prompts how long the last command took to execute, used by asciiship.
zmodule duration-info
# Exposes git repository status information to prompts, used by asciiship.
zmodule git-info
# A heavily reduced, ASCII-only version of the Spaceship and Starship prompts.
zmodule asciiship
### Completion ###
# Additional completion definitions for Zsh.
zmodule zsh-users/zsh-completions --fpath src
# Enables and configures smart and extensive tab completion.
# completion must be sourced after all modules that add completion definitions.
zmodule completion
### Modules that must be initialized last ###
# Fish-like syntax highlighting for Zsh.
# zsh-users/zsh-syntax-highlighting must be sourced after completion
zmodule zsh-users/zsh-syntax-highlighting
# Fish-like history search (up arrow) for Zsh.
# zsh-users/zsh-history-substring-search must be sourced after zsh-users/zsh-syntax-highlighting
zmodule zsh-users/zsh-history-substring-search
# Fish-like autosuggestions for Zsh.
zmodule zsh-users/zsh-autosuggestions

View file

@ -1,52 +0,0 @@
#!/bin/sh
set -e
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
eval "$(/opt/homebrew/bin/brew shellenv)"
brew install \
age \
bzip2 \
cmus \
curl \
direnv \
fzf \
gh \
git \
git-delta \
glow \
helix \
jj \
kitty \
marksman \
nvm \
presenterm \
ripgrep \
sqlite \
tree \
watch \
wget \
xz \
yazi \
zellij \
zk \
zlib
brew install --cask \
kap
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"
nvm install 22
nvm use 22
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install --force --python python3.12 aider-chat@latest
{{ if eq .hosttype "personal" -}}
brew install \
mingw-w64 \
pandoc
{{ else if eq .hosttype "work" -}}
{{ join .chezmoi.sourceDir "encrypted_dot_work_packages.age" | include | decrypt -}}
{{ end }}

View file

@ -1,9 +0,0 @@
#!/bin/sh
set -e
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o /tmp/rustup.sh
chmod u+x /tmp/rustup.sh
/tmp/rustup.sh -y --no-modify-path
. $HOME/.cargo/env
rustup update stable

View file

@ -1,13 +0,0 @@
#!/bin/sh
set -e
if [ ! -d $HOME/.src/gwar ] ; then
git clone ssh://git@pingo.thermokar.st/gwar $HOME/.src/gwar
fi
cd $HOME/.src/gwar
# belt-and-suspenders
. $HOME/.cargo/env
cargo build --release
cp target/release/gwar ~/bin

15
install Executable file
View file

@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -e
CONFIG="install.conf.yaml"
DOTBOT_DIR="dotbot"
DOTBOT_BIN="bin/dotbot"
BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "${BASEDIR}"
git -C "${DOTBOT_DIR}" submodule sync --quiet --recursive
git submodule update --init --recursive "${DOTBOT_DIR}"
"${BASEDIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${BASEDIR}" -c "${CONFIG}" "${@}"

41
install.conf.yaml Normal file
View file

@ -0,0 +1,41 @@
- clean:
- '~'
- create:
- ~/projects/qiime2
- ~/projects/qiime2/data/moving-pictures
- ~/projects/mds
- ~/projects/personal
- ~/desk
- ~/files
- link:
~/.tmux.conf: tmux.conf
~/.gitconfig: git/gitconfig
~/.gitignore_global: git/gitignore_global
~/.npmrc: npmrc
~/.psqlrc: psqlrc
~/.vimrc: vimrc
~/.zpreztorc: zsh/zpreztorc
~/.zlogin: zsh/zlogin
~/.zlogout: zsh/zlogout
~/.zprofile: zsh/zprofile
~/.zshenv: zsh/zshenv
~/.zshrc: zsh/zshrc
~/Library/Application Support/Code/User/settings.json:
create: true
path: vscode/settings.json
~/Library/Application Support/Code/User/keybindings.json:
create: true
path: vscode/keybindings.json
~/Library/Application Support/Code/User/tasks.json:
create: true
path: vscode/tasks.json
~/qiime2-1.code-workspace: vscode/qiime2-1.code-workspace
~/qiime2-2.code-workspace: vscode/qiime2-2.code-workspace
~/qiime2-3.code-workspace: vscode/qiime2-3.code-workspace
~/mds.code-workspace: vscode/mds.code-workspace
~/personal.code-workspace: vscode/personal.code-workspace
~/.config/kak/kakrc:
create: true
path: kakrc

36
kakrc Normal file
View file

@ -0,0 +1,36 @@
# inspired by https://gist.github.com/daboross/ce6a5a9f8d14bd4974c5f43b90dfdfaa
# line numbers
add-highlighter global/ number-lines
# TODO: do I _have_ to use rgb here?
set-face global LineNumbers rgb:707070,default
# helper popups
set -add global autoinfo normal
set global ui_options ncurses_assistant=off
set global autowrap_fmtcmd 'fmt -w %c'
# global: wrap to 100 characters (unless FT override, below)
add-highlighter global/ wrap -width 101 -indent -word
set global autowrap_column 101
# global: 4 space indents (unless FT override, below)
set global tabstop 4
hook global InsertChar \t %{ exec -draft -itersel h@ } -group kakrc-replace-tabs-with-spaces
#### FT overrides ####
hook global WinSetOption filetype=rust %{
set buffer formatcmd 'rustfmt'
set buffer tabstop 4
set buffer indentwidth 4
add-highlighter buffer/ wrap -word -width 120
set buffer autowrap_column 120
}
hook global WinSetOption filetype=python %{
set buffer tabstop 4
set buffer indentwidth 4
add-highlighter buffer/ wrap -word -width 79
set buffer autowrap_column 79
}

44
mouse.xml Normal file
View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<data>
<vid>1390</vid>
<pid>254</pid>
<select_profile>0</select_profile>
<profile>
<profname>default</profname>
<lbutton>1</lbutton>
<rbutton>2</rbutton>
<tbutton>5</tbutton>
<button4>41</button4>
<button5>41</button5>
<tiltleft>39</tiltleft>
<tiltright>40</tiltright>
<scrolls>5</scrolls>
<hlotate>5</hlotate>
<hspeed>5</hspeed>
<hcount>1</hcount>
<button6>33</button6>
<button7>34</button7>
<button8>36</button8>
<lbutton_etcKey_key1>0</lbutton_etcKey_key1>
<lbutton_etcKey_key2>0</lbutton_etcKey_key2>
<rbutton_etcKey_key1>0</rbutton_etcKey_key1>
<rbutton_etcKey_key2>0</rbutton_etcKey_key2>
<tbutton_etcKey_key1>0</tbutton_etcKey_key1>
<tbutton_etcKey_key2>0</tbutton_etcKey_key2>
<button4_etcKey_key1>1</button4_etcKey_key1>
<button4_etcKey_key2>73</button4_etcKey_key2>
<button5_etcKey_key1>1</button5_etcKey_key1>
<button5_etcKey_key2>72</button5_etcKey_key2>
<tiltleft_etcKey_key1>0</tiltleft_etcKey_key1>
<tiltleft_etcKey_key2>0</tiltleft_etcKey_key2>
<tiltright_etcKey_key1>0</tiltright_etcKey_key1>
<tiltright_etcKey_key2>0</tiltright_etcKey_key2>
<button6_etcKey_key1>0</button6_etcKey_key1>
<button6_etcKey_key2>0</button6_etcKey_key2>
<button7_etcKey_key1>0</button7_etcKey_key1>
<button7_etcKey_key2>0</button7_etcKey_key2>
<button8_etcKey_key1>0</button8_etcKey_key1>
<button8_etcKey_key2>0</button8_etcKey_key2>
<dispGesture>1</dispGesture>
</profile>
</data>

1
npmrc Normal file
View file

@ -0,0 +1 @@
prefix=~/.npm-packages

24
rsync_excludes.txt Normal file
View file

@ -0,0 +1,24 @@
- .DS_Store
- venv
- node_modules
- __pycache__
- *.pyc
- Applications/
- Library/
- miniconda3/
- tmp/
- .cache/
- .npm/
- .Trash/
- .cpan/
- .nvim/plugged/
- .vim/plugged/
- .conda/
- .mail/
- .dropbox/
- .wine/
- .cisco/
- .fzf/
- .local/
- .zprezto/
- .conda-bld/

44
tmux.conf Normal file
View file

@ -0,0 +1,44 @@
setw -g automatic-rename
set-option -g default-shell /bin/zsh
set -g default-command "reattach-to-user-namespace -l ${SHELL}"
set -g default-terminal "screen-256color"
set -g prefix C-a
unbind C-b
bind C-a last-window
unbind r
bind r source-file ~/.tmux.conf
set -g base-index 1
bind c new-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"
set-window-option -g mode-keys vi
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
set-option -g status-bg colour18
set-option -g status-fg colour136
set -g status-justify centre
set -g status-left-length 50
set -g status-right-length 140
set -g status-left '#[fg=green]#H#[default] session:#S'
set -g status-right '#[fg=white,bg=default]%a %l:%M:%S %p#[default] #[fg=blue]%Y-%m-%d'
set-option -g renumber-windows on
set -sg escape-time 0
set-option -g destroy-unattached 'off'
# Enable mouse control (clickable windows, panes, resizable panes)
set -g mouse on
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel
bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel 'reattach-to-user-namespace pbcopy'
bind-key p paste-buffer

61
vimrc Normal file
View file

@ -0,0 +1,61 @@
" filetype support provides filetype-specific indenting, syntax highlighting,
" omni-completion and other useful settings.
filetype plugin indent on
syntax on
" built-in plugin, `%` to jump to condition branch
runtime macros/matchit.vim
let mapleader=" "
set autoindent
set backspace=indent,eol,start
set hidden
set incsearch
set ruler
set wildmenu
set number
set list
set listchars=tab:▸\ ,extends:>,precedes:<,trail:~
set cursorline
set colorcolumn=80
set backup
set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp
set backupskip=/tmp/*,/private/tmp/*
set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp
set writebackup
set expandtab
set updatetime=200
nnoremap <silent> [b :bprevious<CR>
nnoremap <silent> ]b :bnext<CR>
nnoremap <silent> [B :bfirst<CR>
nnoremap <silent> ]B :blast<CR>
call plug#begin('~/.vim/plugged')
Plug 'airblade/vim-gitgutter'
Plug 'chriskempson/base16-vim'
Plug 'ntpeters/vim-better-whitespace'
Plug 'sheerun/vim-polyglot'
Plug 'tpope/vim-vinegar'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'wakatime/vim-wakatime'
call plug#end()
" for Plug 'chriskempson/base16-vim'
let base16colorspace=256
source ~/.vimrc_background
" for Plug 'ntpeters/vim-better-whitespace'
let g:better_whitespace_enabled=1
let g:strip_whitespace_on_save=1
" for Plug 'vim-airline/vim-airline'
set laststatus=2
let g:airline#extensions#tabline#enabled=1
let g:airline#extensions#tabline#fnamemod=':t'
" for Plug 'vim-airline/vim-airline-themes'
let g:airline_theme='base16'

11
vscode/keybindings.json Normal file
View file

@ -0,0 +1,11 @@
[
{
"key": "ctrl+w k",
"command": "workbench.action.focusActiveEditorGroup",
"when": "!editorFocus"
},
{
"key": "cmd+m",
"command": "workbench.action.toggleMaximizedPanel"
},
]

32
vscode/mds.code-workspace Normal file
View file

@ -0,0 +1,32 @@
{
"folders": [
{
"name": "ccdb-api",
"path": "/Users/matthew/projects/mds/ccdb-api"
},
{
"name": "ccdb-web",
"path": "/Users/matthew/projects/mds/ccdb-web"
},
{
"name": "dotfiles",
"path": "/Users/matthew/.dotfiles"
},
{
"name": "fathm",
"path": "/Users/matthew/projects/mds/fathm"
},
{
"name": "hibernators",
"path": "/Users/matthew/projects/mds/hibernators"
},
{
"name": "hibernators-web",
"path": "/Users/matthew/projects/mds/hibernators-web"
},
{
"name": "tucotuco",
"path": "/Users/matthew/projects/mds/tucotuco"
}
]
}

View file

@ -0,0 +1,12 @@
{
"folders": [
{
"name": "dotfiles",
"path": "/Users/matthew/.dotfiles"
},
{
"name": "elixir-class",
"path": "/Users/matthew/projects/personal/elixir-class"
}
]
}

Some files were not shown because too many files have changed in this diff Show more