macOS

Tastaturkürzel

Kürzel Bedeutung
⌘ Command+ Spotlight Suche
⌘ Command+´ nächstes Fenster fokussieren
⌘ Command+M Fenster in Dock minimieren
⌥ Option+⌘ Command+D Dock anzeigen/verstecken
++⌘ Command+T Auswahl in Finder in Dock legen
+F3 Dock fokussieren
im Dock
App Menü öffnen
⌥ Option alternative Befehle umschalten
⌥ Option+ im App Menü an oberste Stelle springen
⌘ Command+↵ Eingabe im Finder öffnen
⌥ Option+←/→ links/rechts verschieben
Bildschirmfoto
⌘ Command++3 ganzer Bildschirm
⌘ Command++4 Auswahl
⌘ Command++5 Bereich
Finder
⌘ Command++. dotfiles Anzeigen
Browser
⌘ Command+W Tab schließen
⌥ Option+⌘ Command+←/→ vorheriger/nächster Tab
VSCode
⌘ Command+W Editor schließen
⌥ Option+⌘ Command+←/→ vorheriger/nächster Editor
iTerm2
⌥ Option+⌘ Command+←/→/↑/↓ Pane links/rechts/oben/unten
⌘ Command+←/→ vorheriger/nächster Tab

iTerm2

Einstellungen in Verzeichnis speichern/laden
# https://shyr.io/blog/sync-iterm2-configs
defaults write com.googlecode.iterm2 PrefsCustomFolder -string "~/Projekte/github/xoryves/dotfiles/macos/iTerm2"
defaults write com.googlecode.iterm2 LoadPrefsFromCustomFolder -bool true

Administration

Software aktualisieren
softwareupdate --all --install --force
userid ändern
# Einstellungen -> Benutzer und Gruppen -> Erweiterte Optionen
diskutil resetUserPermissions / 1001
hostname ändern
sudo scutil --set ComputerName "newname"
sudo scutil --set LocalHostName "newname"
sudo scutil --set HostName "newname"
dscacheutil -flushcache
# System Preferences -> Sharing -> Computer Name:
zusätzliche IP
# System Preferences -> Network -> + -> Ethernet
# hinzufügen
sudo ifconfig en0 alias 192.168.1.123/24 up
# entfernen
sudo ifconfig en0 -alias 192.168.1.123
NAT aktivieren
# https://gist.github.com/retspen/4e6ec73271594399c050f6f8027a9880
sudo sysctl -w net.inet.ip.forwarding=1

pfctl

Befehle
# alle anchor ausgeben
pfctl -vsA
# rules ausgeben
pfctl -sr
# status ausgeben
pfctl -si
# überprüfen
pfctl -vnf pf.conf
# anchor laden
pfctl -a 'com.apple/ves' -f pf.conf
# anchor entfernen
pfctl -a 'com.apple/ves' -F all
port forwarding (temp)
echo "rdr pass inet proto tcp from any to any port 443 -> 192.168.1.201 port 8443" | sudo pfctl -a 'com.apple/tmp' -ef -

Um pfctl automatisch zu starten und einen anchor zu laden, muss launchd verwendet werden. Dafür /System/Library/LaunchDaemons/com.apple.pfctl.plist nach /Library/LaunchDaemons/ves.pfctl.plist kopieren. Dort die ProgramArguments entsprechend dem obigen Beispiel "anchor laden" ersetzen. System neustarten oder mit sudo launchctl load /Library/LaunchDaemons/ves.pfctl.plist pf starten.

Entwicklungsumgebung

Xcode
sudo xcodebuild -license
Rust
brew install rustup-init
rustup-init
rustup toolchain install nightly
rustup default nightly
echo 'set -gx PATH "$HOME/.cargo/bin" $PATH;' >> ~/.config/fish/config.fish
openssl libs dev
brew install openssl
#/opt/homebrew/etc/openssl@1.1/certs
#/opt/homebrew/opt/openssl@1.1/bin/c_rehash
#echo 'fish_add_path /opt/homebrew/opt/openssl@1.1/bin' >> ~/.config/fish/config.fish
echo 'set -gx LDFLAGS "-L/opt/homebrew/opt/openssl@1.1/lib"' >> ~/.config/fish/config.fish
echo 'set -gx CPPFLAGS "-I/opt/homebrew/opt/openssl@1.1/include"' >> ~/.config/fish/config.fish
Haskell
brew install haskell-stack
# MacOSX 12 mit M1 ARM64
stack build --extra-include-dirs="/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/ffi"

launchd

Ordner und Verwendung
/System/Library/LaunchDaemons
Von Apple bereitgestellte System-Daemons
/System/Library/LaunchAgents
Von Apple bereitgestellte Agents, die für alle Benutzer auf Benutzerbasis gelten
/Library/LaunchDaemons
System-Daemons anderer Anbieter
/Library/LaunchAgents
Agents anderer Anbieter, die für alle Benutzer auf Benutzerbasis gelten
~/Library/LaunchAgents
Agents anderer Anbieter, die nur für den angemeldeten Benutzer gelten

LaunchAgents

User LaunchAgents können bei M1 11.4 nicht von ~/Library/LaunchAgents geladen werden. Von /Library/LaunchAgents funktioniert es.

launchctl load /Library/LaunchAgents/vaultwarden.plist
launchctl list | grep vaultwarden

Sandbox

Bei alten Anwendungen ist oft keine Sandbox vorhanden. Bei open Source Anwendungen fehlt oft die kostenpflichtige Signatur.

11.4 Big Sur
xattr -d com.apple.quarantine /path/to/file
# oder
Systemeinstellungen -> Sicherheit & Datenschutz