Updated github links to instead link to personal git server
Some checks failed
CI / lint (push) Failing after 5s
CI / build (push) Has been skipped
CI / deploy (push) Has been skipped

This commit is contained in:
alejandro-angulo 2024-11-15 17:52:41 -08:00
parent bb06f5b163
commit c35a6fdfe5
Signed by: alejandro-angulo
GPG key ID: 75579581C74554B6
3 changed files with 66 additions and 47 deletions

View file

@ -7,9 +7,10 @@ date: 2020-07-16T21:42:33-07:00
This is a static site generated using [Hugo](https://gohugo.io/). There's a
public repo for this site
[here](https://github.com/alejandro-angulo/alejandr0angul0.dev). Nothing fancy
going on. I'm planning on using this site as a sort of personal documentation.
Hopefully what I write here will be useful to whoever stumbles upon it.
[here](https://git.alejandr0angul0.dev/alejandro-angulo/alejandr0angul0.dev).
Nothing fancy going on. I'm planning on using this site as a sort of personal
documentation. Hopefully what I write here will be useful to whoever stumbles
upon it.
For you vim fans, this site supports scrolling vertically with vim bindings (as
long as you allow this site to run javascript). As of now the following are
@ -24,7 +25,8 @@ supported:
I'm Alejandro Angulo, a code monkey living in the Los Angeles area. When I'm
not ~~introducting bugs~~ writing beautiful, performant code I like [working on
random personal projects](https://github.com/alejandro-angulo/qmk_firmware/),
random personal
projects](https://git.alejandr0angul0.dev/alejandro-angulo/qmk_firmware/),
going to the gym, and hanging out with my wife and our chihuahua.
## Contact

View file

@ -7,25 +7,32 @@ keywords = ["dotfiles"]
showFullContent = false
+++
Not too long ago I had completely different configurations across different computers. Terminal color schemes between computers
weren't consistent. Git was configured slightly differently between all computers. Lucky for me, there's a program that's well
suited for this task: [stow](https://www.gnu.org/software/stow/).
Not too long ago I had completely different configurations across different
computers. Terminal color schemes between computers weren't consistent. Git was
configured slightly differently between all computers. Lucky for me, there's a
program that's well suited for this task:
[stow](https://www.gnu.org/software/stow/).
Special thanks to [Brandon Invergo](http://brandon.invergo.net/) for
[his blog post](http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html) documenting how he uses
stow to manage dotfiles.
Special thanks to [Brandon Invergo](http://brandon.invergo.net/) for [his blog
post](http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html)
documenting how he uses stow to manage dotfiles.
## Git & Stow
Before I found stow I was using a [purely git-based workflow](https://github.com/alejandro-angulo/dotfiles-bak). It worked but it
was a little clunky keeping a git repo at the root of my home directory. One minor annoyance was that the repo's README would show
up in my home directory whenever I ran `ls` (minor, I know, but it didn't feel _right_ to me). I was always a little paranoid that
I would accidentally commit some secret inside of `~/.cache` too.
Before I found stow I was using a [purely git-based
workflow](https://git.alejandr0angul0.dev/alejandro-angulo/dotfiles-bak). It
worked but it was a little clunky keeping a git repo at the root of my home
directory. One minor annoyance was that the repo's README would show up in my
home directory whenever I ran `ls` (minor, I know, but it didn't feel _right_ to
me). I was always a little paranoid that I would accidentally commit some secret
inside of `~/.cache` too.
My [updated workflow](https://github.com/alejandro-angulo/dotfiles/tree/0af75c92fdbf908f9445bfbaf5e07b0e223db97d) still uses git
but I no longer maintain a repo at the root of my home folder. Instead, I use stow to manage symlinks for me. My directory
structure is cleaner now with a directory for each set of configuration files (below are my git and [terminal
emulator](https://alacritty.org/) configurations).
My [updated
workflow](https://git.alejandr0angul0.dev/alejandro-angulo/dotfiles/tree/0af75c92fdbf908f9445bfbaf5e07b0e223db97d)
still uses git but I no longer maintain a repo at the root of my home folder.
Instead, I use stow to manage symlinks for me. My directory structure is cleaner
now with a directory for each set of configuration files (below are my git and
[terminal emulator](https://alacritty.org/) configurations).
```zsh
tree -a git alacritty
@ -42,20 +49,22 @@ alacritty
4 directories, 3 files
```
Installing the configurations for those two programs is as easy as running `stow -t ~ alacritty && stow -t ~ git`.
Installing the configurations for those two programs is as easy as running `stow
-t ~ alacritty && stow -t ~ git`.
## Handling Plugins (and Plugin Managers)
There are some utilities ([vundle](https://github.com/VundleVim/Vundle.vim),
[base16-shell](https://github.com/chriskempson/base16-shell), [Oh My ZSH](https://github.com/ohmyzsh/ohmyzsh), etc) that I want to
have available regardless of my underlying system's environment. I set up submodules in my git repo for these utilities so that I
have those utilities available without having to go through my system's package manager (brew, apt, yay, etc).
[base16-shell](https://github.com/chriskempson/base16-shell), [Oh My
ZSH](https://github.com/ohmyzsh/ohmyzsh), etc) that I want to have available
regardless of my underlying system's environment. I set up submodules in my git
repo for these utilities so that I have those utilities available without having
to go through my system's package manager (brew, apt, yay, etc).
As an added bonus, I can rely on plugin managers to pull in the bulk of my dependencies without cluttering up my git repo with a
bunch of submodules.
As an added bonus, I can rely on plugin managers to pull in the bulk of my
dependencies without cluttering up my git repo with a bunch of submodules.
```zsh
tree -a -L 3 vim
```zsh tree -a -L 3 vim
vim
├── .vim
│   ├── bundle
@ -91,22 +100,26 @@ vim
vim/.vim/bundle/Vundle.vim
```
Instead of setting up submodules for each individual vim plugin I only have a submodule for vundle (a vim plugin manager) and then
I run `vim +PluginInstall +qall` to pull in my vim plugins.
Instead of setting up submodules for each individual vim plugin I only have a
submodule for vundle (a vim plugin manager) and then I run `vim +PluginInstall
+qall` to pull in my vim plugins.
## Special Snowflake Configurations
There are some cases where I don't want to use the exact same configuration across all my devices. I've found that this situation
comes up in one of two cases:
There are some cases where I don't want to use the exact same configuration
across all my devices. I've found that this situation comes up in one of two
cases:
- device-specific configuration
- environment-specific configuration
### Device-Specific Configurations
I have certain configurations that are device-specific. For example, I have a `sway` configuration but there are slight
differences between my laptop and desktop because the output configuration isn't the same (one display vs multiple displays). To
handle this I have `sway-carbon` and `sway-gospel` directories in my dotfiles repo.
I have certain configurations that are device-specific. For example, I have a
`sway` configuration but there are slight differences between my laptop and
desktop because the output configuration isn't the same (one display vs multiple
displays). To handle this I have `sway-carbon` and `sway-gospel` directories in
my dotfiles repo.
```zsh
tree -a sway*
@ -132,20 +145,23 @@ sway-gospel
9 directories, 6 files
```
My main sway configuration has this line `include ~/.config/sway/includes/*` which loads all files inside of
`~/.config/sway/includes/`. My `sway-carbon` and `sway-gospel` configurations will place the correct device-specific configuration
once stowed.
My main sway configuration has this line `include ~/.config/sway/includes/*`
which loads all files inside of `~/.config/sway/includes/`. My `sway-carbon` and
`sway-gospel` configurations will place the correct device-specific
configuration once stowed.
### Environment-Specific Configurations
I don't use the same set of programs on all my devices. Sometimes there's no need to install something everywhere (I wouldn't use
my sway configuration on a device running OS X). Sometimes I just want to play around with a new program first before deciding
it's something that I want to install everywhere.
I don't use the same set of programs on all my devices. Sometimes there's no
need to install something everywhere (I wouldn't use my sway configuration on a
device running OS X). Sometimes I just want to play around with a new program
first before deciding it's something that I want to install everywhere.
For example, I wanted to try out [delta](https://github.com/dandavison/delta) for pretty git output on a personal device. The
configuration for delta requires changes to git's configuration file which depend on having `delta` in `$PATH`. To prevent
breaking things on devices, like my work computer or one of my raspberry pi's, I updated git's configuration so that there would
be fallback.
For example, I wanted to try out [delta](https://github.com/dandavison/delta)
for pretty git output on a personal device. The configuration for delta requires
changes to git's configuration file which depend on having `delta` in `$PATH`.
To prevent breaking things on devices, like my work computer or one of my
raspberry pi's, I updated git's configuration so that there would be fallback.
```ini
[pager]
@ -155,4 +171,5 @@ be fallback.
show = "$(which delta 2>/dev/null) | less"
```
So now on devices with delta installed that'll be used, otherwise less will be used.
So now on devices with delta installed that'll be used, otherwise less will be
used.

View file

@ -12,7 +12,7 @@ showFullContent = false
It's been about a year since my last post into the void. Since [my last
post](/posts/dotfiles) I've completely overhauled how my computers are
configured. I now have [a nix
flake](https://github.com/alejandro-angulo/dotfiles) to manage my personal
flake](https://git.alejandr0angul0.dev/alejandro-angulo/dotfiles) to manage my personal
machines. I'm going all in on nix and wanted to update the deployment process
for this site to use nix flakes as well.
@ -22,7 +22,7 @@ It's been a while since I touched anything on this site and I didn't have any
of the right packages installed to work on this. I could have installed
programs like [hugo](https://gohugo.io/) system-wide. But, since I have been
tinkering with nix, I wanted to use [a flake to manage all the
things](https://github.com/alejandro-angulo/alejandr0angul0.dev/blob/b8174db2150f3ac9925f8450bc75264678cf06c9/flake.nix)
things](https://git.alejandr0angul0.dev/alejandro-angulo/alejandr0angul0.dev/blob/b8174db2150f3ac9925f8450bc75264678cf06c9/flake.nix)
needed for development (including writing posts).
Here's what the devenv configuration looked like at the time I was writing this
@ -166,7 +166,7 @@ into `$out`.
This site is deployed to an S3 bucket just like before switching over to using
nix. However, I don't need to use docker containers anymore and can use nix
fully. Here's the [github actions
configuration](https://github.com/alejandro-angulo/alejandr0angul0.dev/blob/97a655bc0c3e18f8c8921b90f14f87f5a07ae837/.github/workflows/ci.yml)
configuration](https://git.alejandr0angul0.dev/alejandro-angulo/alejandr0angul0.dev/blob/97a655bc0c3e18f8c8921b90f14f87f5a07ae837/.github/workflows/ci.yml)
at the time of writing.
```yaml