Tired of spending a whole day configuring your Mac/Linux? Then you’ve come to the right place.
Oh-my-laptop try to provide a simple, modular and flexible way to turn your laptop into an awesome working partner.
This project starts out as a bunch of personal scripts, days when I have to initialize my laptop, my vagrant box, my newly-got Mac. I’m tired and I want some robots.
Actually, Github has a similar project called boxen. However, boxen only works for Mac and it adopt Puppet and I dislike Puppet.
I prefer ansible, for its simplity. Ansible requires no agent in client. The only thing ansible requires is ssh, which lives on almost every *nix based machine. Second, unlike Puppet/Chef, which create a huge and complex DSL, ansible adopt YAML, which makes it quite easy to learn, read and write.
- Modular, only install and configure necessary packages as you need.
- Literate, every package has full documentation or links to demonstrate why we choose it and why we configure it this way.
- Simple, all modules are written in ansible playbook, plain YAML format, quite easy to read, write and contribute.
- Fast, all ansible roles in oh-my-laptop are idempotent, and roles always has proper dependency relations, and it is guaranteed that each role will be played once and only once, no matter in what order you specify it.
To start, you need to install the following things.
Please download and install Xcode from the Mac App Store and the necessary Command Line Tools, refer this post for simple tutorial.
There’re various package managers for Mac, among which homebrew is the best and most popular. It’s quite easy to install:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
The only thing oh-my-laptop depends is ansible, please do install it before you join the journey.
I’ve write a bootstrap script to get homebrew(on Mac) and ansible for you:
curl -L https://raw.githubusercontent.com/xiaohanyu/oh-my-laptop/master/bootstrap.sh | bash
- basic
- cask
- cc
- chinese
- clojure
- docker
- elixir
- emacs
- git
- go
- java
- javascript
- python
- ruby
- tex
- vagrant
- zsh
git clone https://github.com/xiaohanyu/oh-my-laptop
cd oh-my-laptop
# please view oh-my-laptop.yml and enable or disable some modules
$EDITOR oh-my-laptop.yml
ansible-playbook -i localhost -K oh-my-laptop.yml
tmux and zsh are at the core of oh-my-laptop. Please read the docs carefully
before you start the journey. The key point here is, I’ve rebind tmux prefix key
to ctrl-l
since ctrl-b
is not easy to type and is conflict with readline key
bindings.
Here’s some screenshots: