Skip to content

Personal environment configuration -- mostly for Ubuntu, Cygwin, and WSL

Notifications You must be signed in to change notification settings

jamesb/dotfiles

Repository files navigation

dotfiles

Personal environment preferences and settings, mostly for Ubuntu, Cygwin, and WSL.

Getting Started

Install the dotfiles by cloning the Git repository and running the install script:

git clone https://github.com/jamesb/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install

When running the install script, optional targets can be added, if a YAML config file exists for them. That is, for target foo, a foo.config.yaml file must exist in the base directory. (Platform-specific YAML configs will be automatically run by the install script if the platform is detected.)

./install foo

Configuration Management

If this is a new machine and requires software installation, then let Chef do some magic:

cd config_mgmt
sudo ./config.sh
cd cookbooks/base
# (may need to remove Berksfile.lock and metadata.json if this is a reinstall/update)
berks vendor ..
sudo chef-client -z --runlist "recipe[base::default]"

This will install ChefDK on the machine, along with the software and configuration defined in the base cookbook.

And Then Manually Install (ugh)

These items (for now) require a manual check to see if they are installed, and if not, to install them.

On Most Platforms

On Ubuntu

  • Manually select the Droid Sans Mono for Powerline font in Gnome terminal. (Otherwise, we should still get the symbol font, but the patched font looks better.)
    • Edit > Profile Preferences
    • General tab
    • Custom Font: Droid Sans Mono for Powerline

On Windows Subsystem for Linux (WSL):

On Windows platforms (WSL and Cygwin):

Credentials, Keys, and Other Secrets

Security concerns prevent these items from residing in the repo:

  • SSH keys
  • AWS credentials file

Structure

Summary of significant directories in these dotfiles

├── config_mgmt       Chef cookbooks for configuration management
├── dotbot            Dotfiles bootstrapper
├── extra             For machine-specific startup files not committed to this repo
├── fonts             Monospaced terminal fonts
├── git               Configuration, templates, and hooks for git
├── platforms         Platform-detection script and platform-specific directories
├── runcom            Shell, tmux, and vim rc files
├── system            CLI artifacts - aliases, env vars, path, prompt, shell functions, etc.
├── tmux              Tmux plugins and directories
└── vim               Vim plugins and directories

Additional References

Credits

This would have been much more difficult without these fine folks and their tools:

About

Personal environment configuration -- mostly for Ubuntu, Cygwin, and WSL

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published