191 lines
4.5 KiB
Markdown
191 lines
4.5 KiB
Markdown
# dotfiles
|
|
|
|
My configuration and styling for things I use on my Linux PC, embracing the power of GNU Stow and symlinks.
|
|
|
|
## Quick start
|
|
|
|
```sh
|
|
git clone --recurse-submodules git@github.com:notkaramel/dotfiles ~/dotfiles
|
|
cd ~/dotfiles
|
|
stow <app>
|
|
```
|
|
|
|
If you already cloned without submodules:
|
|
```sh
|
|
git submodule update --init --recursive
|
|
```
|
|
|
|
---
|
|
|
|
## GNU Stow
|
|
|
|
[GNU Stow](https://www.gnu.org/software/stow/) symlinks a package directory's contents into a target directory. By default the target is the parent of the current directory, so running from `~/dotfiles` symlinks into `~/`.
|
|
|
|
### User-local installation (default)
|
|
|
|
Installs configs into `~/` — no root required.
|
|
|
|
```sh
|
|
# From ~/dotfiles:
|
|
stow zsh # → ~/.zshrc, etc.
|
|
stow alacritty # → ~/.config/alacritty/
|
|
stow nvim # → ~/.config/nvim/
|
|
stow waybar # → ~/.config/waybar/
|
|
```
|
|
|
|
This is equivalent to:
|
|
```sh
|
|
stow <app> --target ~/
|
|
```
|
|
|
|
To remove (unstow):
|
|
```sh
|
|
stow -D <app>
|
|
```
|
|
|
|
### System-wide installation (requires sudo)
|
|
|
|
Some programs install assets into system directories under `/usr/share/`. Use `--target` to override the destination.
|
|
|
|
```sh
|
|
# Themes → /usr/share/themes/
|
|
sudo stow <theme> --dir ~/dotfiles --target /usr/share/themes
|
|
|
|
# Icons/cursors → /usr/share/icons/
|
|
sudo stow <icon-theme> --dir ~/dotfiles --target /usr/share/icons
|
|
|
|
# Fonts → /usr/share/fonts/
|
|
sudo stow <font> --dir ~/dotfiles --target /usr/share/fonts
|
|
```
|
|
|
|
To remove a system-wide stow:
|
|
```sh
|
|
sudo stow -D <app> --dir ~/dotfiles --target /usr/share/themes
|
|
```
|
|
|
|
---
|
|
|
|
## CustomizeLinux
|
|
|
|
Third-party programs and themes managed as git submodules under `CustomizeLinux/`. After cloning with `--recurse-submodules` they are ready to use.
|
|
|
|
| Directory | Description | Install target |
|
|
|-----------|-------------|----------------|
|
|
| `adw-gtk3` | GTK3 libadwaita theme | `/usr/share/themes` (system) or `~/.themes` (user) |
|
|
| `minegrub` | Minecraft-style GRUB theme | `/boot/grub/themes` (requires sudo) |
|
|
| `posy-cursors` | Clean cursor theme | `/usr/share/icons` (system) or `~/.local/share/icons` (user) |
|
|
| `SpotX-Bash` | Spotify ad-blocker patch script | Run as user |
|
|
| `Tela-icon-theme` | Flat icon theme | `/usr/share/icons` (system) or `~/.local/share/icons` (user) |
|
|
| `yay` | AUR helper PKGBUILD | Build with `makepkg -si` |
|
|
|
|
### adw-gtk3
|
|
|
|
```sh
|
|
cd CustomizeLinux/adw-gtk3
|
|
|
|
# User install (~/.themes)
|
|
./install_theme.sh
|
|
|
|
# System install (/usr/share/themes)
|
|
sudo ./install_theme.sh
|
|
```
|
|
|
|
### minegrub (GRUB theme — requires sudo)
|
|
|
|
```sh
|
|
cd CustomizeLinux/minegrub
|
|
# Follow README instructions, then:
|
|
sudo cp -r minegrub-theme /boot/grub/themes/
|
|
# Update /etc/default/grub: GRUB_THEME="/boot/grub/themes/minegrub-theme/theme.txt"
|
|
sudo grub-mkconfig -o /boot/grub/grub.cfg
|
|
```
|
|
|
|
### posy-cursors
|
|
|
|
```sh
|
|
cd CustomizeLinux/posy-cursors
|
|
|
|
# User install
|
|
mkdir -p ~/.local/share/icons
|
|
cp -r posy-cursor* ~/.local/share/icons/
|
|
|
|
# System install
|
|
sudo cp -r posy-cursor* /usr/share/icons/
|
|
```
|
|
|
|
### SpotX-Bash
|
|
|
|
```sh
|
|
cd CustomizeLinux/SpotX-Bash
|
|
bash spotx.sh
|
|
```
|
|
|
|
### Tela-icon-theme
|
|
|
|
```sh
|
|
cd CustomizeLinux/Tela-icon-theme
|
|
|
|
# User install (~/.local/share/icons)
|
|
./install.sh
|
|
|
|
# System install (/usr/share/icons, requires sudo)
|
|
sudo ./install.sh
|
|
```
|
|
|
|
### yay (AUR helper)
|
|
|
|
```sh
|
|
cd CustomizeLinux/yay
|
|
makepkg -si
|
|
```
|
|
|
|
---
|
|
|
|
## Actively using programs
|
|
|
|
- Shell: `zsh` with `oh-my-zsh`
|
|
- Terminal: `alacritty`
|
|
- WM: `niri` (Wayland, scrollable tiling)
|
|
- Wallpaper: `hyprpaper`
|
|
- Notification: `mako`
|
|
- Lock: `swaylock`
|
|
- Bar: `waybar`
|
|
- Menu: `wofi` / `wofi-emoji`
|
|
- Audio: `wireplumber`
|
|
- Tools: `tmux`, `neovim`
|
|
|
|
---
|
|
|
|
## Useful commands
|
|
|
|
Getting all locally installed packages:
|
|
```sh
|
|
pacman -Qs | grep "local/" | awk '{print $1}' | awk -F '/' '{print $2}' > allPackages.txt
|
|
```
|
|
|
|
Reinstalling all packages:
|
|
```sh
|
|
cat allPackages.txt | yay -S - --needed
|
|
```
|
|
|
|
---
|
|
|
|
## Notes
|
|
|
|
- Network interface is set to `wlan0`
|
|
- Static IP `192.168.0.99/24` assigned to `wlan0` via NetworkManager
|
|
- Gateway: `192.168.0.1`
|
|
- To inspect: `nmcli connection show`
|
|
- To reconfigure: `nmcli connection modify <connection> ipv4.addresses 192.168.0.99/24 ipv4.gateway 192.168.0.1 ipv4.method manual && nmcli connection up <connection>`
|
|
|
|
---
|
|
|
|
## License (CC0 1.0 Universal)
|
|
|
|
> See [LICENSE](LICENSE) for the full text.
|
|
|
|
notkaramel/dotfiles by Antoine Phan (@notkaramel) is marked with CC0 1.0 Universal. To view a copy of this license, visit http://creativecommons.org/publicdomain/zero/1.0
|
|
|
|
Credit: [Dreams of Autonomy](https://youtu.be/y6XCebnB9gs) and [DevInsideYou](https://youtu.be/CFzEuBGPPPg) for the GNU Stow workflow.
|
|
|