structure updates
This commit is contained in:
86
tech_docs/linux/dot.md
Normal file
86
tech_docs/linux/dot.md
Normal file
@@ -0,0 +1,86 @@
|
||||
For an adept Linux user, managing dotfiles and environment configurations with GNU Stow presents an efficient, scalable approach. The following guide uses the setup of a desktop environment with `i3-gaps`, `Polybar`, `Rofi`, and `Picom` as a practical example of how to leverage Stow for dotfile management. This technique facilitates seamless synchronization, version control, and replication of configurations across multiple systems.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Ensure you have GNU Stow installed. If not, install it using your distribution's package manager. For Debian-based systems:
|
||||
|
||||
```bash
|
||||
sudo apt install stow
|
||||
```
|
||||
|
||||
### Step 1: Structuring Your Dotfiles Repository
|
||||
|
||||
Create a central repository for your dotfiles. This guide assumes `~/dotfiles` as the location for this repository.
|
||||
|
||||
```bash
|
||||
mkdir ~/dotfiles
|
||||
cd ~/dotfiles
|
||||
```
|
||||
|
||||
Inside `~/dotfiles`, create subdirectories for each of your applications (`i3-gaps`, `polybar`, `rofi`, `picom`). These directories will host the respective configuration files, mirroring the structure typically found in `~/.config`.
|
||||
|
||||
### Step 2: Migrating Configurations to Your Repository
|
||||
|
||||
Move your current configuration files into the corresponding subdirectories within `~/dotfiles`. For instance:
|
||||
|
||||
```bash
|
||||
mkdir ~/dotfiles/i3-gaps ~/dotfiles/polybar ~/dotfiles/rofi ~/dotfiles/picom
|
||||
mv ~/.config/i3/* ~/dotfiles/i3-gaps/
|
||||
mv ~/.config/polybar/* ~/dotfiles/polybar/
|
||||
mv ~/.config/rofi/* ~/dotfiles/rofi/
|
||||
mv ~/.config/picom/* ~/dotfiles/picom/
|
||||
```
|
||||
|
||||
### Step 3: Applying GNU Stow
|
||||
|
||||
Navigate to your `~/dotfiles` directory. Use Stow to symlink the configurations in `~/dotfiles` back to their appropriate locations in `~/.config`. Execute the following commands:
|
||||
|
||||
```bash
|
||||
cd ~/dotfiles
|
||||
stow i3-gaps polybar rofi picom
|
||||
```
|
||||
|
||||
GNU Stow will create the necessary symlinks from `~/.config/<application>` to your `~/dotfiles/<application>` directories. This approach keeps your home directory clean and your configurations modular and portable.
|
||||
|
||||
### Step 4: Version Control with Git
|
||||
|
||||
Initialize a git repository within `~/dotfiles` to track changes and revisions to your configurations. This facilitates backup, sharing, and synchronization across multiple systems.
|
||||
|
||||
```bash
|
||||
cd ~/dotfiles
|
||||
git init
|
||||
git add .
|
||||
git commit -m "Initial commit of my Linux desktop environment configurations"
|
||||
```
|
||||
|
||||
Consider pushing your repository to a remote version control system like GitHub to backup and share your configurations:
|
||||
|
||||
```bash
|
||||
git remote add origin <remote-repository-URL>
|
||||
git push -u origin master
|
||||
```
|
||||
|
||||
### Step 5: Maintaining and Updating Configurations
|
||||
|
||||
When making changes or updates to your configurations:
|
||||
|
||||
1. Edit the files within your `~/dotfiles` subdirectories.
|
||||
2. If you introduce new files or directories, use Stow to reapply the symlinks:
|
||||
```bash
|
||||
cd ~/dotfiles
|
||||
stow --restow <modified-package>
|
||||
```
|
||||
3. Track changes using git within the `~/dotfiles` directory:
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "Updated configurations"
|
||||
git push
|
||||
```
|
||||
|
||||
### Best Practices
|
||||
|
||||
- **Regular Backups**: Regularly push your changes to a remote repository to back up your configurations.
|
||||
- **Documentation**: Keep a README in your dotfiles repository detailing installation steps, dependencies, and special configuration notes for easier setup on new systems.
|
||||
- **Modularity**: Leverage Stow's ability to manage packages independently. This modularity lets you apply, update, or remove specific configurations without impacting others.
|
||||
|
||||
By adhering to this guide, you streamline the management of your Linux desktop environment configurations, making your setup highly portable and easy to maintain across multiple systems or after a system reinstallation. This method not only enhances organization but also aligns with best practices for dotfile management and version control.
|
||||
Reference in New Issue
Block a user