diff options
| author | Rubén Beltrán del Río <jj@r.bdr.sh> | 2026-03-15 21:41:58 +0100 |
|---|---|---|
| committer | Rubén Beltrán del Río <jj@r.bdr.sh> | 2026-03-15 22:20:01 +0100 |
| commit | e2582f8649e9e67f02210f659b69523c46003087 (patch) | |
| tree | d7e87b1993e543bcf83345bf584ce3706b3fd1f8 | |
| parent | 68fc4436c2565ff31f1499d868ac71bc560121ee (diff) | |
Simplify installation
| -rw-r--r-- | README.md | 60 | ||||
| -rw-r--r-- | config/git/config (renamed from gitconfig) | 0 | ||||
| -rw-r--r-- | config/git/ignore | 1 | ||||
| -rw-r--r-- | config/tmux/tmux.conf (renamed from tmux.conf) | 0 | ||||
| -rw-r--r-- | home/age-recipients (renamed from age-recipients) | 0 | ||||
| -rw-r--r-- | home/hushlogin (renamed from hushlogin) | 0 | ||||
| -rw-r--r-- | home/nethackrc (renamed from nethackrc) | 0 | ||||
| -rw-r--r-- | home/plan (renamed from plan) | 0 | ||||
| -rw-r--r-- | home/rgignore (renamed from rgignore) | 0 | ||||
| -rw-r--r-- | home/skhdrc (renamed from skhdrc) | 0 | ||||
| -rw-r--r-- | home/tmuxp/main.yml (renamed from tmuxp/main.yml) | 0 | ||||
| -rwxr-xr-x | home/yabairc (renamed from yabairc) | 0 | ||||
| -rw-r--r-- | home/zlogin (renamed from runcoms/zlogin) | 0 | ||||
| -rw-r--r-- | home/zlogout (renamed from runcoms/zlogout) | 0 | ||||
| -rw-r--r-- | home/zprofile (renamed from runcoms/zprofile) | 0 | ||||
| -rw-r--r-- | home/zshenv (renamed from runcoms/zshenv) | 0 | ||||
| -rw-r--r-- | home/zshrc (renamed from runcoms/zshrc) | 0 | ||||
| -rwxr-xr-x | install | 130 | ||||
| -rw-r--r-- | xterm-256color-italic.terminfo | 4 |
19 files changed, 47 insertions, 148 deletions
@@ -1,33 +1,34 @@ -# Dotfiles +# Rubén's Configuration Files. -To set up run `./install` +This repository contains my unix configuration files, used on macOS, and +a few linux flavors. -It provides configuration for: - -* nvim -* tmux -* zsh -* git -* ripgrep -* tmuxp -* kitty -* karabiner -* weechat -* nethack -* terminfo italics support -* yabai & skhdc -* asdf +You can check which configurations it provides by checking `config` and `home`. ## Prerequisites -The scripts here have support for `brew`, `pacman`, or `apt`. -Install brew with: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` +The scripts here have support for `brew`, `dnf`, `pacman`, or `apt`. + +It assumes you have an SSH key that can pull from git. + +### macOS +Install brew by following the instructions in [brew.sh](https://brew.sh/). It might also be a good idea to install the xcode command line tools with `xcode-select --install` +## Usage + +1. Clone this repository to `~/.dotfiles` +2. Run `./install` from the root of this project. + +By default, the script will attempt to provision software marked as essential +before installing. You can skip this behavior by using the --skip-provisioning +flag. + ## Provisioning -These dotfiles include some provisioning scripts for `brew`, `pacman`, and `apt`. +These dotfiles include some provisioning scripts for `brew`, `dnf`, `pacman`, +and `apt`. To set up run `./provision <recipe>` where `<recipe>` is one of: @@ -42,9 +43,9 @@ To see what each recipe installs, check the files under `provisioning/` For local modifications to the zshrc create `~/.zshrc.local`. -## Local vim overrides +## Local nvim overrides -For local modifications to your neovim init create `~/.config/nvim/lua/init_local.lua` +For local modifications to your neovim init create `~/.config/nvim/lua/init_local.lua` ## Environment modification @@ -52,19 +53,10 @@ In order to specify the environment in the prompt, create a function called `env_info_provider` and echo your environment details (eg. `dev`, `staging`, `production`) -## LSP & Neovim - -For the LSP to work, some external dependencies might be needed. As some of -these depend on what version asdf has loaded, or specific projects, they're -not included by default. - -See [the nvim-lspconfig docs][lsp] for more info. -[lsp]: https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md - ## Private Files -There are some potentially sensitive files included. They're PGP encrypted. If -you need them you can run `./sensitive`. To update them if they change, +There are some potentially sensitive files included. They're encrypted with age. +If you need them you can run `./sensitive`. To update them if they change, run `./sensitive update` instead. -For passwords, make sure you have setup the `pass` store. +For passwords, make sure you have setup the `passage` store. diff --git a/gitconfig b/config/git/config index 4c9ba68..4c9ba68 100644 --- a/gitconfig +++ b/config/git/config diff --git a/config/git/ignore b/config/git/ignore new file mode 100644 index 0000000..66d62f8 --- /dev/null +++ b/config/git/ignore @@ -0,0 +1 @@ +**/.claude/settings.local.json diff --git a/tmux.conf b/config/tmux/tmux.conf index c319f99..c319f99 100644 --- a/tmux.conf +++ b/config/tmux/tmux.conf diff --git a/age-recipients b/home/age-recipients index c59cd10..c59cd10 100644 --- a/age-recipients +++ b/home/age-recipients diff --git a/hushlogin b/home/hushlogin index e69de29..e69de29 100644 --- a/hushlogin +++ b/home/hushlogin diff --git a/nethackrc b/home/nethackrc index cc03822..cc03822 100644 --- a/nethackrc +++ b/home/nethackrc diff --git a/tmuxp/main.yml b/home/tmuxp/main.yml index a41de4d..a41de4d 100644 --- a/tmuxp/main.yml +++ b/home/tmuxp/main.yml diff --git a/runcoms/zlogin b/home/zlogin index 60876ac..60876ac 100644 --- a/runcoms/zlogin +++ b/home/zlogin diff --git a/runcoms/zlogout b/home/zlogout index e69de29..e69de29 100644 --- a/runcoms/zlogout +++ b/home/zlogout diff --git a/runcoms/zprofile b/home/zprofile index a079fab..a079fab 100644 --- a/runcoms/zprofile +++ b/home/zprofile diff --git a/runcoms/zshenv b/home/zshenv index c23f284..c23f284 100644 --- a/runcoms/zshenv +++ b/home/zshenv diff --git a/runcoms/zshrc b/home/zshrc index 2383af3..2383af3 100644 --- a/runcoms/zshrc +++ b/home/zshrc @@ -1,124 +1,34 @@ #!/usr/bin/env sh -echo "Installing essential software" - -./provision essential +if [[ "$1" == "--skip-provisioning" ]]; then + echo "[1/4] Skipping essential software." +else + echo "[1/4] Installing essential software." + ./provision essential +fi -echo "Updating submodules" +echo "[2/4] Updating submodules" git submodule update --init --recursive -echo "Linking runcoms" - -# hush login -ln -fns .dotfiles/hushlogin ~/.hushlogin - -# zsh runcoms -ln -fns .dotfiles/runcoms/zshrc ~/.zshrc -ln -fns .dotfiles/runcoms/zshenv ~/.zshenv -ln -fns .dotfiles/runcoms/zprofile ~/.zprofile -ln -fns .dotfiles/runcoms/zlogout ~/.zlogout -ln -fns .dotfiles/runcoms/zlogin ~/.zlogin - -# TMUX -ln -fns .dotfiles/tmux.conf ~/.tmux.conf - -# Nethack -ln -fns .dotfiles/nethackrc ~/.nethackrc - -# Git -ln -fns .dotfiles/gitconfig ~/.gitconfig - -# ripgrep -ln -fns .dotfiles/rgignore ~/.rgignore +echo "[3/4] Linking Files" -# yabai -ln -fns .dotfiles/yabairc ~/.yabairc +# Link files that go directly in home +for d in home/* ; do + name=${d#home/} + ln -fns .dotfiles/$d ~/.$name +done -# skhdc -ln -fns .dotfiles/skhdrc ~/.skhdrc - -# tmuxp -ln -fns .dotfiles/tmuxp ~/.tmuxp - -# plan -ln -fns .dotfiles/plan ~/.plan - -# config dir +# Link files that go in ~/.config mkdir -p ~/.config - -# kitty -ln -fns ../.dotfiles/config/kitty ~/.config/kitty - -# ghostty -ln -fns ../.dotfiles/config/ghostty ~/.config/ghostty - -# nvim -ln -fns ../.dotfiles/config/nvim ~/.config/nvim - -# karabiner -ln -fns ../.dotfiles/config/karabiner ~/.config/karabiner - -# sway -ln -fns ../.dotfiles/config/sway ~/.config/sway - -# qutebrowser -ln -fns ../.dotfiles/config/qutebrowser ~/.config/qutebrowser - -# aerc -ln -fns ../.dotfiles/config/aerc ~/.config/aerc - -# emacs -ln -fns ../.dotfiles/config/emacs ~/.config/emacs - -# fuzzel -ln -fns ../.dotfiles/config/fuzzel ~/.config/fuzzel -# -# wofi -ln -fns ../.dotfiles/config/wofi ~/.config/wofi - -# mako -ln -fns ../.dotfiles/config/mako ~/.config/mako - -# niri -ln -fns ../.dotfiles/config/niri ~/.config/niri - -# swaylock -ln -fns ../.dotfiles/config/swaylock ~/.config/swaylock - -# waybar -ln -fns ../.dotfiles/config/waybar ~/.config/waybar - -# mpd -ln -fns ../.dotfiles/config/mpd ~/.config/mpd - -# ncmpcpp -ln -fns ../.dotfiles/config/ncmpcpp ~/.config/ncmpcpp - -# weechat -ln -fns ../.dotfiles/config/weechat ~/.config/weechat - -# wpaperd -ln -fns ../.dotfiles/config/wpaperd ~/.config/wpaperd - -# btop -ln -fns ../.dotfiles/config/btop ~/.config/btop - -# task -ln -fns ../.dotfiles/config/task ~/.config/task - -# wob -ln -fns ../.dotfiles/config/wob ~/.config/wob - -# vdirsyncer -ln -fns ../.dotfiles/config/vdirsyncer ~/.config/vdirsyncer - -# age recipients -ln -fns .dotfiles/age-recipients ~/.age-recipients +for d in config/* ; do + name=${d#config/} + ln -fns ../.dotfiles/$d ~/.config/$name +done touch ~/.tool-versions -echo "Setting up password store" +echo "[4/4] Setting up password store" mkdir -p ~/.passage if [ ! -d "$HOME/.passage" ]; then echo ">>> Cloning." @@ -127,4 +37,4 @@ else echo ">>> Already exists." fi -echo "Sensitive files have not been decrypted. Run ./sensitive to decrypt." +echo "ACHTUNG! Sensitive files have not been decrypted. Run ./sensitive to decrypt." diff --git a/xterm-256color-italic.terminfo b/xterm-256color-italic.terminfo deleted file mode 100644 index 68407ae..0000000 --- a/xterm-256color-italic.terminfo +++ /dev/null @@ -1,4 +0,0 @@ -# A xterm-256color based TERMINFO that adds the escape sequences for italic. -xterm-256color-italic|xterm with 256 colors and italic, - sitm=\E[3m, ritm=\E[23m, - use=xterm-256color, |