Stow based dotfiles structure

This commit is contained in:
2026-03-14 21:49:23 +05:30
parent 19ff15afdc
commit c2ff9bfb4a
54 changed files with 77 additions and 110 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -1 +1,78 @@
# 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.

View File

@@ -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

View File

@@ -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"