Zsh
- sets up the executable search path & local settings for the shell environment
- custom prompt
- measures and displays command execution time in milliseconds
- loads plugins syntax highlighting and autosuggestions
- aliases and functions for convenience
Neovim
- vim-settings.lua: enhanced navigation, key bindings, indentation, clipboard integration, cursor control, color support, filetype-specific templates, and window splitting
- lazy-plugin-manager.lua : plugin for managing plugins
- treesiter.lua: syntax highlighting
- kanagawa.lua: colortheme
- neo-tree.lua: toggle filetree for nvim
- lua-line.lua: pretty status line
- telescope.lua: file fuzzyfinder
- gitsigns.lua: toggling adds color indcating type of git diff and toggle for blame annotations
- lsp-config.lua: uses mason.nvim to mange LSPs, mason-lspconfig ensures LSPs are installed, nvim-lspconfig to integrate / manage LSPs, setting up specific LSPs and defining key mappings for hover, go to definition and code actions
- none-ls.lua: wraps linters/formatters to make them seem like an normal lsp to nvim-lspconfig
Git Config
- Git LFS: Ensures large file handling is managed.
- User Details / SSH signing: Sets your name, email, and SSH signing key.
- Pull Behavior: Always rebases instead of merging when pulling.
- Aliases: Defines shortcuts for common commands, including stash, log, reset, and commit amendments.
- Sets the default branch name to main.
- Color UI: Enables automatic color in the UI.
- Neovim as the default editor.
-
Install Homebrew
Install Homebrew using the following command and follow the instructions prompted by Homebrew.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Install Software from Brewfile
Install the software listed in your Brewfile.
brew bundle --file ~/.dotfiles/Brewfile
To create a Brewfile from your current setup, run:
brew list > ~/.dotfiles/Brewfile
-
Clone Dotfiles Repository
Clone your dotfiles repository into a hidden directory (
~/.dotfiles
).git clone https://github.com/matsjfunke/dotfiles.git ~/.dotfiles
-
Create Symbolic Links
Create symbolic links from the repository to your home directory for configuration files.
ln -s ~/.dotfiles/zsh/.zshrc ~/.zshrc ln -s ~/.dotfiles/git/.gitconfig ~/.gitconfig ln -s ~/.dotfiles/nvim ~/.config/nvim
-
Source Configuration Files
Source your
.zshrc
to apply changes without restarting your shell.source ~/.zshrc
-
Install a Nerd Font
Choose and install a Nerd Font (e.g., D2CodingLigature Nerd Font) for emoji support.
- Nerd Font homepage: Nerdfonts
- Emoji cheat sheet: Nerdfonts Cheat Sheet
-
Set Up Git and SSH Keys
-
Set your name & email
git config --global user.name "Your Name" git config --global user.email "[email protected]"
-
Generate SSH key pairs (one for read/write operations and one for signing):
ssh-keygen -t ed25519 -C "[email protected]"
Follow the prompts to generate the keys and optionally set a passphrase.
-
Start the SSH agent:
eval "$(ssh-agent -s)"
-
Add your SSH private keys to the agent:
ssh-add path/to/.ssh/private_signing_key ssh-add path/to/.ssh/private_read_write_key
-
Update your
.gitconfig
file to specify the SSH key for signing:[user] name = Your Name email = [email protected] signingkey = <path-to-your-private-key>
-
Add your public keys to your GitHub profile
-
Test your SSH connection:
ssh -T [email protected]
-
Zsh
- clone into root
git clone https://github.com/matsjfunke/dotfiles/blob/main/zsh/.zshrc ~
- source file
source .zshrc
Nvim
- clone into .config on mac
git clone https://github.com/matsjfunke/dotfiles/blob/main/nvim ~/.config
- open in termial
nvim