aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRubén Beltrán del Río <jj@r.bdr.sh>2026-03-15 21:41:58 +0100
committerRubén Beltrán del Río <jj@r.bdr.sh>2026-03-15 22:20:01 +0100
commite2582f8649e9e67f02210f659b69523c46003087 (patch)
treed7e87b1993e543bcf83345bf584ce3706b3fd1f8
parent68fc4436c2565ff31f1499d868ac71bc560121ee (diff)
Simplify installation
-rw-r--r--README.md60
-rw-r--r--config/git/config (renamed from gitconfig)0
-rw-r--r--config/git/ignore1
-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-xhome/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-xinstall130
-rw-r--r--xterm-256color-italic.terminfo4
19 files changed, 47 insertions, 148 deletions
diff --git a/README.md b/README.md
index 3735424..64b5b68 100644
--- a/README.md
+++ b/README.md
@@ -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/plan b/home/plan
index cc13990..cc13990 100644
--- a/plan
+++ b/home/plan
diff --git a/rgignore b/home/rgignore
index 3c3629e..3c3629e 100644
--- a/rgignore
+++ b/home/rgignore
diff --git a/skhdrc b/home/skhdrc
index d49ec4e..d49ec4e 100644
--- a/skhdrc
+++ b/home/skhdrc
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/yabairc b/home/yabairc
index fc3774d..fc3774d 100755
--- a/yabairc
+++ b/home/yabairc
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
diff --git a/install b/install
index 38a6332..d60b7cb 100755
--- a/install
+++ b/install
@@ -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,