Jak usunąć datę z kafelka dokowania Calendar.app?

3

Chcę usunąć bieżącą datę z kafelka dokowania Calendar.app. Zmieniłem jego ikony (zastępując pliki icns wewnątrz .app), ale nadal wyświetla aktualną datę nad ikoną. Jak mogę usunąć tę datę?

Calendar.app z bieżącą datą

Mads Ohm Larsen
źródło
Nie jestem pewien, czy jest to możliwe, ponieważ przeprowadziłem własne badania i odkryłem, że w Calendar.app istnieje klasa „CalDockTileView”, która wywołuje metodę „drawDockTileInRect” w celu zaktualizowania „monthStringAttributes” i „dateStringAttributes” i ma to „rotateByDegrees”
G.
Czy mogę je zmienić / ponownie skompilować? Jak je znalazłeś?
Mads Ohm Larsen
Nie biorę udziału w ponownej kompilacji innych aplikacji, ponieważ patrzę na to jako część hacka, który trzymam na dystans; Znalazłem go, przeszukując wszystkie zaangażowane usługi, a następnie zaglądając głębiej do pliku kalendarza w folderze „/Applications/Calendar.app/Contents/MacOS”, który jest głównym plikiem wykonywalnym dla Calendar.app
Pinchus G.

Odpowiedzi:

3

Oświadczenie: To jest niesprawdzona (edycja: teraz przetestowana przez OP) modyfikacja Calendar.app, możesz to zrobić na własne ryzyko. Najpierw wykonaj kopię zapasową komputera na dysku zewnętrznym.

Wykonanie następujących czynności spowoduje, że ikona Doku kalendarza nie będzie miała nakładki z tą datą.

  1. Jeśli klikniemy prawym przyciskiem myszy Calendarw folderze Aplikacje, pojawi się opcja „Pokaż zawartość opakowania”. Ujawni to niektóre (nie wszystkie) wewnętrzne funkcje aplikacji Kalendarz.

  2. Jeśli przejdziesz do _CodeSignaturetego miejsca CodeResources, znajdziesz niektóre zasoby, z których korzysta aplikacja Kalendarz. Wyszukiwanie dockw tym pliku ujawnia klucze danych, w tym
    <key>Resources/Calendar.docktileplugin/Contents/_CodeSignature/CodeResources</key>. Wskazuje to na plik, który może dobrze kontrolować ikonę kalendarza (uwaga Calendar.docktileplugin).

  3. Więc chodźmy tam. Postępuj zgodnie z drzewem plików: wykonaj kopię zapasową o jeden krok, przejdź do zasobów i znajdź Calendar.docktilepluginfolder. Usunięcie tego folderu spowoduje, że aplikacja Kalendarz nie będzie automatycznie umieszczać bieżącej daty na ikonie kalendarza (w Edycji możesz zapisać kopię zapasową tej wtyczki, jak wspomniałem Edit 2poniżej).

Masz rozwiązanie, które według mnie jest rozwiązaniem twojego problemu.

Edycja: Jeśli aplikacja Kalendarz ulega awarii podczas uruchamiania, spróbuj usunąć oryginalny klucz (od kroku 2). Jeśli to nie zadziała, moje rozwiązanie może nie być tak dobre.

Edycja 2: Zapisz kopię zapasową folderu Calendar.docktileplugin (np. Na pulpicie) przed usunięciem i pamiętaj, gdzie poszła, aby zawsze móc ją z powrotem przywrócić, jeśli aplikacja Kalendarz ulegnie awarii lub jeśli chcesz przywrócić ikonę kalendarza do oryginał w dowolnym momencie.

Daj mi znać, jeśli to pomoże.

owlswipe
źródło
Rzeczywiście wydawało się, że po prostu usunięcie Calendar.docktilepluginfolderu wykonało zadanie. Nakładka nie jest już obecna na ikonie doku.
Mads Ohm Larsen,
@MadsOhmLarsen Nice! Daj mi znać, jeśli będziesz potrzebować dodatkowej pomocy.
owlswipe
Cóż, idealnie chciałbym zmienić obrót i czcionkę rzeczywistej daty, aby dopasować ją do projektu, ale myślę, że będzie to wymagało ode mnie dekompilacji aktualnego Calendar.app i wprowadzenia zmian w samym kodzie. To może trochę przesadzić. :)
Mads Ohm Larsen
1
@MadsOhmLarsen możesz rozważyć utworzenie programu zmieniającego codziennie ikonę aplikacji Kalendarz, ale chętnie pomogę w zadaniu pytania.
owlswipe