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
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.
Links para os dotfiles
ln -s ~/dotfiles/.gitconfig ~
ln -s ~/dotfiles/.config ~
ln -s ~/dotfiles/.zsh ~
ln -s ~/dotfiles/.zshrc ~
Cópia dos dotfiles que não podem ser links
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
- Botão direito »
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
Link para /Volumes no Desktop
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
- 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
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
Links
- https://gist.github.com/1623487.git
- Rootless: https://en.wikipedia.org/wiki/System_Integrity_Protection
- Segurança: https://github.com/lfit/itpol/blob/master/linux-workstation-security.md
- https://www.reddit.com/r/osx/comments/300chd/what_are_the_most_essential_apps_for_os_x_in/
- https://github.com/monfresh/laptop
- https://gist.github.com/adamstac/822811
- http://mikebuss.com/2014/02/02/a-beautiful-productive-terminal-experience/
- http://www.defaults-write.com/
- http://www.slant.co/topics/526/~window-manager-for-mac
- http://www.sunrisepage.com/computers/osx/osx1011.htm
- http://www.reecefowell.com/2012/11/16/ksfetch-annoyance-on-mac-os-x-10-8-ml-with-hands-off-or-little-snitch-firewall/
- https://gitlab.com/gnachman/iterm2/wikis/TmuxIntegration
- http://www.simononsoftware.com/virtualenv-tutorial-part-2/
- https://www.tekrevue.com/tip/gatekeeper-macos-sierra/
- https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection