|
1 | | -# Jacobo de Vera's Dot Files |
| 1 | +# 🏠 Jacobo's Dotfiles |
2 | 2 |
|
3 | | -These are the configuration files I want to have in every Linux box I use. |
| 3 | +> Accumulated shell wisdom, bad habits, and strong opinions since 2010 |
4 | 4 |
|
5 | | -## Installation |
| 5 | +My config files for Linux and macOS. Managed with the wonderful |
| 6 | +[chezmoi](https://www.chezmoi.io/). Seriously, if you're not using it, |
| 7 | +you're missing out. |
6 | 8 |
|
7 | | -Installation instructions come first because it is what I need most of the |
8 | | -time, but if you are not me, please read on :) |
| 9 | +## ⚡ Installation |
9 | 10 |
|
10 | | - sh -c "$(curl -fsLS jdevera.casa/install)" |
| 11 | +For me (hi, future me!): |
11 | 12 |
|
12 | | -## If you are not me |
| 13 | +```sh |
| 14 | +sh -c "$(curl -fsLS jdevera.casa/install)" |
| 15 | +``` |
13 | 16 |
|
14 | | -You probably do not want to clone this repo and run it. You probably don't want |
15 | | -to do that with anybody's dotfile repo. It's in this type of repos' own nature |
16 | | -to be highly opnionated and tailored to the needs of the individual keeping it. |
| 17 | +## ⚠️ For Everyone Else |
17 | 18 |
|
18 | | -But there is a lot to learn from exploring. So please, explore away! And if you |
19 | | -have questions, open an issue. |
| 19 | +**Don't.** Seriously. |
20 | 20 |
|
21 | | -## Management |
| 21 | +Dotfiles are like underwear: highly personal, and you probably don't want mine. |
| 22 | +If you clone and run this, you will get *my* shell, *my* keybindings, *my* aliases, |
| 23 | +and a very confused terminal. A friend tried this once. It did not end well. |
22 | 24 |
|
23 | | -I use [chezmoi](https://www.chezmoi.io/) to manage my dotfiles. |
| 25 | +But! Feel free to explore, steal ideas, and get inspired to start your own. |
| 26 | +That's the spirit of dotfiles repos. Questions? Open an issue. |
24 | 27 |
|
25 | | -This repository is a mix of configuration files, templates to generate |
26 | | -configuration files, and script to setup things in a new machine. |
| 28 | +## 🛠️ Common Commands |
27 | 29 |
|
| 30 | +| Command | What it does | |
| 31 | +|---------|--------------| |
| 32 | +| `chezmoi apply` | Make it so | |
| 33 | +| `chezmoi diff` | What would change? | |
| 34 | +| `chezmoi update` | Pull + apply | |
| 35 | +| `chezmoi cd` | Teleport to source dir | |
28 | 36 |
|
29 | | -### Bash configuration |
| 37 | +--- |
30 | 38 |
|
31 | | -My bash configuration files live in the _.bash.d_ directory. |
| 39 | +## 🐚 Shell |
32 | 40 |
|
33 | | -My _.bashrc_ sources configuration files in this order: |
| 41 | +### Bash |
34 | 42 |
|
35 | | - * Every file under _.bash.d/local/before_ |
36 | | - * Every file under _.bash.d_ |
37 | | - * Every file under _.bash.d/local/after_ |
| 43 | +Config lives in `.bash.d/`, loaded in order: |
| 44 | +1. `.bash.d/local/before/*` (machine-specific, untracked) |
| 45 | +2. `.bash.d/*` (the good stuff) |
| 46 | +3. `.bash.d/local/after/*` (machine-specific overrides) |
38 | 47 |
|
39 | | -Contents of _.bash.d/local_ are not tracked by `chezmoi`, so this is the place to |
40 | | -add configuration files that are specific for the current machine. |
| 48 | +*"But isn't sourcing multiple files slow?"* I tested concatenating everything |
| 49 | +into one file in 2026. The difference was negligible. Modularity wins. |
41 | 50 |
|
42 | | -### Vim configuration |
| 51 | +To apply changes: `chezmoi apply`, then `rlsh` to reload in the current shell. |
43 | 52 |
|
44 | | -I am using [Junegunn Choi's Vim-Plug](https://github.com/junegunn/vim-plug) to |
45 | | -manage my Vim plug-ins and keep them up to date. |
| 53 | +### Starship Prompt ✨ |
46 | 54 |
|
47 | | -With Vim-Plug, I only have to point, in my _.vimrc_ file, to the git |
48 | | -repositories of all the Vim add-ons I want to have installed and it takes care |
49 | | -or the rest. Vim-Plug clones each add-on under its own directory and adds it |
50 | | -to Vim's runtime path. |
| 55 | +Fancy prompt with [Starship](https://starship.rs/), Catppuccin colors, and |
| 56 | +Nerd Font icons. |
51 | 57 |
|
52 | | -All add-ons in the official Vim's website are actively mirrored in github by |
53 | | -the [Vim-Scripts.org](http://vim-scripts.org/) project. This means Vim-Plug |
54 | | -can be used to install any add-on published in the official site. |
| 58 | +Two flavors generated from one template: |
| 59 | +- **Full Unicode:** Hearts , fancy arrows ❯, the works |
| 60 | +- **ASCII-safe:** For terminals that can't handle the truth |
| 61 | + (I'm looking at you Ghostty 👀. I love you, but why?!) |
55 | 62 |
|
56 | | -### Emacs configuration |
| 63 | +The shell auto-detects and switches configs. |
57 | 64 |
|
58 | | -> [!NOTE] |
59 | | -> I have not used Emacs in years, this config is probably broken. |
| 65 | +--- |
60 | 66 |
|
61 | | -I use [el-get](https://github.com/dimitri/el-get) to manage all the Emacs |
62 | | -packages that I want installed. |
| 67 | +## 📝 Editors |
63 | 68 |
|
64 | | -With the right configuration, I simply have to open Emacs and the packages |
65 | | -will be installed if they are not already. |
| 69 | +### Vim |
| 70 | + |
| 71 | +Plugins managed with [vim-plug](https://github.com/junegunn/vim-plug). |
| 72 | +Point at repos, it handles the rest. |
| 73 | + |
| 74 | +### Emacs |
| 75 | + |
| 76 | +> 💀 *Haven't touched this in years. Here be dragons.* |
| 77 | +
|
| 78 | +Uses [el-get](https://github.com/dimitri/el-get). Probably broken. |
| 79 | + |
| 80 | +--- |
| 81 | + |
| 82 | +## 🖥️ Terminal Emulators |
| 83 | + |
| 84 | +### iTerm2 (macOS) |
| 85 | + |
| 86 | +Prefs sync to `~/.config/iterm2/settings/`. |
| 87 | + |
| 88 | +**Gotcha:** Sync is one-way while running. To apply dotfile changes: |
| 89 | +1. Quit iTerm2 |
| 90 | +2. `chezmoi apply` |
| 91 | +3. Reopen |
| 92 | + |
| 93 | +### Ghostty |
| 94 | + |
| 95 | +Has Unicode rendering quirks, so the shell auto-switches to ASCII-safe prompt. |
| 96 | +Config is just a file, no weird sync dance needed. |
66 | 97 |
|
67 | 98 | <!-- |
68 | 99 | vim:linebreak:textwidth=78:spell: |
|
0 commit comments