https://github.com/shalomb/dotfiles
My UNIX/Linux desktop workspace configuration files.
https://github.com/shalomb/dotfiles
desktop dotfile-management dotfiles shell vimrc workspace-manager
Last synced: about 2 months ago
JSON representation
My UNIX/Linux desktop workspace configuration files.
- Host: GitHub
- URL: https://github.com/shalomb/dotfiles
- Owner: shalomb
- Created: 2011-04-17T22:41:19.000Z (about 15 years ago)
- Default Branch: develop
- Last Pushed: 2025-11-04T22:20:01.000Z (8 months ago)
- Last Synced: 2025-11-04T23:23:54.285Z (8 months ago)
- Topics: desktop, dotfile-management, dotfiles, shell, vimrc, workspace-manager
- Language: Shell
- Homepage:
- Size: 6.43 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
## dotfiles
Track dotfiles as hardlinks to files tracked in a git repo
## Installation
```bash
sudo apt install --no-install-{recommends,suggests} make git
echo "$USER ALL=(ALL) NOPASSWD: ALL" | sudo tee "/etc/sudoers.d/$USER"
mkdir -p ~/.config/dotfiles/
cd !$
git clone git://github.com/shalomb/dotfiles.git .
make install
```
## Managing change
## Managed files
`./dotfile_stash` install files within the repository as hard links to
counterpart locations in the home directory (and as such the repo needs to
exist on the same file system) and so changes to any of the managed
dotfiles appear as changes in the repository.
```bash
cd ~/.config/dotfiles/
git status --
```
## New files
New files can be imported into the repository.
```bash
cd ~/.config/dotfiles/
./dotfile_stash import .bin/somefile
git add !$
git commit -m 'Added .bin/somefile'
```
## XDG-Compliant Deployment
The repository now supports XDG-compliant deployment for bash configuration files:
```bash
# Deploy bash configurations with XDG compliance
./scripts/deploy-bash-xdg.sh deploy
# Verify deployment status
./scripts/deploy-bash-xdg.sh status
```
This creates symlinks in the home directory pointing to XDG-compliant paths in the repository, solving the symlink chain fragility issues while maintaining full XDG Base Directory specification compliance.
## TODO
* encrypt certain files ??
* ~~rewrite `./dotfile_stash`~~ ✅ **COMPLETED**: XDG-compliant deployment implemented
* decompose the monolith - into submodules?