Compare changes

Choose any two refs to compare.

+18
.chezmoi.toml.tmpl
···
···
+
[data]
+
{{ $machineTypeChoices := list "personal" "work" -}}
+
{{ $machineType := promptChoiceOnce . "machineType" "Machine type" $machineTypeChoices -}}
+
machineType = {{ $machineType | quote }}
+
+
{{- if eq .chezmoi.os "linux" }}
+
opDir = "/opt/1Password"
+
{{ else if eq .chezmoi.os "darwin" }}
+
opDir = "/Applications/1Password.app/Contents/MacOS"
+
{{- end }}
+
+
[data.git]
+
{{ $gitName := promptStringOnce . "git.name" "Git name" -}}
+
name = {{ $gitName | quote }}
+
{{ $gitEmail := promptStringOnce . "git.email" "Git email" -}}
+
email = {{ $gitEmail | quote }}
+
{{ $sshSigningKeyOpId := promptStringOnce . "git.sshSigningKeyOpId" "1Password ID for SSH signing key (e.g. op://Private/abcd)" -}}
+
sshSigningKeyOpId = {{ trimAll "\"" $sshSigningKeyOpId | quote }}
-18
.chezmoidata/packages.yaml
···
-
packages:
-
linux:
-
brew:
-
- atuin
-
- bat
-
- chezmoi
-
- fd
-
- gcc
-
- git
-
- git-credential-libsecret
-
- git-credential-oauth
-
- helix
-
- htop
-
- jj
-
- restic
-
- ripgrep
-
- rustup
-
- uv
···
-1
.chezmoidata.toml
···
editor = "hx"
-
opDir = "/opt/1Password"
···
editor = "hx"
+1 -1
.chezmoiignore
···
{{ end -}}
# Ignore Linux-specific files on non-Linux systems.
-
{{- if eq .chezmoi.os "linux" }}
.config/systemd/
.local/share/nautilus/
.var/app/
···
{{ end -}}
# Ignore Linux-specific files on non-Linux systems.
+
{{- if ne .chezmoi.os "linux" }}
.config/systemd/
.local/share/nautilus/
.var/app/
+116
dot_config/homebrew/Brewfile.tmpl
···
···
+
# Packages to install on all machines.
+
brew "aria2"
+
brew "atuin"
+
brew "bat"
+
brew "chezmoi"
+
brew "curl"
+
brew "dua-cli"
+
brew "fd"
+
brew "ffmpeg"
+
brew "gcc"
+
brew "git"
+
brew "helix"
+
brew "htop"
+
brew "jj"
+
brew "just"
+
brew "lnav"
+
brew "ollama"
+
brew "python@3.14"
+
brew "ripgrep"
+
brew "rustup"
+
brew "scrcpy"
+
brew "uv"
+
brew "wget"
+
+
+
{{ if eq .chezmoi.os "linux" -}}
+
# Packages to install on Linux machines.
+
brew "git-credential-libsecret"
+
brew "git-credential-oauth"
+
# TODO: How to specify flatpak file?
+
# flatpak "com.bitwig.BitwigStudio", remote: "bitwigstudio-origin"
+
flatpak "com.calibre_ebook.calibre"
+
flatpak "com.discordapp.Discord"
+
flatpak "com.fastmail.Fastmail"
+
flatpak "com.github.johnfactotum.Foliate"
+
flatpak "com.github.tchx84.Flatseal"
+
flatpak "com.google.Chrome"
+
flatpak "com.mattjakeman.ExtensionManager"
+
flatpak "com.obsproject.Studio"
+
flatpak "com.plexamp.Plexamp"
+
flatpak "com.todoist.Todoist"
+
flatpak "com.valvesoftware.Steam"
+
flatpak "com.valvesoftware.SteamLink"
+
flatpak "com.visualstudio.code"
+
flatpak "io.github.nozwock.Packet"
+
flatpak "io.mpv.Mpv"
+
flatpak "net.nokyan.Resources"
+
flatpak "org.audacityteam.Audacity"
+
flatpak "org.bunkus.mkvtoolnix-gui"
+
flatpak "org.cockpit_project.CockpitClient"
+
flatpak "org.darktable.Darktable"
+
flatpak "org.freac.freac"
+
flatpak "org.gimp.GIMP"
+
flatpak "org.gnome.Boxes"
+
flatpak "org.gnome.Calculator"
+
flatpak "org.gnome.Decibels"
+
flatpak "org.gnome.Loupe"
+
flatpak "org.gnome.Papers"
+
flatpak "org.gnome.Showtime"
+
flatpak "org.gnome.SimpleScan"
+
flatpak "org.gnome.Snapshot"
+
flatpak "org.gnome.SoundRecorder"
+
flatpak "org.gnome.TextEditor"
+
flatpak "org.gnome.Weather"
+
flatpak "org.gnome.clocks"
+
flatpak "org.libreoffice.LibreOffice"
+
flatpak "org.musicbrainz.Picard"
+
flatpak "org.torproject.torbrowser-launcher"
+
flatpak "org.wireshark.Wireshark"
+
flatpak "tv.plex.PlexDesktop"
+
{{ end -}}
+
+
+
{{ if eq .chezmoi.os "darwin" -}}
+
# Packages to install on macOS machines.
+
brew "cocoapods"
+
brew "coreutils"
+
brew "fish"
+
brew "lima"
+
brew "openssh"
+
brew "podman"
+
cask "1password"
+
cask "1password-cli"
+
cask "android-platform-tools"
+
cask "imhex"
+
cask "insomnia"
+
cask "jetbrains-toolbox"
+
cask "mitmproxy"
+
cask "notion"
+
cask "todoist-app"
+
cask "utm"
+
cask "visual-studio-code"
+
cask "wine-stable"
+
cask "wireshark-app"
+
cask "zed"
+
+
{{ if eq .machineType "work" }}
+
cask "picoscope"
+
{{ end -}}
+
{{ end -}}
+
+
+
{{ if eq .machineType "personal" -}}
+
# Packages to install on personal machines.
+
brew "cdrtools"
+
brew "gallery-dl"
+
brew "gemini-cli"
+
brew "restic"
+
brew "yt-dlp"
+
{{ end -}}
+
+
+
{{ if eq .machineType "work" -}}
+
# Packages to install on work machines.
+
brew "firebase-cli"
+
{{ end -}}
+45
dot_config/lnav/formats/installed/logcat_log.json
···
···
+
{
+
"$schema": "https://lnav.org/schemas/format-v1.schema.json",
+
"logcat_log": {
+
"title": "Android logcat logs",
+
"regex": {
+
"threadtime": {
+
"pattern": "^(?<timestamp>\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2}\\.\\d{3})\\s+(?<log_pid>\\d+)\\s+(?<log_tid>\\d+)\\s+(?<level>[A-Z])\\s+(?<log_tag>\\S+)\\s*:\\s*(?<body>.*)$"
+
}
+
},
+
"timestamp-field": "timestamp",
+
"timestamp-format": [ "%m-%d %H:%M:%S.%L" ],
+
"ordered-by-time": false,
+
"level-field": "level",
+
"body-field": "body",
+
"opid-field": "tag",
+
"level": {
+
"fatal": "F",
+
"error": "E",
+
"warning": "W",
+
"info": "I",
+
"debug": "D",
+
"trace": "V"
+
},
+
"value": {
+
"log_pid": {
+
"kind": "integer",
+
"identifier": false
+
},
+
"log_tid": {
+
"kind": "integer",
+
"identifier": false
+
},
+
"log_tag": {
+
"kind": "string",
+
"identifier": true
+
}
+
},
+
"sample": [
+
{
+
"line": "07-06 11:25:07.996 1583 2720 E fpc_fingerprint_hal: do_key_monitor open failed with error -2",
+
"level": "error"
+
}
+
]
+
}
+
}
+7
dot_config/private_fish/config.fish.tmpl
···
set -x EDITOR {{ $editorName | quote }}
end
#
# Configure bat.
#
···
set -x EDITOR {{ $editorName | quote }}
end
+
{{ if eq .machineType "personal" -}}
+
#
+
# Set Ollama host to chert.
+
#
+
set -x OLLAMA_HOST "https://chert.caracal-economy.ts.net:11906"
+
{{- end}}
+
#
# Configure bat.
#
+24
dot_config/private_fish/functions/gemini-cleanup-album.fish
···
···
+
function gemini-cleanup-album --description "Clean up album files." --wraps "gemini"
+
set prompt "Rename all .lrc files to match their corresponding .flac files \
+
exactly. Do not rename the audio files. If there are multiple cover images, \
+
delete all but highest quality image, then rename it to cover.ext, where ext is \
+
the extension for the image type (i.e., jpg, png). Return a summary of all \
+
changed file names after completion."
+
+
# systemd-run --user --scope \
+
# -p ProtectSystem=strict \
+
# -p ProtectHome=read-only \
+
# -p ReadWritePaths="$PWD" \
+
# -p PrivateTmp=yes \
+
# -p NoNewPrivileges=yes \
+
# gemini --model gemini-2.5-flash --allowed-tools list_directory,run_shell_command "$prompt" $argv
+
+
bwrap \
+
--ro-bind / / \
+
--dev /dev \
+
--proc /proc \
+
--tmpfs /tmp \
+
--bind "$PWD" "$PWD" \
+
--bind "$HOME/.gemini" "$HOME/.gemini" \
+
gemini --model gemini-2.5-flash --allowed-tools list_directory,run_shell_command "$prompt" $argv
+
end
+4
run_onchange_after_brew-bundle.sh.tmpl
···
···
+
#!/usr/bin/bash
+
+
# Brewfile hash: {{ includeTemplate "dot_config/homebrew/Brewfile.tmpl" . | sha256sum }}
+
brew bundle install --global --no-upgrade
-9
run_onchange_linux-install-packages.sh.tmpl
···
-
{{ if eq .chezmoi.os "linux" -}}
-
#!/usr/bin/bash
-
-
brew bundle --file=/dev/stdin <<EOF
-
{{ range .packages.linux.brew -}}
-
brew {{ . | quote }}
-
{{ end -}}
-
EOF
-
{{ end -}}
···