Skip to content

robin-moser/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 

Repository files navigation

Personal Dotfiles

This repository contains my personal dotfiles and system configuration, managed with chezmoi.

Installation

Prerequisites

macOS:

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

# Install required tools
brew install bash git gpg chezmoi bitwarden-cli

# Add Homebrew to PATH
eval "$(/opt/homebrew/bin/brew shellenv)"

# Change default shell to homebrew bash
echo "$(brew --prefix)/bin/bash" | sudo tee -a /etc/shells
chsh -s "$(brew --prefix)/bin/bash"

# Init chezmoi repo
chezmoi init robin-moser

Linux:

# Install required packages
sudo apt update && sudo apt install curl git gpg gcc build-essential coreutils

# Install chezmoi
BINDIR=$HOME/.local/bin sh -c "$(curl -fsLS get.chezmoi.io)"
export PATH="$HOME/.local/bin:$PATH"

# Init chezmoi repo
chezmoi init robin-moser

# Set up bash environment to use the custom paths for Node
# No decryption required yet
chezmoi apply .bashrc .bash_profile .bash

# Reload shell to pick up custom paths
source ~/.bashrc

# Install Node via n-install
curl -fsSL https://raw.githubusercontent.com/mklement0/n-install/stable/bin/n-install | bash -s -- -n

# Install Bitwarden CLI via npm
npm install -g @bitwarden/cli

Initialize Dotfiles

# Bitwarden: set custom URL
bw config server https://pass.robinmoser.de

# Login to Bitwarden to store 2FA code
bw login robin@moser && bw sync

# Now apply all remaining dotfiles, GPG keys and other configurations
chezmoi apply

Install remaining tools

macOS:

# Install remaining tools via Homebrew
brew bundle --global install

Linux:

# Install remaining tools via apt
sudo apt install -y \
    tree colordiff zoxide dnsutils \
    fzf fd-find bat ripgrep jq yq gh \

# Download zig
tar tar xf <zig-archive.tar.xz>
cp <zig-archive>/zig ~/.local/bin/
rm -rf <zig-archive.tar.xz> <zig-archive>

# Compile Ghostty
sudo apt install -y \
    libgtk-4-dev libadwaita-1-dev blueprint-compiler \
    gettext libxml2-utils libgtk4-layer-shell-dev

git clone https://github.com/ghostty-org/ghostty ~/Development/repos/ghostty
cd ~/Development/repos/ghostty
zig build -p $HOME/.local -Doptimize=ReleaseFast

# Install pyenv
curl -fsSL https://pyenv.run | bash

# Build tmux (extended-keys support since 3.6)
sudo apt install autoconf automake pkg-config libevent-dev \
    ncurses-dev build-essential bison pkg-config
git clone https://github.com/tmux/tmux ~/Development/repos/tmux
cd ~/Development/repos/tmux
sh autogen.sh
./configure && make
ln -s /home/robin/Development/repos/tmux/tmux ~/.local/bin/

# Install Neovim
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz && rm nvim-linux-x86_64.tar.gz

# Install xremap
rustup default  stable
cargo install xremap --features gnome
systemctl --user start xremap.service
systemctl --user enable xremap.service

Initialize nvim

# Isnstall Neovim plugins using lockfile
nvim --headless "+Lazy! restore" +qa

Mentioned Tools

Core Development

  • Node.js - JavaScript runtime
  • n - Node version manager (installed via npm)
  • Go - Go programming language
  • Rust - Rust programming language and Cargo package manager
  • pyenv - Python version manager

Container & DevOps

  • Docker - Containerization platform
  • kubectl - Kubernetes CLI
  • krew - kubectl plugin manager
  • k9s - Kubernetes cluster management
  • GitHub CLI - GitHub command line tool

Terminal & Shell

  • Ghostty - Terminal emulator
  • tmux - Terminal multiplexer
  • tpm - tmux plugin manager

Editors & Development

MacOs Applications

About

A collection of personal dotfiles and system configuration, managed with chezmoi

Topics

Resources

Stars

Watchers

Forks