pivoshenko / dotfiles

dotfiles for the developer happiness: macOS, zsh, brew, VSCode, Python, Rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pivoshenko's dotfiles

hyperjs

hooks buymeacoffee standwithukraine standwithukraine wakatime

Contents

What's in here?

  • All my brew dependencies including: applications, fonts, etc. See Brewfile
  • All my global Python dependencies including: linters, formatters, LSP plugins etc. See requirements
  • All my global cargo and npm dependencies including: LSP, LSP plugins, etc. See cargo and npm
  • All my macOS configuration. See macos
  • All my shell configuration. See .shell/ and .zshrc
  • All my VSCode configuration and extensions. See vscode/ and extensions
  • All my rest .configs/, dotfiles/ and wallpapers/ :3

Main principles

  • Minimalism in everything
  • Consistency
  • Simplicity
  • One style - JetBrainsMono font and Catppuccin color palette
  • Reduced visual noise, only important things should be shown
  • "Please, do not touch my code" - minimal auto-formatting or code flow interruptions
  • Security - do not share anything with anyone

Installation

Important

I am planning to use dotbot to set everything instead of ansible and dotdrop as it doesn't require any external dependencies and can be used as a submodule

I am using dotdrop to manage dotiles and ansible to set things up. Steps:

  1. Clone this repo with: git clone https://github.com/pivoshenko/dotfiles dotfiles
  2. cd dotfiles/
  3. Run the following commands to install the necessary tooling:
# install core: homebrew, zsh, oh-my-zsh and configs (optional)
ansible-playbook playbooks/shell.yaml

# install dependencies
ansible-playbook playbooks/dependencies.yaml
  1. Run the following commands to install configs:
dotdrop -c "dotdrop.yaml" -p base install -f

# macOS only!
dotdrop -c "dotdrop.yaml" -p macos install -f

CLI

I am using hyper.js as my main terminal. I am using zsh with oh-my-zsh and starship as the main shell. To manage shell plugins I am using zplug. I also have some tools/scripts/aliases to make my working experience better. But, I try to keep them minimal: only ones I truly use.

I mainly work with:

  • python

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

  • elixir
  • rust
  • ruby

Apps

I am using brew to install all free apps for my Mac. I also sync apps from the App Store 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.

VSCode

vscode

Here's a list of extensions I use daily, but I try to keep my VSCode setup as simple as possible. It was also heavily influenced by makevscodeawesome.

I also quite heavily use helix for in-terminal editing.

Local configuration

Some of the used tools require local configuration, such as git with username and email.

Here's the full list:

  • ~/.gitconfig.local to store any user-specific data
  • ~/.shell/.local to store local shell config, like usernames, passwords, tokens, gpg keys etc

About

dotfiles for the developer happiness: macOS, zsh, brew, VSCode, Python, Rust

License:MIT License


Languages

Language:Shell 73.1%Language:Python 15.5%Language:JavaScript 11.4%