Git Product home page Git Product logo

dotfiles's Introduction

Dotfiles, baby!

๐Ÿง โค๏ธ ๐Ÿš€

As of May 2020, I completely redesigned my dotfiles to enable use of GNU Stow to allow for sane management of dotfiles.

Currenly the following programs are version controlled:

Each of them are discussed in more detail below.

Here is a screenshot of my terminal. My daily driver terminal of choice is Alacritty with the Molokai color scheme. I use the same color scheme on vim too!

My backup/alternative color schemes include: Solarized Dark for when I really need a change from the monotony of Molokai - See what I did there :')

Screen Shot 2020-05-26 at 1 40 29 AM

Now each of the programs that I manage is discussed in more detail below.

Z-Shell

I use ZSH as my shell of choice. As of May 2020, I moved away from the oh-my-zsh framework and decided on using a ZSH plugin manager called zplug.

  • zshrc
    This includes all the necessary configuration for zsh and zplug including any themes that I may be using, along with the plugins that I use. I continue to find that the RobbyRussell theme for ZSH works well for my needs
  • aliases
    All my custom aliases live in here. Stuff like clearing the screen faster, changing to commonly used directories, and more, all go in here.
  • functions
    All the bash functions that I write end up here. Stuff like automatically sshing into Brown university department computers are written in here.
  • fzf.zsh
    Special mention to the fzf command since so much of my workflow in both the shell and vim revolves around the use of fzf. Essentially, it is a fuzzy finder that allows me to quickly find files, change directories, fuzzy find tmux sessions, and even fuzzy find git files to be staged! It really is amazing!

Neovim

neovim is my editor of choice. I decided on migrating to neovim for primarily 2 reasons:

  • Much better autocompletion using deoplete
  • The philosophy behind neovim
  • init.vim
    All plugins that I use, custom mappings, all live in here.

Alacritty

As a novice terminal user, I used iTerm2 for the longest time. It was good but there were a few inherent problems with it. It was slow on startup, commands did not update smoothly, and the configuration seemed a bit Windows-like. The answer: Alacritty. Blazing fast using the GPU for acceleration, I experienced a 10x speed bump. Moreover, the configuration uses a dotfiles just like any other sane unix program.

  • alacritty.yml
    This is pretty minimal other than some standard font size, non-tabbed mode, and color scheme settings.

Tmux

One of the downsides of using Alacritty is the lack of tabbed support. While this could be a problem for some, I viewed this as an advantage and saw this as an opportunity for inculcating a terminal multiplexer into my workflow. Tmux seemed like the obvious choice given its extensibility to panes, windows, sessions, and session management.

  • tmux.conf
    The noticeable changes include shifting the window manager to the bottom center of the screen, changes to the status right where the date and time is displayed, and starting session and window numbers from 1 since I find that easier to reach from the prefix key rather than the 0.

setup

In addition to the above, my dotfiles directory also includes a setup folder that has three files:

  • brew.sh
    This is a shell script that installs homebrew. All terminal and graphical applications that I use on my machine are managed through homebrew.
  • mac_settings.sh
    Also a shell script that modifies some of the OS X specific settings. In brief, I more or less just do some efficiency related tasks such as disable workspace animations, change the screenshot file type and location, and disable writing of .DS_Store files (for more information, read the inline comments). To learn more about terminal OS X customization, have a read at: http://defaults-write.com/
  • sym_links.sh
    Archived, for possible use with Linux dotfiles management!
  • dotfiles.sh
    This is a wrapper script that makes use of stow to stash all dotfiles using symlinks. It was one of the only sane ways of managing dotfiles that felt clean.
  • vim_setup.sh
    Deoplete does require some custom python modules such as pynvim. This may be moved into one of the other scripts but it feels right to put it into a script of its own for now.
  • cleanup.sh
    This just clears up unneeded dotfiles from the $HOME directory such as ~/.bash_history, ~/.bash_profile, ~/.lesshistory, ~/.viminfo, and others!

dotfiles's People

Contributors

hansbala avatar hans-bala-glean avatar

Watchers

 avatar

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.