Skip to content

Commit 66332c6

Browse files
authored
Merge pull request #5 from wassimk/wm/readme-emojis
docs: add emoji headings to README
2 parents 6ed0234 + b7d052a commit 66332c6

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ Exclude developer dependency directories and arbitrary paths from macOS backups.
44

55
tmignore scans your filesystem for dependency directories (*node_modules*, *target*, *vendor*, *.venv*, etc.) and marks them as excluded from Time Machine using sticky exclusions (`tmutil addexclusion`). It also excludes common developer toolchain paths (Homebrew, Cargo, npm caches, Xcode DerivedData, etc.) by default.
66

7-
## Install
7+
## 🛠️ Install
88

99
```
1010
brew install wassimk/tap/tmignore
1111
```
1212

13-
## Usage
13+
## 💻 Usage
1414

1515
```
1616
tmignore run [--dry-run] [--verbose] # Scan and exclude
@@ -24,7 +24,7 @@ tmignore uninstall # Remove LaunchAgent
2424
tmignore reset [--all] # Remove backup exclusions set by tmignore
2525
```
2626

27-
### Quick start
27+
### Quick start
2828

2929
```
3030
tmignore init # Create ~/.config/tmignore/config.toml
@@ -33,7 +33,7 @@ tmignore run # Exclude everything
3333
tmignore install # Set up background service (every 24h)
3434
```
3535

36-
## Config
36+
## ⚙️ Config
3737

3838
*~/.config/tmignore/config.toml*
3939

@@ -64,7 +64,7 @@ extra_exclude_paths = [
6464

6565
This file is designed to be synced across machines via dotfiles, iCloud, or similar. On a new machine: `brew install wassimk/tap/tmignore && tmignore run` applies everything.
6666

67-
### Built-in exclude paths
67+
### 📂 Built-in exclude paths
6868

6969
These paths are excluded from backups and skipped during scanning by default. No config needed.
7070

@@ -77,7 +77,7 @@ These paths are excluded from backups and skipped during scanning by default. No
7777

7878
Use `disable_exclude_paths` to stop excluding any of these. Use `extra_exclude_paths` to add your own.
7979

80-
## Built-in patterns
80+
## 🔍 Built-in patterns
8181

8282
tmignore recognizes 40 dependency directory patterns. Each pattern matches a directory name and verifies a sentinel file exists in the parent directory.
8383

@@ -126,13 +126,13 @@ tmignore recognizes 40 dependency directory patterns. Each pattern matches a dir
126126

127127
Disable any built-in pattern by adding its name to `disable_patterns` in the config. Add new patterns with `[[custom_patterns]]`.
128128

129-
## LaunchAgent service
129+
## 🕐 LaunchAgent service
130130

131131
`tmignore install` creates a LaunchAgent at *~/Library/LaunchAgents/com.wassimk.tmignore.plist* that runs `tmignore run` every 24 hours. Logs are written to *~/Library/Logs/tmignore/*.
132132

133133
The service runs in user context (not root), so `$HOME` resolves correctly and no elevated permissions are needed.
134134

135-
## Backup tool compatibility
135+
## 💾 Backup tool compatibility
136136

137137
The macOS exclusion metadata set by tmignore is honored by multiple backup tools:
138138

@@ -141,10 +141,10 @@ The macOS exclusion metadata set by tmignore is honored by multiple backup tools
141141
- **Backblaze**. Check "Also exclude Apple-specified exclusions" in Settings > Exclusions.
142142
- Other backup tools that read macOS extended attributes will likely honor these exclusions too.
143143

144-
## How it works
144+
## 🧰 How it works
145145

146146
tmignore uses `tmutil addexclusion` (without the `-p` flag) which writes a sticky extended attribute (`com.apple.metadata:com_apple_backup_excludeItem`) directly onto the directory. This exclusion follows the item if renamed or moved, and does not require root privileges.
147147

148-
## Attribution
148+
## 🙏 Attribution
149149

150150
tmignore is inspired by [asimov](https://github.com/stevegrunwell/asimov) by Steve Grunwell.

0 commit comments

Comments
 (0)