shadowbq / matrix.dot.files

entering the matrix of my maze of dot files

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

matrix.dot.files

A Unified Modern Bash Experience Across All POSIX Systems.

Enter the matrix of dot files. - Since May 25, 2012

matrix-screenshot

Highlights

  • Native bash 3.x/4.x/5.x supported shell.
  • Language versions managers like RVM/PYENV/GVM/NVM
  • Security with SSH Agents, GPG Env Secrets, and Proxies
  • Essential out of the box tooling like GIT, TMUX, VIM.
  • Colors and Themes with Powerline and TPM.
  • Docker aware, and K8s tooling
  • Sanity checks for Bash GNU gpl2 tools, built in bash functions, and matrix update consistency.

Hooking into the matrix

Use an application like homesick rubygem or homeshick bash script.

Getting Started

You use the homesick command to clone a castle (the matrix):

homesick clone git://github.com/shadowbq/matrix.dot.files.git

-or-

homesick clone https://github.com/shadowbq/matrix.dot.files.git

Next symlink the matrix to your $HOME

homesick symlink matrix.dot.files

Note: you may not want to accept the (.ssh) directory.

Show the available castles:

homesick list

Configuration (Post Install)

Where is the main configuration of matrix.dot.files?

  • ~/.matrix_config is where you enable or disable matrix modules/extensions(ie: go, nodejs, docker, vim etc..).

Where do local Shell settings go?

  • Local files can be added to a singular system for individual enhancement.
.bash_local
.bash_aliases
  • Secure files like these are ignored from the repo in the .gitignore by default.
.secrets
.bash_encrypted
.ssh/*.pem
.ssh/*.key
.ssh/id*

How do I ignore or skip files so I don't commit them to a git repo?

  • You can ignore files using the alias skip to avoid errors on matrix local consistency checks by adding this git nugget.
  • This will allow for customization of your files away from the upstream repo.
$> git skip home/.matrix_config
$> git skip home/.ssh/ssh_config
$> git skipped
S home/.matrix_config
S home/.ssh/ssh_config

The Docs

Read the Docs, as they are very helpful in getting unstuck, or installed correctly in each section.

./README.md - The site README

The Developers Opinion

README - Opinion

Operating Systems - Installation and Setup Guides for the extensions

README - BSD
README - LINUX
README - MacOS
README - Win10

Languages - Installation and Setup Guides for the extensions

README - GoLang
README - Node.js
README - Python
README - Ruby

Best Practices

README - Bash

Controls - Installation and Setup Guides for the extensions

README - Git - Using Git (multi users etc.)
README - TMUX - Using TMUX
README - VIM - My vim configurations
README - Powerline - Python's Powerline statusline
README - Proxies - Using Proxies
README - Secrets - Secure shell usage of Secrets
README - Sandboxes - Application Sandboxing
README - Containers - Docker and K8s
README - Security - General Security Information

Additional 3rd Tools Manuals

README - ACK
README - PrettyPrint
README - RANDOMZ
README - RMATE

Dependencies

The Matrix has a few dependencies if you are going to use it.

  • Bash
  • Sane setups with gplv3-coreutils and brew on macos
  • Ruby, RVM and a set of GEMs
  • VI with Vundle
  • TMUX with TPM bundles with Powerline Python3
  • NPM with Node NVM
  • Powerline
  • VIM with Airline (slimmer Powerline option)

Run the matrix dependency checker to get a good start on ensuring a SANE environment

.matrix/bin/check_matrix_dependencies

File Hierarchy

Global Directive

.bash_profile

bash_profile is the primary universal include directive file that autoloads dot.matrix directives

Matrix

bash_matrix defines what additional include directives to load from the matrix (configure your load out here)

.bash_matrix

.matrix directory holds all additional plugins

  • OS specific - load paths, bins, aliases, advisors - (./Darwin/.bash_extensions)
  • Global bins - cross platform shell scripts (xpull, rmate, ssh-copy-id, epoch, etc.. )
  • Rubygems in bundler format that improve experience
  • Additional functions, environment needs, and mockups

Other Files

Additional actions on the Universal Profile

.bashrc           # NOTE: Bashrc are loaded by .bash_profile!
.bash_logout      # Performed during logout.

Standardized .git configs and shortcuts

.gitconfig
.gitignore-global

Other .file(s) that can enhance the unified experience

.irbrc
.curlrc
.....(others)

Other Directories

There are some additional directories symlinked in to assist in application normalization

.config
.parallel
.vim

More Help

  • For More help please the /docs directory/..
  • File an Issue on GITHUB
  • Ask on StackHUB

About

entering the matrix of my maze of dot files

License:MIT License


Languages

Language:Shell 69.8%Language:Perl 24.0%Language:Vim Script 3.8%Language:Python 1.6%Language:Ruby 0.8%