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 usingdotbot to set things up. Steps:

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

VSCode

I lovedmySublime. It was fast and beautiful. The main reason is thatSublimeis almost unmaintained. Packages are also abandoned.

So, I have switched tovscode. It solved almost all issues I had withSublime. Here's how my newvscodesetup looks like, using my own theme calledpustota:

sobolevn's vscode for Python

Here'sa list of packages(seevscodecalls at the bottom) I use:

I try to keep myvscodesetup as simple as possible. It was also heavily influenced bymakevscodeawesome.

I also usepowered-upnano for in-terminal editing.

CLI

I am usinghyperas my main terminal with my customsenyatheme. I am usingzshwithoh-my-zsh as the main shell. Andzplugto manage shellplugins. 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 usefzffor severalcode completiontasks:

  • tabto autocomplete probably all the things usingfzf-tab

fzf-tab

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

  • ctrl+rallows me to fuzzy search command history

fzf-history

  • ctrl+tallows 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 usingbrewto install all free apps for my mac. I also sync apps from AppStore withbrewviamas, so the resultingBrewfilecontains everything.

Infrastructure

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

Local configuration

Some of the used tools requires local configuration. Such asgitwith username and email.

Here's the full list:

  1. ~/.gitconfig_localto store any user-specific data
  2. ~/.shell_env_localto store local shell config, like: usernames, passwords, tokens,gpgkeys and so on

License

WTFPL:do the fuck you want. Enjoy!