-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmacos.yaml
More file actions
119 lines (110 loc) · 3.91 KB
/
macos.yaml
File metadata and controls
119 lines (110 loc) · 3.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
- defaults:
link:
relink: true
- clean: ["~"]
# Create all config directories up front (before linking)
- shell:
- command: |
mkdir -p ~/.config/karabiner \
~/.config/lsd ~/.config/nvim ~/.config/starship \
~/.config/fastfetch ~/.config/procs \
~/.config/ghostty \
~/.config/atuin/themes \
~/.tmux/plugins ~/.claude ~/.codex ~/.proto \
"$HOME/Library/Application Support/com.mitchellh.ghostty"
stderr: true
stdout: true
description: Creating configuration directories
- link:
~/.bash_profile: bash/bash_profile
~/.bashrc.local: bash/bashrc.local
~/.config/lsd:
path: lsd
force: true
~/.fonts: fonts
~/.gitconfig: gitconfig
~/.tmux.conf: tmux.conf
~/.dircolors: dircolors
~/.zshrc: zsh/zshrc
~/.config/nvim:
path: nvim
force: true
~/bin: bin
~/.config/karabiner/karabiner.json: macos/karabiner.json
~/.tmux/plugins/tpm: tpm
~/.config/fastfetch/config.jsonc: fastfetch/config.jsonc
~/.config/procs/config.toml: procs/config.toml
~/.config/starship.toml: starship/starship.toml
~/.config/bat:
path: bat
force: true
~/Library/Application Support/com.mitchellh.ghostty/config: ghostty/config
~/Library/Application Support/com.mitchellh.ghostty/macos.conf: ghostty/macos.conf
~/.claude/settings.json:
path: claude/settings.json
force: true
~/.claude/statusline-command.sh: claude/statusline-command.sh
~/.config/atuin/config.toml: atuin/config.toml
~/.config/atuin/themes/silkcircuit.toml: atuin/themes/silkcircuit.toml
~/.proto/.prototools: proto/.prototools
~/.claude/AGENTS.md:
create: true
path: ~/dev/dotfiles-private/ai/AGENTS.md
if: "[ -f ~/dev/dotfiles-private/ai/AGENTS.md ]"
~/.codex/AGENTS.md:
create: true
path: ~/dev/dotfiles-private/ai/AGENTS.md
if: "[ -f ~/dev/dotfiles-private/ai/AGENTS.md ]"
- shell:
- command: |
# Install private fonts to macOS user font directory
if [ -d "$HOME/dev/dotfiles-private/fonts" ]; then
mkdir -p "$HOME/Library/Fonts"
find "$HOME/dev/dotfiles-private/fonts" -type f \( -name '*.ttf' -o -name '*.otf' \) -exec cp -v {} "$HOME/Library/Fonts/" \;
echo "✓ Private fonts installed to ~/Library/Fonts/"
else
echo "⚠️ dotfiles-private/fonts not found — skipping font install"
fi
stderr: true
stdout: true
description: Installing private fonts
- command: bat cache --build
description: Rebuilding bat theme cache
stdout: true
- command: |
# Run macOS-specific setup script
./macos/brew.sh
stderr: true
stdout: true
description: Installing Homebrew packages
- command: |
# Set up macOS-specific configurations
./macos/macos_config.sh
stderr: true
stdout: true
description: Configuring macOS settings
- shell:
- command: |
# Install proto version manager if not present
if ! command -v proto &> /dev/null; then
echo "✨ Installing proto version manager..."
curl -fsSL https://moonrepo.dev/install/proto.sh | bash -s -- --yes
export PROTO_HOME="$HOME/.proto"
export PATH="$PROTO_HOME/shims:$PROTO_HOME/bin:$PATH"
fi
# Install node and npm via proto
if command -v proto &> /dev/null; then
echo "📦 Setting up node and npm via proto..."
proto install node lts
proto install npm
proto pin node lts
proto pin npm bundled
fi
stderr: true
stdout: true
description: Installing proto + node/npm
- command: mkdir -p ~/dev/go && GOPATH=~/dev/go go install github.com/junegunn/fzf@latest
stderr: true
stdout: true
quiet: false
description: Installing fzf from source