Giter VIP home page Giter VIP logo

dotfiles's Introduction

.files

Release

A simple way to setup a new MacOS laptop/desktop for development, using just one command.

Note

This repository contains sysconfigs for my personal computer, please use these at your own risk!

One script install

To install, copy the below command and paste it in your terminal:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/sydrawat01/dotfiles/master/osx.sh)"

Clone and setup

Clone this repository in your desired path using:

https://github.com/sydrawat01/dotfiles.git

To run the script to install all basic software with personal configs on your Mac, use this shell script: osx.sh.

Although not required, provide exec permissions to this file, just to avoid any problems executing the shell script:

chmod +x osx.sh

Then, run the file:

./osx.sh

GNU Stow

The GNU Stow is an open source project that helps maintain "symlink farms". I'm using it to maintain symlinks to my system configuration files that live in my $HOME directory, mostly the .config/, .zshrc, .zshrc_aliases, .tmux, .vimrc and other such application configs. This way, I have full control of my application settings, and can be synced across multiple devices since they are version controlled using Git.

Working with Stow

Once all softwares are installed as in the previous step using the osx.sh shell script, we need to install a couple of things manually before we can fully utilize stow.

Install Node Version Manager or nvm, which is required by some Lua packages for LazyVim (in turn NeoVim), this way we avoid any errors when using symlinks to setup NeoVim. With nvm installed, we will then install the LTS version of node, which will also install npm for us.

brew install nvm
# check nvm
nvm --version
nvm install --lts
# check node and npm
node --version
npm --version

With this, we can now setup our dotfiles with stow. If you have not already cloned this repository, do it now, and place it in a location where you want to manage your dotfiles from.

Now, let's run the stow command to generate symlinks with the dotfiles option, which is optimized for handling dotfiles symlinks.

# cd into the dotfiles folder.
cd ~/Developer/dotfiles
stow --dotfiles . --target=~/

The above command should automatically generate symlinks based on the folder structure (works with nested directories as well).

Important

The configs/ folder contains a backup of older configuration files from v2.x, although VSCode setup requires the extensions.txt file to setup the extensions. Other configurations are left as backup of older configs.

WIP

Warning

This is something subjective, so DevOps tools like Docker, Kubernetes, Kind, Minikube, Terraform, Packer, Ansible etc., will be added to the install script in the future releases as per required. Note that the user will not be prompted to install/skip these tools, and will be installed regardless. In case these are required, I'll add a simple bash command to install these outside of the install script.

Install Devops related tools with homebrew in the install script osx.sh.

Author

Siddharth Rawat

License

License: MIT

dotfiles's People

Contributors

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

Stargazers

 avatar  avatar  avatar

dotfiles's Issues

Neovim configuration sync

Neovim configuration is outdated.

  • lazy-nvim.bak/ folder to be removed
  • nvim/ folder to be backed up too nvim.bak/, or maybe remove it altogether
  • nvchad custom configs to remain
  • latest nvim config, which uses lazyvim, to be updated to latest nvim/ configuration.

Update install script

  • Remove and cleanup outdated configuration code
  • Functions that install unwanted software will be removed

GNU Stow for symlinks

After proper refactor of all files and folders as per sysconfig, we will be using GNU Stow for managing symlinks within our workstation.

โœจ Update install script

  • Refactor the look and feel of the install script
  • Update Homebrew commands to automate the install
  • Remove unpopular/unused application installation
  • Add popular/more widely used applications
  • Make script more error-proof, add relevant error messages where the install script might fail

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.