Compare commits
1 commit
| Author | SHA1 | Date | |
|---|---|---|---|
| 29580c89e5 |
121 changed files with 1750 additions and 5558 deletions
|
|
@ -1 +0,0 @@
|
||||||
home
|
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -107,5 +107,3 @@ dmypy.json
|
||||||
.pyre/
|
.pyre/
|
||||||
|
|
||||||
# End of https://www.gitignore.io/api/python
|
# End of https://www.gitignore.io/api/python
|
||||||
|
|
||||||
step.log
|
|
||||||
|
|
|
||||||
4
.gitmodules
vendored
Normal file
4
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
[submodule "dotbot"]
|
||||||
|
path = dotbot
|
||||||
|
url = https://github.com/anishathalye/dotbot
|
||||||
|
ignore = dirty
|
||||||
104
README.md
104
README.md
|
|
@ -1,34 +1,92 @@
|
||||||
# dotfiles
|
# dotfiles
|
||||||
|
|
||||||
## 1. set the fqdn:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo scutil --set HostName $MY_HOSTNAME.local
|
$ git clone https://github.com/thermokarst/dotfiles.git ~/.dotfiles
|
||||||
sudo scutil --set LocalHostName $MY_HOSTNAME
|
$ cd ~/.dotfiles
|
||||||
sudo scutil --set ComputerName $MY_HOSTNAME
|
$ git remote rename origin thermokarst
|
||||||
dscacheutil -flushcache
|
$ 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
|
```bash
|
||||||
sh -c "$(curl -fsLS get.chezmoi.io)" -- \
|
$ code --install-extension AndrsDC.base16-themes
|
||||||
init \
|
$ code --install-extension ecmel.vscode-html-css
|
||||||
git://git.thermokar.st/thermokarst/dotfiles \
|
$ code --install-extension formulahendry.auto-close-tag
|
||||||
--apply \
|
$ code --install-extension hollowtree.vue-snippets
|
||||||
--guess-repo-url=false
|
$ code --install-extension JakeBecker.elixir-ls
|
||||||
```
|
$ code --install-extension karigari.chat
|
||||||
|
$ code --install-extension lextudio.restructuredtext
|
||||||
## 6. restart shell
|
$ code --install-extension ms-python.python
|
||||||
|
$ code --install-extension ms-vscode.Go
|
||||||
## 7. some "manual" stuff:
|
$ code --install-extension ms-vsliveshare.vsliveshare
|
||||||
|
$ code --install-extension redhat.vscode-yaml
|
||||||
```bash
|
$ code --install-extension vscodevim.vim
|
||||||
vdirsyncer discover my_cals
|
$ code --install-extension wakatime.vscode-wakatime
|
||||||
```
|
```
|
||||||
|
|
|
||||||
54
bin/bootstrap_git_repos.py
Normal file
54
bin/bootstrap_git_repos.py
Normal 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', [])
|
||||||
57
bin/generate_vscode_workspaces.py
Normal file
57
bin/generate_vscode_workspaces.py
Normal 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
10
bin/mds_projects.py
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
PROJECTS = {
|
||||||
|
'thermokarst': [
|
||||||
|
'ccdb-api',
|
||||||
|
'ccdb-web',
|
||||||
|
'tucotuco',
|
||||||
|
'fathm',
|
||||||
|
'hibernators',
|
||||||
|
'hibernators-web',
|
||||||
|
],
|
||||||
|
}
|
||||||
5
bin/personal_projects.py
Normal file
5
bin/personal_projects.py
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
PROJECTS = {
|
||||||
|
'thermokarst': [
|
||||||
|
'elixir-class',
|
||||||
|
],
|
||||||
|
}
|
||||||
79
bin/qiime2_projects.py
Normal file
79
bin/qiime2_projects.py
Normal 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',
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -1,66 +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 = [
|
|
||||||
"copilot-proxy",
|
|
||||||
"devlog",
|
|
||||||
"dsort",
|
|
||||||
"gitolite-admin",
|
|
||||||
"gpx-web-utils",
|
|
||||||
"gwar",
|
|
||||||
"leaving-hope",
|
|
||||||
"llm-copilot",
|
|
||||||
"markdone",
|
|
||||||
"mini-lsm",
|
|
||||||
"pingo",
|
|
||||||
"talent-plan",
|
|
||||||
"trmnl-report",
|
|
||||||
]
|
|
||||||
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
1
dotbot
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 5d83f9e797b1950199e127a8196803f5e33e0916
|
||||||
|
|
@ -1,18 +1,9 @@
|
||||||
[user]
|
[user]
|
||||||
name = {{ .name }}
|
name = Matthew Dillon
|
||||||
{{- if eq .hosttype "work" }}
|
email = matthewrdillon@gmail.com
|
||||||
email = {{ .email_work }}
|
|
||||||
{{- else }}
|
|
||||||
email = {{ .email_personal }}
|
|
||||||
{{- end }}
|
|
||||||
[core]
|
[core]
|
||||||
editor = hx
|
editor = vim
|
||||||
excludesFiles = ~/.config/git/ignore
|
excludesfile = /Users/matthew/.gitignore_global
|
||||||
{{ if eq .hosttype "work" }}
|
|
||||||
sshCommand = "ssh -i ~/.ssh/id_rsa_work"
|
|
||||||
{{ end }}
|
|
||||||
[diff]
|
|
||||||
colorMoved = default
|
|
||||||
[color]
|
[color]
|
||||||
diff = auto
|
diff = auto
|
||||||
status = auto
|
status = auto
|
||||||
|
|
@ -23,9 +14,12 @@
|
||||||
auto = 1
|
auto = 1
|
||||||
[merge]
|
[merge]
|
||||||
summary = true
|
summary = true
|
||||||
|
tool = vimdiff
|
||||||
conflictstyle = diff3
|
conflictstyle = diff3
|
||||||
prompt = false
|
prompt = false
|
||||||
[alias]
|
[alias]
|
||||||
|
unstage = reset HEAD
|
||||||
|
uncommit = reset --soft HEAD^
|
||||||
# http://stackoverflow.com/a/9074343
|
# http://stackoverflow.com/a/9074343
|
||||||
lg1 = log \
|
lg1 = log \
|
||||||
--graph \
|
--graph \
|
||||||
|
|
@ -44,29 +38,19 @@
|
||||||
a = add
|
a = add
|
||||||
c = commit --verbose
|
c = commit --verbose
|
||||||
ca = commit -a --verbose
|
ca = commit -a --verbose
|
||||||
|
m = commit --amend --verbose
|
||||||
d = diff
|
d = diff
|
||||||
|
dc = diff --cached
|
||||||
s = status -s
|
s = status -s
|
||||||
sw = switch
|
co = checkout
|
||||||
swc = switch -c
|
cob = checkout -b
|
||||||
# list branches sorted by last modified
|
# 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/--'"
|
b = "!git for-each-ref --sort='-authordate' --format='%(authordate)%09%(objectname:short)%09%(refname)' refs/heads | sed -e 's-refs/heads/--'"
|
||||||
# list aliases
|
# list aliases
|
||||||
la = "!git config -l | grep alias | cut -c 7-"
|
la = "!git config -l | grep alias | cut -c 7-"
|
||||||
|
[push]
|
||||||
|
default = upstream
|
||||||
|
[credential]
|
||||||
|
helper = osxkeychain
|
||||||
[pull]
|
[pull]
|
||||||
rebase = true
|
rebase = true
|
||||||
[init]
|
|
||||||
defaultBranch = main
|
|
||||||
|
|
||||||
{{ if eq .hosttype "work" -}}
|
|
||||||
[includeIf "gitdir:~/projects/personal/"]
|
|
||||||
path = ~/.gitconfig-personal-override
|
|
||||||
|
|
||||||
[includeIf "gitdir:~/.local/share/chezmoi/"]
|
|
||||||
path = ~/.gitconfig-personal-override
|
|
||||||
|
|
||||||
[includeIf "gitdir:~/.local/share/tree-sitter-prr/"]
|
|
||||||
path = ~/.gitconfig-personal-override
|
|
||||||
|
|
||||||
[includeIf "gitdir:~/notebook/"]
|
|
||||||
path = ~/.gitconfig-personal-override
|
|
||||||
{{- end }}
|
|
||||||
4
git/gitignore_global
Normal file
4
git/gitignore_global
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
*~
|
||||||
|
.DS_Store
|
||||||
|
.idea
|
||||||
|
.vscode
|
||||||
|
|
@ -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 }}
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
[".local/share/tree-sitter-prr"]
|
|
||||||
type = "git-repo"
|
|
||||||
url = "ssh://git@git.thermokar.st/thermokarst/tree-sitter-prr.git"
|
|
||||||
refreshPeriod = "168h"
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{{- if eq .hosttype "work" }}
|
|
||||||
.zshprivate
|
|
||||||
{{- end }}
|
|
||||||
{{- if eq .hosttype "personal" }}
|
|
||||||
.apprc
|
|
||||||
.s2a_login
|
|
||||||
.work_packages
|
|
||||||
.work_paths
|
|
||||||
.zshwork
|
|
||||||
{{- end }}
|
|
||||||
|
|
@ -1,96 +0,0 @@
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJVGExVmpSUzJwYjNiU0Fy
|
|
||||||
RTU3eUE1TXFHdlovMGs1Tmg5ZFgxZDh0M1E0CjV0NnVXQXJ1aHVTaG1CQUlxWkxG
|
|
||||||
c3cwa3VpMHNPOVJTWmpUNlRQbXJGKzQKLS0tIDRtazR5QjBmM2IrbEFZaTB4VlFy
|
|
||||||
MStHc2c0azFwVmVXNkFoSUJ0QUdXYWMKg+edrwx7oCNcMlJWJ0kbYUFVXO9IzzXU
|
|
||||||
xVa2EnXYscPyLgikrkVH61mOZZlnikIjzRdrKvebyszm71novi9wvbjVXf6sz7pf
|
|
||||||
QfKiEeZxSiWn8O1HZWHyrIgZW8QLS3nhvqr9rD2VFI9Yn6cGuxtzCEAouShytRlY
|
|
||||||
MNieznSyyc6nqKzQgCv2+prY0+NqjAvybkMavLLaQhcpaUkEcGGhM1fYWP4A4UiC
|
|
||||||
AFTAvURFhNq/m2GCLnkwpWpesIQJEDF1cKkNX/tqc7wCgEAeLPLHYKuRPIexSnt0
|
|
||||||
vCNKX79b9PHVtKhVCkM5sw7gFKKkhyizNPkyq4JzcOK5itoLfkLu1fo2JryOH8gA
|
|
||||||
bYFEU5/2cqN4e+JlMZEVXszbl97iT4JkGN1K9FxpDuDYaz8PGK/s6vk2E5GQYCsO
|
|
||||||
/CAnIAywUACboTQ95+b7UJhbM1Fgu8Ug6ANqBYDt4eDleslFwNyUgjuncPCGNL+r
|
|
||||||
pxbLJblC7k2jctQQSYCdIhuYi5NtdCxeN2L+qrfRab3Pv3vJrbofA6mLEgpc3soc
|
|
||||||
jBmXgw7ieI/GmFZFp78kmHmvRIlRSp7IGY0rxjOOq1IftzYOAEgk7ZcvbWFwZgLp
|
|
||||||
FsGRkNTIw4/MHo8vQZ4oV70wNWyPTsQ/DDOUpsDeeBsIwnmft5+Sd3XMfLvQarJN
|
|
||||||
8nnPIOxqwluqhozXr3ZIloOQrVXLQqzkCFhDdYdjkzhWAPxfX8pCsIYvO4D6I/Lu
|
|
||||||
JNLqLQBVEZnopoWD1Km1r2VQ6HXrrvltcWb90Wz2yT/OJkmsmCrDuEEayoxwMvHj
|
|
||||||
v5NRMxfUktayPqYfycM+QAMgiZj3yt3LRwKgDZHHRDCI2paX5CXj/qXVdK6eslsk
|
|
||||||
hlG4D5rnzzu5G5G1vyZGTMDZrtl7JED+QAhnePfEjqTARmBw0ho3FSpU5hIVnCfv
|
|
||||||
hbWhZMmiO/NVWdXGckovctSvE+XGfU7p4GyC3kbpq57B+zp8PFZDligifzuvOC0M
|
|
||||||
Rj1dGLcw5NBgElAZGTBcvNMVu6uPgyQMTo45Z7zJn5rvZ1KTXLg7hy/4NGAsVOx8
|
|
||||||
1fTW2FhU3jfirt42wJXMUtNk6rFHXIFvOILdo/7Jz9M8ucraA47LcoJJaPyroo+4
|
|
||||||
UheBMcY8jWggVxEEKGBBn6QtWw2SIwxU50rSTH0BMJBxtkoVQ6LkNRqyRI9J6Fq7
|
|
||||||
L9aO78igIQoUWulm6itmXVTvdXaP5jhy7aAHBB16zXhPkVhMHbTrEgRAM3b2wTIk
|
|
||||||
B9ORb7VXnp6uUlmHmB5BjkEYCDAT0n8TOJECNHKcIKlmKqV0ygf2DSzkwH6rtO9V
|
|
||||||
9Ye80Clz79gHL4/6cUfjxgbeXoknN2qpADxET5CW3ItjTDg5mOGd9pAtvXvNKNuv
|
|
||||||
eUL3VLbOH4A9TpUoDg1ofgR+j+OjuV9TIpEhpdyJ5yM0C0z+SNHGx6g6rBzscKY7
|
|
||||||
4kr9e3nYfCitshrqHBMvQ6UErqmGtnB/Dk7V5dK3CuHspuqgwVqvicjirkaVlDK8
|
|
||||||
SY9xDM2MGAh5GQEUOrE92Jwq1XKP7+nM7MEWmPAwhl2GdS4PitCONCAS6waSq8h2
|
|
||||||
5T0ZdtPa1OpbMh3zeyAnmA/LszNjOcsn/SR/rKFu2FyFWA3Fu/uwhyROoJqvjxLe
|
|
||||||
VDkJItRwEqUYD8IPIFGT4GEI49yOLMbMv7IbNlwBZ9nkvtP/wmkA1QDzU137Ff6R
|
|
||||||
z1KdNTHKDtIzJgzEocuw1lJ8Rte18wQ00HSuXiCzE5xYwAdHkqpgRRrGHHioCuxw
|
|
||||||
bbBTzuf9QRzoKSHz8N3OzmjnorfAHT9bC7CUNr2m9/dsUYpjGlzAyW/Q5DaZCxj/
|
|
||||||
vY3cSE0LLtDsW65QGhFA+U+iO45F7z7Obzf0wfVNHZNQ3bCvyi2NmHF5N8FCoWTF
|
|
||||||
4cPI1gfAg4qSMRseiQQzuZ1y+vnSa2Hy7LbqipLOwXaONzH3Hk+tCfxKyQKPcqKR
|
|
||||||
Ex5yFXajOWvp04iRXKGLBXKHX2kXySq6rLnK6JBJ9SaNrCgmTGV8kQlE7RArYbgs
|
|
||||||
uokzyzdDV2wH/hawW9eW1lilHo8/y2kWWAWSgRg8GHtXCA5xr37OCBoIzbfPQq48
|
|
||||||
hbUfnbUkVnSlWKc0mh1IZMpme4r7Wo1ZOWmoZGvHf1TFG+ocs/r/GP0UeekLLtS5
|
|
||||||
V8Tr43GE/Ab39mcjGalVW+5Z33+IX5b/80MbysfpgOhO3ns3zUsQuKaX6NfaIhsB
|
|
||||||
9MWRRRqArp7MNqqRphHix1bZENZoxOnMRTAMV8WMDMHFk6ZiiNtVs5c2FBCEbaI0
|
|
||||||
qDCMNNjpXXWjBy368/mCIPAg5KJk661JBJM/ga4nR3TGz+c6tDr93B0LbATJM7sS
|
|
||||||
ATw827xPkzyIlLY+msuo95zFflpO7zU2V4gH0T4fhi0jC7SicV2itIauGPNpf60V
|
|
||||||
Z5xsUlDgWs5AfhZBaoLVugHRzZ+w3F/azyroCzfFgT4ekUa7OyCEJ9DaqpBR/0bA
|
|
||||||
aWFi7MLDo+SW74yp0FNDJOtqujNLAZXKTW9sKBmz4vBIb0q8dN5l3CqElZzaWZuC
|
|
||||||
BCxr2PTHcdlix2NbOK7QfzJCmEU5+e3sabEZFrJBTxBxRjoSSf4e8L4zPA0WhKq1
|
|
||||||
O44pa7sJt43Plwx//Nv9RRWQu9jdlH92GqrSOGrMJ1EFlMWUDq4EUw3t5fH4+kwr
|
|
||||||
P6MBInKMq/jBvUjQ9YiTAOEl8SZcbysvRkif/EYAPI+8HQmhFbX++NdiJDpvGzmj
|
|
||||||
jBBVpvXtzboG6v1n6zLCAVdNmcw8yHtRy1svR1/dqeY/oZlFocynlzGWQnOU/Z/Z
|
|
||||||
3vwCbs66eXldwDaFNOhEyPC3Nwoe1NjbW0Q6CDCD6hHWxt09wWWXqwnOXa5hmm8g
|
|
||||||
xUT0Jylm141CES6MVUlrsjEqGkdfIxoP0fXGtBlUYqr0zu/8OgRSCLL8gl9PZByN
|
|
||||||
mYfih0Oh5Z3aP/p7HG6cMpLVLg11k/pdzuL8Z1QeN7EFUeVlmWwbruM0FM88umpy
|
|
||||||
MW97rEPCHbm41xuueS2mlOqPlxEgR7XazpsoZhHCII44xkGCd69rUEiUvaNXzmRi
|
|
||||||
m/JV+BJlJLN8BRotgrBebHwyDGqU/P0qy++44BmCQidFKe1uz61nZskqr+QvJfoT
|
|
||||||
HstpfQS41xlkXuPUqOSCyNLAJz37KYMoVZHnA3+RQoMjnlG73aCWUtNn85nQAi88
|
|
||||||
qVrnOD+k6THZ4cXOjcz8NAKrdVlkV7W8yb9QwdeXTHKXrUvYGcPLOyiMzzErqqWs
|
|
||||||
3aNG8ba0ZSkm+zsk4daLepFhtJw+NvupZRHlVKbqPfxY/PP8ZzWJD5hfXRVwlz+h
|
|
||||||
hDPZVXCknjwtkM7R2Sf57YtfhwV1dRCc84ldlRvYtZJyobkvMeNg25rqO/DSC8e7
|
|
||||||
In607Up6EwG1hAOFHXQb8qPx/4ZtFMcb7PEOX0cNW5BnzsnRKwDSy8oY9tKs0dYV
|
|
||||||
OUaTwS5m2yHIFaQkKjzYa31cZPWbuy6iZ5mw+J+iNP0Fo10W0dowPODmfK6PVqs6
|
|
||||||
cSScxsTx/CQ1viXfY8jZIYw3X1tPToZZY6eowePm5nCfsN/79rcwvka2r9dWlYFg
|
|
||||||
iBKuta2HuxPD0QzkvVnaMxcNeXxTrmtkICRoC46yVddYJZnjFcVxF8v3VCQIzYwy
|
|
||||||
Vwth6zw+JVcWCXMKHqgMq5vgyxKi3QVGT59P0wrdjvk7dyxmRvqDFltoedSv6qM/
|
|
||||||
uNlx2iS6QNLCMOItWm/28Cpla3QSgqNzabsSgUDaIDVBcZKi63AgYbQzsX059ra/
|
|
||||||
TwIlxKwsVv6TDk7yGERQeGa2jHL8nAhtQCXFcaKF4BVq9GXCTsRyTyH6OcyKJQym
|
|
||||||
BnlOjdppN8WXnacNHVDc2XkD81FAjvJA5rtp6z4YE2E8UgNdhhTYDShjCJaLK5iU
|
|
||||||
zEAFpWpcy+4HJTOFvFOEDAiA9xIbgJfUtDLBXllbOK+BUujvRVS/H9376bUO3O4C
|
|
||||||
S4CNCMoEuWu11ERBKlymCXyDxmE0W1AMHphSS479rxUfxIjReayou+yP524QrAPP
|
|
||||||
mf1AuJx2ADxkeMqdPAb1DfoPnpgnA0xvxAPRtydACVVlBWvxjjuTbWen55k7SRfY
|
|
||||||
jODGz+9DE/sgNerGhmjL+6IvjrD6K1p//7f9rXRGr8v7Tf7YtORrfbn5kL/ejqZm
|
|
||||||
rXYwElKkJTlrWsF92xIwoez3E3Fizup9Fx66KUlqU7WiltsWruQPIP7k/mHwE5xS
|
|
||||||
ijFwZ4BBjDPrA/cseMhpQDxSJSIGDZ8m/WMTszJecIcttS+8K190H1Ie38rhnjqW
|
|
||||||
6Uk2ayTECdqxY77xadEiRL6oOPKu/tMXVkZ3V+KaSvc6mGN77ZICNF0xwNhGVsK2
|
|
||||||
n6AHLSD9pvpgD1IYe5sEDdce1sB7J4gdO1lsI6Cdgo/fUlCzPuvxOW/GGsZZajjJ
|
|
||||||
R25bXjIOQYFdZogzGgK/xFDKPQwO87bWNyNSv5ieX3ecqsk6eZnN3YJCzsjVJi3L
|
|
||||||
Gw5v5kRo2yxrELqfs66wSe0/1icVq3FdlDAGfmyQjB4OLq6TRl0el7AkKgSOsjTu
|
|
||||||
yak+noYwt2vIF7v7kCW+8Z8UXbjqXqFGKaAgfU4r9SyfIuEvgHQmd2YfCezCsuGq
|
|
||||||
SKSIkbkZRcj3pavmmzmt+nJy1Xvw36+CSHFFxdkzgg6gGzmHUbi6svr4U+BrAb5f
|
|
||||||
aLomMpeRgqJMOQPbEVkj9nipVKoUYYSCZK02jmh5WOpb37cjCkKFCRRoG0nMqYVh
|
|
||||||
EWbXzzW3dpEO3gCMbIHHVb01mmUrtIyZYUy6B2aEF1lY8+Zd3Mdw24QygIQEmdNg
|
|
||||||
BSAQmxOwYh3CEsQOSnQrt/WaGoz7TWQwIgXc7gykHj2lZOjfoLwguRV6R35MvS9i
|
|
||||||
3l8CH7NK6/twj7CELHNovrk2FUiKWPz2/telb6WMn5SUV0OSbkzWO8PRZ4NoUEuY
|
|
||||||
DFaV49V7dfHEGk5AJtKAm1JZ2vdgH1EC6xSQvy8RsntydOc6h2BguVxqQsNdQu5k
|
|
||||||
kTqyTcb071eMIO0e6DEUy4A2od5LSxe0lQ8+LFRXLUFey3AzOv8i9NLUmpyxLeoZ
|
|
||||||
4f2m2l9nirJi/bvLCh+Lx5CdkclHD/Bl+/sjNO4mVPq7Uu8ab+U/0QdTz8M3JOos
|
|
||||||
cXGY0LlEmSn9D1OkE4jf2R4JjoH3qYD4oGWP011gMaEDaG0I32iUYNk8VUUfC9JP
|
|
||||||
aSKpGPtmoelGAhgK8A88kxyIlU9+6Xr/1B/xy2SB+/6WZ+9xuvfX1XaFEFDh4N5l
|
|
||||||
p/ZE0LvDDXUQbrsbBfWEdK0GUI+S6T8Yaz0DPAI1AhezTDDlfQQ0vpNk+SsuRGaF
|
|
||||||
vBR5PkpXU+q+4rOwVsEsiHotT7iBMIH+Opy6qM3+9bVlFiCrel+aVarxId4n7acb
|
|
||||||
IZoFCjEKkUFo33OC1W+qvfQv/qgEE8LXJzCPaM4bW4Og0XlJ3T2xjQtRYgWSxrcU
|
|
||||||
Qdm214NAAoN9yAck3mpM+zmMfuTPZNl+pY7f9dtzSq7BnLBCTKUg7Ct3vv7STr0C
|
|
||||||
RPLACIZeWY9v8giLLmg5qYOZYBWy+pC9R8/2Em3ibQwk3/Fn5Bo1Vixytg/fO4Nh
|
|
||||||
qj8brCWzVyUdP2J9uuktLIBnDuFiD3AGAl3QJjuxtktqQjmPY/c2ZtAJyNpLWHWF
|
|
||||||
qxTLUcFfSeOsdqlo+9a9lVGJMiSI4hWXwT6j98tLXWZa8itYCSaaaEgddiGE2zRT
|
|
||||||
bqILw6m8qvGq6BwpT8lrSFN519+PD58gseAPHy1FITUCbotvTlVLQLF1n0Cj7c/r
|
|
||||||
rZ4=
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4S0ZWL3BLcHpuNU1NNE5Y
|
|
||||||
NXcyRENhTTFPcGViMmQ4REdqOTFBdzZtVG5FCmxZMmNOS053OVlwMHZzc01JNUti
|
|
||||||
ajhEVkNsRk9HdHNhM0pHMk1GakMrN2cKLS0tIEFnd000T1E3ZjUwNnlTWklpbTJS
|
|
||||||
bmk2OUQ2MWVOdjk0czZIMEVseWxQODQKwA1fsDNDnMDMngERYOHFRRZ38DEgtNvG
|
|
||||||
PdnXl/z47zdjOhOxQRiQ4UYOTEiQTm1ALTXZJA2IFxT/h0zvs6tQk4yor6lQ1h7x
|
|
||||||
SpqGSYXAZkLGFqTzvFS/fos3DIBtt4wPTxpdAjU6zA6L9h8YAXxVh8aiIufHmvGv
|
|
||||||
t4f0BJ7l3+PuttHJt4Y1kzQLFYASO3rKxqCHY5grjE7KUg7PH5VjJxfdcO6dTztr
|
|
||||||
ZTThBkI+YArAJSjt22D0oIlcQJVGdaymuwjnTZ+AyGS2fZqne/4TtEjcvhj1ZRLi
|
|
||||||
gxRy2Wzxv5QtH34hINJetq1g5CCjd9mj0R+RhISCt7h6/FwbTHLfncpntL1qUZJZ
|
|
||||||
7rndhJ73nCKbk9viH8i4RN78jy6cnQ+bPin6j4Qnavr9umObKdL2PX8fnicb8JBN
|
|
||||||
pfoTXerp40b7Nk4ZjgcKgDR6USDU1ugTxb2WerSDCX/p9+fmydOr1btdnb6HwfFQ
|
|
||||||
bV8pzww4CbMCk0Bld80GiFGgkoy99PWLsLPQXweLcf21PJNoQkcoYRY/wzoSMfVt
|
|
||||||
uRzEISv5TWGvywQ0uRX5JG8sT/V+nuZBi3xlP/uRzrgAsYBn9nyKVSJk1VX0ZYze
|
|
||||||
ju1n7rJK5qbDl96y8qJTJpdnQMXmBHbhY2FtymkbJrKtD6+Htzctc45xjC3UUesP
|
|
||||||
ntCh1PNkFaayQFtZ+Fs/hSjueQp/WbMWOTPsjqE1ySQInc4zWDEbUscLV8xBgQMh
|
|
||||||
MmX5DaIgVgWVCfCzPsZEwpWy6mgZkVCkfOJdMSwg9YwVlS1L5wzBHh1xa+mthjTA
|
|
||||||
uxoZKvexsSPNrn2xSGhxaJE9yijciTT/tAJgo1Tqo1LrZ7fKj2AijHKF57FfuKHO
|
|
||||||
p4f004dBBkm7iTnpLuuEZiAT4VErKAbxSWprePIynH2e4YqUiyY3bk7ddDbYnaUC
|
|
||||||
fu9jg2rGDsKknp3L9uSeO9ygGBuwDt3JFMGN7SZK3qf/Zf9hfd5SYumHSd3vIbs+
|
|
||||||
/VWnIOPKn8DT2fTNnGswL1iTIrfLTV6Caq0McSkfAWplHqFvmW6dSzkpk2YpnBkh
|
|
||||||
jLg0ulW65agCecYQ0cI23i41c+PDuw0Mbt8tUc6Rd/JV4I2sBan509rxdBLJUxE+
|
|
||||||
AvRyxeVGxP8b3Nc+vRdkciy9zySxUSnRgG1BJxrQhLYPkyIzGHYY/pcOhBluhopz
|
|
||||||
Fe08akTRXHBR+gSqoOyi2mQGIznob3ijPKjAjr85Tj1Ir7PsfIRUqJys1gvo2XrD
|
|
||||||
EQGZ3ejwwtELqZDMqEb5NufvDJ0aRabvSar8vb9u2eSw9ooTQ5uW+RKJrc7vZy1e
|
|
||||||
0zngiRsKjxwc9TTXMnvNVXI1Y3kPBFoOqll2Cjxwxo8tbAuKvgZx7//qoMXWifFf
|
|
||||||
bXAVAhRIjGW7x2lB2/MIJ6hrWSqjn5Z1eRV/5VFtwhp7nyrPx94tlpBJ9DJURm9a
|
|
||||||
MHPzeho1pX9Xbf7pC6XM+kVk+PzUffHrp3O7ik8xjslJ1G9A+ZaUo/smabtaPSqU
|
|
||||||
Aoc4seR0HL6iaswEMPVKvHDB68NJtXa6cD5bQaRD37iXpyEj13UpzrfA2EokwykS
|
|
||||||
y6CmORSAlCisLf+xH2juA1II/yVmnqldLXO0u0B7RDPuzEM52qpWvZHR2w6rWMbC
|
|
||||||
NyTz7UtVT8JjaqwAGi7jp+HX3OHlAVes7+7n4Z4PH3D0fojsFJrWJTU+KY4jmwMM
|
|
||||||
iwsoY/A1DQbVzqeuSK04Hn6j1PtwCSElJc6MkVjcEIAxSr2dnnPqKxHdUuQFM7jf
|
|
||||||
Is6ss3lDqEGSBAjAaLUD+UYq68JGpEHnJcueSEPa3gXrchpNI43TOVHJLgFgHoJJ
|
|
||||||
zpf02tYUx5TKpSKU6Utg8PEHZViDlW7aQRNpX8zBgAlySkQa1ZyX070gl6t2TceJ
|
|
||||||
oTJXFFO8s+7AjMknDc6e1T7sVUxaf+FsJz1EjTY=
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
file=~/notebook/todo.xit
|
|
||||||
|
|
||||||
if [[ ! -f "$file" ]]; then
|
|
||||||
echo "$file is missing"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
content=$(sed -n '/^Inbox$/,$ p' "$file" | tail -n +2)
|
|
||||||
|
|
||||||
if [[ -z "${content// }" ]]; then
|
|
||||||
echo "Inbox is empty"
|
|
||||||
else
|
|
||||||
echo "$content"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
@ -1,309 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# jj-split-by-owner - Split a jj revision into multiple revisions by CODEOWNERS
|
|
||||||
#
|
|
||||||
# Usage: jj-split-by-owner <revision> <description_template>
|
|
||||||
#
|
|
||||||
# The description_template should contain %s where you want the team name inserted.
|
|
||||||
# Example: "feat: update %s components"
|
|
||||||
# -> "feat: update @frontend-team components"
|
|
||||||
# -> "feat: update @backend-team components"
|
|
||||||
#
|
|
||||||
# Example: "[%s] refactor authentication"
|
|
||||||
# -> "[@security-team] refactor authentication"
|
|
||||||
#
|
|
||||||
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
cat <<EOF
|
|
||||||
Usage: $(basename "$0") <revision> <description_template>
|
|
||||||
|
|
||||||
Split a jj revision into multiple revisions based on CODEOWNERS.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
revision The jj revision to split (e.g., @, @-, abc123)
|
|
||||||
description_template A printf-style template with %s for the team name
|
|
||||||
Example: "feat: update %s components"
|
|
||||||
|
|
||||||
The script will:
|
|
||||||
1. Find all changed files in the revision
|
|
||||||
2. Match each file to its owner from CODEOWNERS
|
|
||||||
3. Create separate revisions for each unique owner
|
|
||||||
4. Each revision gets the template with the owner name substituted
|
|
||||||
|
|
||||||
EOF
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Check arguments
|
|
||||||
if [[ $# -lt 2 ]]; then
|
|
||||||
usage
|
|
||||||
fi
|
|
||||||
|
|
||||||
REVISION="$1"
|
|
||||||
TEMPLATE="$2"
|
|
||||||
|
|
||||||
# Create temp directory for all working files
|
|
||||||
TMPDIR=$(mktemp -d)
|
|
||||||
trap 'rm -rf "$TMPDIR"' EXIT
|
|
||||||
|
|
||||||
# Find CODEOWNERS file (check common locations)
|
|
||||||
find_codeowners() {
|
|
||||||
local locations=(
|
|
||||||
"CODEOWNERS"
|
|
||||||
".github/CODEOWNERS"
|
|
||||||
"docs/CODEOWNERS"
|
|
||||||
".gitlab/CODEOWNERS"
|
|
||||||
)
|
|
||||||
|
|
||||||
for loc in "${locations[@]}"; do
|
|
||||||
if [[ -f "$loc" ]]; then
|
|
||||||
echo "$loc"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Error: CODEOWNERS file not found" >&2
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
CODEOWNERS_FILE=$(find_codeowners)
|
|
||||||
echo "Using CODEOWNERS: $CODEOWNERS_FILE"
|
|
||||||
|
|
||||||
# Get list of changed files in the revision
|
|
||||||
get_changed_files() {
|
|
||||||
jj diff -r "$REVISION" --summary | awk '{print $2}'
|
|
||||||
}
|
|
||||||
|
|
||||||
# Parse CODEOWNERS and convert patterns to regex in a single awk pass
|
|
||||||
# Output format: regex<TAB>owner (one per line, in order)
|
|
||||||
parse_and_convert_codeowners() {
|
|
||||||
awk '
|
|
||||||
# Skip empty lines and comments
|
|
||||||
/^[[:space:]]*$/ { next }
|
|
||||||
/^[[:space:]]*#/ { next }
|
|
||||||
|
|
||||||
{
|
|
||||||
pattern = $1
|
|
||||||
owner = $2
|
|
||||||
|
|
||||||
# Skip if no pattern or no owner
|
|
||||||
if (pattern == "" || owner == "") next
|
|
||||||
|
|
||||||
# Convert pattern to regex
|
|
||||||
regex = pattern
|
|
||||||
|
|
||||||
# Escape special regex chars (except *)
|
|
||||||
gsub(/\./, "\\.", regex)
|
|
||||||
gsub(/\?/, "\\?", regex)
|
|
||||||
gsub(/\+/, "\\+", regex)
|
|
||||||
gsub(/\[/, "\\[", regex)
|
|
||||||
gsub(/\]/, "\\]", regex)
|
|
||||||
gsub(/\^/, "\\^", regex)
|
|
||||||
gsub(/\$/, "\\$", regex)
|
|
||||||
|
|
||||||
# Handle ** first (match any path including /)
|
|
||||||
gsub(/\*\*/, ".*", regex)
|
|
||||||
|
|
||||||
# Handle * (match anything except /) - but not the .* we just created
|
|
||||||
# We need to be careful here: .* should stay, but lone * becomes [^/]*
|
|
||||||
# Split and rejoin to handle this
|
|
||||||
result = ""
|
|
||||||
n = split(regex, parts, /\.\*/)
|
|
||||||
for (i = 1; i <= n; i++) {
|
|
||||||
gsub(/\*/, "[^/]*", parts[i])
|
|
||||||
if (i > 1) result = result ".*"
|
|
||||||
result = result parts[i]
|
|
||||||
}
|
|
||||||
regex = result
|
|
||||||
|
|
||||||
# Handle leading / (anchor to start)
|
|
||||||
if (substr(regex, 1, 1) == "/") {
|
|
||||||
regex = "^" substr(regex, 2)
|
|
||||||
} else {
|
|
||||||
# Pattern can match anywhere in path
|
|
||||||
regex = "(^|/)" regex
|
|
||||||
}
|
|
||||||
|
|
||||||
# Handle trailing / (directory - match anything inside)
|
|
||||||
if (substr(regex, length(regex), 1) == "/") {
|
|
||||||
regex = regex ".*"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Anchor to end unless it ends with .*
|
|
||||||
if (substr(regex, length(regex)-1, 2) != ".*") {
|
|
||||||
regex = regex "$"
|
|
||||||
}
|
|
||||||
|
|
||||||
print regex "\t" owner
|
|
||||||
}
|
|
||||||
' "$CODEOWNERS_FILE"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Main logic
|
|
||||||
echo "Analyzing revision: $REVISION"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Get changed files
|
|
||||||
get_changed_files > "$TMPDIR/files.txt"
|
|
||||||
FILE_COUNT=$(wc -l < "$TMPDIR/files.txt" | tr -d ' ')
|
|
||||||
|
|
||||||
if [[ "$FILE_COUNT" -eq 0 ]]; then
|
|
||||||
echo "No changed files in revision $REVISION"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Found $FILE_COUNT changed file(s)"
|
|
||||||
|
|
||||||
# Parse CODEOWNERS and convert to regex in one pass
|
|
||||||
echo "Parsing CODEOWNERS..."
|
|
||||||
parse_and_convert_codeowners > "$TMPDIR/codeowners_regex.txt"
|
|
||||||
line_num=$(wc -l < "$TMPDIR/codeowners_regex.txt" | tr -d ' ')
|
|
||||||
echo "Loaded $line_num CODEOWNERS rules"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Now match each file to its owner
|
|
||||||
# CODEOWNERS semantics: later rules override earlier ones
|
|
||||||
echo "Matching files to owners..."
|
|
||||||
|
|
||||||
# Process all files at once with awk for speed
|
|
||||||
awk -F'\t' '
|
|
||||||
BEGIN {
|
|
||||||
# Read all patterns and their owners
|
|
||||||
while ((getline line < "'"$TMPDIR/codeowners_regex.txt"'") > 0) {
|
|
||||||
n = split(line, parts, "\t")
|
|
||||||
if (n >= 2) {
|
|
||||||
pattern_count++
|
|
||||||
patterns[pattern_count] = parts[1] # regex
|
|
||||||
owners[pattern_count] = parts[2] # owner
|
|
||||||
}
|
|
||||||
}
|
|
||||||
close("'"$TMPDIR/codeowners_regex.txt"'")
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
file = $0
|
|
||||||
matched_owner = "UNOWNED"
|
|
||||||
|
|
||||||
# Check each pattern (later ones override)
|
|
||||||
for (i = 1; i <= pattern_count; i++) {
|
|
||||||
if (match(file, patterns[i])) {
|
|
||||||
matched_owner = owners[i]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
print file "\t" matched_owner
|
|
||||||
}
|
|
||||||
' "$TMPDIR/files.txt" > "$TMPDIR/file_owners.txt"
|
|
||||||
|
|
||||||
# Group files by owner
|
|
||||||
echo "Grouping files by owner..."
|
|
||||||
mkdir -p "$TMPDIR/owners"
|
|
||||||
|
|
||||||
ALL_OWNERS=""
|
|
||||||
while IFS=$'\t' read -r file owner; do
|
|
||||||
# Sanitize owner name for filename
|
|
||||||
owner_safe=$(echo "$owner" | sed 's/[^a-zA-Z0-9_-]/_/g')
|
|
||||||
|
|
||||||
echo "$file" >> "$TMPDIR/owners/$owner_safe.files"
|
|
||||||
echo "$owner" > "$TMPDIR/owners/$owner_safe.name"
|
|
||||||
|
|
||||||
# Track unique owners
|
|
||||||
if [[ ! -f "$TMPDIR/owners/$owner_safe.seen" ]]; then
|
|
||||||
touch "$TMPDIR/owners/$owner_safe.seen"
|
|
||||||
ALL_OWNERS="${ALL_OWNERS:+$ALL_OWNERS }$owner_safe"
|
|
||||||
fi
|
|
||||||
done < "$TMPDIR/file_owners.txt"
|
|
||||||
|
|
||||||
# Show what we found
|
|
||||||
echo ""
|
|
||||||
echo "Files by owner:"
|
|
||||||
echo "---------------"
|
|
||||||
for owner_safe in $ALL_OWNERS; do
|
|
||||||
owner=$(cat "$TMPDIR/owners/$owner_safe.name")
|
|
||||||
file_count=$(wc -l < "$TMPDIR/owners/$owner_safe.files" | tr -d ' ')
|
|
||||||
echo " $owner: $file_count file(s)"
|
|
||||||
done
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Count owners
|
|
||||||
OWNER_COUNT=$(echo "$ALL_OWNERS" | wc -w | tr -d ' ')
|
|
||||||
echo "Will create $OWNER_COUNT revision(s)"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# If only one owner, no split needed
|
|
||||||
if [[ "$OWNER_COUNT" -eq 1 ]]; then
|
|
||||||
owner_safe=$(echo "$ALL_OWNERS" | awk '{print $1}')
|
|
||||||
owner=$(cat "$TMPDIR/owners/$owner_safe.name")
|
|
||||||
# shellcheck disable=SC2059
|
|
||||||
description=$(printf "$TEMPLATE" "$owner")
|
|
||||||
echo "Only one owner found. Updating revision description..."
|
|
||||||
jj describe -r "$REVISION" -m "$description"
|
|
||||||
echo "Done! Revision updated with description: $description"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Convert to array for indexing
|
|
||||||
OWNERS_ARR=($ALL_OWNERS)
|
|
||||||
FIRST_OWNER_SAFE="${OWNERS_ARR[0]}"
|
|
||||||
FIRST_OWNER=$(cat "$TMPDIR/owners/$FIRST_OWNER_SAFE.name")
|
|
||||||
|
|
||||||
echo "Processing owners..."
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Get the parent of the original revision
|
|
||||||
PARENT=$(jj log -r "parents($REVISION)" --no-graph -T 'change_id.short(12)' | head -1)
|
|
||||||
|
|
||||||
# Get the original revision's change_id for reference
|
|
||||||
ORIG_CHANGE_ID=$(jj log -r "$REVISION" --no-graph -T 'change_id.short(12)')
|
|
||||||
|
|
||||||
# Create a new revision for each owner (original revision stays untouched)
|
|
||||||
for i in "${!OWNERS_ARR[@]}"; do
|
|
||||||
owner_safe="${OWNERS_ARR[$i]}"
|
|
||||||
owner=$(cat "$TMPDIR/owners/$owner_safe.name")
|
|
||||||
# shellcheck disable=SC2059
|
|
||||||
description=$(printf "$TEMPLATE" "$owner")
|
|
||||||
|
|
||||||
# Create a new empty revision as sibling of original (this changes @)
|
|
||||||
jj new "$PARENT" -m "$description" >/dev/null 2>&1
|
|
||||||
# @ is now the new revision, get its change_id
|
|
||||||
new_rev=$(jj log -r @ --no-graph -T 'change_id.short(12)')
|
|
||||||
echo "$new_rev" > "$TMPDIR/owners/$owner_safe.rev"
|
|
||||||
echo "[$owner] Created new revision: $new_rev"
|
|
||||||
done
|
|
||||||
|
|
||||||
# Return to original revision
|
|
||||||
jj edit "$ORIG_CHANGE_ID" >/dev/null 2>&1 || true
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Copying files to new revisions..."
|
|
||||||
|
|
||||||
# For each owner, copy their files from original to the new revision
|
|
||||||
for i in "${!OWNERS_ARR[@]}"; do
|
|
||||||
owner_safe="${OWNERS_ARR[$i]}"
|
|
||||||
owner=$(cat "$TMPDIR/owners/$owner_safe.name")
|
|
||||||
target_rev=$(cat "$TMPDIR/owners/$owner_safe.rev")
|
|
||||||
|
|
||||||
echo "Copying files for $owner to $target_rev..."
|
|
||||||
|
|
||||||
# Debug: show the command being run
|
|
||||||
file_count=$(wc -l < "$TMPDIR/owners/$owner_safe.files" | tr -d ' ')
|
|
||||||
echo " ($file_count files)"
|
|
||||||
|
|
||||||
# Pass all files at once to jj restore (show errors for debugging)
|
|
||||||
if ! xargs jj restore --from "$ORIG_CHANGE_ID" --to "$target_rev" < "$TMPDIR/owners/$owner_safe.files"; then
|
|
||||||
echo " Warning: jj restore had errors"
|
|
||||||
echo " Files: $(cat "$TMPDIR/owners/$owner_safe.files" | tr '\n' ' ')"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Done! Created revisions:"
|
|
||||||
echo ""
|
|
||||||
for owner_safe in $ALL_OWNERS; do
|
|
||||||
owner=$(cat "$TMPDIR/owners/$owner_safe.name")
|
|
||||||
# shellcheck disable=SC2059
|
|
||||||
desc=$(printf "$TEMPLATE" "$owner")
|
|
||||||
echo " $owner -> $desc"
|
|
||||||
done
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
#!/usr/bin/env zsh
|
|
||||||
setopt aliases
|
|
||||||
|
|
||||||
NOTEBOOK_DIR=~/notebook
|
|
||||||
|
|
||||||
if [[ ! -d "$NOTEBOOK_DIR" ]]; then
|
|
||||||
echo "Error: Notebook directory does not exist at $NOTEBOOK_DIR"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd "$NOTEBOOK_DIR" || exit 1
|
|
||||||
|
|
||||||
show_help() {
|
|
||||||
cat << EOF
|
|
||||||
nb - Notebook management tool
|
|
||||||
|
|
||||||
Usage: nb <command>
|
|
||||||
|
|
||||||
Commands:
|
|
||||||
cd Change directories
|
|
||||||
save Commit changes with timestamp
|
|
||||||
sync Save, fetch, and push changes
|
|
||||||
log Show commit log
|
|
||||||
diff Show differences
|
|
||||||
status Show diff summary
|
|
||||||
todo Add a todo item (or manage todos)
|
|
||||||
archive Archive completed todos
|
|
||||||
inbox List contents of inbox(es)
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
cd)
|
|
||||||
exec "$SHELL"
|
|
||||||
;;
|
|
||||||
save)
|
|
||||||
jj diff -r @ --summary | grep -q . && jj commit -m "$(date +"%Y-%m-%dT%H:%M:%S%z")" && jj tug || true
|
|
||||||
;;
|
|
||||||
sync)
|
|
||||||
"$0" save && jj git fetch && jj git push
|
|
||||||
;;
|
|
||||||
log)
|
|
||||||
jj log -r ".."
|
|
||||||
;;
|
|
||||||
diff)
|
|
||||||
jj diff
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
jj diff -s
|
|
||||||
;;
|
|
||||||
todo)
|
|
||||||
if [[ "$2" == "archive" && -z "$3" ]]; then
|
|
||||||
todo_archive todo.xit done.xit
|
|
||||||
elif [[ "$2" == "inbox" && -z "$3" ]]; then
|
|
||||||
uvx --from todoman todo
|
|
||||||
else
|
|
||||||
todo "${@:2}"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"")
|
|
||||||
show_help
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Error: Unknown command '$1'"
|
|
||||||
echo ""
|
|
||||||
show_help
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
date +"%Y-%m-%dT%H:%M:%S%z"
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
if [[ -z "$1" ]]; then
|
|
||||||
cat << EOF
|
|
||||||
reldate - Format or adjust dates
|
|
||||||
|
|
||||||
Usage: reldate <date|adjustment|keyword>
|
|
||||||
|
|
||||||
Examples:
|
|
||||||
reldate "2025-12-12" # Output: 2025-12-12
|
|
||||||
reldate "+1d" # Output: tomorrow's date
|
|
||||||
reldate "-1w" # Output: date 1 week ago
|
|
||||||
reldate "+2m" # Output: date 2 months from now
|
|
||||||
reldate "-1y" # Output: date 1 year ago
|
|
||||||
|
|
||||||
reldate today # Output: today's date
|
|
||||||
reldate tomorrow # Output: tomorrow's date
|
|
||||||
reldate yesterday # Output: yesterday's date
|
|
||||||
|
|
||||||
reldate friday # Output: next Friday
|
|
||||||
reldate fri # Output: next Friday
|
|
||||||
reldate weekend # Output: next Saturday
|
|
||||||
|
|
||||||
Adjustments:
|
|
||||||
d = days, w = weeks, m = months, y = years
|
|
||||||
Use + for future, - for past
|
|
||||||
|
|
||||||
Keywords:
|
|
||||||
today, tomorrow, yesterday
|
|
||||||
monday-sunday (or mon-sun)
|
|
||||||
weekend (Saturday)
|
|
||||||
|
|
||||||
EOF
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Normalize input to lowercase
|
|
||||||
input=$(echo "$1" | tr '[:upper:]' '[:lower:]')
|
|
||||||
|
|
||||||
# Calculate days until a target weekday (1=Mon, 7=Sun)
|
|
||||||
# Returns days to add (1-7, never 0 - same day means next week)
|
|
||||||
days_until_weekday() {
|
|
||||||
local target=$1
|
|
||||||
local current=$(date +%u)
|
|
||||||
local diff=$(( (target - current + 7) % 7 ))
|
|
||||||
if [[ $diff -eq 0 ]]; then
|
|
||||||
diff=7
|
|
||||||
fi
|
|
||||||
echo $diff
|
|
||||||
}
|
|
||||||
|
|
||||||
# Map day name to number (1=Mon, 7=Sun)
|
|
||||||
day_to_number() {
|
|
||||||
case "$1" in
|
|
||||||
mon|monday) echo 1 ;;
|
|
||||||
tue|tuesday) echo 2 ;;
|
|
||||||
wed|wednesday) echo 3 ;;
|
|
||||||
thu|thursday) echo 4 ;;
|
|
||||||
fri|friday) echo 5 ;;
|
|
||||||
sat|saturday) echo 6 ;;
|
|
||||||
sun|sunday) echo 7 ;;
|
|
||||||
*) echo 0 ;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
# Handle natural language keywords
|
|
||||||
case "$input" in
|
|
||||||
today)
|
|
||||||
date "+%Y-%m-%d"
|
|
||||||
;;
|
|
||||||
tomorrow)
|
|
||||||
date -v "+1d" "+%Y-%m-%d"
|
|
||||||
;;
|
|
||||||
yesterday)
|
|
||||||
date -v "-1d" "+%Y-%m-%d"
|
|
||||||
;;
|
|
||||||
weekend)
|
|
||||||
days=$(days_until_weekday 6)
|
|
||||||
date -v "+${days}d" "+%Y-%m-%d"
|
|
||||||
;;
|
|
||||||
mon|monday|tue|tuesday|wed|wednesday|thu|thursday|fri|friday|sat|saturday|sun|sunday)
|
|
||||||
day_num=$(day_to_number "$input")
|
|
||||||
days=$(days_until_weekday "$day_num")
|
|
||||||
date -v "+${days}d" "+%Y-%m-%d"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# Fall through to original logic
|
|
||||||
if [[ "$1" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
|
|
||||||
date -j -f "%Y-%m-%d" "$1" "+%Y-%m-%d" 2>/dev/null || echo "Invalid date: $1"
|
|
||||||
else
|
|
||||||
date -v "$1" "+%Y-%m-%d"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
date +"%Y-%m-%d"
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
if [[ -z "$*" ]]; then
|
|
||||||
echo "Error: Please provide a todo item"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "[ ] $*" >> ~/notebook/todo.xit
|
|
||||||
|
|
@ -1,188 +0,0 @@
|
||||||
#!/usr/bin/env -S uv run --script
|
|
||||||
# /// script
|
|
||||||
# requires-python = ">=3.10"
|
|
||||||
# dependencies = [
|
|
||||||
# "stage-left",
|
|
||||||
# ]
|
|
||||||
# ///
|
|
||||||
"""
|
|
||||||
Archive completed (DONE) and obsolete todos from a [x]it! file.
|
|
||||||
|
|
||||||
Extracts all checked and obsolete items, outputs them (preserving groups), and
|
|
||||||
removes them from the original file.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import sys
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
from stage_left import parse_file
|
|
||||||
from stage_left.types import State, Group, Item
|
|
||||||
|
|
||||||
|
|
||||||
def format_item(item: Item) -> str:
|
|
||||||
"""Format an item back to [x]it! syntax."""
|
|
||||||
lines = item.description.split('\n')
|
|
||||||
first_line = f"[{item.state.value}] {lines[0]}"
|
|
||||||
if len(lines) == 1:
|
|
||||||
return first_line
|
|
||||||
# Indent continuation lines (4 spaces to align with content after "[x] ")
|
|
||||||
continuation_lines = [' ' + line for line in lines[1:]]
|
|
||||||
return '\n'.join([first_line] + continuation_lines)
|
|
||||||
|
|
||||||
|
|
||||||
def sort_groups(groups: list[Group]) -> list[Group]:
|
|
||||||
"""
|
|
||||||
Sort groups: untitled groups first, then alphabetically by title.
|
|
||||||
"""
|
|
||||||
untitled = [g for g in groups if not g.title]
|
|
||||||
titled = [g for g in groups if g.title]
|
|
||||||
titled.sort(key=lambda g: g.title.lower())
|
|
||||||
return untitled + titled
|
|
||||||
|
|
||||||
|
|
||||||
def format_groups(groups: list[Group]) -> str:
|
|
||||||
"""Format a list of groups back to [x]it! syntax."""
|
|
||||||
lines = []
|
|
||||||
|
|
||||||
for i, group in enumerate(groups):
|
|
||||||
if group.title:
|
|
||||||
if i > 0:
|
|
||||||
lines.append("") # Blank line before group title
|
|
||||||
lines.append(group.title)
|
|
||||||
|
|
||||||
for item in group.items:
|
|
||||||
lines.append(format_item(item))
|
|
||||||
|
|
||||||
return "\n".join(lines)
|
|
||||||
|
|
||||||
|
|
||||||
def extract_archivable_items(groups: list[Group]) -> tuple[list[Group], list[Group]]:
|
|
||||||
"""
|
|
||||||
Split groups into archivable (done/obsolete) and remaining items.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
(archivable_groups, remaining_groups) - Both preserve group structure.
|
|
||||||
Empty groups are preserved in remaining_groups.
|
|
||||||
"""
|
|
||||||
archivable_states = {State.CHECKED, State.OBSOLETE, State.IN_QUESTION}
|
|
||||||
archivable_groups = []
|
|
||||||
remaining_groups = []
|
|
||||||
|
|
||||||
for group in groups:
|
|
||||||
archivable_items = [item for item in group.items if item.state in archivable_states]
|
|
||||||
remaining_items = [item for item in group.items if item.state not in archivable_states]
|
|
||||||
|
|
||||||
if archivable_items:
|
|
||||||
archivable_groups.append(Group(title=group.title, items=archivable_items))
|
|
||||||
|
|
||||||
# Always preserve the group in remaining, even if empty
|
|
||||||
remaining_groups.append(Group(title=group.title, items=remaining_items))
|
|
||||||
|
|
||||||
return archivable_groups, remaining_groups
|
|
||||||
|
|
||||||
|
|
||||||
def merge_groups(existing: list[Group], new: list[Group]) -> list[Group]:
|
|
||||||
"""
|
|
||||||
Merge new groups into existing groups.
|
|
||||||
|
|
||||||
Groups with matching titles have their items combined.
|
|
||||||
New groups without a matching title are appended.
|
|
||||||
"""
|
|
||||||
merged: dict[str | None, Group] = {}
|
|
||||||
order: list[str | None] = []
|
|
||||||
|
|
||||||
for group in existing:
|
|
||||||
if group.title in merged:
|
|
||||||
# Extend existing group's items
|
|
||||||
merged[group.title] = Group(
|
|
||||||
title=group.title,
|
|
||||||
items=merged[group.title].items + group.items,
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
merged[group.title] = Group(title=group.title, items=list(group.items))
|
|
||||||
order.append(group.title)
|
|
||||||
|
|
||||||
for group in new:
|
|
||||||
if group.title in merged:
|
|
||||||
# Merge into existing group
|
|
||||||
merged[group.title] = Group(
|
|
||||||
title=group.title,
|
|
||||||
items=merged[group.title].items + group.items,
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
# New group
|
|
||||||
merged[group.title] = Group(title=group.title, items=list(group.items))
|
|
||||||
order.append(group.title)
|
|
||||||
|
|
||||||
return [merged[title] for title in order]
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> int:
|
|
||||||
parser = argparse.ArgumentParser(
|
|
||||||
description="Archive completed and obsolete todos from a [x]it! file.",
|
|
||||||
epilog="Done and obsolete items are extracted and removed from the input file.",
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"input",
|
|
||||||
type=Path,
|
|
||||||
help="Path to the [x]it! file to process",
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"output",
|
|
||||||
type=Path,
|
|
||||||
help="Output file for archived todos",
|
|
||||||
)
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
if not args.input.exists():
|
|
||||||
print(f"Error: Input file not found: {args.input}", file=sys.stderr)
|
|
||||||
return 1
|
|
||||||
|
|
||||||
with open(args.input, "r") as fp:
|
|
||||||
groups = parse_file(fp)
|
|
||||||
|
|
||||||
archivable_groups, remaining_groups = extract_archivable_items(groups)
|
|
||||||
|
|
||||||
if archivable_groups:
|
|
||||||
if args.output.exists():
|
|
||||||
with open(args.output, "r") as fp:
|
|
||||||
existing_groups = parse_file(fp)
|
|
||||||
merged_groups = merge_groups(existing_groups, archivable_groups)
|
|
||||||
else:
|
|
||||||
merged_groups = archivable_groups
|
|
||||||
|
|
||||||
merged_output = format_groups(sort_groups(merged_groups))
|
|
||||||
with open(args.output, "w") as fp:
|
|
||||||
fp.write(merged_output)
|
|
||||||
fp.write("\n")
|
|
||||||
remaining_output = format_groups(remaining_groups)
|
|
||||||
with open(args.input, "w") as fp:
|
|
||||||
if remaining_output:
|
|
||||||
fp.write(remaining_output)
|
|
||||||
fp.write("\n")
|
|
||||||
elif args.output.exists():
|
|
||||||
# No new items to archive, but re-sort existing archive
|
|
||||||
with open(args.output, "r") as fp:
|
|
||||||
existing_groups = parse_file(fp)
|
|
||||||
sorted_output = format_groups(sort_groups(existing_groups))
|
|
||||||
with open(args.output, "w") as fp:
|
|
||||||
fp.write(sorted_output)
|
|
||||||
fp.write("\n")
|
|
||||||
|
|
||||||
archived_count = sum(len(g.items) for g in archivable_groups)
|
|
||||||
remaining_count = sum(len(g.items) for g in remaining_groups)
|
|
||||||
if archived_count:
|
|
||||||
print(
|
|
||||||
f"Archived {archived_count} todo(s). {remaining_count} remaining.",
|
|
||||||
file=sys.stderr,
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
print(f"Sorted {remaining_count} todo(s).", file=sys.stderr)
|
|
||||||
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
sys.exit(main())
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
cache-prompts: true
|
|
||||||
gitignore: false
|
|
||||||
auto-commits: false
|
|
||||||
watch-files: true
|
|
||||||
subtree-only: true
|
|
||||||
stream: false
|
|
||||||
show-model-warnings: 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"
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
[user]
|
|
||||||
email = {{ .email_personal }}
|
|
||||||
|
|
||||||
[core]
|
|
||||||
sshCommand = "ssh -i ~/.ssh/id_rsa_personal"
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
--glob=!.git/*
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
# {{ .name }}
|
|
||||||
# {{ .email_personal }}
|
|
||||||
|
|
||||||
# Added by OrbStack: command-line tools and integration
|
|
||||||
source ~/.orbstack/shell/init.zsh 2>/dev/null || :
|
|
||||||
|
|
@ -1,100 +0,0 @@
|
||||||
# Browser
|
|
||||||
if [[ "$OSTYPE" == darwin* ]]; then
|
|
||||||
export BROWSER='open'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Editors
|
|
||||||
export EDITOR='hx'
|
|
||||||
export VISUAL='hx'
|
|
||||||
export PAGER='less'
|
|
||||||
|
|
||||||
# Language
|
|
||||||
if [[ -z "$LANG" ]]; then
|
|
||||||
export LANG='en_US.UTF-8'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Less
|
|
||||||
# Set the default Less options.
|
|
||||||
# Mouse-wheel scrolling has been disabled by -X (disable screen clearing).
|
|
||||||
# Remove -X and -F (exit if the content fits on one screen) to enable it.
|
|
||||||
export LESS='-F -g -i -M -R -S -w -X -z-4'
|
|
||||||
|
|
||||||
# Set the Less input preprocessor.
|
|
||||||
if (( $+commands[lesspipe.sh] )); then
|
|
||||||
export LESSOPEN='| /usr/bin/env lesspipe.sh %s 2>&-'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Temporary Files
|
|
||||||
if [[ ! -d "$TMPDIR" ]]; then
|
|
||||||
export TMPDIR="/tmp/$USER"
|
|
||||||
mkdir -p -m 700 "$TMPDIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
TMPPREFIX="${TMPDIR%/}/zsh"
|
|
||||||
if [[ ! -d "$TMPPREFIX" ]]; then
|
|
||||||
mkdir -p "$TMPPREFIX"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Paths
|
|
||||||
typeset -gU cdpath fpath mailpath path
|
|
||||||
|
|
||||||
check_paths=(
|
|
||||||
# rust
|
|
||||||
$HOME/.cargo/bin
|
|
||||||
$HOME/.cargo/env
|
|
||||||
|
|
||||||
# npm
|
|
||||||
$HOME/.npm-packages/bin
|
|
||||||
|
|
||||||
# yarn
|
|
||||||
$HOME/.yarn/bin
|
|
||||||
$HOME/.config/yarn/global/node_modules/.bin
|
|
||||||
|
|
||||||
# WSL
|
|
||||||
# /mnt/c/windows
|
|
||||||
# /mnt/c/windows/system32
|
|
||||||
|
|
||||||
# home
|
|
||||||
$HOME/bin
|
|
||||||
|
|
||||||
# go
|
|
||||||
$HOME/go/bin
|
|
||||||
|
|
||||||
# pixi
|
|
||||||
$HOME/.pixi/bin
|
|
||||||
|
|
||||||
# homebrew
|
|
||||||
/opt/homebrew/bin
|
|
||||||
|
|
||||||
# uv
|
|
||||||
$HOME/.local/bin
|
|
||||||
|
|
||||||
# lm studio
|
|
||||||
$HOME/.lmstudio/bin
|
|
||||||
|
|
||||||
{{ join .chezmoi.sourceDir "encrypted_dot_work_paths.age" | include | decrypt -}}
|
|
||||||
)
|
|
||||||
|
|
||||||
for fp in $check_paths; do
|
|
||||||
if [[ -s "$fp" ]]; then
|
|
||||||
path+=("$fp")
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
export -U PATH
|
|
||||||
|
|
||||||
export NVM_DIR="$HOME/.nvm"
|
|
||||||
export XDG_CONFIG_HOME=$HOME/.config
|
|
||||||
export JJ_CONFIG=$XDG_CONFIG_HOME/jj/config.toml
|
|
||||||
export RIPGREP_CONFIG_PATH=$HOME/.ripgreprc
|
|
||||||
export FZF_DEFAULT_COMMAND="rg --files --hidden"
|
|
||||||
export FZF_DEFAULT_OPTS=" \
|
|
||||||
--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
|
|
||||||
--color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
|
|
||||||
--color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 \
|
|
||||||
--color=selected-bg:#45475a \
|
|
||||||
--color=border:#313244,label:#cdd6f4"
|
|
||||||
|
|
||||||
alias devlog="cd ~/projects/personal/devlog && hx logs/$(date '+%Y-%m-%d').gmi && cd -"
|
|
||||||
alias khal='uvx khal "$@"'
|
|
||||||
alias todoman='uvx --from todoman todo "$@"'
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
setopt HIST_IGNORE_ALL_DUPS
|
|
||||||
bindkey -v
|
|
||||||
WORDCHARS=${WORDCHARS//[\/]}
|
|
||||||
ZSH_AUTOSUGGEST_MANUAL_REBIND=1
|
|
||||||
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets)
|
|
||||||
ZIM_HOME=${ZDOTDIR:-${HOME}}/.zim
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
if [[ ! ${ZIM_HOME}/init.zsh -nt ${ZDOTDIR:-${HOME}}/.zimrc ]]; then
|
|
||||||
source ${ZIM_HOME}/zimfw.zsh init -q
|
|
||||||
fi
|
|
||||||
|
|
||||||
source ${ZIM_HOME}/init.zsh
|
|
||||||
|
|
||||||
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=(
|
|
||||||
"$HOME/.cargo/env"
|
|
||||||
"$HOME/.zshwork"
|
|
||||||
"$HOME/.zshprivate"
|
|
||||||
)
|
|
||||||
|
|
||||||
for fp in $srcs; do
|
|
||||||
if [[ -s "$fp" ]]; then
|
|
||||||
source "$fp"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
||||||
eval "$(direnv hook zsh)"
|
|
||||||
eval "$(jj util completion zsh)"
|
|
||||||
[ -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"
|
|
||||||
|
|
||||||
[ "$TERM" = "xterm-kitty" ] && alias ssh="TERM=xterm ssh"
|
|
||||||
|
|
||||||
function update_now() {
|
|
||||||
cd ~/projects/personal/thermokar.st || return
|
|
||||||
jj git fetch --remote pingo && jj new deploy
|
|
||||||
hx now.md
|
|
||||||
if [[ -n $(jj diff) ]]; then
|
|
||||||
jj commit -m "$(now)"
|
|
||||||
jj tug
|
|
||||||
jj git push --remote pingo
|
|
||||||
jj git push --remote dokku
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
@ -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-----
|
|
||||||
|
|
@ -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-----
|
|
||||||
|
|
@ -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-----
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByV0J4aGFoR3hDSTJvNVp2
|
|
||||||
a1F1NzJmaERoYWwycStJeC9OS0tLaUp0aXpvCjhndzJrQmhRaWo4STRzdWtYTE94
|
|
||||||
Y0V4UHJ5UHlwaXZJOVJXSjdhMktvUWcKLS0tIDRtUHptRjYzT0RHQVJxT2RBbXNa
|
|
||||||
OUwxak52ZVhQL2psSUlpRVhHdzUxZjgKtcrEfrCDzTmLFhPNcnJ/PBMoiIxF0KAE
|
|
||||||
B2lhLyJ6+0OVTHMM6byVr+JnjnIXoA35537EUkQZ+A==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzTmhSUzdOTnJmczRqd3g3
|
|
||||||
YWhZRm1iNHpIMFNwOFdDMExKQ25qcGgwTWhJClBpSzkrUTREZk84VDZYajlXcndF
|
|
||||||
enhwVUt1enVFY24xUDNDK2gwQUxTb2cKLS0tIGE5ellZWHZHR3Y2WVhoTUNLWUlT
|
|
||||||
YmM3S2diZ1JYOHNMcW83dm5zRzVkZmcKTOtE4Sekeosb1khWwlViiPDjg7iG4unX
|
|
||||||
iqforD+jLIR+M0+2inoNXuSwz1mn1dZVaR5m5B6aXw6oUNXlA3nzZIN57p7pR+kW
|
|
||||||
YkHA5MovQpHSpFNP0QMhfngU+oZ2+U/sQLa2EegtmfErt3uuYEJ3axpe6CcZgQsh
|
|
||||||
x9eZYlc/cF8UxqPew9/Pj1M+Bu8jpRMWvKXUOBQgp19Jc/wh9eXqydmnLqYoJJ0a
|
|
||||||
LMzN+oZDejtV3WVC9jmwrFVFQ+YAKGc17UZAxWk/fhhuPT7CJkhqRkuIiBkmmXXp
|
|
||||||
3Vmwm5csnJahKjVdntMz+QQ0wdoPKCn1NPOypH+ox57nE1K3bAuoMPDv+RgODisB
|
|
||||||
ESW3gXyo+pEMxdsP31/awOK4CNQdaKNtmrYa5A5V3+CJOzqiVxM=
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGU2E2Mld2R1R3R2JWRURO
|
|
||||||
cEd4SWRTaU9jeENkZ3g2Tm9FL2h5R0l2eG5JCjNzUVpoWmVwR3BOUGU1RDNyNUw2
|
|
||||||
N0c2NWtBaFZNK3hrNmNTN1VOWmZEZzAKLS0tIC9WSEdlOWFkaWhhZ1FyamlybWlj
|
|
||||||
RFZGZHJVbXpaVk02c1JDS3BGWVJmL1kKRKjBdIPBTWB0pbPdw9cb7ZPueXdRY2wy
|
|
||||||
goYJrLhHjdAISUHldgabcGJzdBpfwRzL5TcVSzfqjCGNPToH2brLRYNrRjm7J3t8
|
|
||||||
ZcZo//w4TIvU8x4qyqqw/GN5/PS0vd/LQ1Gu4EOH95Q/xWXu+YowDTcYijOaBGiD
|
|
||||||
I1mGWgy6iU/8NLF987GtNSltfJlzy1wGU97gawMkDUNjI+tP6VLvJ3vEiCQzKdPA
|
|
||||||
rnLifnzClvGb7LPLzXTMwqmX+vm889S6cZE1giMRgeg/w9NNA+LPRKd1ofIrOA+v
|
|
||||||
UjToiSoz3wClaJ+DzrtT2Cp4KXx/GApIjCUIlEfPgO+i5wlpnJBrOTu/fQ+9CCb6
|
|
||||||
mVLHoptx3I8mkZiMmkcLQcJZFt40BvMieX18oXpTtcHdj9znYmHnN+2tYs6QcKQD
|
|
||||||
/jgSPfVWKANUSayhlhFFX76qqSuh/pxrpsFZiEtUujxmCmXOhZdBa7q6RqaO9eR5
|
|
||||||
X4dayXBwhocP982cMGQLjpTWo9gmmkig70nDILc5bjqXNUvJCouK+qSHKfN041dF
|
|
||||||
KGhrZU15lcCimKkoiPRZPWei7lTcZS84g6jrLisF+C3LzWAmB4NZ+W5I5SQJ81fk
|
|
||||||
W31gsu17M0zfdJYugrYbUsALA79PH3FcdWtFLG7uXVJY6j7DZcqUy9rz8CRjiqNA
|
|
||||||
E80Qk4Qn+3t5ptvtaGOG6dLdXt2Q6jcC7lc2TIddV3f2/I7SOebviLQUrfJ858HM
|
|
||||||
IZJXyz8xy6wCMs80p+VjYidZIqaLQy8bLvQ/EXGnkEHCezFFxNYwxpPqCNsrZWff
|
|
||||||
+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
|
|
||||||
7husN3fi6bqeIxAr7vY=
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
- model_id: copilot-gpt-4.1
|
|
||||||
model_name: gpt-4.1
|
|
||||||
api_base: "https://api.githubcopilot.com"
|
|
||||||
api_key_name: copilot
|
|
||||||
supports_tools: true
|
|
||||||
|
|
||||||
- model_id: copilot-gpt-4o
|
|
||||||
model_name: gpt-4o
|
|
||||||
api_base: "https://api.githubcopilot.com"
|
|
||||||
api_key_name: copilot
|
|
||||||
supports_tools: true
|
|
||||||
|
|
||||||
- model_id: lms-qwen3-coder-30b
|
|
||||||
model_name: qwen/qwen3-coder-30b
|
|
||||||
api_base: "http://localhost:1234/v1"
|
|
||||||
api_key_name: copilot
|
|
||||||
supports_tools: true
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
--theme="Catppuccin Mocha"
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,9 +0,0 @@
|
||||||
*~
|
|
||||||
.DS_Store
|
|
||||||
.idea
|
|
||||||
.vscode
|
|
||||||
.envrc
|
|
||||||
.aider*
|
|
||||||
**/.claude/settings.local.json
|
|
||||||
CLAUDE.md
|
|
||||||
TODO.xit
|
|
||||||
|
|
@ -1,16 +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"
|
|
||||||
|
|
||||||
[keys.normal.space.m.n]
|
|
||||||
a = ":run-shell-command nb todo archive"
|
|
||||||
s = ":run-shell-command nb sync"
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
[[language]]
|
|
||||||
name = "rust"
|
|
||||||
language-servers = ["rust-analyzer"]
|
|
||||||
|
|
||||||
[language-server.rust-analyzer.config.check]
|
|
||||||
command = "clippy"
|
|
||||||
|
|
||||||
[language-server.pyright]
|
|
||||||
command = "pyright-langserver"
|
|
||||||
args = ["--stdio"]
|
|
||||||
config = {}
|
|
||||||
|
|
||||||
[[language]]
|
|
||||||
name = "python"
|
|
||||||
language-servers = ["pyright"]
|
|
||||||
|
|
||||||
[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" }
|
|
||||||
|
|
||||||
[[language]]
|
|
||||||
name = "go"
|
|
||||||
roots = ["go.work", "go.mod"]
|
|
||||||
auto-format = true
|
|
||||||
formatter = ["gofmt"]
|
|
||||||
comment-token = "//"
|
|
||||||
language-servers = ["gopls"]
|
|
||||||
|
|
||||||
[language-server]
|
|
||||||
zk-lsp = { command = "zk", args = [ "lsp" ] }
|
|
||||||
|
|
||||||
[[language]]
|
|
||||||
name = "markdown"
|
|
||||||
language-servers = ["zk-lsp"]
|
|
||||||
roots = [ ".zk" ]
|
|
||||||
|
|
||||||
[[language]]
|
|
||||||
name = "lua"
|
|
||||||
formatter = { command = "stylua", args = [ "-" ] }
|
|
||||||
|
|
||||||
[[language]]
|
|
||||||
name = "prr"
|
|
||||||
scope = "source.prr"
|
|
||||||
file-types = ["prr"]
|
|
||||||
roots = []
|
|
||||||
comment-token = "#"
|
|
||||||
|
|
||||||
[[grammar]]
|
|
||||||
name = "prr"
|
|
||||||
source = { path = "~/.local/share/tree-sitter-prr" }
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
; PRR syntax highlighting for Helix
|
|
||||||
|
|
||||||
; Diff additions and deletions
|
|
||||||
(addition) @diff.plus
|
|
||||||
(deletion) @diff.minus
|
|
||||||
|
|
||||||
; File headers
|
|
||||||
(old_file) @diff.minus
|
|
||||||
(new_file) @diff.plus
|
|
||||||
|
|
||||||
; Diff metadata
|
|
||||||
(diff_header) @keyword
|
|
||||||
(index_line) @comment
|
|
||||||
(chunk_header) @attribute
|
|
||||||
|
|
||||||
; Context lines (unchanged diff lines)
|
|
||||||
(context_line) @comment
|
|
||||||
|
|
||||||
; PRR tag components
|
|
||||||
(tag_name) @keyword
|
|
||||||
(action) @string
|
|
||||||
(tag_content) @comment
|
|
||||||
|
|
||||||
; User comments
|
|
||||||
(comment_line) @comment
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
[user]
|
|
||||||
name = {{ .name | quote }}
|
|
||||||
{{- if eq .hosttype "work" }}
|
|
||||||
email = {{ .email_work | quote }}
|
|
||||||
{{- else }}
|
|
||||||
email = {{ .email_personal | quote }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
[git]
|
|
||||||
private-commits = "description(glob:'private:*')"
|
|
||||||
|
|
||||||
[templates]
|
|
||||||
{{- if eq .hosttype "work" }}
|
|
||||||
git_push_bookmark = '"2025_{{ .github_work }}_jj_" ++ change_id.short()'
|
|
||||||
{{- else }}
|
|
||||||
git_push_bookmark = '"{{ .github_personal }}_jj_" ++ change_id.short()'
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
"diff removed token" = { fg = "red", underline = false }
|
|
||||||
"diff added token" = { fg = "green", underline = false }
|
|
||||||
|
|
||||||
[revset-aliases]
|
|
||||||
"immutable_heads()" = "builtin_immutable_heads() | (trunk().. & ~mine())"
|
|
||||||
"why_immutable(r)" = "r | roots(r:: & immutable_heads())"
|
|
||||||
"closest_bookmark(to)" = "heads(::to & bookmarks())"
|
|
||||||
|
|
||||||
[aliases]
|
|
||||||
tug = ["bookmark", "move", "--from", "closest_bookmark(@-)", "--to", "@-"]
|
|
||||||
|
|
||||||
[ui]
|
|
||||||
default-command = ["log"]
|
|
||||||
diff-formatter = ":git"
|
|
||||||
|
|
||||||
{{ if eq .hosttype "work" -}}
|
|
||||||
[[--scope]]
|
|
||||||
--when.repositories = ["~/projects/personal", "~/.local/share/chezmoi"]
|
|
||||||
[--scope.user]
|
|
||||||
email = {{ .email_personal | quote }}
|
|
||||||
[--scope.templates]
|
|
||||||
git_push_bookmark = '"{{ .github_personal }}_jj_" ++ change_id.short()'
|
|
||||||
{{- end }}
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzM1hrWEZheUp6MEF3Y1ZO
|
|
||||||
NXQyRlVlUDl5T2xsYktXeldxZlR1c0ZDVW5zCnVzdUhNUFRySlZqa2Y1dk5WaEM1
|
|
||||||
RENzc25KSG94ZmNDcTd3TmJXd0JxZVEKLS0tIHNZYWpsMHMrNmw1V2wxK1NXT2Nu
|
|
||||||
N1pDNFdaYVlCQmJOTVZMZ2V5Mmt0MlUK5kSI0GGB5f1k7Yrk5Hn+p60Nqa5fXhHW
|
|
||||||
Wy4X3ww/Nmgs9DWiNc/cHz/xheJ6jWAQ7spw0sJRLCG1dmUAwpgzoObCIByC58rd
|
|
||||||
ZwS7N2/OKkAFd+CGyqxcxQMjKHOzzT/DG5GvCWZcnbAc6WhF5uD949VtV2V4bXlf
|
|
||||||
RnZyQ1TvmQ0bsqHzJgs/ts/AerbM5km/jeKzXdOIJEw00x6Mh3U8JXuusHnKw4CI
|
|
||||||
eHxFHTDasx51+GDPAw9wv7hd2bn/6bv8FS0VQ58W8YnXeUIKAaxUnsdgq/ancR6g
|
|
||||||
vrqy29yTo1UIao6B5tWnhlThycZbYVbVeFCnnA/GpUhIRYUmFGttNU4U8IS+mNwl
|
|
||||||
6OfGuBqGKa/ele8ZZ3Ty3hC5yV/6C+7H+SI7g4+sI/dbdwyJ4PkX0ItQ7Iv6vlme
|
|
||||||
Nu9mB4l8fJTiSTSDGfM7Z4845YGgibgFhWME0tCifzubljDtHyBfeEocI1KfN0pN
|
|
||||||
qfjUPujtHnXO9TzpIwd73iHJKcR5MmKsnXvffwtJDrxPI781ucPxA8U2txyEs+nP
|
|
||||||
NRPzdotxFjK7YHoQSfhvtS5+83MXkul9GmCVGxYzvHKF36I3fEsiJ2YI7hwibEkO
|
|
||||||
FRfYi6zFfs1h6SGdni6D1ZwTmtnfSJWmOnaVS1QXVUJoUgyTNZyRdmz9yLDGaTkF
|
|
||||||
Kv0Pht3deoCWLcg9jemFnZzpQpMIPi3BtilVGSRy4IZApY3KN2SWibeJWoMmcvuy
|
|
||||||
tQZBjss/djL48/HOGn6hGPz/1IyXkUQNz9747VN952MdwgvtWGYaFDsypjGWrueD
|
|
||||||
NV6SlIe+jVp1IKiwhlbfMPd8VUtXGiE0KarkNPBqo3CbB7iZazRrItU=
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
Binary file not shown.
|
|
@ -1,38 +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
|
|
||||||
enable_audio_bell no
|
|
||||||
visual_bell_duration 0.5
|
|
||||||
enabled_layouts splits, stack
|
|
||||||
tab_bar_edge top
|
|
||||||
tab_bar_min_tabs 2
|
|
||||||
tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{index} {title.split('/')[-1].split(':')[-1]}"
|
|
||||||
allow_remote_control yes
|
|
||||||
|
|
||||||
map ctrl+a>h neighboring_window left
|
|
||||||
map ctrl+a>j neighboring_window bottom
|
|
||||||
map ctrl+a>k neighboring_window top
|
|
||||||
map ctrl+a>l neighboring_window right
|
|
||||||
|
|
||||||
map ctrl+a>" launch --location=hsplit
|
|
||||||
map ctrl+a>% launch --location=vsplit
|
|
||||||
map ctrl+a>c new_tab_with_cwd
|
|
||||||
map ctrl+a>shift+c new_tab
|
|
||||||
map ctrl+a>z toggle_layout stack
|
|
||||||
map ctrl+a>ctrl+a goto_tab -1
|
|
||||||
map ctrl+a>0 select_tab
|
|
||||||
map ctrl+a>1 goto_tab 1
|
|
||||||
map ctrl+a>2 goto_tab 2
|
|
||||||
map ctrl+a>3 goto_tab 3
|
|
||||||
map ctrl+a>4 goto_tab 4
|
|
||||||
map ctrl+a>5 goto_tab 5
|
|
||||||
map ctrl+a>6 goto_tab 6
|
|
||||||
map ctrl+a>7 goto_tab 7
|
|
||||||
map ctrl+a>8 goto_tab 8
|
|
||||||
map ctrl+a>9 goto_tab 9
|
|
||||||
|
|
||||||
# BEGIN_KITTY_THEME
|
|
||||||
include current-theme.conf
|
|
||||||
# END_KITTY_THEME
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
[
|
|
||||||
{
|
|
||||||
"name": "default",
|
|
||||||
"path": "/Users/matthew.dillon/notebook/tracker.klg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "tracker",
|
|
||||||
"path": "/Users/matthew.dillon/notebook/tracker.klg"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "agenda",
|
|
||||||
"path": "/Users/matthew.dillon/notebook/agenda.klg"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"diagnostics.globals": [
|
|
||||||
"vim"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -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")
|
|
||||||
|
|
@ -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" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
return {
|
|
||||||
"catppuccin/nvim",
|
|
||||||
lazy = false,
|
|
||||||
name = "catppuccin",
|
|
||||||
priority = 1000,
|
|
||||||
config = function()
|
|
||||||
vim.cmd.colorscheme("catppuccin")
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
@ -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,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -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,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
return {
|
|
||||||
"nvim-lualine/lualine.nvim",
|
|
||||||
config = function()
|
|
||||||
require("lualine").setup()
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
@ -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,
|
|
||||||
}
|
|
||||||
|
|
@ -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,
|
|
||||||
}
|
|
||||||
|
|
@ -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,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -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,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -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,
|
|
||||||
}
|
|
||||||
|
|
@ -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)",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
@ -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" })
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
defaults:
|
|
||||||
max_columns: 150
|
|
||||||
theme: "catppuccin-mocha"
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
set mouse=1
|
|
||||||
|
|
||||||
### catppuccin theme
|
|
||||||
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
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
style: {{ .chezmoi.homeDir }}/.config/glow/themes/catppuccin-mocha.json
|
|
||||||
mouse: false
|
|
||||||
pager: false
|
|
||||||
width: 80
|
|
||||||
all: false
|
|
||||||
|
|
@ -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": {}
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
aliases:
|
|
||||||
dp: deployments
|
|
||||||
sec: v1/secrets
|
|
||||||
jo: jobs
|
|
||||||
cr: clusterroles
|
|
||||||
crb: clusterrolebindings
|
|
||||||
ro: roles
|
|
||||||
rb: rolebindings
|
|
||||||
np: networkpolicies
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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'
|
|
||||||
|
|
@ -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'
|
|
||||||
|
|
@ -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'
|
|
||||||
|
|
@ -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'
|
|
||||||
|
|
@ -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'
|
|
||||||
|
|
@ -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'
|
|
||||||
|
|
@ -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'
|
|
||||||
|
|
@ -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'
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrZy9talpnbS9zRUpNV0RC
|
|
||||||
YmExd1FYUkdtekVwa241dUhWUWxpSy83c1ZzCmhLRnZlcHozaVhNaUVPUVA3L0wx
|
|
||||||
dExBZXZMRk4xL1Y5Q3Bjd2M1VHQwb2cKLS0tIDZha0hwR0FnaDJXNXhIcTk3dFBa
|
|
||||||
blV4dGlSUFpyd3BOYks3MGlZTW55U2cKpSgRsX6cHEDJdbAhkiTzESJsEYJvQECE
|
|
||||||
18UYtpibMeVdHnGh9/J4qkH7RNLGu/o+IsIJlIN+2ALNXkRTgnwska7di8FlgN+X
|
|
||||||
OBAf03DbwILRRf9rFqdgehzD7TsiVX1DbFQm8986//FhPVrblA9N3sRlGvywatDG
|
|
||||||
CJujmkqXSBSCTimvM+ECYUWB6Q==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxNkVwT0lIQUMxS0t5ZCt1
|
|
||||||
dkV4aXB2QU02NFZydFI0andWZklTbUp6OGk4CkcvdWJXeUorczZDNGw0VTg5YTl2
|
|
||||||
NHJLNGRYbVdwdTZWL2RhT0E1RUtZaU0KLS0tIERHZGpEY0gySFNHTXlqblV5QVpz
|
|
||||||
alFhVUtXQ3ErR0hSdytxWmM5c2dja1UKkqMyi5ZSf/PRT1JUm+FstxOp3Z8DJovv
|
|
||||||
xZMuAj85RWL0yXMe8mcLupxkxuT3eKbCvkKWP5Ot+YX1p3npVGGceQ4a7frs9QRj
|
|
||||||
fi+YZx8LOEUu5m1OiMYqYVrRDyTvMiHhJjQ3lKl2ikoWLnE9AFkx0EOsRzVFGv6G
|
|
||||||
AbxHzYuhDAw8DvCBbsu0FORLB0gN+uxwfg==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoNGxzeUdqNkE4TTZEek9y
|
|
||||||
a2oybWwzNlZXbGhrMmJybkwyT1JGRkkvWFQ4CjUwbkNjVnByQTJ1d2FsbHV6dUpT
|
|
||||||
cnJzZUoxY0d5L2dETit5aWYrZUdHelkKLS0tIEZ1Q2RQSlBMZ0V0QzFxdlBqekJp
|
|
||||||
TXdLK3RRSEtmWGZ2aWZkK2hobWx4aVUKz8hAJq2YWa5kMZYt/5Di6pK1on+x8zeH
|
|
||||||
sLETXqtVU0bSKkFIizRfk+6rlt+34oTumuPeHXeL1/o4ks8aYyTCZfxN1/zmopS5
|
|
||||||
gi79LXdJVZATnwrNZ5MpBYHmI0VhMclhnt5K17yiEpDOFwwSTt7xJetZtLUP/uNw
|
|
||||||
pxvKexRE+lRWSesS3kG7Z8jfFHxAOAmrhlkXsmUfKuLCCSdb3bBVDnKTgL4iN8DP
|
|
||||||
ZF2lktkGdP5azhJ21KD4nTtYacwGKJuEEpOK5Ly8184ucOOtn1CbAb8keUbvpURO
|
|
||||||
ms/ROKDyBtBLb3jKZTSWfwFHNExC/H0qgXQAqnpWXWlki/1BbnFU+DX76b3zKHwo
|
|
||||||
K7e8IMygflCe+XOAy9jKi7hv0x+vYvPUBU7W9kVP/f073aewm3lnbz6/rGfKCaUR
|
|
||||||
YyFlJ5FcrOV4PLoXLvItd84qUyHPNusSyQHsjAb3CMirgZjFreLN0SJUi+eu8Y0G
|
|
||||||
l1IIK1BuDQleJVbrj67c/WW3sRHSoeB3UAKu3Ch4BokO3B7YTt1vk1eRPaHKMat7
|
|
||||||
NvvAapJLKr+QMkX0KO5Hi2do4KPleBGfLTKuXh/q3Tq4G8ZdBokDu8r3k6gQcInK
|
|
||||||
gxkdyE4RNcAsKkV0NcSQ6jA+MMfo6mVp0RfMG/u0swDfk+wPzUvSBlFR7EJ4LKtS
|
|
||||||
b90bBIxj7nlC6T5mLR9OOhehsnGfgwZjFg4wKVAYsYkdWlXJWmqf/aBDdmysJh6Q
|
|
||||||
FBVUG+cnePUJxoIsleuw5bq+S0xKBj4vhOXvCLpoPsA1rAIOA3u9DPO39/m/ELv1
|
|
||||||
T1IdOgQuoHdqpDPiBtiut7j3k7o7KL8XU2WB9JsdCMZCXtlKWOvu7QsQwrGya8/I
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
{{ if eq .chezmoi.os "darwin" -}}
|
|
||||||
Include ~/.orbstack/ssh/config
|
|
||||||
{{ end }}
|
|
||||||
|
|
@ -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-----
|
|
||||||
|
|
@ -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-----
|
|
||||||
|
|
@ -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-----
|
|
||||||
|
|
@ -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-----
|
|
||||||
|
|
@ -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-----
|
|
||||||
|
|
@ -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-----
|
|
||||||
|
|
@ -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
|
|
||||||
/lErWw5eks2+8VC5V2Ou7Zm5BB6zvvYvSETYD+WIyadUItQsxgHpTdTw3D91NoYg
|
|
||||||
MAl0veQ9ze6gC/0RjIUkcgDAejrAJBsdl0/5y9y4JksEo4QLIoA9QKI2JdC/3VQc
|
|
||||||
KX1p2bZ6rycy/FWTssv5AH5SNRQmFeevhEv8ty5MR2IM+JyltNXhueM1NLTysSlO
|
|
||||||
XsiDcNRWR39VZWUpIeKwP/wzi7GQ0FamY1ns4j7eAHuaKVgNjNJp9brVtrrSBio8
|
|
||||||
bTUP5mnhy11r0cA17KtjgH8d4T3AFp5MtAQRqH+FP6MjB8N7zZa9TwH9fcgFX4SH
|
|
||||||
iC9XmUck+KxXd1uHFlELs2MCS6OpQaiQg0nVEJ7J46/RnWIbufi7Ip76ztUckQpO
|
|
||||||
+CRBbmHwgKH9LSxJfFnxg17Tl/80iuDnvdCF98fRdhn1S2C+6gLEx2HezBqVRSub
|
|
||||||
kK9LdD9k64ur8zXZxj2HGyTi9VTm9njojztur23Bu20q5QhtYkBqQYJg2k4x0uoR
|
|
||||||
WkVdnnOFBCqEPFVqYgPOEAQq0pGna/KQ3pkuqkO6mlJvYZ3CzLQ8kobGmtF9okeT
|
|
||||||
F9fMdgcwzZpE01kdU7XLRhpeDhxEMTFQhBE3DJYzj/zUp8C+SGMZSG4MtM1r0lQa
|
|
||||||
nBZZdNLtn2Pv+KawjL5Kcw3yb9fQkWcieav/d0O/4IbNkvvvSqBO420PpAZRaJau
|
|
||||||
C3I2vLMf6phv+IFcwLhBoTwN3lIbdNDjv1YtINB7RHjZCF4THpSABkO8TTa/FAyw
|
|
||||||
DzNRSw2iuR1+IyCiYCnVEz1TNKkQEfWEim+uh+v+Qq6jhcxmP38V99FvnGvjLdbx
|
|
||||||
u9WENwP/ZXRSASQwBrxxE01MSAsrC5bL5E/7Gyhaqz8TZFbQs7IQcQQNEpgzHjXU
|
|
||||||
sRSs6rg55627BrOrH8YpDy+QqTTgbj2MDoXENa4HnfUKHmcY8JBxCaPZFXjCWt7w
|
|
||||||
5zu2OC9ybFC8FfbNpD+pARsFj0yD49AEReJBMsPfKoODIQiiP6COnLMSzoeh12N3
|
|
||||||
ijRUwKC7r6JZlF+Unfpk+7uBMuJ9jtO02718tx5bwUZzvzKSnKbEEkDvcw8FfesE
|
|
||||||
2YxMSDcV7yYm211v6qryIGKR2x0LSXeCbJUc+usO7H7Xajlm/+CRO5CkN6N6qPue
|
|
||||||
EVeq/eDt4b4xw6zySrVmllIVbVNmBVb5QM3lRyCqlnVBIunZ7OdKmDfigl015fL5
|
|
||||||
tyWQts9Hg9LFdfOV/YiBxpCQwgc1XibGidHNX5S5OTBEC4iHnQnxBKQDJuKmuecf
|
|
||||||
+SrrkbrI4ReTfEW5peLEbMoQ/MGoi2NrU7hrHidUwLOrX3uLPnGuLjs1x4VH8L0b
|
|
||||||
luaXhUFY9nTy9BQNOMz42SBX0wUo9hKvcW4dqU2UEFE5zf6gzlUOz5JdLxCFhYi6
|
|
||||||
EBp5YfzRQdDcwWKlmN7nd+CXG/jl2xuWbLCe46ufEEXH/IZN/d5KKrsXt3bqXBwL
|
|
||||||
o7hj8vTFF2h3t0nKMpZ/312O+Wny7HOmZ9EKwhzDTQ6GYFaOP3rjNJYOWzuqqqrZ
|
|
||||||
m5LtmAcscp1NnqjI6O4EkQG6BwNqW+gfuUHayi/BaqNGtiIWHNWQR5vscYz/NViM
|
|
||||||
R67fIua81cyTfB6KjlB/UNEaz24w3EMAELz9iFMmJy71URyNTFGZNckcZwaNS2Cg
|
|
||||||
JyxgOCpqglihcKXDJ+k/9tdJRwW1d/PBp9n7nQzPLKwQL4OTVce9j0vQfD0cnoXw
|
|
||||||
0uMnpux551b4pqSM6z8QDAEke52ysHIu3d1SlW7xyVeEIGD2i08QPAMUHMiOUZc7
|
|
||||||
v2agl8cq50eoXGV2mlfAONwnbyWyfqo8/IqB5ye0yUpGFdZ1m/cLsU63bT9S0FB+
|
|
||||||
gx3AzfXQeIpWzc+bx4Q2ZU8scMqA2H0tPn0U2xSEvJc4ITG58uLZ+za1mEBb7VkS
|
|
||||||
2XEZZdffsFzDv0dhK9vDsJpT4OdyTomMg0SDAucCNiYXMqv6GtMZKc7YiQWIOa4Q
|
|
||||||
9US+rKHLquy/NWzO6QFIe9kDBFqd1cCSfzdP1fodF/FVGRrif0rVSmwMO0RraOyd
|
|
||||||
pjgnNY2F1p1q7XX8vY4eY5C7rXZaaX1mWJpHaA8S7uzkX8sudgMvcxsT78wE5Iqa
|
|
||||||
GFXHC50YBircXHHlbGDQN+8ZIjPuS+GedhASFybqIPx3mkqAcFQjthSVWtpQ2y5L
|
|
||||||
mSr10zZZZ5oJY+2bPeb4ObN1TauFoeEww3V8vcdZArL7aPFi0Jv3kOJD52Xw7kOK
|
|
||||||
PGie/T07KHdjrDPw2x7Po9o0EC1pbhEVFKMAg8XjbsJQW+0BGELeGnL1BTLFMxxD
|
|
||||||
xrKZD2tG/jaVfoXqBpSz0vS9g48j+zXLZDqc4GCfKBzG/JCfOnHsv3FM5HHZlgl1
|
|
||||||
wQQIycX5FJvAekbmkZ76NA6nu4NptjKaS5bQtXiGY0Lt8nU53ElpwVJGV9nW5AbV
|
|
||||||
oKDAcwEOFLzqlzaKrz1xtZ+I1IwRokbFXT/MAL4/M7NTAQbp+ZB2iX5KsoVBrqxR
|
|
||||||
IPoPlN8JZQ1pIVnrvl1Rkp7eGa9KG4b1/WHcio97z1RNrl7GtAc3Cr1t+l2LX2Gu
|
|
||||||
bD0KD9MR4ycf3M9MMJOT5UHNz/s1wjVFoDy3HvpASXFdne2/oAE3MEukRfwKudJB
|
|
||||||
m77YmSLTdS1Aky3jXcRhnqaRmqzy845LeYbdNX8TtSz2jmeA2tQO007zKTW+ze4b
|
|
||||||
1+CpLm+dnVBEs5fyf4gS2kTIBDqewP89KzziBiRJ5UKXdx8WBl9/06W3tzzwmxi2
|
|
||||||
etWyNPN/nvUc/T5baQ8Kj0D1ZeWUHHFUFALQnX7n/U5aC3V8qMTukO8lCW8S5nDD
|
|
||||||
eUJcn+uHwRHLtTFs+kxoMJw7NSps+8nDpDjaKcDg5QUFG1del3+vXoOWGWZM4SGE
|
|
||||||
Y3384WBGZ7fqE9+FkxjMmI9AYkz4w5Gtm9pBe+31AhNuq5XF2TFRJNV/rhh4b4tE
|
|
||||||
XbY0V5jnxA5xfnnEzXxTbYe8RgSi9AaNK2EivOJehQxnovwL7cfQfHaQAa8AOaO/
|
|
||||||
ygLG9bHUFBhzKmubQk6xe/dY+XleSi9UbL+1QjzbUbjpQQAfmQZI+pX/wRuEofKy
|
|
||||||
UkWcYchKJ35lSsSmVDEdvOgtMQhUEbRxd9dwDeQV6g4za25qrvrT6NW2tmMgOoJ3
|
|
||||||
nhwG2o4mQUiCD8nwSN8b2UJgUN+UUDnHNdF7hY/2qJ/v0TTmeKEMazLcqYqk4Qwk
|
|
||||||
uCNmixLD01I45MY9yAsApwr61vX7oXd3/f3Kl12GKSjnBa+gWCrTgSKMV+MKeGD3
|
|
||||||
0esvqxwqGwS3rDewSs8Hd2biJuq9gXJhyjGN++6uq/W1aVaZPlGbeccm971dxwIa
|
|
||||||
zKMG0lDPjXBX1B5s8lRfKtGS7UUr0LgFZgXQsZ5D9+oJ1rfQq9YLpv4hOC2Snta1
|
|
||||||
ceM7vBfOYEKItMuwYX3DytuM1IYpP71caBjHy9hCBR0rxkgrOyRSuL1xRrWbkarT
|
|
||||||
KhZPdmO19D1ltnNitib0Q0ECDOdMTM64rWrLG0ILfYawhRjZApfJreUINu9pNqwq
|
|
||||||
AXmQa7pCdgZ4/mytOy6CIWcQu965+vJ2P2AxaMKx8Viy/hR0ww==
|
|
||||||
-----END AGE ENCRYPTED 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-----
|
|
||||||
|
|
@ -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
|
|
||||||
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
|
|
||||||
-----END AGE ENCRYPTED 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
|
|
||||||
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
|
|
||||||
-----END AGE ENCRYPTED 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
|
|
||||||
|
|
@ -1,55 +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 \
|
|
||||||
bat \
|
|
||||||
bzip2 \
|
|
||||||
cmus \
|
|
||||||
curl \
|
|
||||||
direnv \
|
|
||||||
exercism \
|
|
||||||
fzf \
|
|
||||||
gh \
|
|
||||||
git \
|
|
||||||
glow \
|
|
||||||
go \
|
|
||||||
golangci-lint \
|
|
||||||
helix \
|
|
||||||
inlyne \
|
|
||||||
jj \
|
|
||||||
just \
|
|
||||||
lua-language-server \
|
|
||||||
luarocks \
|
|
||||||
marksman \
|
|
||||||
nvm \
|
|
||||||
presenterm \
|
|
||||||
prr \
|
|
||||||
ripgrep \
|
|
||||||
sqlite \
|
|
||||||
tree \
|
|
||||||
vdirsyncer \
|
|
||||||
watch \
|
|
||||||
wget \
|
|
||||||
xz \
|
|
||||||
zlib
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
{{ if eq .hosttype "personal" -}}
|
|
||||||
brew install \
|
|
||||||
love \
|
|
||||||
mingw-w64 \
|
|
||||||
pandoc \
|
|
||||||
stylua
|
|
||||||
{{ else if eq .hosttype "work" -}}
|
|
||||||
{{ join .chezmoi.sourceDir "encrypted_dot_work_packages.age" | include | decrypt -}}
|
|
||||||
{{ end }}
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ ! -d $HOME/.src/gwar ] ; then
|
|
||||||
git clone ssh://git@git.thermokar.st/thermokarst/gwar $HOME/.src/gwar
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd $HOME/.src/gwar
|
|
||||||
# belt-and-suspenders
|
|
||||||
. $HOME/.cargo/env
|
|
||||||
cargo build --release
|
|
||||||
cp target/release/gwar ~/bin
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
{{- if eq .hosttype "work" }}
|
|
||||||
if [ ! -d $HOME/notebook ] ; then
|
|
||||||
jj git clone ssh://git@git.thermokar.st/thermokarst/klaviyo-notebook $HOME/notebook
|
|
||||||
fi
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{- if eq .hosttype "personal" }}
|
|
||||||
if [ ! -d $HOME/notebook ] ; then
|
|
||||||
jj git clone ssh://git@git.thermokar.st/thermokarst/notebook $HOME/notebook
|
|
||||||
fi
|
|
||||||
{{- end }}
|
|
||||||
15
install
Executable file
15
install
Executable 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
41
install.conf.yaml
Normal 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
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue