$30 off During Our Annual Pro Sale. View Details »

My Mac Development Tools

My Mac Development Tools

Having recently set up 2 Macs for development, I kept a list of the tools I use and recommend. My workflow is oriented towards a command-line editor, tools, package managers, and minimal configuration.

Andrew Atkinson
PRO

November 23, 2021
Tweet

More Decks by Andrew Atkinson

Other Decks in Technology

Transcript

  1. My Mac  Dev Env 2021
    October 2021

    Andrew Atkinson

    View Slide

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

    View Slide

  3. 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

    View Slide

  4. 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

    View Slide

  5. 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

    View Slide

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

    View Slide

  7. Terminals
    I use iTerm
    Other terminals:
    Terminator
    Kitty
    Alacritty

    View Slide

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

    View Slide

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

    View Slide

  10. 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

    View Slide

  11. 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

    View Slide

  12. Fish Shell Functions
    Bash

    dict () { open dict:///"$@" ; }
    Fish
    function dict

    open dict:///"$argv"

    end

    View Slide

  13. 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

    View Slide

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

    View Slide

  15. 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

    View Slide

  16. 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

    View Slide

  17. GitHub
    T - fuzzy finder
    Command-K - omnibar

    View Slide

  18. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide