Skip to content

Amheklerior/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

136 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Amheklerior's Dotfiles

These are my personal dotfiles. They contains my shell and terminal settings for MacOS (what I currently use), as well as git and neovim configurations.

Important

Don’t blindly use my settings unless you know what that entails. Use at your own risk! If you want to give them a try, fork the repo, review the content, and remove anything you don't want or need.

Getting Started

To install these dotfiles into a brand new machine, simply run the command:

# first, create the folder structure to prevent GNU stow from linking the
# directories rather than their content.
mkdir -p ~/.config

# then symlink them using stow
# TIP: can use the -R flag instead of the -S to (R)elink them
stow -d <this-repo-path>/home -t $HOME . -S

If you don't like/want the dependency on stow, you can symlink manually using the ln command or make hard copies if you are into that sort of thing.

Repo Structure

The actual dotfiles are contained within the home/ dir, which replicates the same structure of the $HOME system directory. I chose to do so (over a topical approach for example) to optimize for ease of management/maintenance over clean content segregation. I use GNU Stow to symlink the dotfiles on new systems, and it requires the files to have the same structure they should have in the destination dir.

home/
├── .config/
   ├── delta/theme.gitconfig   # delta diff tool color theme
   ├── ghostty/config.ghostty  # ghostty terminal prefs
   ├── git/                    # git aliases, identities, and other specific configs
   ├── nvim/                   # nvim lua configs (submodule)
   ├── zsh/                    # shell tools setup files (bat/zoxide/etc...)
   └── starship.toml           # cross-platform shell prompt settings

├── dev/personal/*              # markdownlint config for personal projects
├── .gitconfig                  # global git config

   # shell configuration
├── .zalias
├── .zshenv
└── .zshrc

zsh shell configs

I used to have one giant .zshrc file with all Zsh configurations in there. Nowadays, I split it up into multiple files listed below (still gotta understand whether I actually like it or not tbh).

shell prompt configs

I use Starship as custom cross-shell prompt. The actual configurations for starship are defined within the .config/starship.toml file, while its integration setup with the zsh shell is done by the .config/zsh/starship.zsh file, sourced by .zshrc.

git configs

Similarly to what I've done with Zsh configs, I also decided to split Git configs across multiple files, then composed via [include] directives from the root .gitconfig:

Git identity management

In the past, I was using two separate identities for personal and work-related use. Nowadays, I use the same. However, I like to use my pseudoonim on my personal projects, while using my full name on work-related repos. I achieve this, by defining the following two git identities, which gets applied as the default git config.

Additionally, I've defined the following git aliases to make my life easier:

  • whoami - displays the currently applied identity in the current dir.
  • set-personal/set-work to easily override the default for a specific repo.
  • set-none to remove any override and rely back to the default.

Other

The Bigger Picture

They are part of my System Environment Setup for quickly setting up new machines.

License

Licensed under MIT © Andrea Amato 2026

For information, see TLDR Legal / MIT

About

My personal dotfiles repository.

Resources

License

Stars

Watchers

Forks

Contributors

Languages