https://github.com/kalkayan/dotfiles Skip to content Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Project management - + Integrations - + GitHub Sponsors - + Customer stories- * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Education - [ ] [search-key] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} kalkayan / dotfiles * Notifications * Star 74 * Fork 5 Dotfiles or you can say my swiss army knife. Configs for creating a delightful development experience - vim + tmux + Fzf + Rg + LSP etc. development.kalkayan.io/ MIT License 74 stars 5 forks Star Notifications * Code * Issues 0 * Pull requests 0 * Discussions * Actions * Projects 1 * Wiki * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Projects * Wiki * Security * Insights main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 2 branches 0 tags Code Clone HTTPS GitHub CLI [https://github.com/k] Use Git or checkout with SVN using the web URL. [gh repo clone kalkay] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching Xcode If nothing happens, download Xcode and try again. Go back Launching Visual Studio If nothing happens, download the GitHub extension for Visual Studio and try again. Go back Latest commit @kalkayan kalkayan Update README.md ... bac185f May 12, 2021 Update README.md bac185f Git stats * 44 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .config Updated FZF configs + better searching in vim May 12, 2021 static Updated PROMPT and vim files Apr 29, 2021 .aliases Updated PROMPT and vim files Apr 29, 2021 .exports Updated FZF configs + better searching in vim May 12, 2021 .extra Updated PROMPT and vim files Apr 29, 2021 .functions Updated PROMPT and vim files Apr 29, 2021 .tmux.conf Updated PROMPT and vim files Apr 29, 2021 .zshrc Updated PROMPT and vim files Apr 29, 2021 LICENSE Create LICENSE Oct 25, 2020 README.md Update README.md May 12, 2021 setup Updated FZF configs + better searching in vim May 12, 2021 View code Start using these dotfiles Clone your fork as a bare repository Checkout to the proper branch Run setup script Usage of dotfiles Automated installation Macos Linux Setup Contributing to dotfiles README.md : ' _ _ __ _ _ | | | | / _(_) | __| | ___ | |_| |_ _| | ___ ___ / _` |/ _ \| __| _| | |/ _ \/ __| | (_| | (_) | |_| | | | | __/\__ \ \__,_|\___/ \__|_| |_|_|\___||___/ -------------------------------- swiss army knife of any software engineer ---------------------------------------------- ----------------------------------------------------------------------- This repository is the collection of configurations that I learned over time and still use for my daily work. The repository contains configs files for vim, tmux and etc. This reposiotry also contains a file for automating the setup of your development machine by using xcode tools, brew.sh and kalkayan/dotfiles. ----------------------------------------------------------------------- ' Project Status: WIP - Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. There is something fascinating about customizing your operating system through dotfiles. This repository is the collection of configurations that I learned over time and still use for my daily work. Recommended reading about managing and sharing dotfiles elegently - Setting up a Development Machine (Series of 3 parts) Start using these dotfiles First fork the repository, review the files and code, and remove code that you don't need. Every section of the code is properly documented, keep only that you need. Don't blindly use these settings unless you know what that entails. Clone your fork as a bare repository # after forking replace the with your github handle git clone --bare https://github.com//dotfiles.git $HOME/.dotfiles Notice the --bare flag, this the clones repository as a bare repository. Bare repository are special in a way that they omit working directory, therefore to use a bare repository, first we need to define the following. * --work-tree - this can be your home directory, i.e., $HOME or ~) * --git-dir - where the repository is cloned - $HOME/.dotfiles Therefore the command to use the repository will have a prefix git --git-dir=$HOME/.dotfiles --work-tree=$HOME . To make it easier to use, we alias this to dotfiles like this. Checkout to the proper branch The same repository is used across machine for storing the respective dotfiles. Checkout to the proper branch according to the os of your machine. # checkout to main for macos and linux for ubuntu. git --git-dir=$HOME/.dotfiles --work-tree=$HOME checkout main Run setup script If you have a new machine or wants to install your apps and libs, use the setup script to do an Automated installation. # this will install all your apps bash ~/setup Finally source the .zshrc or .bashrc by doing source ~/.zshrc and Voila! Thats it. Yes all it takes is 3 steps to configure you new machine, Swiss army knife! Usage of dotfiles This method of managing and sharing has various advantages some of them are shown below: 1. Keep the dofitles versioned, (basically all the pros of using git) At this point, all your configuration files are being tracked, and you can easily use the dotfiles command (see this line in .aliases) to manage the repository, some examples are:- # to check the version history dotfiles log # to check the status of the tracked and untracked files dotfiles status # to add a file for tracking dotfiles commit .vimrc -m ".vimrc added" # push new files or changes to the github dotfiles push origin main [?][?] The dotfiles status will show all the untracked files to disable this behavior, do the following # to remove the untracked directories and files from the listing dotfiles config --local status.showUntrackedFiles no 2. Share on Multiple devices Share the same configs of multiple devices with minimal changes using branch, create a branch for your new machine, example:- # Create configurations specific to your aws machines dotfiles checkout -b aws 3. Create Profiles for dotfiles Create configs based on your environment using branch, create a branch and configure according to you work env. # Manage multiple profiles - check out to the work profile dotfiles checkout work Automated installation The repository comes with a bash script (setup) to automate the installation of all the binaries and applications. Depending on the platform the setup file will changes for example - for macos it uses brew and for ubuntu it uses snap or apt-get. In any case open the setup file and update the code according to your needs. curl -fsSL https://raw.githubusercontent.com/kalkayan/dotfiles/main/setup | bash Macos Just add the bins to the bins array and brew casks to the casks array, the script will do all the installation with proper checking. # Brew casks and binaries that you need bins = ( "nvm" "php@7.4" "composer" # more valid brew formula here ) casks=( "slack" "postman" # add brew casks that you need ) You may need to add some post-installation code in the later part of scripts. Please see the library installation page for the steps Linux Setup Currently, the automated setup is not available for linux machine but the idea is the same. ############################################################################## # /~\ These are my things you may skip /~\ # ############################################################################## # Install basic pre-requisites sudo apt-get install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6 # Install nvim 4.4 (the apt-get neovim doesn't work with some pluggins) sudo snap install nvim --classic # Install Plug sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' # Install Fzf (also do the fzf post-installation stuff) git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf && ~/.fzf/install # Install node (node with snap creates problem with coc-vim so going with the classical way) curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh # replace 12 with Version. bash nodesource_setup.sh && sudo apt-get install nodejs # Install Yarn (because why not) curl -o- -L https://yarnpkg.com/install.sh | bash Contributing to dotfiles Suggestions / Improvements or any other helpful trick is always welcome, Please raise a PR with some context or any helpful links. Feel free to reach me out at rec.manish.sahani@gmail.com or connect with me on LinkedIn. I'm currently working on documenting this and creating an amazing development distribution, stay connected! thanks. About Dotfiles or you can say my swiss army knife. Configs for creating a delightful development experience - vim + tmux + Fzf + Rg + LSP etc. development.kalkayan.io/ Topics dotfiles setup-macos Resources Readme License MIT License Languages * Vim script 52.6% * Shell 47.4% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.