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/
|
||||
|
||||
# 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
|
||||
|
||||
## 1. set the fqdn:
|
||||
|
||||
```bash
|
||||
sudo scutil --set HostName $MY_HOSTNAME.local
|
||||
sudo scutil --set LocalHostName $MY_HOSTNAME
|
||||
sudo scutil --set ComputerName $MY_HOSTNAME
|
||||
dscacheutil -flushcache
|
||||
$ git clone https://github.com/thermokarst/dotfiles.git ~/.dotfiles
|
||||
$ cd ~/.dotfiles
|
||||
$ git remote rename origin thermokarst
|
||||
$ git clone https://github.com/chriskempson/base16-shell.git ~/.config/base16-shell
|
||||
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
|
||||
$ ./install
|
||||
$ sh <(curl -L https://nixos.org/nix/install) --darwin-use-unencrypted-nix-store-volume
|
||||
$ source ~/.zshrc
|
||||
$ nix-env -i \
|
||||
coreutils \
|
||||
elixir \
|
||||
ffmpeg \
|
||||
git \
|
||||
heroku \
|
||||
htop \
|
||||
kakoune \
|
||||
nodejs \
|
||||
packer \
|
||||
reattach-to-user-namespace \
|
||||
silver-searcher \
|
||||
sslmate \
|
||||
tmux \
|
||||
tree \
|
||||
vim \
|
||||
watch \
|
||||
wget \
|
||||
xz
|
||||
$ base16_ashes
|
||||
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
|
||||
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
$ vim +PlugInstall
|
||||
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
|
||||
$ sudo sh Miniconda3-latest-MacOSX-x86_64.sh -p /opt/miniconda3 -b
|
||||
$ sudo conda update conda
|
||||
$ wget https://raw.githubusercontent.com/qiime2/environment-files/master/latest/staging/qiime2-latest-py36-osx-conda.yml
|
||||
$ conda env create -n q2dev --file qiime2-latest-py36-osx-conda.yml
|
||||
$ git clone <some private repo> # this will bootstrap the macos keychain
|
||||
$ python3 bin/bootstrap_git_repos.py
|
||||
$ sudo rm ~/Desktop ~/Downloads
|
||||
$ ln -s ~/desk ~/Desktop
|
||||
$ ln -s ~/Desktop ~/Downloads
|
||||
$ chflags hidden ~/Documents ~/Library ~/Movies ~/Music ~/Pictures ~/Public
|
||||
$ chflags -h hidden ~/Desktop ~/Downloads
|
||||
$ chflags nohidden desk
|
||||
```
|
||||
|
||||
## 2. reboot
|
||||
## todos
|
||||
|
||||
## 3. install https://typeof.net/Iosevka/
|
||||
- rework git bootstrap script
|
||||
- add in neuron install
|
||||
- cmus won't install
|
||||
|
||||
## 4. install `age` private key from password manager into `~/.key.txt`
|
||||
## manual install/setup
|
||||
|
||||
## 5. bootstrap chezmoi:
|
||||
- anonymous pro
|
||||
- docker
|
||||
- firefox
|
||||
- freedom
|
||||
- iterm2
|
||||
- postgres.app
|
||||
- printer drivers
|
||||
- rust
|
||||
- slack
|
||||
- ssh keys
|
||||
- steermouse
|
||||
- syncthing
|
||||
- thunderbird
|
||||
- virtualbox
|
||||
- vscode
|
||||
- wakatime key
|
||||
- zoom
|
||||
|
||||
## optional vscode extensions
|
||||
|
||||
```bash
|
||||
sh -c "$(curl -fsLS get.chezmoi.io)" -- \
|
||||
init \
|
||||
git://git.thermokar.st/thermokarst/dotfiles \
|
||||
--apply \
|
||||
--guess-repo-url=false
|
||||
```
|
||||
|
||||
## 6. restart shell
|
||||
|
||||
## 7. some "manual" stuff:
|
||||
|
||||
```bash
|
||||
vdirsyncer discover my_cals
|
||||
$ code --install-extension AndrsDC.base16-themes
|
||||
$ code --install-extension ecmel.vscode-html-css
|
||||
$ code --install-extension formulahendry.auto-close-tag
|
||||
$ code --install-extension hollowtree.vue-snippets
|
||||
$ code --install-extension JakeBecker.elixir-ls
|
||||
$ code --install-extension karigari.chat
|
||||
$ code --install-extension lextudio.restructuredtext
|
||||
$ code --install-extension ms-python.python
|
||||
$ code --install-extension ms-vscode.Go
|
||||
$ code --install-extension ms-vsliveshare.vsliveshare
|
||||
$ code --install-extension redhat.vscode-yaml
|
||||
$ code --install-extension vscodevim.vim
|
||||
$ code --install-extension wakatime.vscode-wakatime
|
||||
```
|
||||
|
|
|
|||
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]
|
||||
name = {{ .name }}
|
||||
{{- if eq .hosttype "work" }}
|
||||
email = {{ .email_work }}
|
||||
{{- else }}
|
||||
email = {{ .email_personal }}
|
||||
{{- end }}
|
||||
name = Matthew Dillon
|
||||
email = matthewrdillon@gmail.com
|
||||
[core]
|
||||
editor = hx
|
||||
excludesFiles = ~/.config/git/ignore
|
||||
{{ if eq .hosttype "work" }}
|
||||
sshCommand = "ssh -i ~/.ssh/id_rsa_work"
|
||||
{{ end }}
|
||||
[diff]
|
||||
colorMoved = default
|
||||
editor = vim
|
||||
excludesfile = /Users/matthew/.gitignore_global
|
||||
[color]
|
||||
diff = auto
|
||||
status = auto
|
||||
|
|
@ -23,9 +14,12 @@
|
|||
auto = 1
|
||||
[merge]
|
||||
summary = true
|
||||
tool = vimdiff
|
||||
conflictstyle = diff3
|
||||
prompt = false
|
||||
[alias]
|
||||
unstage = reset HEAD
|
||||
uncommit = reset --soft HEAD^
|
||||
# http://stackoverflow.com/a/9074343
|
||||
lg1 = log \
|
||||
--graph \
|
||||
|
|
@ -44,29 +38,19 @@
|
|||
a = add
|
||||
c = commit --verbose
|
||||
ca = commit -a --verbose
|
||||
m = commit --amend --verbose
|
||||
d = diff
|
||||
dc = diff --cached
|
||||
s = status -s
|
||||
sw = switch
|
||||
swc = switch -c
|
||||
co = checkout
|
||||
cob = checkout -b
|
||||
# list branches sorted by last modified
|
||||
b = "!git for-each-ref --sort='-authordate' --format='%(authordate)%09%(objectname:short)%09%(refname)' refs/heads | sed -e 's-refs/heads/--'"
|
||||
# list aliases
|
||||
la = "!git config -l | grep alias | cut -c 7-"
|
||||
[push]
|
||||
default = upstream
|
||||
[credential]
|
||||
helper = osxkeychain
|
||||
[pull]
|
||||
rebase = true
|
||||
[init]
|
||||
defaultBranch = main
|
||||
|
||||
{{ 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
|
||||
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
|
||||
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
|
||||
+8SNAdcM5nH5n1MbjotgAAXMYpmRMBejccN9uSW/8GxUZLaEPM5G6AdJeRalbHfk
|
||||
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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
|
||||
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
|
||||
-----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
|
||||
IXlPewrk+6TqSUSoK4GLYEaFEC4i5x+1HlouNDHSoFacMrbEgZ3KooK+/+Rcsr1J
|
||||
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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
|
||||
ozd3hEGOLdwn/PmgGKg3nLOl3HrXYOd+v72zSb0ke1pnpdL0F1QdmL5l+qaJ3VHS
|
||||
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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