diff --git a/src-tauri/src/terminal.rs b/src-tauri/src/terminal.rs index b4dd5c3..a436b66 100644 --- a/src-tauri/src/terminal.rs +++ b/src-tauri/src/terminal.rs @@ -54,8 +54,13 @@ pub fn set_dock_icon(path: &str) { use objc2_foundation::NSString; let mtm = MainThreadMarker::new().expect("set_dock_icon läuft nicht auf dem Main-Thread"); - let img = NSImage::initWithContentsOfFile(NSImage::alloc(), &NSString::from_str(path)) - .unwrap_or_else(|| panic!("Dock-Icon nicht ladbar: {path}")); + // Nicht ladbar (Datei weg, TCC-geschützter Ordner wie ~/Downloads): Terminal + // ohne eigenes Dock-Icon starten statt den Prozess zu beenden. + let Some(img) = NSImage::initWithContentsOfFile(NSImage::alloc(), &NSString::from_str(path)) + else { + eprintln!("Dock-Icon nicht ladbar, Terminal startet ohne: {path}"); + return; + }; // unsafe laut objc2-Signatur; das NSImage stammt aus einer Datei und ist gültig. unsafe { NSApplication::sharedApplication(mtm).setApplicationIconImage(Some(&img));