Skip to content

Repository files navigation

Dotfiles

Shared configuration for macOS and Linux development machines.

Install

On a new machine:

curl -fsSL https://raw.githubusercontent.com/sluongng/dotfiles/master/init.sh | bash

From an existing checkout:

./init.sh

The bootstrap is safe to rerun. It links common shell, terminal, editor, Git, and Codex configuration, then installs every tracked Codex skill. Files that would be replaced are moved under ~/.dotfiles-backups/<timestamp>/.

The platform-specific split is deliberate:

  • macOS installs Karabiner configuration.
  • Linux installs Hyprland, Waybar, Mako, systemd user, and libinput gesture configuration.
  • Package installation is not performed by default. Set DOTFILES_INSTALL_PACKAGES=1 to run the macOS Brewfile; Linux packages remain host-managed.
  • Mail configuration is opt-in with DOTFILES_INSTALL_MAIL=1.
  • Existing checkouts are not pulled implicitly. Set DOTFILES_UPDATE=1 to use git pull --ff-only before provisioning.

Useful overrides:

DOTFILES_DIR=/path/to/checkout ./init.sh
XDG_CONFIG_HOME=/path/to/config ./init.sh
CODEX_HOME=/path/to/codex-home ./init.sh

Local secrets, Codex state, Git credentials, and machine-specific project trust entries are intentionally kept outside this repository.

Neovim

The shared Neovim configuration uses vim.pack and the current nvim-treesitter main branch on both macOS and Linux. It requires Neovim 0.12 or newer, Git, curl, tar, a C compiler, and tree-sitter CLI 0.26.1 or newer. The Brewfile supplies the macOS dependencies; Linux packages remain host-managed.

Run :PackUpdate! to update plugins and synchronize all configured Tree-sitter parsers. The optional local Tree-sitter grammar checkout does not affect the portable plugin lockfile:

export NVIM_TREE_SITTER_BAZELRC_PATH=~/work/misc/tree-sitter-bazelrc

About

dotfiles and configurations for personal developement environment

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages