@onnimonni dotfiles. I'm full stack developer but I mainly work on devops and backend. These are my configs. This is personal backup for myself but hopefully you find it useful too.
Big thanks for @anttiviljami for years of guidance. I hope someday I will learn to play vimgolf but until then I will need these cheats.
- Custom keyboard mappings with karabiner-elements
- This includes my own keyboard layout based on Dvorak ( I implemented small tweaks for finnish language ).
# Install Xcode Command line tools to get git
xcode-select --install
# Clone the dotfiles and run the installation script
git clone https://github.com/onnimonni/dotfiles ~/.dotfiles
~/.dotfiles/.install.sh
# Then create age key with secure enclave
mkdir -p ~/.config/sops/age/
age-plugin-se keygen --access-control none -o ~/.config/sops/age/secure-enclave-key.txtRun the generator script:
~/.dotfiles/scripts/generate-local-user.shOr create ~/.dotfiles/local-user.nix manually:
{
hostname = "Your-Mac-Hostname"; # from: scutil --get LocalHostName
username = "yourusername"; # from: whoami
fullName = "Your Name"; # from: id -F
email = "you@example.com";
}Then rebuild:
sudo darwin-rebuild switch --flake ~/.dotfilesThis command updates flake dependencies, nix, brew and duckdb extensions:
$ update-all
- Create new ssh key in Secretive
- Copy the public key into
~/.ssh/secretive.pub - Add it into Github as new SSH key both as signing key and authentication key
You can create a new API key to use Gemini from command line here: https://aistudio.google.com/app/apikey
echo 'export GEMINI_API_KEY="XXXXXX"' >> ~/.secrets.fish# This only works in fish shell
$ update-dotfiles
If you get following messages:
warning: Nix search path entry '/nix/var/nix/profiles/per-user/root/channels' does not exist, ignoring
You can fix them by running:
sudo nix-channel --update nixosRestart it by running (source):
launchctl kickstart -k gui/$(id -u)/org.pqrs.service.agent.karabiner_console_user_serverSwift app that dynamically tints the macOS menu bar based on window content below it. Captures a color strip via ScreenCaptureKit, composites it onto the wallpaper top edge, and sets it as desktop image. macOS vibrancy then naturally samples the modified wallpaper.
# Build & install
apps/MenuBarChameleon/build.sh
# Run
open ~/Applications/MenuBarChameleon.appRequires Screen Recording permission. Uses Apple Development signing identity for stable TCC.
Githits and context7 MCP are configured for Claude and Codex via nix-darwin modules.
Codex itself is installed via Homebrew cask.
~/.codex/config.toml is generated as writable file so Codex can persist its own model prefs.
Interactive shell sessions auto-handoff into fish.
Non-interactive shell entry via the login shell falls back to bash.
claude, codex, gemini, and opencode are wrapped via nix so they launch under bash with SHELL=/bin/bash instead of inheriting fish.
Use these dotfiles as you want to. Sharing is caring!
