Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bezhermoso/dotfiles
My dot configurations
https://github.com/bezhermoso/dotfiles
dotfiles
Last synced: about 2 months ago
JSON representation
My dot configurations
- Host: GitHub
- URL: https://github.com/bezhermoso/dotfiles
- Owner: bezhermoso
- Created: 2015-09-25T07:58:30.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-10-26T21:36:36.000Z (3 months ago)
- Last Synced: 2024-10-26T23:20:40.702Z (3 months ago)
- Topics: dotfiles
- Language: Shell
- Homepage:
- Size: 3.7 MB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# my dotfiles
---### Step 1: Clone
Perform a _recursive_ clone of this repo into `~/.dotfiles`:
```sh
git clone --recursive --recurse-submodules [email protected]:bezhermoso/dotfiles.git ~/.dotfiles
```> [!NOTE]
> If it was cloned bare, run this afterwards: `git submodule update --init --recursive`## Step 2: Install Homebrew dependencies
### Install Homebrew
Go to [https://brew.sh](https://brew.sh) and follow the installation instructions.
As of 2024-02-17, this is how:
```sh
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```### Install core dependencies
Dependencies installable via Homebrew are captured in `./homebrew/Brewfile`:
```sh
cd ~/.dotfiles/homebrew/_core
/opt/homebrew/bin/brew bundle install
```## Step 3: Install a more recent version of Zsh
The version of `zsh` that comes with macOS is usually outdated. The previous step should have installed a more recent version of `zsh` via Homebrew. To use it, add it to `/etc/shells`:
```sh
sudo -e /etc/shells# Add this line at the end of the file:
/opt/homebrew/bin/zsh
```...or whatever the path to the new version of `zsh` is (i.e. the output of `which zsh`)
Then, change the default shell to the new version of `zsh`:
```sh
chsh -s /opt/homebrew/bin/zsh
```## Step 4: Configure tools
I use [Stow](https://www.gnu.org/software/stow/) to put configuration directories/files where they need to be for tools to work:
```sh
cd ~/.dotfiles
/opt/homebrew/bin/stow .
```It is recommended to close & re-open your terminal to pick up the just-installed Zsh configurations.
#### Install Zsh plugins
I use [`zinit`](https://github.com/zdharma-continuum/zinit) to manage Zsh plugins. It should auto-install the plugins when you start a new Zsh session.
#### Install `tmux` plugins
```sh
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
```Start a **new** `tmux` session and invoke `C-s I` to install the plugins.
#### Setup Neovim
Start Neovim. It should auto-install lazy.nvim and all the plugins
#### Setup `atuin`
> [!IMPORTANT]
> Do not do this on your work machine! Only do this on computers whose command-line history you want synced.```sh
atuin login
```#### Configure `git`
Create a `~/.gitconfig` file & include relevant files from `~/.dotfiles/git` e.g.
```gitconfig
[include]
path = ~/.dotfiles/git/base.gitconfig
path = ~/.dotfiles/git/1password.gitconfig# REQUIRED. None of the config files in dotfiles contain author information. Configure this on a per-machine basis.
[user]
name = Bez Hermoso
email = ...
```Install `gh` extensions:
```sh
make gh-extensions
```# TODOs
- [x] Done for now