From 7db9046179312ec237d6445b6c678cfcb48791ad Mon Sep 17 00:00:00 2001 From: UMTS at Teleco Date: Tue, 2 Dec 2025 12:10:06 +0100 Subject: 2025-12-02 Ende Lektion --- Abgaben/SwiftEdging-Projektplanung.md | 54 +++++++++++++++++++++++++++++++++++ JOURNAL.md | 5 ++-- 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/Abgaben/SwiftEdging-Projektplanung.md b/Abgaben/SwiftEdging-Projektplanung.md index e69de29..ac99639 100644 --- a/Abgaben/SwiftEdging-Projektplanung.md +++ b/Abgaben/SwiftEdging-Projektplanung.md @@ -0,0 +1,54 @@ +# SwiftEdging +> Ein MacOS "Ammonia Tweak" welcher in Kombination mit aspauldingcode's "apple-sharpener" rundungen von SwiftUI Fensterelementen wieder einheitlich Aussehen lässt (auf MacOS 26 - Tahoe, ist aber auch rückwärts anwendbar) +###### *T.Bachmann (aka. crt oder umts) - 2025-12-02 + +## Projektbeschreib + +### Ausgangslage bzw. Ist-Zustand + +Apple hat mit dem "Liquid Glass" Design (intern "Solarium" genannt) eine komplette Design Änderung ihrer Betriebssysteme eingeführt. +Diese Änderung brachte jedoch diverse Inkonsistenzen mit sich, welche sich besonders auf macOS zeigen. + +#### Hauptproblem +Inkonsistente Rundungen von Fensterrahmen und UI Elementen innerhalb dieser. + +#### Bisherige Lösungsversuche mit Ammonia* +*macOS dylib "Tweak" Injektions Tool + + +Versuch 1 : Rückfall auf altes Design +- Tools: Ammonia + bedtime's "BrokenGlass" Tweak +- Funktion : Deaktiviert das gesamte "Solarium Theme" durch dylib Injektion +- Ergebnis : Einheitliche Fensterrahmen Rundungen / UI Elemente durch verwenden des alten einheitlichen Designs jedoch mit SwiftUI Material Resolution Problemen +- Probleme : + - "Material Resolution" Probleme : + - Rechte MenuBar Elemente entweder nicht Sichtbar oder deren Pop-Over Transparent und durchklickbar + - Benachrichtigungs Relevante Element Hintergründe werden transparent und unlesbar + - Instabilität des Systems bei verwendung von Apps welche MenuBar Elemente erstellen oder diese anpassen +- Aussicht auf Problemlösung: Um das Problem zu beheben wäre (meines Wissen nachs) extrem komplexes Reverse Engineering auf SwiftUI ABI Basis erforderlich, sowohl Erfolgschancen als auch Kompetenzen sind dafür nicht gegeben, somit für mich nicht lösbar. + +Versuch 2 : Reparattur des neuen Designs +- Tools: Ammonia + "apple-sharpener" Tweak +- Funktionsweise : Hijacking des macOS Window Managers durch dylib injektion und Swizzling +- Ergebnis : Fensterrahmen werden korrigiert, aber Inkonsistenzen innerhalb der Fenster werden nicht behoben bzw. sogar verschlimmert +- Probleme : + - Nur Fensterrahmen Rundungen werden korrigiert + - Neue Inkonsistenzen werden hinzugefügt + - Warnungs Pop Ups sehen seltsam aus +- Aussicht auf Problemlösung : Um das Problem zu beheben wäre ein weiterer Tweak erforderlich welcher gezielt die UI Elemente innerhalb Fenster repariert. Dies ist sehr gut machbar da Rundungs Anpassungen via Swizzling möglich und somit für mich lösbar sind, nicht so wie Material Resolution Probleme welche (meines Wissen nachs) auf tieferer Ebene gemacht werden müssten. + +### Zielsetzung bzw. Soll-Zustand +Entwicklung eines macOS Tweaks der die Rundungswerte betroffener UI Elemente gezielt und flexibel anpassen kann und mindestens mit "apple-sharpener" kompatibel ist. + +#### Kernfunktion +- Regelbasiertes System : Definition von Rulesets welche gezielt Anpassung von Apps und individuellen UI Elementen erlauben +- JSON basierte Konfiguration : Strukturierte Verwaltung der Anwendungs und Anpassungsregeln + +#### Benutzeroberfläche +- MenuBar App : Grafische Oberfläche für Steuerung +- Funktionen : + - Aktivieren / Deaktivieren von Rulesets für spezifische Fenster + - Verwaltung von App spezifischen Ausnahmen/Inklusionen + - Dynamische Anpassungen ohne manuelle JSON Bearbeitung +- Zweck : Fehlerbehandlung bei Inkompatibilitäten Apps sowie anwendung auf noch nicht in JSON inklusierten App whitelist + diff --git a/JOURNAL.md b/JOURNAL.md index 380c018..86ab3ee 100644 --- a/JOURNAL.md +++ b/JOURNAL.md @@ -62,11 +62,12 @@ Muss mich endlich entscheiden was ich als Projekt nehme, auch wenn meine Vorlieb - PSP ++ ### Projektentscheid -Es wurde SwiftEdging als Projekt gewählt da es ein guter Kandidat für Wekan darstellen würde, Grossteil des Codes schon existiert und via Privater Git Commits Nachvollziehbar ist und zudem für mich persönlich +Es wurde SwiftEdging als Projekt gewählt da es theoretisch ein guter Kandidat für mein geliebtes Wekan darstellen würde, Grossteil des Codes schon existiert und via Privater Git Commits nachvollziehbar gebaut wurde. Zudem bringt es auf persönlicher Ebene viel Enthusiasmus und Interesse als Motivator bei der später kommenden Umsetzung mit sich was sich auch auf die Planung abwälzt. ### Projektbeschreib Initialisierung Vorerst müssen laut LP die Basics aufgenommen werden mit der Perspektive davon das noch nichts existieren würde. -- Aufschreiben Ziel des Projektes (Ausgangsituation, Ist und Soll) +- [X] Aufschreiben Ziel des Projektes (Ausgangsituation, Ist und Soll) +- [] Aufschreiben Diskrepanz / Was ist jetzt zu tun. (So in etwa das Ziel, "Was musst gemacht werden und so" "Alle Elemente sollen Einheitlich aussehen") -- cgit v1.2.3-70-g09d2