Skip to content

Latest commit

 

History

History
142 lines (118 loc) · 6.3 KB

CONTRIBUTING.md

File metadata and controls

142 lines (118 loc) · 6.3 KB

Contributing

Thank you for contributing. Contributions are always welcome, no matter how large or small.

Table of Contents


Guidelines

As a contributor, here are the guidelines you should follow:

We also recommend to read How to Contribute to Open Source.


Pull Requests

Thank you for contributing.


Clone the Repository

git clone https://github.com/seantrane/dotfiles.git dotfiles && cd dotfiles

File Structure

~/.dotfiles/
├─ bin/                       * Anything in `bin/` will get added to your `$PATH`
│  │                            and be made available everywhere.
│  ├─ {binary}                * Any shell script you wish.
│  :
│
├─ functions/                 * Anything in `functions/` will be loaded in environment.
│  ├─ {function}              * Shell function (with filename identical to function name)
│  :
│
├─ {topic}/                   * Directory with files pertaining to a specific topic or application.
│  ├─ aliases.{,ba,z}sh       * Any file named `aliases.{,ba,z}sh` is loaded into your environment.
│  ├─ completion.{ba,z}sh     * Any file named `completion.{ba,z}sh` is loaded last
│  │                            and is expected to setup autocomplete.
│  ├─ path.{,ba,z}sh          * Any file named `path.{,ba,z}sh` is loaded first
│  │                            and is expected to setup `$PATH` or similar.
│  ├─ *.{,ba,z}sh             * Any files ending in `.{,ba,z}sh` get loaded into your environment.
│  ├─ *.symlink               * Any files ending in `*.symlink` get symlinked into your `$HOME`.
│  :                            For example; `npmrc.symlink` would be symlinked to `~/.npmrc`
│                               This is so you can keep all of those versioned in your dotfiles
│                               but still keep those autoloaded files in your home directory.
│                               These get symlinked in when you run `script/bootstrap`.
│
└─ cli                        * Command-line interface

Dotfiles File Structure Explained

~/
├─ .dotfiles/                                   * TBD
│  ├─ bash/                                     * TBD
│  ├─ bin/                                      * TBD
│  ├─ brew/                                     * TBD
│  ├─ functions/                                * TBD
│  ├─ git/                                      * TBD
│  ├─ macos/                                    * TBD
│  ├─ script/                                   * TBD
│  ├─ shell/                                    * TBD
│  ├─ system/                                   * TBD
│  ├─ user/                                     * TBD
│  └─ zsh/                                      * TBD
│
└─ cli                                          * TBD

Zsh configuration process

  1. /etc/zshenv
  2. ~/.zshenv 👉 ~/.dotfiles/zsh/zshenv.symlink ⭐️
    • ~/.zprofile 👉 ~/.dotfiles/zsh/zprofile.symlink
      • ~/.profile 👀👤
    • ~/.dotfiles/brew/paths.sh
    • ~/.env 👉 ~/.dotfiles/system/env.symlink
      • ~/.dotfiles/shell/response.sh ⭐️
      • ~/.dotfiles/shell/paths.sh ⭐️
        • ~/.dotfiles/**/path.{sh,zsh} ⭐️
        • ~/.path 👀👤
      • ~/.dotfiles/shell/exports.sh ⭐️
      • ~/.dotfiles/shell/functions.sh
        • ~/.rvm/scripts/rvm
        • ~/.functions 👀👤
      • ~/.dotfiles/functions/* ⭐️
  3. /etc/zprofile 🛑
  4. ~/.zprofile 👉 ~/.dotfiles/zsh/zprofile.symlink ⭐️
    • ~/.profile 👀👤
  5. /etc/zshrc
  6. ~/.zshrc 👉 ~/.dotfiles/zsh/zshrc.symlink ⭐️
    • ~/.zprezto/init.zsh
    • ~/.localrc 👀👤
    • ~/.dotfiles/**/aliases.{sh,zsh} ⭐️
    • ~/.aliases 👀👤
    • /etc/zsh_command_not_found
    • ~/.dotfiles/**/completion.zsh ⭐️
    • ~/z/z.sh || /opt/homebrew/etc/profile.d/z.sh
  7. /etc/zlogin
  8. ~/.zlogin 👉 ~/.dotfiles/zsh/zlogin.symlink
  9. /etc/zlogout
  10. ~/.zlogout 👉 ~/.dotfiles/zsh/zlogout.symlink

Happy coding!