Skip to content

To make life easier when setting up a new computer

License

Notifications You must be signed in to change notification settings

wilfriedago/dotfiles

Repository files navigation

wilfriedago's dotfiles

Contents

What's in here?

Main principles

  • Minimalism in everything
  • Consistency
  • Simplicity
  • One style - JetBrainsMono font
  • 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 dotfiles and ansible to set things up. Steps:

  1. Clone this repo with: git clone https://github.com/wilfriedago/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.yml

# install dependencies
ansible-playbook playbooks/deps.yml
  1. Run the following commands to install configs:
dotdrop -c ".config/dotdrop/config.yml" -p default install -f

# macOS only!
dotdrop -c ".config/dotdrop/config.yml" -p macos install -f

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.

VSCode

vscode

Here's a list of extensions I use daily, but I try to keep my VSCode setup as simple as possible.

I also quite heavily use helix for in-terminal editing. You can find my helix and LSPs configuration here.

Hotkey Daemons

Because I am using a primarily external keyboard and in most of my apps I rely on either Vi/Kakoune motions I find it painful to use the mouse as it requires moving my right hand out of the keyboard and distracts my "zen" state :3 In most the dev apps you can enable such modes but in the default MacOS apps or windows manager such functionality is absent To resolve this issue I am using two daemons:

  • Karabiner - to enable the Vi motions system-wise and rebind some of the keys for example caps lock -> lctrl
  • skhd - to manage keybinding for tilling window manager

Tiling Windows Manager

As my main tiling windows manager I am using aerospace which is light and very configurable, and doesn't require to disable system integrity protection. It works perfectly with skhd which allows me to focus and modify the layout without distractions.

CLI

I am using Warp as my main terminal. As the main shell I am using zsh with oh-my-zsh and starship. 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:

  • Java & Kotlin - For backend development
  • JavaScript & TypeScript - For frontend development
  • Python - For data science, machine learning and overall scripting

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

  • Rust
  • Go

fzf a.k.a. Fuzzy Finder

I use fzf for several tasks:

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

fzf-tab

  • ctrl+r to fuzzy search command history

fzf-ctrl+r

  • ctrl+t 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-ctrl+t

  • ctrl+k to fuzzy search files by name and open/edit them

fzf-ctrl+k

  • ctrl+f to fuzzy search files by content and open/edit them

fzf-ctrl+f

fzf-ctrl+g

  • z <name> tab to enable fuzzy finder for zoxide

fzf-z+tab

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

To make life easier when setting up a new computer

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published