/shelly

🐚 Dotfiles and shell utilities

Primary LanguageShell

🐚 Shelly

My dotfiles, shell scripts, and packages.

This is a "note to self". I don't imagine anyone else will want to install my dotfiles 😁. It could provide some inspiration for your own dotfile management.

Install dotfiles

  1. First, move any existing dotfiles aside. For example, on a fresh machine, you might need something like:
mkdir dotfiles.bup && mv .profile .bashrc .bash_logout .zshrc dotfiles.bup/
  1. Install prerequisites

You'll need curl, git, and stow. For example, on Ubuntu, issue the following command:

sudo apt install -y curl git stow
  1. Run the bootstrap script
bash <(curl -s https://raw.githubusercontent.com/steshaw/shelly/main/script/shelly-bootstrap)

This downloads this repo and links my dotfiles.

You can stop right here for a minimal setup.

Install packages (optional)

  1. Install Nix

    On NixOS, Nix is already installed. For other systems, follow the official installation instructions or try those that follow:

    Linux systems:

    sh <(curl -fsSL https://nixos.org/nix/install) --daemon --yes

    For macOS systems:

    You may need to set the umask to the traditional value:

    umask 022

    Install Nix with the following options:

    sh <(curl -L https://nixos.org/nix/install)
  2. Install Homebrew (macOS only)

    Homebrew is used primarily to install desktop applications.

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

    This will install packages.

    shelly-bootstrap-pkgs

Additional setup (optional)

SSH

Generate an SSH key:

cd ~/.ssh
generate-ssh-key

GitHub

Authenticate with GitHub:

gh auth login --git-protocol ssh --hostname github.com --web

If you are operating over ssh, you will get an error starting the browser (because the DISPLAY environment variable isn't available). Instead, go directly to https://github.com/login/device to enter your one-time code.

Git signing key

On existing machine:

git-signing-key copy $newMachine

Myrepos

Clone my repos

cd ~/Code && mr checkout

Doom Emacs

doom install