Coder Social home page Coder Social logo

seantrane / dotfiles Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 1.0 922 KB

:new_moon: @seantrane's dotfiles; MacOS/Linux config, prefs and shell environment, as code

License: ISC License

Shell 92.65% Ruby 6.52% AppleScript 0.83%
dotfiles shell environment-configuration preferences zsh prezto

dotfiles's Introduction

@seantrane/dotfiles

Backup, restore, and sync the prefs and settings for your toolbox. Your dotfiles might be the most important files on your machine.

Commitizen friendly semantic-release

Table of Contents


About the dotfiles

These are my dotfiles, the child of many influences, primarily Zach Holman's dotfiles, who I owe a great deal of credit to.

See Thanks section for full credits.

This is a highly organized and adaptive dotfiles approach. Instead of using a limited set of bloated files, this approach is topic-centric and uses a folder-file structure to allow more effective customization, and diff-tracking.

Install

Step 1

Extract the contents of this repository to ~/.dotfiles.

1(a). If you are starting from a fresh OS install, without Git, run this:

cd; curl -LOk https://github.com/seantrane/dotfiles/archive/main.zip; unzip main.zip; mv dotfiles-main .dotfiles; rm main.zip;

1(b). If you have Git installed, run this instead:

git clone https://github.com/seantrane/dotfiles.git ~/.dotfiles

Step 2

Every file can be edited or removed as you please, but there are few primary files you may want to focus on.

Edit the zsh/zpreztorc.symlink, for Prezto configuration.

Edit the zsh/zshenv.symlink, for Zsh configuration.

Edit the macos/set-defaults.sh, for your macOS preferences.

Edit the system/Brewfile.symlink, for your preferred software and macOS apps.

Step 3

To bootstrap the .dotfiles and install dependencies, run the following command.

~/.dotfiles/script/bootstrap

This process will...

  1. Configure the .gitconfig file.
  2. Symlink all ~/.dotfiles/*/*.symlink files to the $HOME directory.
  3. Install Xcode Command Line Tools (macOS only), if unavailable.
  4. Install Homebrew, if unavailable.
  5. Install Git, if not installed with Homebrew.
  6. Install Ruby, if not installed with Homebrew.
  7. Install Prezto, Zsh, and Zsh Completions.
  8. Reset default shell to Zsh.

Step 4

After restarting your terminal/shell, run all installers.

~/.dotfiles/script/install

This will not only install all of your components, but it will also install your chosen apps/casks in macos/install-casks.sh.

Step 5

Restart your terminal/shell.

Usage

Topical

Everything is built around topic areas. If you're adding a new area to your forked dotfiles โ€” say, "Java" โ€” you can simply add a java directory and put files in there.

Components

There are a few special files in the hierarchy.

  • bin/*: Anything in bin/ will get added to your $PATH and be made available everywhere.
  • functions/*: Anything in functions/ will be sourced, auto-loaded into the shell environment.
  • <topic>/*.sh: Any files ending in .sh get loaded into Bash and Zsh.
  • <topic>/*.bash: Any files ending in .bash get loaded into Bash.
  • <topic>/*.zsh: Any files ending in .zsh get loaded into Zsh.
  • <topic>/path.{,ba,z}sh: Any file named path.sh, path.zsh or path.bash is loaded first and is expected to setup $PATH or similar.
  • <topic>/completion.{ba,z}sh: Any file named completion.zsh or completion.bash is loaded last and is expected to setup autocomplete.
  • <topic>/*.symlink: Any files ending in *.symlink get symlinked into the $HOME directory (without extension), enabling version control and auto-loading at the same time. These get symlinked in when you run script/bootstrap or install_dotfiles.

Updates/Maintenance

dot is a simple script that updates dependencies, packages, sets sane macOS defaults, and so on. Tweak this script, and occasionally run dot from time to time to keep your environment fresh and up-to-date. You can find this script in bin/.


System Provisioning Features

Node.js global dependencies

Ruby Gems

Visual Studio Code Extensions

Some extensions are disabled (commented-out in code).


Thanks

Big thanks goes out to Zach Holman, whose dotfiles were so awesome, I had to fork them. Zach forked his from Ryan Bates' dotfiles. I am grateful for their efforts. Zach wrote a post on the subject that I encourage reading.

I've also learned and depend on techniques from other dotfiles; Mathias Bynens, Paul Irish, and Simon Owen who also wrote a great article on the subject.

Learn more about dotfiles.


Support

Submit an issue, in which you should provide as much detail as necessary for your issue.

Bugs

I don't really promote this repository, it's just for my personal use and made available for everyone. If you experience any bugs, I'm definitely interested, but cannot promise anything.

Contributing

Contributions are always appreciated. Read CONTRIBUTING.md documentation to learn more.

Changelog

Release details are documented in the CHANGELOG.md file, and on the GitHub Releases page.


License

ISC License

Copyright (c) 2015 Sean Trane Sciarrone

dotfiles's People

Contributors

dependabot[bot] avatar seantrane avatar semantic-release-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

dylancauwels

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.