GithubHelp home page GithubHelp logo

dotfiles's Introduction

How to set up entire environment

Platform Agnostic Install

  1. Run platform specific steps first, then continue here!

  2. Install git, if that's not included in the distro

  3. Setup git config

    git config --global user.name "Paul DiLoreto"
    git config --global user.email "[email protected]"
    
  4. Symlink platform-agnostic dotfiles

    mkdir ~/.config
    stow -v -R -t $HOME multi-platform
    
  5. Setup ~/.zshrc to be:

source $HOME/.config/zsh/.zshrc

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
  1. Add environment variables to ~/.zshenv (i.e. OPENAI_API_KEY)

  2. Set zsh as default shell

    chsh -s $(which zsh)
    
  3. Install starship

    sh -c "$(curl -fsSL https://starship.rs/install.sh)"
    
  4. Install zoxide Note: On Linux, this can be more easily installed via apt install zoxide.

    ```
    cargo install zoxide --locked
    ```
    
  5. Install nvm + global npm dependencies

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
    nvm install --lts
    npm i -g yarn neovim
    
  6. Install tmux plugin manager

    git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm
    
  7. Open Neovim and run :Lazy

  8. Open Tmux and install tmux plugins (<prefix> + I)

  9. Download NERD fonts

Patched fonts

  • Alacritty.yml/Kitty.conf uses FiraCode Nerd Font Mono
  • FiraCode Nerd Font Mono
  • Add font manually for Mac installations
# Linux
mkdir -p ~/.local/share/fonts
wget -P "$HOME/.local/share/fonts" $LINK_TO_FONT

Mac Install

  1. Install Homebrew

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    

    Then run caveat command so that brew is in the $PATH. Once we symlink the .zprofile, this will happen automatically.

  2. Install tools

    brew update && brew upgrade
    brew install \
       kitty \
       lf \
       lazygit \
       coreutils \
       trash \
       tmux \
       neovim \
       koekeishiya/formulae/yabai \
       koekeishiya/formulae/skhd \
       ripgrep \
       stow \
       fzf \
       zoxide
    
  3. Install command-not-found functionality (like Ubuntu's apt-get)

    brew tap homebrew/command-not-found
    
  4. Symlink Mac dotfiles

    stow -v -R -t $HOME mac-specific
    
  5. Start Yabai & SKHD services

    # This may be necessary
    mkdir /Users/{USERNAME}/Library/LaunchAgents
    
    skhd --start-service
    yabai --start-service
    
  6. Install Neovim dependencies

    pip3 install neovim
    

Linux Install (Debian/Ubuntu)

  1. Add custom repositories

    add-apt-repository ppa:neovim-ppa/unstable
    apt update && apt upgrade -y
    apt-get update && apt-get upgrade -y
    
  2. Install tools

    apt-get install \
       neovim \
       kitty \
       zsh \
       tmux \
       ripgrep \
       stow \
       fzf \
    
  3. Install neovim dependencies Optional: install Rust, see official docs

    apt-get install \
        cmake \
        python3-venv \
        python3-neovim \
        unzip \
        lua5.1 \
        liblua5.1-dev \
        ruby \
        ruby-dev \
        golang
    
  4. Symlink Linux specific dotfiles

    stow -v -R -t $HOME linux-specific
    
  5. Install lazygit

    LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
    curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
    tar xf /tmp/lazygit.tar.gz /tmp/lazygit
    sudo install lazygit /usr/local/bin
    rm /tmp/lazygit.tar.gz /tmp/lazygit
    
  6. Install lf

    wget https://github.com/gokcehan/lf/releases/download/r6/lf-linux-amd64.tar.gz -O lf-linux-amd64.tar.gz
    tar -xvf lf-linux-amd64.tar.gz
    chmod +x lf
    sudo mv lf /usr/local/bin
    rm lf-linux-amd64.tar.gz
    

dotfiles's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.