Skip to content

Commit de116f8

Browse files
committed
docs(readme): rewrite stub into proper entry point
The previous readme was a 17-line stub with a typo (configration), a single Docker snippet, and a stale "Add mason.nvim" road map item that shipped years ago. Replace it with an entry point that actually explains the repo: the dotfm + per-tool setup two-layer design, a correct quick-start (dotfm apply as the everyday flow, setup.{ps1,sh} as per-tool bootstrap fallback), a tool catalogue table, and pointers to docs/STRUCTURE.md for the full design.
1 parent 2d64d6b commit de116f8

1 file changed

Lines changed: 68 additions & 4 deletions

File tree

readme.md

Lines changed: 68 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,53 @@
11
# dotfiles
22

3-
configration of @ShortArrow
3+
[![Deploy Hugo site to Pages](https://github.com/ShortArrow/dotfiles/actions/workflows/hugo.yml/badge.svg)](https://github.com/ShortArrow/dotfiles/actions/workflows/hugo.yml)
44

5-
## Quick Test on Docker
5+
Cross-platform dotfiles of [@ShortArrow](https://github.com/ShortArrow). Same end state on Windows / Linux / macOS via a single source of truth (`dotfm.toml`).
6+
7+
## How it works
8+
9+
Two parallel layers produce the same symlink tree — pick whichever is bootstrappable on the host:
10+
11+
1. **[`dotfm`](https://github.com/ShortArrow/dotfm)** — small Rust binary, reads `dotfm.toml` and applies the link rules. Recommended for everyday use.
12+
2. **`<tool>/setup.ps1` / `<tool>/setup.sh`** — bootstrap launchers used when `dotfm` isn't available yet (fresh boxes, no Rust). They consume the same `dotfm.toml` through `lib/_lib.{ps1,sh}`.
13+
14+
Running both is a no-op the second time. See [`docs/STRUCTURE.md`](docs/STRUCTURE.md) for the full design (decision matrix for `symlink` / `copy` / `post_apply` / `script`, security rules, how to add a tool).
15+
16+
## Quick start
17+
18+
The everyday flow is `dotfm apply`. The `<tool>/setup.{ps1,sh}` launchers exist as **per-tool** fallbacks for hosts where `dotfm` isn't installed yet — each one only touches its own tool.
19+
20+
### With dotfm (recommended)
21+
22+
```bash
23+
# Install dotfm (https://github.com/ShortArrow/dotfm), then:
24+
git clone https://github.com/ShortArrow/dotfiles.git ~/dotfiles
25+
cd ~/dotfiles
26+
dotfm apply # apply every tool listed in dotfm.toml
27+
dotfm status # verify the symlinks are in place
28+
```
29+
30+
Windows is the same — clone, `cd`, `dotfm apply` from PowerShell.
31+
32+
### Without dotfm (per-tool bootstrap)
33+
34+
When you can't install Rust yet, run only the tools you need. Each script is idempotent.
35+
36+
```bash
37+
./bash/setup.sh
38+
./git/setup.sh
39+
./tmux/setup.sh
40+
# ...
41+
```
42+
43+
```pwsh
44+
.\pwsh\setup.ps1
45+
.\git\setup.ps1
46+
.\glazewm\setup.ps1
47+
# ...
48+
```
49+
50+
### Docker quick test
651

752
```bash
853
git clone https://github.com/ShortArrow/dotfiles.git
@@ -11,6 +56,25 @@ docker compose up -d --build
1156
docker compose exec nvim /bin/bash -c nvim
1257
```
1358

14-
## Road Map
59+
## What's inside
60+
61+
| Area | Tools |
62+
| --- | --- |
63+
| Shells / prompt | bash, pwsh, clink, starship |
64+
| Terminals | wezterm, alacritty, windows-terminal |
65+
| Editors | neovim (`nvim/src/`), vim, vscode, zed |
66+
| Multiplexers / WM | tmux, zellij, glazewm, hyprland, i3wm |
67+
| Git stack | git, lazygit, neogit, git-foresta |
68+
| Tool manager | mise (`mise/src/config.toml`) — node, python, go, java, rust-cli, aqua |
69+
| File / nav | yazi, fzf, zoxide, lsd, fd, ripgrep |
70+
| Misc | claude (skills + statusline), runex, ssh, keyd |
71+
72+
Each top-level directory contains the actual config files plus optional `setup.{ps1,sh}` and `doctor.ps1`. The full mapping (which file goes where on which OS) lives in [`dotfm.toml`](dotfm.toml).
73+
74+
## Branch strategy
75+
76+
`main` only. Topic branches are optional; merge back to `main`.
77+
78+
## License
1579

16-
- Add [mason.nvim](https://github.com/williamboman/mason-lspconfig.nvim)
80+
See [`LICENSE`](LICENSE).

0 commit comments

Comments
 (0)