- 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
Plugin Manager
- lazy-plugin-manager.lua:
- Plugin manager
- Use
:Lazy
to access a GUI for managing plugin installations and updates.
Language Server and Code Quality
- lsp-config.lua:
- Manages Language Server Protocols (LSPs) using
mason.nvim
. mason-lspconfig
ensures LSPs are installed, manages LSPs, and defines key mappings.- Use
:Mason
to access the GUI.
- Manages Language Server Protocols (LSPs) using
- none-ls.lua:
- Wraps linters/formatters to function as a normal LSP to
nvim-lspconfig
.
- Wraps linters/formatters to function as a normal LSP to
- nvim-ts-autotag:
- Automatically closes HTML/JSX tags.
Navigation and File Operations
- vim-settings.lua:
- Enhances navigation, key bindings, indentation, clipboard integration, cursor control, color support, filetype-specific templates, and window splitting.
- telescope.lua:
- Provides a file fuzzy finder.
- harpoon.lua:
- Offers keybindings to mark files, display a menu of marked files, and quickly jump to them.
- neo-tree.lua:
- Toggles a file tree for Neovim.
- gitsigns.lua:
- Adds color indicators for types of git diffs and toggles for blame annotations.
Aesthetics and UI Enhancements
- kanagawa.lua:
- Provides a color theme.
- lualine.lua:
- Offers a visually appealing status line.
- snacks-dashboard.lua:
- Provides a visually appealing dashboard.
- treesitter.lua:
- Provides syntax highlighting.
- markview-nvim.lua:
- A markdown previewer that renders markdown in a readable format.
- 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 "your_email@example.com"
-
Generate SSH key pairs (one for read/write operations and one for signing):
ssh-keygen -t ed25519 -C "your_email@example.com"
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 = your_email@example.com signingkey = <path-to-your-private-key>
-
Add your public keys to your GitHub profile
-
Test your SSH connection:
ssh -T git@github.com
-
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