Skip to content

cristianoliveira/dotfiles

Repository files navigation

dotfiles

My "dotfiles" now fully set up my development environment for Nixos and OSX

systemprint

Setup

I try to keep the DX of both systems as close as possible. As well as the overall UI/UX. I'd say they are 90% similar.

          ▗▄▄▄       ▗▄▄▄▄    ▄▄▄▖            me@localhost
          ▜███▙       ▜███▙  ▟███▛            ----------------------
           ▜███▙       ▜███▙▟███▛             OS: NixOS 23.11.20240322.56528ee (Tapir) x86_64
            ▜███▙       ▜██████▛              Host: Dell Inc. 06YPRH
     ▟█████████████████▙ ▜████▛     ▟▙        Kernel: 6.1.82
    ▟███████████████████▙ ▜███▙    ▟██▙       Uptime: 20 hours, 41 mins
           ▄▄▄▄▖           ▜███▙  ▟███▛       Packages: 1138 (nix-system), 511 (nix-user)
          ▟███▛             ▜██▛ ▟███▛        Shell: bash 5.2.15
         ▟███▛               ▜▛ ▟███▛         Resolution: 1366x768, 1920x1080
▟███████████▛                  ▟██████████▙   WM: sway
▜██████████▛                  ▟███████████▛   Theme: Adwaita [GTK3]
      ▟███▛ ▟▙               ▟███▛            Icons: Adwaita [GTK3]
     ▟███▛ ▟██▙             ▟███▛             Terminal: tmux
    ▟███▛  ▜███▙           ▝▀▀▀▀              CPU: Intel i5-4210U (4) @ 2.700GHz
    ▜██▛    ▜███▙ ▜██████████████████▛        GPU: Intel Haswell-ULT
     ▜▛     ▟████▙ ▜████████████████▛         Memory: 3140MiB / 7861MiB
           ▟██████▙       ▜███▙
          ▟███▛▜███▙       ▜███▙
         ▟███▛  ▜███▙       ▜███▙
         ▝▀▀▀    ▀▀▀▀▘       ▀▀▀▘

--------------------

                    c.'          me@localhost
                 ,xNMM.          ---------------------------------
               .OMMMMo           OS: macOS 14.3.1 23D60 arm64
               lMM"              Host: Mac14,9
     .;loddo:.  .olloddol;.      Kernel: 23.3.0
   cKMMMMMMMMMMNWMMMMMMMMMM0:    Uptime: 4 days, 22 hours, 41 mins
 .KMMMMMMMMMMMMMMMMMMMMMMMWd.    Packages: 256 (brew), 469 (nix-system)
 XMMMMMMMMMMMMMMMMMMMMMMMX.      Shell: bash 5.2.26
;MMMMMMMMMMMMMMMMMMMMMMMM:       Resolution: 1920x1080 @ FHDHz, 3024x1964
:MMMMMMMMMMMMMMMMMMMMMMMM:       DE: Aqua
.MMMMMMMMMMMMMMMMMMMMMMMMX.      WM: yabai
 kMMMMMMMMMMMMMMMMMMMMMMMMWd.    Terminal: tmux
 'XMMMMMMMMMMMMMMMMMMMMMMMMMMk   CPU: Apple M2 Pro
  'XMMMMMMMMMMMMMMMMMMMMMMMMK.   GPU: Apple M2 Pro
    kMMMMMMMMMMMMMMMMMMMMMMd     Memory: 20678MiB / 32768MiB
     ;KMMMMMMMWXXWMMMMMMMk.
       "cooc*"    "*coo'"

What do I use?

  • NIX (for package and system management)
  • Neovim
  • Tmux
  • ZSH (oh-my-zsh)
  • Terminal: Alacritty
  • WM: yabai (osx) / sway (linux)
  • Launcher: alfred (osx) / ulauncher (linux)
  • Others: Check nix/* folder

I work mostly with

  • Typescript & Javascript (React & Node, et all)
  • HTML & CSS
  • Rust
  • Golang

A bunch of

  • Bash

And a bit of

  • Ruby
  • Python

Installing

Check detailed explanation in nix/README.md doc, but you will need nix

Prerequisites

In short:

curl https://raw.githubusercontent.com/cristianoliveira/dotfiles/main/install.sh | bash -s - osx
# or
curl https://raw.githubusercontent.com/cristianoliveira/dotfiles/main/install.sh | bash -s - linux

Or step by step

git clone git@github.com:cristianoliveira/dotfiles.git ~/.dotfiles

cd ~/.dotfiles

# For linux users
make linux
# or
make osx

# Updating and setup
make setup

OS change workflow

Once you make a change in nix/* run nix/rebuild.sh and follow the steps. (Optional) Use the watcher with fzz -t nix which will auto-rebuild each time something changes.

Mappings

Key modifier (MOD): Command (osx) and Alt (Nixos)

  • ctrl + space: open app launcher
  • MOD + number: move to workspace
  • MOD + shift + number: send the current window to a workspace
  • MOD + ctrl + f: move the current window to fullscreen (over other windows).
  • MOD + ctrl + h/j/k/l: move focus to a window depending on the current focused window.
  • MOD + shift + h/j/k/l: move the window to a new position.
  • MOD + ctrl + enter: Open terminal or, if there is a terminal opened, shift focus to.