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

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors