dotfiles/README.md

49 lines
2.1 KiB
Markdown

# dotfiles
Universal config files for my linux desktop environments. Managed with GNU stow and the home-baked `arch-requirements` format (honestly kinda came out of the blue and now its like a big deal idk)
# Installation
## Submodules
This repo contains submodules. These are not pulled with the default clone command. Initialise them with:
```sh
git submodule update --init
```
or clone the repo with them:
```sh
git clone --recurse-submodules https://git.codebased.xyz/bytequill/dotfiles.git
```
## Applying config
Using [GNU Stow](https://www.gnu.org/software/stow/) you can easily apply configs provided by this repo
You can either run the script `stow.sh` or execute the below manually:
```sh
stow --target $HOME .
```
## Getting packages (arch)
If you are on arch linux, you can easily install all packages needed to make these configs work (if I missed something please file an issue/PR)
Note that the (home made) `arch-requirements` file format supports comments with `#` you need the grep part of below commands
Helper scripts for this format will be available in another repository in the future (because I made a few creating this and will thus probably share)
### pacman
Since the current list does not include any AUR packages. You can freely use `pacman` to sync all your packages. This can change in the future as I do not put much importance on keeping packages in main repos!!
To accomplish an install of all requirements and sync repos just run:
```sh
pacman -Sy $(
sed -e 's/#.*//' -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' \
arch-requirements \
| grep -v '^$'
)
```
### yay
Since `yay` is backwards compatible with `pacman`. The command needed is the exact same just using yay:
```sh
yay -Sy $(
sed -e 's/#.*//' -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' \
arch-requirements \
| grep -v '^$'
)
```
# note
## .oh-my-zsh inclusion
I would rather not have included the `.oh-my-zsh` submodule in this repo, however the official install script overwrites `.zshrc` and I wanted a plug-and-play experience without having to do any manual intervention/extra steps