Configuração do meu MacBook

June 29, 2017   

Desativar o [rootless]

Entre em Recovery Mode: Inicie pressionando Command+R Abra o terminal: Utilities -> Terminal Digite 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

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 checkout macbook_osx
$ git submodule update --init --recursive
Ou
$ git clone --recursive -b macbook_osx --single-branch https://github.com/jbsilva/dotfiles.git

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

Troca Caps-Lock por ESC

Baixe o Karabiner-Elements

$ nvim ~/.karabiner.d/configuration/karabiner.json
{
    "profiles": [
        {
            "name": "Default profile",
            "selected": true,
            "simple_modifications": {
                "caps_lock": "escape",
                "escape": "caps_lock"
            }
        }
    ]
}

ZPrezto

Meu repositório é um fork. É bom atualizá-lo: $ cd ~/dotfiles/.zprezto/ $ git remote add upstream https://github.com/sorin-ionescu/prezto $ git fetch upstream $ git checkout master $ git merge upstream/master

Já usando o ZSH, link os dotfiles: $ setopt EXTENDED_GLOB $ for rcfile in “${ZDOTDIR:-$HOME}“/.zprezto/runcoms/^README.md(.N); do ln -s “$rcfile” “${ZDOTDIR:-$HOME}/.${rcfile:t}“; done

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

Zsh default shell

$ chsh -s /bin/zsh

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

InsomniaX

Foi instalado pelo Homebrew. Abra e configure para não dormir quando conectado à tomada.

Desativar o sleep

$ sudo systemsetup -getcomputersleep
$ sudo systemsetup -setcomputersleep Never

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.

NTFS

O OSXFuse e o NTFS-3g já foram instalados pelo Homebrew.

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

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

Login Items

System Preferences -> Users & Groups -> Current User -> Login Items

Deixar apenas:

  • Flux
  • InsomniaX
  • 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

Email

Configure todos os seus emails no Mail

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: 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
  • MacPaw Gemini: Remove arquivos duplicados
  • Microsoft Office
  • Many Tricks Moom: Gerencia janelas
  • Parallels: Virtualização
  • SwitchResX: Resolução da tela
  • Vuescan: scanner
  • Wunderlist

Firewall

O OS X vem com o pfctl. O LittleSnitch também permite 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

Rust

$ brew install multirust
$ multirust default nightly

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 (⌘).

Spotlight

Desmarque “Allow Spotilight Suggestion in Look up”

Skype

Skype -> Preferences… -> Save files in: ~/Downloads/Skype

Telegram

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




comments powered by Disqus