mirror of
https://github.com/shokinn/.files.git
synced 2025-10-13 17:58:31 +00:00
My dotfiles
bootstrap | ||
config | ||
dotfiles | ||
graphics | ||
sources/34c3_tuwat_design | ||
.env.public | ||
.gitignore | ||
config.yaml | ||
LICENSE | ||
README.md |
ShokiNNs dotfiles
I manage my dotfiles using dotdrop.
How to install
Script
Important
Copy ssh public/private key for age, to encrypt/decrypt files to
~/.age/phg-age-dotfiles
and~/.age/phg-age-dotfiles.pub
Otherwise empty files will be created instead.
[[ ! $(command -v brew) ]] && /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" \
; eval "$(/opt/homebrew/bin/brew shellenv)" \
&& brew update \
&& git clone https://github.com/shokinn/.files ~/.files \
&& brew bundle install --file=~/.files/bootstrap/Brewfile \
&& sudo sh -c "echo \"/opt/homebrew/bin/zsh\" >> /etc/shells" \
&& chsh -s /opt/homebrew/bin/zsh \
&& uv tool install --allow-python-downloads --python 3.11 dotdrop \
&& echo "Enter profile name (leave empty for default): " \
&& read DOTDROP_PROFILE \
&& [[ -n ${DOTDROP_PROFILE} ]] && DOTDROP_PROFILE="-p${DOTDROP_PROFILE}" || DOTDROP_PROFILE="" \
&& ~/.local/bin/dotdrop ${DOTDROP_PROFILE} --cfg=~/.files/config.yaml install \
; unset DOTDROP_PROFILE \
&& export HOMEBREW_CASK_OPTS="--appdir=${HOME}/Applications" \
&& brew bundle install --file=~/.files/config/brew/Brewfile \
&& mkdir -p ~/workspace/{privat,work} \
&& ${SHELL} -c ~/.files/bootstrap/.macos \
&& ${SHELL}
Manual
- Install Homebrew
- Install
age
,coreutils
,fzf
,libmagic
,mas
,uv
andzsh
via Homebrew.brew bundle install --file=~/.files/bootstrap/Brewfile
- Install
drotdrop
viauv
(uv tool install --allow-python-downloads --python 3.11 dotdrop
). - Copy ssh public/private key for age, to encrypt/decrypt files to
~/.age/phg-age-dotfiles
and~/.age/phg-age-dotfiles.pub
- Clone dotfiles, install dependencies for dotdrop and install dotfiles.
git clone https://github.com/shokinn/.files ~/.files \ && ~/.local/bin/dotdrop --cfg=~/.files/config.yaml install
- Install my default set of tools:
brew bundle install --file=~/.files/config/brew/Brewfile
Encrypted files
Initially import a dot file as encrypted file
dotdrop import --transw=_encrypt --transr=_decrypt <file>
Installs/updates will now be automatically decrypted/encrypted.
Decrypt a dotfile manually
age --decrypt -i ~/.age/phg-age-dotfiles -o <ouput paht for decrypted file> <path to encrypted file>
Encrypt a dotfile manually
cat <path to plain file> | age -a -R ~/.age/phg-age-dotfiles.pub > <path to encrypted file>
Edit an encrypted dotfile
- Install age-edit
Manual command
Default editor:
age-edit -t /tmp/ -M -a ~/.age/phg-age-dotfiles <path to file to edit>
VS Code as editor:
age-edit -e "${HOME}/.local/bin/codew" -t /tmp/ -M -a ~/.age/phg-age-dotfiles <path to file to edit>
Aliases for file editing
ade
uses the default editorcade
uses vs code for editing the file
Both aliases are configured via my .zshrc
.
Backup/Restore settings for macOS native user preferences
See here for a defaults documentation: https://macos-defaults.com/
App list
App | Domain |
---|---|
Alfred | com.runningwithcrayons.Alfred-Preferences |
Ice | com.jordanbaird.Ice |
Moom | com.manytricks.Moom |
Backup settings
defaults export <domain> ~/.files/config/plist/<app>.plist
Restore settings
defaults import <domain> ~/.files/config/plist/<app>.plist
Documentation
Maybe you should take a look to my documentation to understand how I use my dotfiles.
My documentation is currently quite outdated and should not be considered for help.