Skip to content
nittsujPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

dotfiles

Personal configuration for Arch Linux, managed with GNU Stow. Each application lives in its own top-level directory, and the directory tree inside it mirrors the path under $HOME.

Layout

.
├── fastfetch/   .config/fastfetch/config.jsonc
├── git/         .gitconfig
├── gnome/       gnome-settings.ini (dconf export, not stowed)
├── kitty/       .config/kitty/ (kitty.conf, theme, light-theme.auto.conf)
├── nvim/        .config/nvim/ (init.lua, lazy-lock.json)
├── packages/    pkglist.txt, aur-pkglist.txt, vscode-extensions.txt
├── scripts/     install.sh
├── ssh/         .ssh/config
└── zsh/         .zshrc, .p10k.zsh

What's in here

zsh runs Oh My Zsh with the Powerlevel10k theme, plus zsh-autosuggestions and zsh-syntax-highlighting. Neither the theme nor the plugins are tracked here; install.sh clones them into ~/.oh-my-zsh/custom.

kitty uses Fira Code at 14pt, semi-transparent windows, a background image, and the Atelier Cave Dark theme. light-theme.auto.conf switches the palette based on the system color scheme.

nvim is configured from a single init.lua. lazy.nvim bootstraps itself on first run and manages three plugins: catppuccin, telescope.nvim, and nvim-treesitter. Leader is space. Tabs are 4 spaces, relative line numbers on.

git holds the global .gitconfig: name, email, and Neovim as the editor.

ssh holds only ~/.ssh/config, the host shortcuts. Keys are never tracked; generate or copy them separately on each machine.

gnome is not a Stow package. gnome-settings.ini is a dconf dump of /org/gnome/ (keybindings, theme, fonts, extensions, dock favorites), and install.sh loads it back with dconf load.

packages lists the software a fresh install should end up with. pkglist.txt is for pacman, aur-pkglist.txt for the AUR, vscode-extensions.txt for VS Code.

Install

git clone https://github.com/nittsuj/dotfiles ~/dotfiles
cd ~/dotfiles
./scripts/install.sh

The script installs the pacman package list, bootstraps yay from the AUR if it is missing, installs the AUR package list, installs the VS Code extensions, stows the config directories, enables Git LFS, clones Oh My Zsh, Powerlevel10k and the two zsh plugins, runs nvim --headless "+Lazy! sync" to install the Neovim plugins, restores the GNOME settings, and sets zsh as the login shell. It stops on the first failure.

If you only want the symlinks:

mkdir -p ~/.ssh && chmod 700 ~/.ssh
stow zsh kitty nvim fastfetch git ssh

Run that from the repo root. It creates ~/.zshrc, ~/.p10k.zsh, ~/.gitconfig, ~/.ssh/config, and the .config entries, and does not touch anything else. ~/.ssh is created first so Stow links only the config file instead of the whole directory.

Notes

  • packages/vscode-extensions.txt is installed by install.sh with code --install-extension. Append an extension ID to that file to add another.
  • The kitty background image (desktop-lain.jpg) is not tracked. Drop your own into ~/.config/kitty or remove the background_image lines from kitty.conf.
  • .p10k.zsh was generated by p10k configure. Run it again to change the prompt.
  • After changing GNOME settings, refresh the export with dconf dump /org/gnome/ > gnome/gnome-settings.ini and review the diff before committing. The restore step only runs inside a graphical session; otherwise install.sh prints the command to run later.
  • Stow will refuse to link over existing files. On a fresh machine, move or delete the default ~/.gitconfig, ~/.zshrc or ~/.ssh/config first.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages