Giter Site home page Giter Site logo

dubodots's Introduction

Console Dotfiles

This is an attempt to document my dotfiles and each directory/file purpose. The configuration should be similar between bash and zsh shells. I use zsh by default.

Installing

The dotfiles serves both Linux and Mac hosts. I have different methods of setting each up.

Mac

On Mac, the process to setup is:

# Checkout the files
git clone https://github.com/duboc/dubodots $HOME/.dotfiles
pushd $HOME/.dotfiles

# Run setup_mac.sh
./setup_mac.sh
popd

Now close the current terminal and reopen.

Linux

On Linux, the process to setup is:

On Mac, the process to setup is:

# Checkout the files
git clone https://github.com/duboc/dubodots $HOME/.dotfiles
pushd $HOME/.dotfiles

# Run setup_mac.sh
./setup_linux.sh
popd

Now close the current terminal and reopen.

Shell Configuration

Zsh

  • P10K

Bash

File/Dir Structure

The dotfiles is structured as:

Directories

  • ./bin - These are some utility scripts or platform specific binaries. These are added to the $PATH
  • ./completion - Holds custom command completion scripts for bash and zsh
  • ./fonts - Console monospaced fonts. Some have been patched with nerdfonts to have special characters. Needs to be installed manually depending on the platform.
  • ./rc - This dir holds application config files and directories that are linked as .filerc in the user home dir. They are automatically linked by the setup_links.sh script and their link will have the . prepended.
  • ./rc/iterm2 - iTerm2 utilities installed by the "Install Shell Integration" menu option
  • ./shellconfig - This directory has the shell config variables for both bash and zsh

File roles

Files in ./:

  • .ignore - Ignores some files that contain personal data and should not be in GitHub
  • blue.tmuxtheme - Tmux theme config file. Used by .tmux.conf.
  • Brewfile - Homebrew packages installed on Mac. Install by using brew bundle install. Called by setup_mac.sh.
  • Brewfile-casks-store - Homebrew cask packages installed on Mac. Install by using brew bundle install --file Brewfile-casks-store. Called by setup_mac.sh.
  • go_apps.sh - Installs Golang utility applications like Hub, fzf, etc by go get -u [app].
  • osx_prefs.sh - Configures MacOS default settings. Called by setup_mac.sh.
  • setup_links.sh - Configures symbolic links to directories and rc files. Called by setup_mac.sh, setup_tmux.sh and setup_zsh.sh.
  • setup_mac.sh - Setup Mac with command line tools, Homebrew package manager. Installs homebrew applications, fonts, go applications, links, zsh, tmux thru aux scripts. All Mac related setup goes here.
  • setup_linux.sh - Setup Linux with basic packages. Installs go applications, links, zsh, tmux thru aux scripts. All Linux related setup goes here.
  • setup_tmux.sh - Installs and configure Tmux on any platform (Mac / Linux)
  • setup_zsh.sh - Installs and configures Zsh, its plugins and theme. Sets it as default for current user. Also updates all packages and dependencies whenever run.

Files in the ./shellconfig directory:

  • ./shellconfig/shellrc.sh - This is called by .zshrc and .bashrc. Loads shell configuration that is common for zsh and bash. Sources the aliases, exports, functions, iTerm2 integration and any utility completion or plugin. Calls Neofetch at the end.
  • ./shellconfig/aliases.sh - Aliases common to Mac and Linux
  • ./shellconfig/aliases_mac.sh - Aliases specific to MacOS and depending on Mac applications
  • ./shellconfig/exports.sh - Exports for both Mac and Linux. Generic shell config, utilities and PATH.
  • ./shellconfig/funcs.sh - Define some functions where behaviour is too complex for an alias
  • ./shellconfig/iterm_shell_integration.* - These are the scripts loaded for iTerm2 integration
  • ./shellconfig/kubernetes.sh - Kubernetes functions and aliases. Loaded only when kubectl is present.

dubodots's People

Contributors

duboc avatar carlosedp avatar

Stargazers

Ribeiro avatar @ivanprz avatar Thiago Valcesia avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.