• Stars
    star
    166
  • Rank 227,748 (Top 5 %)
  • Language
    Shell
  • Created over 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Sane organization scheme for your dotfiles. Managing them used to be a pain.

F-dotfiles banner

F-dotfiles

/ɛfdɒtfaɪlz/ :

n. stands for Full-fledged-Ãœber-Clean-Kraymer dotfiles., an opiniated dotfiles organization scheme based on stow. Great effort is put on self-documentation and ease of maintenance.

Features

  • stow powered: symlink dotfiles and thus keep them always up-to-date in your repository
  • topical organization: organize dotfiles by application packages facilitating reuse across different machines
  • discoverability: self-documented packages making the architecture easy to browse while staying compatible with stow symlinking mechanism

Install

  1. clone the repository : git clone https://github.com/F-dotfiles/F-dotfiles.git ~/ ; cd ~/F-dotfiles
  2. setup stow, inception style : stow -t ~ _stow 
  3. install desired package via stow <directory> 1

When needed, special install instructions are present in package README.md file

Rules

Walter - That rules really tie the repo together, do they not?
The Dude - Fuckin A ! 2

Documentation f-dotfiles.py

Dotfiles repositories are too often grimoire-like collection of ancient formulas, only usable by their original author.

F-dotfiles avoid this pitfall by paying special attention to packages documentation : run pre-commit install to enable f-dotfiles.py hook that ensures that packages README.md tree listings are automatically updated when commiting.
Files descriptions that match the format # <filename>: description are extracted too and enrich the tree listing.

Others instructions like install notes and requirements should be manually entered by editing the README.md files directly, and can live peacefully alongside auto-generated tree view content.

Ignore files [cf example]

Quoting stow documentation :

if Stow can create a single symlink that points to an entire subtree within the package tree, it will choose to do that rather than create a directory in the target tree and populate it with symlinks.

.gitignore can be present in packages because of this behaviour, in order to avoid having your repository cluttered with unknown files.

Secret files [cf example]

Files that contain sensitive information and should not be published are kept secret using package specific .gitignore files. Because the secret file itself is not tracked, a template is commited instead having same name but with the .example suffix appended. This template is intended to serve as a base for edition and can be renamed (removing the suffix) after its content is edited.


1 it's because we installed stow package at step 2 that the flag -t ~ can be omitted here, see .stowrc ⤸
2 https://www.youtube.com/watch?v=ezQLP1dj_t8 ⤸

More Repositories

1

flinck

Sort your movies on filesystem by dates, ratings, etc using symlinks.
Python
131
star
2

qifqif

Enrich your .QIF files with categories.
Python
48
star
3

treeage

Expose aging code by listing contents of repository in a tree-like format with eye-catching age metric.
Python
38
star
4

cronicle

Use cron to rotate files and keep time-spaced copies using symlinks.
Python
35
star
5

deus_ex_tmachina

Folders whitelist for Time Machine.
Shell
32
star
6

replica

Replica, the id3 metadata cloner
Python
16
star
7

pawnhub

CLI listing your online chess games results.
Python
14
star
8

ezkill

'pkill -f' with a confirmation prompt.
Shell
14
star
9

ublame

Add some depth to 'git blame'!
Python
9
star
10

ezdropdb

`dropdb` for multiple databases with a confirmation prompt
Shell
8
star
11

cesar

The radical compressor. Git pre-commit hook to reduce images filesizes.
Shell
7
star
12

cornerstone

Solid repository foundation for your python projects.
Python
7
star
13

brack

The branch name acknowledger. Git pre-commit hook to enforce a branches naming policy.
Shell
6
star
14

pmu

Execute actions on top of unix commands using percol interactive selection
Shell
5
star
15

memedict

Knowyourmeme.com definitions scraper
Python
4
star
16

imgimg

Stitch two images side by side with optional captions
Shell
3
star
17

ezlumberjack

Delete git branches *en masse*
Shell
2
star
18

excommito

Where I blog and track my open source activity.
HTML
2
star
19

pawnstore

Chess library to import your PGN games and run queries on them.
Python
1
star
20

givemesome

Get updates on slack when your spotify collaborative playlist is updated 🎧
Python
1
star