All Projects → Kraymer → F Dotfiles

Kraymer / F Dotfiles

Full-Fledged Über-Clean Kraymer' dotfiles (powered by stow). Managing them used to be a pain.

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to F Dotfiles

Dotfiles
Alacritty + Tmux + Oh My Zsh + Neovim = ❤️
Stars: ✭ 95 (-34.03%)
Mutual labels:  zsh, dotfiles
.dot Config
📚 Example dot configs for tmux, tmuxp, vim, vcspull, i3 and awesome
Stars: ✭ 102 (-29.17%)
Mutual labels:  zsh, dotfiles
Mac Bootstrap
💻 Provision a new Mac for web development with dotfiles + Fish/Zsh, Neovim, and Tmux
Stars: ✭ 96 (-33.33%)
Mutual labels:  zsh, dotfiles
Dotfiles
💀 dotfiles! managed by GNU stow
Stars: ✭ 85 (-40.97%)
Mutual labels:  zsh, dotfiles
Dotfiles
My dotfiles
Stars: ✭ 127 (-11.81%)
Mutual labels:  zsh, dotfiles
Castle Winbuntu
Homesick Castle for use on WSL.
Stars: ✭ 87 (-39.58%)
Mutual labels:  zsh, dotfiles
Dotfiles
Awesome personal dotfiles
Stars: ✭ 99 (-31.25%)
Mutual labels:  zsh, dotfiles
Dotfiles
What tools and plugins I use for web development?
Stars: ✭ 73 (-49.31%)
Mutual labels:  zsh, dotfiles
Antibody
The fastest shell plugin manager.
Stars: ✭ 1,659 (+1052.08%)
Mutual labels:  zsh, dotfiles
Dotfiles
Dotfiles
Stars: ✭ 117 (-18.75%)
Mutual labels:  zsh, dotfiles
Dotfiles
My precious configs
Stars: ✭ 85 (-40.97%)
Mutual labels:  zsh, dotfiles
Shabka
Shabka. Declaritive description of my network, workstations and servers.
Stars: ✭ 138 (-4.17%)
Mutual labels:  zsh, dotfiles
Dotfiles
My dotfiles
Stars: ✭ 81 (-43.75%)
Mutual labels:  zsh, dotfiles
Dotfiles
🤘 My collection of dotfiles for tmux, vim and zsh
Stars: ✭ 94 (-34.72%)
Mutual labels:  zsh, dotfiles
Dotfiles
🐧 Configuration files
Stars: ✭ 81 (-43.75%)
Mutual labels:  zsh, dotfiles
Dotfiles
My dotfiles managed by GNU Stow - Arch, i3-gaps, bspwm, ncmpcpp, (neo)vim, zsh etc.
Stars: ✭ 99 (-31.25%)
Mutual labels:  zsh, dotfiles
Dotfiles
My personal configuration management system
Stars: ✭ 66 (-54.17%)
Mutual labels:  zsh, dotfiles
Dotfiles
💻 Dotfiles for zsh, vim, emacs, tmux, and bash. Tested on mac os.
Stars: ✭ 70 (-51.39%)
Mutual labels:  zsh, dotfiles
Dotfiles
If there is a shell, there is a way!
Stars: ✭ 112 (-22.22%)
Mutual labels:  zsh, dotfiles
Dotfiles
Configuration files for XMonad, Emacs, NixOS, Taffybar and more.
Stars: ✭ 127 (-11.81%)
Mutual labels:  zsh, dotfiles

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 up-to-date documentation, ease of maintenance and deployment on both Linux and OS X.

Features

  • stow powered: symlink dotfiles and thus keep them always up-to-date in your repository
  • topical organization: organize dotfiles by application facilitating reuse across different machines
  • clever naming scheme: the repository architecture is easy to browse while staying compatible with stow symlinking mechanism
  • KISS: there is deliberately none build script involved at all, the repository consist of dotfiles all installable using same modus operandi (stow <directory>)

Install

  1. clone the repository : git clone https://github.com/Kraymer/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

Dotfiles repositories are often grimoire-like, collection of ancient formulas. I make the effort of documenting each package because the few infos given in the README.md add up and can save a lot of time when configuring a new machine from scratch.

Each package has a README.md which present its purpose and a flat tree view of its files. Install notes and requirements can also be listed.

Directories naming

  • lowercase for packages to install in $HOME (the default)
  • titlecase for packages to install as root in / (eg @Daemon-osx)
  • leading @ for environment packages and subpackages (eg @mac, attic/@Daemon-osx)
  • leading _ for non packages meaning that these directories must not be stowed (eg _homebrew)

Having a convention for subpackage naming enable us to write a .stow-global-ignore file so that subpackages are not symlinked when stowing parent package.

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.
These files are prominently listed in the package README.md with a ✏ symbol aside.
Because the secret file itself is not tracked, a template is commited instead having same name but with the .local 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.

Multi-platforms paths [cf example]

For example, let's say you want to store one config file as ~/.config/myapp/spam.conf on Linux and as ~/Library/myapp/spam.conf on macOS.

Put the shared part of filepaths in a shared _common folder : myapp/_common/myapp/spam.conf
Then, create one subpackage per OS to host each specific directories structure and use symlink to bridge to _common files :
myapp/@linux/.config -> ../ _common/myapp/
myapp/@macOS/Library -> ../ _common/myapp/


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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].