- 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
- lazy-plugin-manager.lua
- plugin manager
- type
:Lazy
to view GUI to mange plugin installation / updates
- lsp-config.lua:
- uses mason.nvim to mange LSPs,
- mason-lspconfig ensures LSPs are installed, manages LSPs, defines key mappings for hover, go to definition and code actions
- type
:Mason
to view GUI
- vim-settings.lua:
- enhanced navigation, key bindings, indentation, clipboard integration, cursor control, color support, filetype-specific templates, and window splitting
- telescope.lua: file fuzzyfinder
- harpoon.lua : keybindings to mark files, display menu of marked files & quickly jump to them
- treesiter.lua: syntax highlighting
- nvim-ts-autotag: closes html / jsx tags automatically
- neo-tree.lua: toggle filetree for nvim
- kanagawa.lua: colortheme
- lua-line.lua: pretty status line
- gitsigns.lua: toggling adds color indcating type of git diff and toggle for blame annotations
- none-ls.lua: wraps linters/formatters to make them seem like an normal lsp to nvim-lspconfig
- 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.
- Git diff syntax-highlighting and line numbers (req:
brew install delta
)
commands: git diff: Syntax-highlighted diff. git lg: compact, colorfull log view. git lfg: Add, commit, push. git staash: Stash all changes. git uncommit: Undo last commit. git amend: Amend last commit. git scm: Signed commit with message.
- nicer UI
- keymaps 'CTRL + v' activates copy mode
- font / UI setup
-
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/homebrew/Brewfile
To create a Brewfile from your current setup, run:
brew bundle dump --file=~/.dotfiles/homebrew/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 ln -s ~/.dotfiles/htop/htoprc ~/.config/htop/htoprc ln -s ~/.dotfiles/wezterm/.wezterm.lua ~/.wezterm.lua
-
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
htop
- clone into .config/htop
git clone https://github.com/matsjfunke/dotfiles/blob/main/htop/htoprc ~/.config
- or copy and sym-link
ln -s ~/.dotfiles/htop/htoprc ~/.config/htop/htoprc