Skip to content

matsjfunke/.dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Features

Zsh

prompt

  • 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

  • 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 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.
  • 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.

htop

  • nicer UI

Wezterm

  • keymaps 'CTRL + v' activates copy mode
  • font / UI setup

Steps to Using Dotfiles on Mac

  1. 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)"
  2. 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
  3. Clone Dotfiles Repository

    Clone your dotfiles repository into a hidden directory (~/.dotfiles).

    git clone https://github.com/matsjfunke/dotfiles.git ~/.dotfiles
  4. 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
  5. Source Configuration Files

    Source your .zshrc to apply changes without restarting your shell.

    source ~/.zshrc
  6. Install a Nerd Font

    Choose and install a Nerd Font (e.g., D2CodingLigature Nerd Font) for emoji support.

  7. 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:

Use configs Individually

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