All Projects → mateusrevoredo → dotfiles

mateusrevoredo / dotfiles

Licence: MIT license
Automatic machine configurator using Ansible

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to dotfiles

3ds Examples
Examples for 3DS using devkitARM, libctru, citro3d and citro2d
Stars: ✭ 221 (+1600%)
Mutual labels:  homebrew
fake-08
A Pico-8 player/emulator for console homebrew
Stars: ✭ 374 (+2776.92%)
Mutual labels:  homebrew
tobutobugirl-dx
An arcade platformer homebrew game for the Game Boy, Game Boy Color and Super Game Boy
Stars: ✭ 58 (+346.15%)
Mutual labels:  homebrew
Homebrew Bio
🍺🔬 Bioinformatics formulae for the Homebrew package manager (macOS and Linux)
Stars: ✭ 237 (+1723.08%)
Mutual labels:  homebrew
Nesicide
Integrated Development Environment for the 8-bit Nintendo Entertainment System
Stars: ✭ 244 (+1776.92%)
Mutual labels:  homebrew
libyaul
An open source SEGA Saturn development kit
Stars: ✭ 117 (+800%)
Mutual labels:  homebrew
Homebrew Kde
Moved
Stars: ✭ 212 (+1530.77%)
Mutual labels:  homebrew
homebrew-amiga
A repository for Amiga Development related brews
Stars: ✭ 21 (+61.54%)
Mutual labels:  homebrew
Iterm Fish Fisher Osx
Complete guide and Bash script to install Command Line Tools + Homebrew + iTerm2 + Fish Shell + Fisher + Plugins for development purposes
Stars: ✭ 249 (+1815.38%)
Mutual labels:  homebrew
homebrew-pythons
🍺🐍 A Hombrew Tap literally filled with Python Interpreters.
Stars: ✭ 20 (+53.85%)
Mutual labels:  homebrew
Homebrew Command Not Found
🔍 Ubuntu’s command-not-found equivalent for Homebrew on macOS
Stars: ✭ 236 (+1715.38%)
Mutual labels:  homebrew
Tobutobugirl
An arcade platformer homebrew game for the Game Boy
Stars: ✭ 243 (+1769.23%)
Mutual labels:  homebrew
Kosmos-Wii-U
All-in-One CFW Package for the Nintendo Wii U
Stars: ✭ 14 (+7.69%)
Mutual labels:  homebrew
Lost Nds Tv
The Lost Nintendo DS Television Output, brought back to life
Stars: ✭ 221 (+1600%)
Mutual labels:  homebrew
ComicNX
NSFW comic browser for the Nintendo Switch
Stars: ✭ 15 (+15.38%)
Mutual labels:  homebrew
Homebrew Emacs Head
GNU Emacs formula for the Homebrew package manager
Stars: ✭ 214 (+1546.15%)
Mutual labels:  homebrew
cointop
A fast and lightweight interactive terminal based UI application for tracking cryptocurrencies 🚀
Stars: ✭ 3,589 (+27507.69%)
Mutual labels:  homebrew
dotfiles
This is a dotfiles repository created and maintained by @erdaltsksn. It contains a collection of `.files`.
Stars: ✭ 16 (+23.08%)
Mutual labels:  homebrew
homebrew-apple-fonts
Easily install Apples fonts using homebrew.
Stars: ✭ 12 (-7.69%)
Mutual labels:  homebrew
dotfiles
My dotfiles
Stars: ✭ 22 (+69.23%)
Mutual labels:  homebrew

Project logo

My Personal Automated Machine Configurator

Status GitHub Issues GitHub Pull Requests License


This project aims to reduce the overhead of setting up a new computer keeping the configuration shared across multiple devices.

📝 Table of Contents

🧐 About/Motivation

People that have worked with me in the past know that one of the things that I dislike the most is doing repetitive tasks. Copying and pasting snippets of code, running the same command multiple times, or clicking on the same UI elements repetitively. Yet I still found myself almost daily wasting a significant amount of time trying to keep all of my devices configured in sync.

I currently have my work MacBook, my personal MacBook, and a personal Debian LXC container hosted on Proxmox running on a web version of VS Code that I connect on my iPad Pro using Blink to do some lightweight coding tasks and administer my homelab servers on the go.

Three different devices, two different operating systems, similar configurations. Apart from that, from time to time, you change jobs, get a different computer or just do a fresh OS install at home.

This project turns the repetitive job of maintaining multiple machines configured exactly the same into a couple of shell script lines that execute a streamlined Ansible playbook.

⚠️ Disclaimer

The scripts and configuration files were written to fulfill my personal needs. Although It's generic enough to be executed in any computer, according to @anishathalye, dotfiles are not meant to be forked, and I tend to agree with this statement.

I still decided to make it open source because it can be a valuable source of inspiration or even serve as a starting point to someone that has decided to do something similar.

🏁 Getting Started

  1. Install Ansible
  2. Clone this repository to your local drive

🎈 Usage

  1. Go to the ansible folder
  2. Run $ ansible-galaxy install -r requirements.yml inside this directory to install required Ansible roles.

🍎 macOS

  • Run ansible-playbook macos.yml -K. Enter your account password when prompted.

🐧 Linux

This playbook assumes you have a VM or LXC container configured on your Ansible inventory named devbox

🔧 Customizing

There are two types of configurations:

  1. Shared configs
  2. OS specific configs

Shared Configs

Shared configs will be applied to both macOS and Linux. For example, you may always want to have this repo symlinked to ~/.dotfiles or always have a subset of VS Code extensions installed regardless of the OS.

You can customize those by editing common.config.yml.

OS Specific

Other settings are tied to a certain OS. For example, configuration files of applications that are only installed on macOS but not on my Linux LXC container.

These should go to their respective files: linux.yml or macos.yml

🚀 What's Installed

Applications

...TBD

Command Line Apps

  • coreutils - GNU File, Shell, and Text utilities for macOS
  • exa - Replacement for ls written in rust.
  • htop - Interactive text-mode process viewer for Unix systems.
  • fd - Simple, fast and user-friendly alternative to 'find'.
  • findutils - Collection of GNU find, xargs, and locate'find'.
  • jq - JSON processor
  • fzf - Command-line fuzzy finder.
  • git - Version control.
  • sqlite - Relational database management system written in C
  • mas - Mac App Store command line interface
  • mosh - The mobile shell
  • ncdu - Disk usage analyzer with an ncurses interface
  • nmap - The Network Mapper
  • openssh - OpenBSD freely-licensed SSH connectivity tools
  • telnet - User interface to the TELNET protocol
  • unzip - Extraction utility for .zip compressed archives
  • neovim - Ambitious Vim-fork focused on extensibility and agility
  • wget - Internet file retriever
  • goku - Manage your Karabiner configuration with ease.
  • zsh - UNIX shell (command interpreter)
  • tmux - Terminal multiplexer
  • curl - Get a file from an HTTP, HTTPS or FTP server
  • z - Jump quickly to directories that you have visited recently
  • lazygit - Simple terminal UI for git commands
  • diff-so-fancy - Good-looking git diffs.
  • tldr - Simplified and community-driven man pages.

💥 TODO

...TBD


✍️ Authors

🎉 Acknowledgements

A lot of people have their own personalized ways of doing what this project does. Here I thank some of them for the inspiration or code snippets that I picked from them.

  • @geerlingguy - For the massive amount of Ansible roles written. Some that I use in this repo, some that I used to understand how things work in Ansible.
  • @mathiasbynens - For the base macOS preferences script file that I mostly copied and added a few other personal preferences.
  • @nikitavoloboev - For the huge amount of content shared with the community, that ended up being useful for this repo. Including his dotfiles and his macOS configuration repo
  • @jglovier - For the free logo that I used as a base for mine.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].