Skip to content

dotfiles for the developer happiness: macos, zsh, brew, vscode, python, minimalism

License

Notifications You must be signed in to change notification settings

sobolevn/dotfiles

Repository files navigation

sobolevn's dotfiles

sobolevn's dotfiles

Here are some articles I wrote about my environment:

And talks / podcasts:

Contents

What's in there?

Main principles

  • Minimalism in everything: tooling, styling,
  • Simplicity
  • Reduced visual noise, only important things should be shown
  • "Please, do not touch my code": no auto-formatting or code flow interruptions
  • History is valuable, let's preserve it everywhere we can
  • Security: do not share anything with anyone

Installation

We are using dotbot to set things up. Steps:

  1. Decide what you want to install: comment out run_dotbot 'steps/...' that you don't need
  2. Clone this repo with: git clone https://github.com/sobolevn/dotfiles dotfiles
  3. cd dotfiles/
  4. Run: bash ./install

VSCode

I loved my Sublime. It was fast and beautiful. The main reason is that Sublime is almost unmaintained. Packages are also abandoned.

So, I have switched to vscode. It solved almost all issues I had with Sublime. Here's how my new vscode setup looks like, using my own theme called pustota:

sobolevn's vscode for Python

Here's a list of packages (see vscode calls at the bottom) I use:

I try to keep my vscode setup as simple as possible. It was also heavily influenced by makevscodeawesome.

I also use powered-up nano for in-terminal editing.

CLI

I am using hyper as my main terminal with my custom senya theme. I am using zsh with oh-my-zsh as the main shell. And zplug to manage shell plugins. I also have a some tools / scripts / aliases to make my working experience better. But, I try to keep them minimal: only ones I truly use. Including: bat, zoxide, fzf, ag, fd, delta, gh, tig, and many others.

I mainly work with:

  • python

I also have several other languages installed. But I don't use them on a daily basis:

  • node
  • elixir
  • rust
  • c

fzf goodies

I use fzf for several code completion tasks:

  • tab to autocomplete probably all the things using fzf-tab

fzf-tab

Multiple tools have custom completions like: zoxide, make, killall that work well with fzf's preview feature.

  • ctrl+r allows me to fuzzy search command history

fzf-history

  • ctrl+t allows to fuzzy search files and dirs in the current tree to include paths in commands with instant previews for text files (content) and directories (inner tree)

fzf-paths

Apps

I am using brew to install all free apps for my mac. I also sync apps from AppStore with brew via mas, so the resulting Brewfile contains everything.

Infrastructure

I try to containerize everything. So, docker is my main development and deployment tool.

Local configuration

Some of the used tools requires local configuration. Such as git with username and email.

Here's the full list:

  1. ~/.gitconfig_local to store any user-specific data
  2. ~/.shell_env_local to store local shell config, like: usernames, passwords, tokens, gpg keys and so on

License

WTFPL: do the fuck you want. Enjoy!