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
softwareupdate --all --install --force
# Einstellungen -> Benutzer und Gruppen -> Erweiterte Optionen
diskutil resetUserPermissions / 1001
sudo scutil --set ComputerName "newname"
sudo scutil --set LocalHostName "newname"
sudo scutil --set HostName "newname"
dscacheutil -flushcache
# System Preferences -> Sharing -> Computer Name:
# 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
# https://gist.github.com/retspen/4e6ec73271594399c050f6f8027a9880
sudo sysctl -w net.inet.ip.forwarding=1
pfctl
# 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
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
sudo xcodebuild -license
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
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
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.
xattr -d com.apple.quarantine /path/to/file
# oder
Systemeinstellungen -> Sicherheit & Datenschutz