Skip to content

jeffrey-l-turner/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

658 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles.git

============

Now using zsh instead of bash. No longer supporting emacs in favor of LazyVim (replaces the prior LunarVim setup).

On MacOS:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew tap homebrew/cask-fonts
brew install stow fzf zsh font-meslo-nerd-font font-arimo-nerd-font font-jetbrains-mono-nerd-font font-jetbrains-mono font-fira-code-nerd-font font-blex-mono-nerd-font font-lekton-nerd-font font-liberation-nerd-font neovim rlwrap spellcheck shellcheck wget git python python3 gawk java gpgconf gpg rustup rustup-init cmake ripgrep fd lazygit

On Linux (Ubuntu/Debian/Fedora):

No manual neovim install is required — lazyvim-setup.sh installs the latest neovim from the upstream GitHub release tarball (Ubuntu's apt ships an older release that does not meet LazyVim's >= 0.11.2 minimum). Both x86_64 and arm64 are supported. The binary lands at ~/.local/share/nvim-release/bin/nvim and is symlinked into ~/.local/bin/nvim, so make sure that directory is on your PATH:

# add to ~/.zshrc / ~/.bashrc if it isn't already
export PATH="$HOME/.local/bin:$PATH"

The script uses sudo apt-get / sudo dnf only to install git, ripgrep, fd-find, curl, and tar. lazygit and the JetBrainsMono Nerd Font are not in stock apt repos and must still be installed manually on Debian/Ubuntu:

# after installing [node/nvm](https://github.com/nvm-sh/nvm) (any system):
npm i -g lib language-server bash-language-server create-next-pwa eslint_d eslint expo-cli fixjson hardhat-shorthand neovim npm prettier shellcheck solhint-plugin-prettier solhint tree-sitter-cli yarn

============

Clone and run this on new instances for headless/interactive setup, Windows, *nix, or MAC OS to configure ssh, bash, zsh, node, and the nvim/LazyVim development environment as follows:

mkdir ~/src
cd ~/src
git clone git@github.com:jeffrey-l-turner/dotfiles.git
cd dotfiles

# Stable, shared config files: SYMLINK so future `git pull` updates land
# live in your shell with no manual sync step. Use absolute paths so the
# links survive being read from any cwd.
ln -sfn "$PWD/.screenrc"     ~/.screenrc
ln -sfn "$PWD/.vimrc"        ~/.vimrc
ln -sfn "$PWD/.zprofile"     ~/.zprofile
ln -sfn "$PWD/.zshrc"        ~/.zshrc
ln -sfn "$PWD/.jshintrc"     ~/.jshintrc
ln -sfn "$PWD/.eslintrc.js"  ~/.eslintrc.js
ln -sfn "$PWD/.git_template" ~/.git_template

# Per-machine local overrides: COPY (do NOT symlink). This is the only
# shell config file intended to be edited in place on each machine -- put
# secrets, host-specific paths, machine-only aliases here. The repo
# version is a placeholder template; your real ~/.zshrc_custom should
# never be committed back.
[ -e ~/.zshrc_custom ] || cp "$PWD/.zshrc_custom" ~/.zshrc_custom

cat ssh-config-* >> ~/.ssh/config
nvm current > ~/.nvmrc

# install LazyVim end-to-end. The script:
#   - installs CLI deps (git, ripgrep, fd, lazygit, curl, tar) via brew/apt/dnf
#   - installs JetBrainsMono Nerd Font (macOS via brew cask)
#   - on Linux: installs the latest neovim from the upstream release tarball
#     (x86_64 / arm64) when nvim is missing or below the LazyVim minimum
#     (>= 0.11.2), into ~/.local/share/nvim-release with a symlink at
#     ~/.local/bin/nvim — ensure ~/.local/bin is on your PATH
#   - clones lazy.nvim into ~/.local/share/nvim/lazy/lazy.nvim (no curl|sh
#     installer exists upstream; this is the LazyVim "install" step)
#   - backs up any existing ~/.config/nvim or ~/.config/lvim
#   - symlinks ~/.config/nvim -> ./nvim
#   - runs `nvim --headless +'Lazy! sync' +qa` to pull LazyVim + all plugins
#
# macOS prereq: install neovim first, e.g. `brew install neovim`.
# Linux: no prereq — the script will install/upgrade neovim automatically.
./lazyvim-setup.sh

On first interactive launch, run :checkhealth and :Mason to verify LSPs/linters (flake8, shellcheck, codespell) installed correctly.

See also syssetup to install prerequisite programs. If all goes well, in addition to a eternal history on zsh, these files may be used to setup headless systems. The macOS-defaults configures a Mac from the command line. This was originally developed for Startup Engineering Lectures and adapted from bash to zsh.

About

configuration files setting up system

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors