Skip to content
nikitabarskovPublic

About

My dev machine configuration via ansible.

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Repository files navigation

dotfiles

Personal dotfiles for macOS and Linux. Symlink-based — no dotbot or stow.

Quick Start

New machine bootstrap (installs Homebrew, 1Password, clones repo, runs install.sh):

/bin/bash <(wget --no-cache -qO- https://raw.githubusercontent.com/nikitabarskov/dotfiles/main/bootstrap.sh)

Re-apply dotfiles on an existing machine (idempotent):

bash ./install.sh

Daily Commands

just fix          # format + lint (mise fmt then biome check --unsafe --write)
just upgrade      # bump all mise tool versions
just lock         # regenerate mise.lock for linux-x64 and macos-arm64

Structure

Path Purpose
install.sh Symlinks everything into $HOME and ~/.config/
bootstrap.sh One-time new-machine setup
justfile Task runner
.miserc.toml Project-level early mise settings
mise.toml Tool versions (biome, claude, codex, rtk, just)
.config/mise/ Global mise tools, lockfile, and early settings
.config/agents/AGENTS.md Global AI agent instructions (symlinked to Claude, OpenCode, Codex)
.config/git/ Per-context git configs (nikitabarskov, hirn.studio, deepinsight)
.config/homebrew/ darwin.Brewfile and linux.Brewfile

Platform Notes

  • macOS: links aerospace.toml, darwin.Brewfile; creates 1Password SSH sign at /opt/1Password/op-ssh-sign
  • Linux: links i3/config, linux.Brewfile, GTK/HiDPI settings, xprofile, Xresources

Formatting

Biome handles JSON files. Indent style is tabs. Run just fix before committing — it both formats and lints. biome.json exempts .config/zed/settings.json to allow comments and trailing commas.

Global agent instructions

.config/agents/AGENTS.md is the single source of truth for global coding preferences, principles, and shared tool instructions (CodeGraph, RTK). install.sh symlinks it to:

  • ~/.claude/CLAUDE.md
  • ~/.config/opencode/AGENTS.md
  • ~/.codex/AGENTS.md

Edit .config/agents/AGENTS.md to update global preferences; re-run install.sh to propagate (symlinks mean it's live immediately).

Do not run rtk init --global — it replaces ~/.claude/CLAUDE.md with a real file, breaking the symlink. RTK instructions are managed manually in .config/agents/AGENTS.md. If the symlink breaks, restore it with bash ./install.sh.

Agent skills

.agents/skills/ is the single source of truth for shared agent skills (OpenCode, Claude Code, Codex). install.sh symlinks the whole .agents/ directory to ~/.agents/.

To add a new skill, create .agents/skills/<name>/SKILL.md with the required frontmatter (name, description).

Git signing

SSH signing via 1Password. Socket at ~/.1password/agent.sock. Per-context git configs in .config/git/ with includes for nikitabarskov, hirn.studio, and deepinsight identities.

Links

Link Summary
anishathalye/dotbot Lightweight dotfiles bootstrapper. Uses a YAML config to symlink, create dirs, and run shell commands. No external dependencies; ships as a git submodule or PyPI package.
Using GNU Stow to manage your dotfiles Classic article showing how to use GNU Stow to symlink dotfiles from a versioned subdirectory into $HOME. Simpler alternative to dedicated dotfile managers.
MikeMcQuaid/strap Script to bootstrap a minimal macOS dev system: enables FileVault/firewall/TouchID sudo, installs Xcode CLT and Homebrew, runs macOS updates, and optionally installs a ~/github/username/dotfiles repo and Brewfile.
Brew Bundle Brewfile Tips Comprehensive guide to brew bundle: creating/restoring Brewfiles, using mas for App Store apps, buo/cask-upgrade for GUI app upgrades, and managing multiple Brewfiles per machine profile.
mac-upgrade.sh Single-command macOS upgrade script: runs brew update, brew upgrade, brew cu --all, mas upgrade, brew cleanup, then dumps the result back to a Brewfile.
buo/homebrew-cask-upgrade brew cu — interactive Homebrew Cask upgrade tool with version pinning, auto-update app filtering, and --all/--yes/--cleanup flags. Fills the gap left by native brew upgrade for casks.
GNU tools in macOS instead of FreeBSD tools How to install GNU coreutils/sed/tar/grep via Homebrew and prepend their gnubin paths so they shadow the BSD defaults on macOS.
dotfiles — Document and automate your Macbook setup GitLab blog post on dotfiles philosophy, structure, and automation: ZSH + Oh My Zsh, Homebrew scripts, defaults write for trackpad/keyboard settings, and keeping everything in a public git repo.
i3wm for multilinguals How to add a second keyboard layout in i3wm via setxkbmap, force US layout before screen lock with xkb-switch, and show a language indicator in i3bar with a custom i3status wrapper.

About

My dev machine configuration via ansible.

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages