Skip to content

PanLuvme/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

What does my dotfiles include?

macOS

/macOS/

AeroSpace - i3-like tiling window manager for macOS

SketchyBar - reimagined Status/Menu Bar for macOS

Spicetify - customizable Spotify Client

Ghostty - fast, feature-rich, and cross-platform terminal emulator

Raycast

WisprFlow


Windows

/Windows/

n/a


Arch

/Arch/

n/a


Install (fresh machine)

One command. It clones this repo to ~/.dotfiles, installs everything, links the configs, builds the SketchyBar helper, and starts the services:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/PanLuvme/dotfiles/main/install.sh)"

Then finish two macOS permission toggles that can't be scripted:

  1. System Settings -> Privacy & Security -> Accessibility -> enable AeroSpace
  2. System Settings -> Desktop & Dock -> enable "Displays have separate Spaces"

And restore your Spotify setup: dots spicetify.

Day-to-day: the dots command

Everything is driven by one CLI (bin/dots, put on your PATH during install).

Command What it does
dots update Pull latest from GitHub, re-link, rebuild, reload. This is the everyday command.
dots status Show which configs are linked and which services are running.
dots link / dots unlink Apply / remove the config symlinks (backs up anything in the way).
dots start / dots stop Start / stop SketchyBar + AeroSpace (borders launches with AeroSpace).
dots restart Hard restart (stop + start).
dots reload Reload configs in place without restarting apps - fast iteration.
dots deps Install Homebrew packages (macOS/Brewfile) + fonts only.
dots check Fetch from GitHub and report if you're behind — changes nothing.
dots autoupdate notify / off Turn the "you're behind" terminal notifier on/off.
dots doctor Check installed tools and show setup reminders.
dots spicetify How to restore the Spotify (Spicetify) setup.
dots bootstrap The full first-run sequence (deps -> link -> build -> start).

Run dots help for the full list.

Staying in sync

Updates are pull-based — nothing is applied automatically. bootstrap installs a lightweight shell hook so that each new terminal does an offline check against the last fetch and prints a one-line nudge if you're behind:

:: dotfiles 2 behind — run dots update (or dots check)

It never pulls on its own. A throttled git fetch runs in the background (every 4h by default; set DOTS_CHECK_INTERVAL in seconds to change it) so the offline check stays current without slowing down shell startup. Run dots check any time to refresh on demand, or dots autoupdate off to remove the notifier.

How it works

  • Plain symlinks, no framework. dots link symlinks each folder under macOS/ into ~/.config/. Inspect them any time with ls -la ~/.config. Because the live config is a symlink into this repo, a git pull instantly updates it.
  • Nothing is clobbered. If a real file/dir is already at a target, it's moved to ~/.dotfiles-backup/<timestamp>/ before the symlink is created.
  • Services are managed too. SketchyBar runs via brew services; AeroSpace is launched as an app (and starts borders via its after-startup-command).

Layout

dotfiles/
├── install.sh            # remote bootstrap (the curl | bash one-liner)
├── bin/
│   └── dots              # the management CLI
├── macOS/
│   ├── Brewfile          # all macOS dependencies
│   ├── aerospace/        # -> ~/.config/aerospace
│   ├── ghostty/          # -> ~/.config/ghostty
│   ├── sketchybar/       # -> ~/.config/sketchybar
│   └── spicetify/        # Marketplace backup blob (restored via `dots spicetify`)
├── README.md
└── LICENSE

Adding a new app

  1. Drop its config in macOS/<app>/.
  2. Add one line to manifest_for_os() in bin/dots: $HOME/.config/<app>|$REPO/macOS/<app>
  3. dots link.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors