8000 GitHub - Alt-o/dotfiles: My dotfiles synced from localhost and remote machines · GitHub
[go: up one dir, main page]

Skip to content
Alt-oPublic

About

My dotfiles synced from localhost and remote machines

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

61 Commits

Folders and files

Repository files navigation

dotfiles

My dotfiles synced from localhost and remote machines.

Install

git clone <this repo> && cd dotfiles
make install        # base machine (servers too)
make install-full   # desktop: base + GUI apps (firefox, element)

make install runs, in order:

  1. install-deps — Nerd Fonts (curl installer, prompts which font)

    (not sure which font to use? try the picker at https://www.codingfont.com/)

  2. install-nix — nix then the CLI tool set from flake.nix (nix profile add .#cli, includes stow)

  3. install-dotfiles — submodules, stow, tmux plugins (via TPM), and a .zshrc_local seed

Desktop machines run make install-full (= install + install-apps), which additionally adds the GUI package (nix profile add .#apps). Every target is idempotent — re-running upgrades the corresponding profile.

Headless hook

install.sh (repo root) is the entry point for servers and remote workspaces. Run it by hand, or let a workspace provider execute it as the dotfiles setup script. It runs the full base install minus fonts (nothing headless renders them): make install-nix install-dotfiles tips. Prerequisite: make. If nix is missing it is installed single-user (containers have no systemd); an image that ships a root-owned /nix the user cannot open fails with a clear message instead.

Everything tool-like — including stow itself — comes from the flake.

Layout

config/<tool>/   one stow package per tool, mirroring the tool's
                 full target layout: home dotfiles AND XDG subdirs

One stow root (config/), one target ($HOME): stow strips the package dir from the link path and creates intermediate dirs, so

config/zsh/.zshrc                -> ~/.zshrc
config/zsh/.config/zsh/*.zsh     -> ~/.config/zsh/*.zsh
config/starship/.config/…        -> ~/.config/starship/…
config/ghostty/.config/…         -> ~/.config/ghostty/…

The Makefile runs stow * (every top-level dir is a package), installs the tmux plugins with TPM, rebuilds the bat theme cache (custom delta syntax theme), and seeds .zshrc_local.

Machine/personal values never live in the repo: they go in _local files next to the stowed config (~/.zshrc_local, ~/.gitconfig_local), included by the stowed file and created per host.

About

My dotfiles synced from localhost and remote machines

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0