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 Spotilight 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

https://iterm2.com/documentation-highlights.html

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

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”

Para evitar propagandas, use o /etc/hosts e o Little Snitch.

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

Adicione 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

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