Slide 1

Slide 1 text

My Mac  Dev Env 2021 October 2021 Andrew Atkinson

Slide 2

Slide 2 text

Hardware Setup Work Laptop and Personal Laptop Large high-resolution monitor 4K scaled to 3360x1890 for readability and space Trackpad for multi-touch gestures

Slide 3

Slide 3 text

Goals Keyboard and command-line oriented workflow including primary editor Open source, package managers, version managers Prefer longevity and customization for editor Prefer more "stock" for terminal

Slide 4

Slide 4 text

Mac OS Spaces Spaces Activate with 3-fingers swipe up Create separate spaces for personal web browsing, email Navigate between them, 3-finger swipe left/right or ctrl- left/right

Slide 5

Slide 5 text

dotfiles and Mac OS defaults my dotfiles Mac OS defaults Key repeat rate, Font smoothing, Disable sound effects, etc. rake dotfiles & rake os_x_defaults

Slide 6

Slide 6 text

Browser tabs and windows Chrome Cluster - Window & Tab Manager Command-m - Window Manager. Delete, re-organize tabs. Combine windows.

Slide 7

Slide 7 text

Terminals I use iTerm Other terminals: Terminator Kitty Alacritty

Slide 8

Slide 8 text

Tmux Keyboard navigation of panes Book recommendation: tmux 2: Productive Mouse-Free Development

Slide 9

Slide 9 text

Window Management Magnet: Keyboard and mouse snapping, divide into more segments Rectangle Based on Spectacle! Spectacle: Keyboard management of segments of screen Amethyst

Slide 10

Slide 10 text

Fish Shell https://fishshell.com/ Works well out of the box Themes! Web-based configuration Oh My Fish - omf omf install boxfish fisher plugin manager

Slide 11

Slide 11 text

Fish Shell rbenv Put this in ~/.config/fish/config.fish # rbenv support fish shell # https://github.com/rbenv/rbenv/issues/195 set PATH $HOME/.rbenv/bin $PATH set PATH $HOME/.rbenv/shims $PATH rbenv rehash >/dev/null 2>&1

Slide 12

Slide 12 text

Fish Shell Functions Bash dict () { open dict:///"$@" ; } Fish function dict open dict:///"$argv" end

Slide 13

Slide 13 text

Fish Shell CDPATH I keep my source code in ~/Projects Setting CDPATH makes it easy as a destination In Bash export CDPATH=.:~/Projects In Fish set -g CDPATH . ~/Projects

Slide 14

Slide 14 text

CLI programs tldr https://github.com/tldr-pages/tldr Like man pages - but just the examples! tldr curl tldr psql

Slide 15

Slide 15 text

CLI programs jrnl https://github.com/jrnl-org/jrnl/ Small journal entries Command examples and short notes Sync to Dropbox. Avoid sensitive information. jrnl jrnl --edit

Slide 16

Slide 16 text

GitHub CLI https://cli.github.com/ brew install gh Usages: gh ssh-key add gh pr create [flags] create PRs in terminal gh pr view --web pr_number

Slide 17

Slide 17 text

GitHub T - fuzzy finder Command-K - omnibar

Slide 18

Slide 18 text

Vim 8 Package Management mkdir -p ~/.vim/pack/andyatkinson/start Git clone vim plugins to this directory ctags fzf.vim nerdtree tcomment_vim vim-distinguished vim-fugitive vim-rails vim-ripgrep vim-ruby

Slide 19

Slide 19 text

Fuzzy Finder ( fzf ) https://github.com/junegunn/fzf brew install fzf vim (fzf) (vim, fzf, fish shell) :FZF in Vim history | fzf

Slide 20

Slide 20 text

ripgrep ( rg ) https://github.com/BurntSushi/ripgrep Incredibly fast rg TODO app/models

Slide 21

Slide 21 text

Misc! Itsycal - Menu bar calendar Jekyll - blog like a hacker Marp - slide deck like a hacker. Glow - render markdown in terminal