Coder Social home page Coder Social logo

dotfiles's Introduction

            .___      __    _____.__.__
          __| _/_____/  |__/ ____\__|  |   ____   ______
         / __ |/  _ \   __\   __\|  |  | _/ __ \ /  ___/
        / /_/ (  <_> )  |  |  |  |  |  |_\  ___/ \___ \
   _____\____ |\____/|__|  |__|  |__|____/\___  >____  >_____
  /_____/    \/                               \/     \/_____/

dotfiles

My attempt at a reproducible workstation environment for my computers, mostly on a OSX.

Install

  1. Install Dropbox
  2. Configure Dropbox. Sync only the folder called: Mackup, which stores the various encrypted secrets. (See TODO).
  3. Run:
git clone --recursive https://github.com/mahmoudimus/dotfiles.git ~/dotfiles
cd ~/dotfiles
git submodule update --init --recursive

NOTE: The ~/dotfiles is hardcoded as the dotfiles repository path in this project. Let me know if this is a problem.

Bootstraping

To bootstrap a workstation, execute setup.sh which will install Ansible on the system, alongside all the below requirements.

If you're on OSX, setup.sh will also install xcode and the xcode command-line utilities.

Requirements

These requirements will be installed by themselves.

Ansible Playbook?

Yes. This is an OS-aware ansible playbook composed of roles that install the applications required for setting up the workstation.

Here's how to run this ansible playbook:

ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook  -i 127.0.0.1, -vvvv -b --become-method=sudo -K --connection=local setup.yml

After you're done, run mackup restore. Done :-)

References

Github

Similar Projects (?)

Blogs

TODO

  • This is only for a workstation, what about dotfiles for sysadmining?
  • Submit to iusethis and howistart?
  • Explore GNU stow?
    • Explore dotgpg with GNU stow instead of Mackup.

Bugs

  • Mackup traverses symlinks, some of which are linked to the Desktop, Downloads, etc and that can potentially cause huge disk space issues

dotfiles's People

Contributors

mahmoudimus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

dotfiles's Issues

fixes

  • zsh installer scripts (run setup.zsh!)
  • install spacemacs in .emacs.d and link the files/emacs.d to .spacemacs
  • link iterm scripts
  • fix the osx defaults script that ansible uses to install
  • bartender setup
  • fonts
  • intellij settings restoration
  • karabiner settings
  • setapp installation
  • dropbox
  • clone bin
  • chmod .tmux directories

brewfile additions:

  • virtualenvwrapper
  • mitmproxy
  • brew install ripgrep
  • brew install fd
  • brew install bat
  • brew install exa
  • brew install nodenv pyenv rbenv jenv direnv
  • brew install direnv
  • brew install google-java-format
  • brew install emacs-mac --HEAD --with-modules --with-spacemacs-icon --with-jansson --with-rsvg --with-imagemagick --with-starter

brewfile cask additions:

  • brew cask install nomachine
  • brew cask install font-meslo-for-powerline font-meslo-lg font-meslolg-nerd-font
  • brew tap mdogan/zulu && brew cask install zulu-jdk11
  • brew cask install gpg-suite-no-mail
  • brew cask install amethyst
  • brew install findutils
  • brew cask install virtualbox
  • brew cask link google-chrome
  • brew cask install visual-studio-code-insiders
  • brew cask install graalvm/tap/graalvm-ce-java11
  • brew cask install graalvm/tap/graalvm-ce-lts-java11
  • brew cask install gcc
  • brew cask install cmake
  • brew cask install gpg-suite-no-mail
  • brew cask install amethyst
  • brew cask install zulu-jdk11
  • brew cask install zulu-jdk8
  • brew cask install vlc
  • brew cask install adoptopenjdk8
  • brew cask install adoptopenjdk14
  • brew cask install adoptopenjdk15
  • brew cask install font-recursive
# add prezto contrib to presto zsh
cd $ZPREZTODIR
git clone --recurse-submodules https://github.com/belak/prezto-contrib contrib

Issues when bootstrapping from a fresh run

  • I installed Dropbox first, but I had to remember to selectively sync the Mackup folder
  • I had to install Xcode manually to get git to even bootstrap
  • When cloning this repository, the submodules failed to clone for emacs.d and zsh
  • After I installed Xcode, the system continued to bootstrap correctly up until it tried to source the zsh/emacs (since they failed to clone)
  • I ran mackup restore which overrode a bunch of files (which is fine)
  • Since I had the proper ssh keys now (after the mackup restore), the emacs.d and zsh submodules cloned properly
  • I then re-ran the ansible bootstrapping script, which finished correctly (but failed one the emacs.d step)
  • The shell had some issues, which is that the .zshenv file failed to be linked successful, since we seem to be overriding it in this playbook.

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.