Configuração do meu MacBook

Desativar o [rootless]

System Integrity Protection ("rootless") impede que alguns diretórios e arquivos sejam modificados até mesmo pelo root.

Alguns programas não funcionam bem com o SIP ativado. Faça o seguinte para desativá-lo:

  • Entre em Recovery Mode: Inicie pressionando Command ⌘ + R
  • Abra o terminal: Utilities » Terminal
  • Execute o comando csrutil disable
O SIP é um mecanismo de segurança e deve ser reativado quando possível.

Senha para o root:

sudo passwd

Hostname

sudo scutil --set ComputerName "Air"
sudo scutil --set HostName "Air"
sudo scutil --set LocalHostName "Air"
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server.plist NetBIOSName -string "Air"

Trackpad

Arrastar com três dedos

Accessibility » Mouse & Trackpad » Trackpad Options… » Enable dragging » three finger drag

Scanner

O Xsane, que eu uso no Linux, também funciona no Mac. Ele é open source e bem completo:

brew install sane-backends
brew install xsane

O Vuescan é um app nativo e funciona muito bem, porém é pago.

Zoom

Accessibility » Zoom » Use scroll gesture with modifier keys to zoom: ^ Control

XCode

A última versão do XCode pode ser baixada pela Apple Store ou em https://developer.apple.com/downloads/, onde também está disponível as versões beta.

Se aparecer que o arquivo .xip baixado pelo site da Apple está corrompido, tente abri-lo com outro programa. Aqui o The Unarchiver mostrou “Data Corrupted”, mas com o o Archive Utility funcionou perfeitamente.

Instale as ferramentas de linha de comando:

xcode-select --install
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

Abra o XCode e aceite a licença ou digite “agree” em sudo xcodebuild -license para concordar.

Desative o Gatekeeper para permitir instalar aplicativos baixados da internet

Resolve o “XXX can’t be opened because it is from an unidentified developer”.

sudo spctl --master-disable

System Preferences > Security & Privacy > General » Allow apps downloaded from: Anywhere.

Ative novamente com: sudo spctl --master-enable.

Dotfiles

git clone --recursive https://github.com/jbsilva/dotfiles.git

cd dotfiles

git submodule update --init --recursive

Homebrew

Baixe e instale o Homebrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew tap Homebrew/bundle

brew bundle --file=/Users/julio/dotfiles/Brewfile

Karabiner-Elements

Baixe o Karabiner-Elements

Algumas modificações avançadas podem ser encontradas em https://ke-complex-modifications.pqrs.org/.

Trocar Caps-Lock por ESC

A configuração está nos dotfiles.

Usar Enter no Finder para entrar em um diretório

Usar F2 para renomear

Zplug + Zprezto

O Zplug gerencia os plugins do ZSH. Ele é instalado automaticamente.

ln -s ~/dotfiles/.gitconfig ~
ln -s ~/dotfiles/.config ~
ln -s ~/dotfiles/.zsh ~
ln -s ~/dotfiles/.zshrc ~
sudo cp ~/dotfiles/fstab /etc/fstab

Zsh default shell

command -v zsh | sudo tee -a /etc/shells
sudo chsh -s "$(command -v zsh)" "${USER}"
compaudit | xargs chmod g-w

Zsh completions

Instale a fórmula zsh_completions:

brew install zsh-completions

Adicione $(brew --prefix)/share/zsh-completions ao $FPATH:

FPATH=$(brew --prefix)/share/zsh-completions:$FPATH

Montar HD

Cria a pasta indicada em /etc/fstab e marca ela como não modificável para

que o MacOs não a delete após o disco ser desmontado:

sudo mkdir /Volumes/Elements
sudo chflags uchg /Volumes/Elements/

Monte o disco:

diskutil mount disk2s1

Vim

Vundle

Abra o Vim e baixe os plugins :PluginInstall

Corretor ortográfico

Digite :setlocal spell spelllang=pt_br no Vim e siga as instruções.

Finder

  • Na Home (~)
    • View » Show View Options (Cmd+J):
      • Calculate all sizes,
      • Show Library Folder,
      • Show item info
  • No Desktop
    • Botão direito » Show View Options (Cmd+J):
      • Show item info,
      • Aumenta o Grid spacing

Impedir sleep automático

Existem vários programas para essa função:

  • InsomniaX
  • Caffeine
  • Amphetamine
  • KeepingYouAwake

Estou usando o KeepingYouAwake, que é bem simples e gratuito.

Pela linha de comando existe o caffeinate:

Previne sleep por 1 hora (3600 segundos):

caffeinate -u -t 3600

Previne sleep até comando completar:

caffeinate -s command

Previne sleep até Ctrl-C:

caffeinate -I

Impedir sleep ao abaixar a tampa

sudo pmset -a disablesleep 1

Desativar HD sleep

System Preferences » Energy Saver: desmarcar Put hard disks to sleep when possible

ln -s /Volumes ~/Desktop/

Desativar usuário convidado

System Preferences » Users & Groups: Desmarcar “Allow guest to log in to this computer”.

SSH

Copie suas chaves do backup e dê as permissões adequadas:

cp -r /Volumes/Cofre/.ssh ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/*
chmod 644 ~/.ssh/*.pub

Spotlight

System Preferences » Spotlight

O Spotlight retorna coisas bem inúteis no resultado das buscas. Desative Bookmarks & History, Fonts, Movies, Music, Other, Presentations, etc.

Desmarque “Allow Spotlight Suggestion in Look up”.

NTFS

NTFS-3g

O OSXFuse e o NTFS-3g podem ser instalados pelo Homebrew gratuitamente.

Link mount_ntfs ao ntfs-3g:

sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.original
sudo ln -s /usr/local/sbin/mount_ntfs /sbin/mount_ntfs

Paragon e Tuxera

Usei o NTFS-3g por muitos anos (tanto no Linux quanto no Mac), mas sua performance realmente deixa a desejar.

Mudei para o Paragon quando precisei fazer o backup de alguns terabytes de dados. A diferença na taxa de transferência foi bem significante.

Considere o Paragon (R$ 34,95) ou o Tuxera (R$ 107,13) se você utiliza discos formatados em NTFS.

Python

Virtualenv

$ export PYTHON_CONFIGURE_OPTS="--enable-framework --enable-unicode=ucs4 --enable-ipv6 --enable-loadable-sqlite-extensions"

(Outras opções –enable-shared –with-wide-unicode –with-computed-gotos)

$ pyenv install 2.7-dev
$ pyenv install 3.7-dev
$ pyenv rehash
$ pyenv global 2.7-dev 3.7-dev

O suporte a framework (--enable-framework) é necessário para ferramentas como o YouCompleteMe.

Python libs

pip3 install flake8 ipython matplotlib numpy pep8 pep8-naming pygments scipy unidecode mako coursera awscli neovim

Ruby

Ruby version manager (RVM)

curl -L https://get.rvm.io | bash -s stable --rails

Gems

gem install pygmentize

Defaults

Trackpad e Mouse

Natural scrolling

defaults write NSGlobalDomain com.apple.swipescrolldirection -bool true

Clicar com o toque

defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1

Botão direito

defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 0
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool true
defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 0
defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool true

Teclado

Ativa tab em modal dialogs

defaults write NSGlobalDomain AppleKeyboardUIMode -int 3

Linguagem

defaults write NSGlobalDomain AppleLanguages -array "en" "de" "pt-BR"

defaults write NSGlobalDomain AppleLocale -string "pt_BR@currency=BRL"

defaults write NSGlobalDomain AppleMeasurementUnits -string "Centimeters"

defaults write NSGlobalDomain AppleMetricUnits -bool true

Ativa o menu de Debug na App Store

defaults write com.apple.appstore ShowDebugMenu -bool true

Pasta onde as capturas de tela serão salvas

SCREENSHOTS="${HOME}/Desktop/Screenshots" && mkdir "${SCREENSHOTS}" && defaults write com.apple.screencapture location -string "${SCREENSHOTS}"

Ativa repetição de caracteres ao manter uma tecla pressionada (precisa reiniciar)

    $ defaults write -g ApplePressAndHoldEnabled -bool false

Taxa de repetição de teclas mais rápida

    $ defaults write NSGlobalDomain KeyRepeat -int 2

Inicia o Finder na home (~/)

    $ defaults write com.apple.finder NewWindowTarget -string "PfLo"
    $ defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}"

Exibe barra de caminho no Finder

    $ defaults write com.apple.finder ShowPathbar -bool true

Exibe barra de status no Finder

    $ defaults write com.apple.finder ShowStatusBar -bool true

Não avisa sobre mudança de extensão

    $ defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false

Verifica atualizações diariamente (default: uma semana)

    $ defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1

Exibe ícone de HDs (internos) no desktop

    $ defaults write com.apple.finder ShowHardDrivesOnDesktop -bool true

Exibe ícone de HDs externos no desktop

    $ defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true

Exibe ícone de mídia removível no desktop

    $ defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true

Exibe ícone de servidores no desktop

    $ defaults write com.apple.finder ShowMountedServersOnDesktop -bool true

Não cria .DS_Store em network volumes

    $ defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Ativa o menu de desenvovimento e o Web Inspector no Safari

    defaults write com.apple.Safari IncludeInternalDebugMenu -bool true && \
    defaults write com.apple.Safari IncludeDevelopMenu -bool true && \
    defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true && \
    defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true && \
    defaults write NSGlobalDomain WebKitDeveloperExtras -bool true

Mostra caminho absoluto na barra de título do Finder

    $ defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES

Exibe ~/Library

    $ chflags nohidden ~/Library

Default Apps

Na mão

    $ vim ~/Library/Preferences/com.apple.LaunchServices.plist

Duti

    $ duti -s org.videolan.vlc .mp4 all

Ativa interface web do CUPS

    $ sudo cupsctl WebInterface=yes

O servidor estará disponível em http://localhost:631/admin.

Lock screen

System Preferences » Security & Privacy » General » Require Password » 5 seconds

Lock: Control + Shift + Power Sleep: Command ⌘ + Option ⌥ + Power

Shortcut: System Preferences » Keyboard » Shortcuts » + » Lock Screen » Atalho

iTerm2

Terminal colorscheme

Aplique o Zenburn

$ wget https://raw.githubusercontent.com/mbadolato/iTerm2-Color-Schemes/master/schemes/Zenburn.itermcolors

Command ⌘ + i » Colors » Color Presets » Import… » Zenburn.itermcolors » Open General » Copy Current Settings to Selected Profile.

Fonte

O pacote Nerd Fonts foi instalado como Homebrew. Para usá-lo no iTerm2 basta seguir o seguinte:

Preferences » Profiles » Text » Non-ASCII Font » Hack Regular Nerd Font Complete

Login Items

System Preferences » Users & Groups » Current User » Login Items

Deixar apenas:

  • Flux
  • InsomniaX (ou equivalente)
  • SwitchResX Daemon
  • Moom

Chrome como default browser

xdg-mime default chromium.desktop x-scheme-handler/http
xdg-mime default chromium.desktop x-scheme-handler/https

Mute Chrome

Na barra de endereços: chrome://flags/#enable-tab-audio-muting

Hosts

Tenho um script que baixa o arquivo de hosts do someonewhocares.org e o instala automaticamente:

sudo ~/dotfiles/hosts.sh

Um aplicativo que ajuda a gerenciar o arquivo de hosts é o GasMask:

brew cask install gas-mask

Dock

Mantenha apenas programas úteis no Dock:

  • Finder
  • Mail
  • Contacts
  • Calendar
  • iTerm
  • Google Chrome

Spotify

Além de fazer login no Spotify, também é necessário configurar o scrobble para o Last.fm: Preferences » Connect to Last.fm

Preferences: Desativar “Local Files”

Dicas

Não deixar capa separada em Two Page view no Preview

Sempre que você exibir um PDF duas páginas por vez, o Preview irá mostrar a primeira página separadamente como se fosse a capa de um livro. Às vezes não é isso que queremos e não tem como desabilitar essa “feature”, mas há um macete: insira uma página em branco e mova ela como primeira página: Edit » Insert » Blank Page; View » Contact Sheet arraste a página em branco para a primeira posição.

Scroll no terminal

Shift+fn+UP e Shift+fn+DOWN

Mail

Configurar emails do Gmail é trivial, mas além deles eu também uso um email do meu próprio host.

Se o Mail não reconhecer automaticamente a função de cada pasta imap, será preciso definir manualmente. Ex.:

Selecione Deleted Messages » Mailbox » Use This Mailbox As » Trash Mailbox

PATH

Verifique se a ordem dos diretórios em /etc/paths está em ordem e todos os diretórios estão presentes.

Programas instalados sem Homebrew

  • Adobe Acrobat Pro ou PDF Expert: Visualização e edição de PDFs
  • Adobe Lightroom: Organizar galeria de fotos
  • Adobe Photoshop: Edição de imagens
  • CleanMyMac: Manutenção do sistema
  • Dash: API Documentation Browser
  • iStat Menu: Menu bar com status de CPU/Memória/Rede/etc
  • LittleSnitch: Bloqueia conexões indesejadas. Alternativa gratuita: Lulu
  • MacPaw Gemini: Remove arquivos duplicados
  • Microsoft Office
  • Many Tricks Moom: Gerencia janelas
  • Parallels: Virtualização
  • SideSync: Para gerenciar dispositivos da Samsung
  • SwitchResX: Resolução da tela
  • Vuescan: scanner (alternativa free: xsane)
  • Wunderlist

Firewall

O OS X vem com o pfctl. O LittleSnitch e o Lulu também permitem gerenciar as conexões de saída.

Certificados SSL

No meu caso, tenho que adicionar os certificados da universidade: moodle.dc.ufscar.br

MySQL

CLI

brew install mysql
mysql.server start
mysql_secure_installation
mysql_upgrade -u root -p
mysql.server restart
$ mysql -u root -p
  mysql> select host, user, password from mysql.user;
  mysql> CREATE USER 'julio'@'localhost' IDENTIFIED BY '123456';
  mysql> GRANT ALL PRIVILEGES ON *.* TO 'julio'@'localhost' WITH GRANT OPTION;
  mysql> show variables;
  mysql> show databases;
  mysql> use nome_do_esquema;
$ mysql.server stop

MySQL Workbench

brew cask install mysqlworkbench

Apache

Descomente as seguintes linhas em /etc/apache2/httpd.conf:

LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule cgi_module libexec/apache2/mod_cgi.so
Pasta de usuário

Descomente as seguintes linhas em /etc/apache2/httpd.conf:

LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf

Descomente a seguinte linha em /etc/apache2/extra/httpd-userdir.conf:

Include /private/etc/apache2/users/*.conf

Crie o arquivo /etc/apache2/users/julio.conf:

<Directory "/Users/julio/Sites/">
    Options Indexes MultiViews FollowSymLinks
    Require all granted
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

Reinicie o Apache com sudo apachectl restart.

Crie a pasta ~/Sites:

mkdir ~/Sites

PHP

sudo cp /etc/php.ini.default /etc/php.ini
sudo -e /etc/php.ini

phpMyAdmin

sudo vim /etc/apache2/httpd.conf
Alias /phpmyadmin /usr/local/share/phpmyadmin
<Directory /usr/local/share/phpmyadmin/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Allow from all
    </IfModule>
</Directory>

Google KSFetch

O Google verifica updates de hora em hora. Mude isso para 7 dias:

defaults write com.google.Keystone.Agent checkInterval 604800

Ou desative a verificação por completo:

defaults write com.google.Keystone.Agent checkInterval 0

iTerm2 + tmux

O iTerm2 é integrado com o tmux, um terminal multiplexer.

Instale pelo homebrew:

brew install tmux

Control mode:

tmux -CC

Byobu

Melhor que screen e tmux

Update: também considere o Zellij.

Date

Date & Time:

  • Use a 24-hour clock,
  • Show the day of the week,
  • Show date

iBooks

Toda vez que você abre um .epub, o iBooks copia ele para o diretório /Users/julio/Library/Containers/com.apple.BKAgentService/Data/Documents/iBooks.

O original é mantido onde estava. Pode ser útil deletar os arquivos (pelo próprio iBooks) para economizar espaço.

Inline attachment viewing type:

defaults write com.apple.mail DisableInlineAttachmentViewing -bool yes
defaults write com.apple.mail DisableInlineAttachmentViewing -bool false

Github

git config --global credential.helper osxkeychain

Isso já é configurado no ~/.gitconfig.

Dicionários

Dict.cc

Baixe de http://www.dict.cc/?s=about%3Awordlist

iStat Menus

Settings » Date & Time:

  • Desmarcar Show date and time in menu bar.

Settings » Energy Saver:

  • Desmarcar Show battery status in menu bar.

Rearranje os itens do menu arrastando-os enquanto pressiona a tecla Command (⌘).

Skype

Skype » Preferences… » Save files in: ~/Downloads/Skype

Telegram

Telegram » Preferences… » Advanced Settings » Save documents to: ~/Download/Telegram


Julio Batista Silva
Julio Batista Silva
Engenheiro de Dados

Eu sou um engenheiro de computação apaixonado por ciência, tecnologia, fotografia e idiomas. Atualmente trabalhando como Engenheiro de Dados na Alemanha.

comments powered by Disqus