Stow based dotfiles structure
This commit is contained in:
@@ -1,37 +0,0 @@
|
|||||||
find
|
|
||||||
man
|
|
||||||
tldr
|
|
||||||
sed
|
|
||||||
awk
|
|
||||||
tr
|
|
||||||
cp
|
|
||||||
ls
|
|
||||||
grep
|
|
||||||
xargs
|
|
||||||
rg
|
|
||||||
ps
|
|
||||||
mv
|
|
||||||
kill
|
|
||||||
lsof
|
|
||||||
less
|
|
||||||
head
|
|
||||||
tail
|
|
||||||
tar
|
|
||||||
cp
|
|
||||||
rm
|
|
||||||
rename
|
|
||||||
jq
|
|
||||||
cat
|
|
||||||
ssh
|
|
||||||
cargo
|
|
||||||
git
|
|
||||||
git-worktree
|
|
||||||
git-status
|
|
||||||
git-commit
|
|
||||||
git-rebase
|
|
||||||
docker
|
|
||||||
docker-compose
|
|
||||||
stow
|
|
||||||
chmod
|
|
||||||
chown
|
|
||||||
make
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
golang
|
|
||||||
solidity
|
|
||||||
vlang
|
|
||||||
v
|
|
||||||
nodejs
|
|
||||||
javascript
|
|
||||||
tmux
|
|
||||||
typescript
|
|
||||||
zsh
|
|
||||||
cpp
|
|
||||||
c
|
|
||||||
lua
|
|
||||||
rust
|
|
||||||
python
|
|
||||||
bash
|
|
||||||
php
|
|
||||||
haskell
|
|
||||||
ArnoldC
|
|
||||||
css
|
|
||||||
html
|
|
||||||
gdb
|
|
||||||
77
README.md
77
README.md
@@ -1 +1,78 @@
|
|||||||
# dotfiles
|
# dotfiles
|
||||||
|
|
||||||
|
This repository contains my personal dotfiles, managed using [GNU Stow](https://www.gnu.org/software/stow/).
|
||||||
|
|
||||||
|
Instead of a custom installation script, configurations are organized into logical "packages". Using `stow` ensures that all configuration files are cleanly symlinked into your home directory, mirroring the structure inside the package folder.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- [GNU Stow](https://www.gnu.org/software/stow/)
|
||||||
|
|
||||||
|
To install Stow on macOS, use [Homebrew](https://brew.sh/):
|
||||||
|
```bash
|
||||||
|
brew install stow
|
||||||
|
```
|
||||||
|
|
||||||
|
To install Stow on Linux, use your distribution's package manager:
|
||||||
|
|
||||||
|
**Ubuntu / Debian**
|
||||||
|
```bash
|
||||||
|
sudo apt install stow
|
||||||
|
```
|
||||||
|
|
||||||
|
**Arch Linux**
|
||||||
|
```bash
|
||||||
|
sudo pacman -S stow
|
||||||
|
```
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
To install a specific package (e.g., `nvim`), navigate to the root of this repository and run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
stow nvim
|
||||||
|
```
|
||||||
|
|
||||||
|
To install all standard packages at once, run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
stow bash zsh nvim starship tmux
|
||||||
|
```
|
||||||
|
|
||||||
|
This will automatically create the necessary symlinks in your `$HOME` directory pointing to the files in this repository.
|
||||||
|
|
||||||
|
### Removing a Package
|
||||||
|
|
||||||
|
If you want to remove the symlinks for a specific package, use the `-D` flag:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
stow -D nvim
|
||||||
|
```
|
||||||
|
|
||||||
|
## Directory Structure
|
||||||
|
|
||||||
|
To keep things modular and easy to manage, each folder acts as a "package" that represents an application or environment. The folder structure *inside* the package strictly mirrors its target destination relative to the home (`~/`) directory.
|
||||||
|
|
||||||
|
```text
|
||||||
|
.
|
||||||
|
├── bash/
|
||||||
|
│ └── .bashrc # Symlinked to ~/.bashrc
|
||||||
|
├── nvim/
|
||||||
|
│ └── .config/
|
||||||
|
│ └── nvim/ # Symlinked to ~/.config/nvim/
|
||||||
|
├── starship/
|
||||||
|
│ └── .config/
|
||||||
|
│ └── starship.toml # Symlinked to ~/.config/starship.toml
|
||||||
|
├── tmux/
|
||||||
|
│ ├── .tmux.conf # Symlinked to ~/.tmux.conf
|
||||||
|
│ └── .tmux.conf.local # Symlinked to ~/.tmux.conf.local
|
||||||
|
└── zsh/
|
||||||
|
└── .zshrc # Symlinked to ~/.zshrc
|
||||||
|
```
|
||||||
|
|
||||||
|
### Adding New Configurations
|
||||||
|
|
||||||
|
When you want to add a new tool:
|
||||||
|
1. Create a new directory for it (e.g., `wezterm`).
|
||||||
|
2. Replicate the target directory structure inside this new folder (e.g., `wezterm/.config/wezterm/wezterm.lua`).
|
||||||
|
3. Run `stow wezterm` from the root of this repository.
|
||||||
|
|||||||
21
install.sh
21
install.sh
@@ -1,21 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
dotfilesDir=$(pwd)
|
|
||||||
|
|
||||||
echo "Linking dot files"
|
|
||||||
rm -rf ~/.bashrc
|
|
||||||
rm -rf ~/.zshrc
|
|
||||||
rm -rf ~/.config/starship.toml
|
|
||||||
rm -rf ~/.tmux.conf
|
|
||||||
rm -rf ~/.tmux.conf.local
|
|
||||||
rm -rf ~/.config/nvim
|
|
||||||
|
|
||||||
ln -s -f ${dotfilesDir}/shell/bashrc ~/.bashrc
|
|
||||||
ln -s -f ${dotfilesDir}/shell/zshrc ~/.zshrc
|
|
||||||
ln -s -f ${dotfilesDir}/tmux/tmux.conf ~/.tmux.conf
|
|
||||||
ln -s -f ${dotfilesDir}/tmux/tmux.conf.local ~/.tmux.conf.local
|
|
||||||
ln -s -f ${dotfilesDir}/nvim ~/.config/nvim
|
|
||||||
ln -s -f ${dotfilesDir}/shell/starship.toml ~/.config/starship.toml
|
|
||||||
#
|
|
||||||
# echo "Installing fzf"
|
|
||||||
# git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
|
|
||||||
# ~/.fzf/install
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
# default theme
|
|
||||||
tmux_conf_theme_colour_1="#080808" # dark gray
|
|
||||||
tmux_conf_theme_colour_2="#303030" # gray
|
|
||||||
tmux_conf_theme_colour_3="#8a8a8a" # light gray
|
|
||||||
tmux_conf_theme_colour_4="#00afff" # light blue
|
|
||||||
tmux_conf_theme_colour_5="#ffff00" # yellow
|
|
||||||
tmux_conf_theme_colour_6="#080808" # dark gray
|
|
||||||
tmux_conf_theme_colour_7="#e4e4e4" # white
|
|
||||||
tmux_conf_theme_colour_8="#080808" # dark gray
|
|
||||||
tmux_conf_theme_colour_9="#ffff00" # yellow
|
|
||||||
tmux_conf_theme_colour_10="#ff00af" # pink
|
|
||||||
tmux_conf_theme_colour_11="#5fff00" # green
|
|
||||||
tmux_conf_theme_colour_12="#8a8a8a" # light gray
|
|
||||||
tmux_conf_theme_colour_13="#e4e4e4" # white
|
|
||||||
tmux_conf_theme_colour_14="#080808" # dark gray
|
|
||||||
tmux_conf_theme_colour_15="#080808" # dark gray
|
|
||||||
tmux_conf_theme_colour_16="#d70000" # red
|
|
||||||
tmux_conf_theme_colour_17="#e4e4e4" # white
|
|
||||||
|
|
||||||
color_yellow="#f9e2af"
|
|
||||||
color_red="#f38ba8"
|
|
||||||
color_green="#C9E9D2"
|
|
||||||
color_teal="#C9DABF"
|
|
||||||
color_white="#cdd6f4"
|
|
||||||
color_pink="#f5c2e7"
|
|
||||||
color_black="#11111b"
|
|
||||||
color_blue='#789DBC'
|
|
||||||
color_mauve="#FFE3E3"
|
|
||||||
color_offwhite="#FEF9F2"
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user