My dotfiles
Find a file
2025-10-09 15:46:53 +02:00
bootstrap Add support for encrypted dot files; Add finicky configuration 2025-10-02 20:34:36 +02:00
config update sidebery configuration 2025-10-07 10:22:34 +02:00
dotfiles update finicky URLs / Domains 2025-10-09 15:46:53 +02:00
graphics Add personalized tuwat design; replace backgroud and screensaver with personal design. 2018-01-01 01:52:10 +01:00
sources/34c3_tuwat_design add line brake in design guide/sources README 2017-12-30 13:15:12 +01:00
.env.public consolidate and templeate my to files 2021-09-11 23:45:56 +02:00
.gitignore update .gitignore to include various system and IDE-specific files 2025-05-09 11:26:54 +02:00
config.yaml add functions to easily encrypt & decrypt age encrypted dotfiles 2025-10-07 10:21:37 +02:00
LICENSE relocate files from .bin to .local/bin; remove dotdrop submodule; Update Installation process; remove pip, pylint and pyenv oh-my-zsh plugins; Update LICENSE; 2024-11-29 11:19:50 +01:00
README.md Reencrypt encrypted files with new age key; add commands to edit encrypted files and reencrypt them directly when changed 2025-10-05 11:31:13 +02:00

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

  1. Install Homebrew
  2. Install age, coreutils, fzf, libmagic, mas, uv and zsh via Homebrew.
    brew bundle install --file=~/.files/bootstrap/Brewfile
    
  3. Install drotdrop via uv (uv tool install --allow-python-downloads --python 3.11 dotdrop).
  4. Copy ssh public/private key for age, to encrypt/decrypt files to ~/.age/phg-age-dotfiles and ~/.age/phg-age-dotfiles.pub
  5. 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
    
  6. 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

  1. 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 editor
  • cade 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.