Configuración de mi MacBook

Desactivar el [rootless]
System Integrity Protection (“rootless”) impide que algunos directorios y archivos sean modificados incluso por el usuario root.
Algunos programas no funcionan bien con el SIP activado. Haz lo siguiente para desactivarlo:
- Entra en el Modo Recuperación: Inicia presionando
Command ⌘+R - Abre el Terminal: Utilities » Terminal
- Ejecuta el comando
csrutil disable
Contraseña para 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
Arrastrar con tres dedos
Accessibility » Mouse & Trackpad » Trackpad Options… » Enable dragging » three finger drag
Escáner
Xsane, que uso en Linux, también funciona en Mac. Es open source y bastante completo:
brew install sane-backends
brew install xsane
Vuescan es una app nativa y funciona muy bien, pero es de pago.
Zoom
Accessibility » Zoom » Use scroll gesture with modifier keys to zoom: ^ Control
Xcode
La última versión de Xcode puede descargarse desde la Apple Store o en https://developer.apple.com/downloads/, donde también están disponibles las versiones beta.
Si aparece que el archivo .xip bajado desde el sitio de Apple está corrupto, intenta abrirlo con otro programa. Aquí The Unarchiver mostró “Data Corrupted”, pero con Archive Utility funcionó perfectamente.
Instala las herramientas de línea de comandos:
xcode-select --install
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
Abre Xcode y acepta la licencia o escribe “agree” en sudo xcodebuild -license para aceptar.
Desactiva Gatekeeper para permitir instalar aplicaciones descargadas de Internet
Soluciona el mensaje “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.
Activa de nuevo con: sudo spctl --master-enable.
Dotfiles
git clone --recursive https://github.com/jbsilva/dotfiles.git
cd dotfiles
git submodule update --init --recursive
Homebrew
Descarga e instala 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
Descarga Karabiner-Elements
Algunas modificaciones avanzadas pueden encontrarse en https://ke-complex-modifications.pqrs.org/.
Cambiar Caps Lock por ESC
La configuración está en los dotfiles.
Usar Enter en el Finder para entrar en un directorio
Usar F2 para renombrar
Zplug + Zprezto
Zplug gestiona los plugins de ZSH. Se instala automáticamente.
Enlaces a los dotfiles
ln -s ~/dotfiles/.gitconfig ~
ln -s ~/dotfiles/.config ~
ln -s ~/dotfiles/.zsh ~
ln -s ~/dotfiles/.zshrc ~
Copia de los dotfiles que no pueden ser enlaces
sudo cp ~/dotfiles/fstab /etc/fstab
Zsh como shell por defecto
command -v zsh | sudo tee -a /etc/shells
sudo chsh -s "$(command -v zsh)" "${USER}"
compaudit | xargs chmod g-w
Autocompletado de Zsh
Instala la fórmula zsh_completions:
brew install zsh-completions
Añade $(brew --prefix)/share/zsh-completions al $FPATH:
FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
Montar disco
Crea la carpeta indicada en /etc/fstab y márcala como no modificable
para que macOS no la elimine después de desmontar el disco:
sudo mkdir /Volumes/Elements
sudo chflags uchg /Volumes/Elements/
Monta el disco:
diskutil mount disk2s1
Vim
Vundle
Abre Vim y descarga los plugins: :PluginInstall
Corrector ortográfico
Escribe :setlocal spell spelllang=pt_br en Vim y sigue las instrucciones.
Finder
- En la Home (
~)View»Show View Options(Cmd+J):- Calculate all sizes,
- Show Library Folder,
- Show item info
- En el Escritorio
- Botón derecho »
Show View Options(Cmd+J):- Show item info,
- Aumenta el Grid spacing
- Botón derecho »
Evitar reposo automático
Existen varias apps para esta función:
- InsomniaX
- Caffeine
- Amphetamine
- KeepingYouAwake
Estoy usando KeepingYouAwake, que es muy simple y gratuito.
Por línea de comandos existe caffeinate:
Evita el reposo por 1 hora (3600 segundos):
caffeinate -u -t 3600
Evita el reposo hasta que el comando termine:
caffeinate -s command
Evita el reposo hasta Ctrl-C:
caffeinate -I
Evitar reposo al bajar la tapa
sudo pmset -a disablesleep 1
Desactivar reposo del disco duro
System Preferences » Energy Saver: desmarcar Put hard disks to sleep when possible
Enlace a /Volumes en el Escritorio
ln -s /Volumes ~/Desktop/
Desactivar usuario invitado
System Preferences » Users & Groups: Desmarcar “Allow guest to log in to this computer”.
SSH
Copia tus claves del backup y dales los permisos adecuados:
cp -r /Volumes/Cofre/.ssh ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/*
chmod 644 ~/.ssh/*.pub
Spotlight
System Preferences » Spotlight
Spotlight devuelve cosas poco útiles en los resultados. Desactiva Bookmarks & History, Fonts, Movies, Music, Other, Presentations, etc.
Desmarca “Allow Spotlight Suggestion in Look up”.
NTFS
NTFS-3g
OSXFuse y NTFS-3g pueden instalarse con Homebrew gratuitamente.
Enlaza mount_ntfs a ntfs-3g:
sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.original
sudo ln -s /usr/local/sbin/mount_ntfs /sbin/mount_ntfs
Paragon y Tuxera
Usé NTFS-3g por muchos años (tanto en Linux como en Mac), pero su rendimiento deja que desear.
Pasé a Paragon cuando necesité hacer backup de varios terabytes de datos. La diferencia en la tasa de transferencia fue bastante significativa.
Considera Paragon (R$ 34,95) o [Tuxera] (R$ 107,13) si utilizas discos formateados en NTFS.
Python
Virtualenv
$ export PYTHON_CONFIGURE_OPTS="--enable-framework --enable-unicode=ucs4 --enable-ipv6 --enable-loadable-sqlite-extensions"
(Otras opciones –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
El soporte a framework (--enable-framework) es necesario para herramientas como YouCompleteMe.
Bibliotecas de Python
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 y ratón
Desplazamiento natural
defaults write NSGlobalDomain com.apple.swipescrolldirection -bool true
Clic con toque
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
Botón derecho
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
Activar Tab en diálogos modales
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
Idioma
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
Activar el menú de Depuración en la App Store
defaults write com.apple.appstore ShowDebugMenu -bool true
Carpeta donde se guardarán las capturas de pantalla
SCREENSHOTS="${HOME}/Desktop/Screenshots" && mkdir "${SCREENSHOTS}" && defaults write com.apple.screencapture location -string "${SCREENSHOTS}"
Activar repetición de caracteres al mantener una tecla pulsada (requiere reiniciar)
$ defaults write -g ApplePressAndHoldEnabled -bool false
Velocidad de repetición de teclas más rápida
$ defaults write NSGlobalDomain KeyRepeat -int 2
Abrir Finder en la carpeta de inicio (~/)
$ defaults write com.apple.finder NewWindowTarget -string "PfLo"
$ defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}"
Mostrar barra de ruta en Finder
$ defaults write com.apple.finder ShowPathbar -bool true
Mostrar barra de estado en Finder
$ defaults write com.apple.finder ShowStatusBar -bool true
No avisar sobre cambio de extensión
$ defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
Buscar actualizaciones diariamente (por defecto: una semana)
$ defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1
Mostrar icono de discos duros internos en el Escritorio
$ defaults write com.apple.finder ShowHardDrivesOnDesktop -bool true
Mostrar icono de discos duros externos en el Escritorio
$ defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
Mostrar icono de medios extraíbles en el Escritorio
$ defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true
Mostrar icono de servidores en el Escritorio
$ defaults write com.apple.finder ShowMountedServersOnDesktop -bool true
No crear .DS_Store en volúmenes de red
$ defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
Activar el menú de desarrollo y el Web Inspector en 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
Mostrar ruta absoluta en la barra de título del Finder
$ defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES
Mostrar ~/Library
$ chflags nohidden ~/Library
Aplicaciones por defecto
A mano
$ vim ~/Library/Preferences/com.apple.LaunchServices.plist
Duti
$ duti -s org.videolan.vlc .mp4 all
Activar interfaz web de CUPS
$ sudo cupsctl WebInterface=yes
El servidor estará disponible en http://localhost:631/admin.
Bloquear pantalla
System Preferences » Security & Privacy » General » Require Password » 5 seconds
Bloquear: Control + Shift + Power Reposo: Command ⌘ + Option ⌥ + Power
Atajo: System Preferences » Keyboard » Shortcuts » + » Lock Screen » Atajo
iTerm2
Esquema de colores del terminal
Aplica 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.
Fuente
El paquete Nerd Fonts fue instalado con Homebrew. Para usarlo en iTerm2 sigue esto:
Preferences » Profiles » Text » Non-ASCII Font » Hack Regular Nerd Font Complete
Ítems de inicio
System Preferences » Users & Groups » Current User » Login Items
Dejar solo:
- Flux
- InsomniaX (o equivalente)
- SwitchResX Daemon
- Moom
Chrome como navegador predeterminado
xdg-mime default chromium.desktop x-scheme-handler/http
xdg-mime default chromium.desktop x-scheme-handler/https
Silenciar Chrome
En la barra de direcciones: chrome://flags/#enable-tab-audio-muting
Hosts
Tengo un script que descarga el archivo de hosts de someonewhocares.org y lo instala automáticamente:
sudo ~/dotfiles/hosts.sh
Una app que ayuda a gestionar el archivo de hosts es GasMask:
brew cask install gas-mask
Dock
Deja solo programas útiles en el Dock:
- Finder
- Contacts
- Calendar
- iTerm
- Google Chrome
Spotify
Además de iniciar sesión en Spotify, también es necesario configurar el scrobble para Last.fm:
Preferences » Connect to Last.fm
Preferences: Desactiva “Local Files”
Consejos
No dejar portada separada en Two Page view en Preview
Siempre que muestres un PDF de dos páginas a la vez, Preview mostrará la primera página por separado
como si fuera la portada de un libro. A veces no es lo que queremos y no hay forma de desactivar
esta “feature”, pero hay un truco: inserta una página en blanco y muévela a la primera posición:
Edit » Insert » Blank Page; View » Contact Sheet y arrastra la página en blanco a la primera
posición.
Desplazamiento en el terminal
Shift+fn+UP y Shift+fn+DOWN
Configurar correos de Gmail es trivial, pero además uso un correo de mi propio host.
Si Mail no reconoce automáticamente la función de cada carpeta IMAP, habrá que definirla manualmente. Ej.:
Selecciona Deleted Messages » Mailbox » Use This Mailbox As » Trash Mailbox
PATH
Verifica si el orden de los directorios en /etc/paths es el correcto y si todos los directorios
están presentes.
Programas instalados sin Homebrew
- Adobe Acrobat Pro o PDF Expert: Visualización y edición de PDFs
- Adobe Lightroom: Organizar galería de fotos
- Adobe Photoshop: Edición de imágenes
- CleanMyMac: Mantenimiento del sistema
- Dash: API Documentation Browser
- iStat Menu: Barra de menú con estado de CPU/Memoria/Red/etc
- LittleSnitch: Bloquea conexiones no deseadas. Alternativa gratuita: Lulu
- MacPaw Gemini: Elimina archivos duplicados
- Microsoft Office
- Many Tricks Moom: Gestiona ventanas
- Parallels: Virtualización
- SideSync: Para gestionar dispositivos Samsung
- SwitchResX: Resolución de pantalla
- Vuescan: escáner (alternativa gratis: xsane)
- Wunderlist
Firewall
macOS viene con pfctl. LittleSnitch y Lulu también permiten gestionar las conexiones de salida.
Certificados SSL
En mi caso, tengo que añadir los certificados de la universidad: 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 nombre_del_esquema;
$ mysql.server stop
MySQL Workbench
brew cask install mysqlworkbench
Apache
Descomenta las siguientes líneas en /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
Carpeta de usuario
Descomenta las siguientes líneas en /etc/apache2/httpd.conf:
LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf
Descomenta la siguiente línea en /etc/apache2/extra/httpd-userdir.conf:
Include /private/etc/apache2/users/*.conf
Crea el archivo /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>
Reinicia Apache con sudo apachectl restart.
Crea la carpeta ~/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
Google verifica actualizaciones cada hora. Cambia esto a 7 días:
defaults write com.google.Keystone.Agent checkInterval 604800
O desactiva la verificación por completo:
defaults write com.google.Keystone.Agent checkInterval 0
iTerm2 + tmux
iTerm2 está integrado con tmux, un multiplexor de terminal.
Instalar con Homebrew:
brew install tmux
Control mode:
tmux -CC
Byobu
Mejor que screen y tmux
Actualización: considera también Zellij.
Fecha
Date & Time:
- Usar reloj de 24 horas,
- Mostrar el día de la semana,
- Mostrar la fecha
iBooks
Cada vez que abres un .epub, iBooks lo copia al directorio
/Users/julio/Library/Containers/com.apple.BKAgentService/Data/Documents/iBooks.
El original se mantiene donde estaba. Puede ser útil borrar los archivos (desde el propio iBooks) para ahorrar espacio.
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
Esto ya está configurado en ~/.gitconfig.
Diccionarios
Dict.cc
Descarga desde 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.
Reordena los ítems de la barra arrastrándolos mientras presionas la tecla Command (⌘).
Skype
Skype » Preferences… » Save files in: ~/Downloads/Skype
Telegram
Telegram » Preferences… » Advanced Settings » Save documents to: ~/Download/Telegram
Enlaces
- https://gist.github.com/1623487.git
- Rootless: https://en.wikipedia.org/wiki/System_Integrity_Protection
- Seguridad: 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