- Shell 80%
- C 20%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Backup dzialajacego setupu (CachyOS/KWin Wayland/NVIDIA, 2026-08): - patch wine 11.10 (present kick + managed popups) i build-wine.sh - zmodyfikowany launcher cryinkfly (tryb Wine-fix) i fusion-frame-kicker - handler adskidmgr:// na customowym wine (fix logowania) - fix-navbar-flicker, swap_desktop_files, pliki .desktop - apply-fixes.sh (idempotentny) + README z pelna dokumentacja Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DKDNRj2UTN9wxFL5C6T93w |
||
| bin | ||
| desktop | ||
| patches | ||
| apply-fixes.sh | ||
| build-wine.sh | ||
| README.md | ||
Fusion 360 na Linuksie — poprawki i odtwarzanie instalacji
Backup wszystkich lokalnych poprawek potrzebnych, żeby Autodesk Fusion 360 działał na tym systemie tak, jak działa teraz — plus instrukcja odtworzenia całości od zera.
Środowisko odniesienia (2026-08): CachyOS (Arch), KDE Plasma Wayland
(Fusion działa przez XWayland), NVIDIA (open modules, 610.57), KWin 6.7.4,
host PIECYK. Fusion build 2702.1.58, instalacja skryptem cryinkfly w
~/.autodesk_fusion, prefiks wineprefixes/default, DXVK.
Z czego składa się setup
| Element | Gdzie | Po co |
|---|---|---|
| Instalacja bazowa | ~/.autodesk_fusion |
instalator cryinkfly Autodesk-Fusion-360-on-Linux (v2.1.6-Alpha) |
| Customowy Wine 11.10 | ~/fusion-wine-build (źródła: ~/fusion-wine-source) |
patch patches/wine-11.10-fusion-kwin-wayland-nvidia.patch — patrz niżej |
| Launcher | bin/autodesk_fusion_launcher.sh |
zmodyfikowany launcher cryinkfly: tryb Wine-fix (customowy wine, __NV_DISABLE_EXPLICIT_SYNC=1, start/stop kickera) |
| fusion-frame-kicker | bin/fusion-frame-kicker.c |
wypychanie zawieszonej ostatniej klatki (XDamage) |
Handler adskidmgr:// |
desktop/adskidmgr-opener.desktop.in |
powrót logowania z przeglądarki do Fusiona — musi używać customowego wine |
| fix-navbar-flicker | bin/fix-navbar-flicker.sh |
wyłącza NavToolbar w profilu (migotanie paska nawigacji) |
| swap_desktop_files | bin/swap_desktop_files.sh |
porządkuje zdublowane pliki .desktop po aktualizacjach Fusiona |
Dlaczego te poprawki istnieją
1. Bug „zawieszonej ostatniej klatki" (hover highlight)
Pod XWayland/KWin/NVIDIA XWayland przestaje commitować powierzchnię do kompozytora, gdy aplikacja przestaje rysować — ostatnia klatka serii (np. zgaśnięcie podświetlenia hover) wisi w kolejce, aż nowe rysowanie zrestartuje cykl. Objaw: hover „zawiesza się" na obiekcie.
Naprawa jest dwuwarstwowa (obie warstwy są potrzebne):
- Patch wine (
patches/wine-11.10-fusion-kwin-wayland-nvidia.patch, commit „winex11: Fusion 360 on KWin Wayland/NVIDIA fixes"):is_window_managed: zarządzanie WSZYSTKIMI popupami bez belki — pod XWayland okna override-redirect kompozytują się nad zarządzanymi i ich input stacking rozjeżdża się z kolejnością renderowania (deadlock modalnego blockera);client_surface_present: opóźniony o ~30 ms syntetyczny 1-pikselowy Expose („present kick") po ostatnim prezencie dużych powierzchni + cooldown 400 ms. Współpracuje z__NV_DISABLE_EXPLICIT_SYNC=1ustawianym w launcherze (explicit sync NVIDII zawiesza commity XWayland dla pojedynczych klatek).
- fusion-frame-kicker (od 2026-08-20, po update nvidia 610.57 /
kwin 6.7.4 / wayland 1.26 sam patch przestał wystarczać): proces C
nasłuchujący XDamage; po 40 ms ciszy przepisuje 1 piksel okna Fusiona,
wypychając zaległą klatkę. Launcher startuje go z 90-sekundowym
opóźnieniem (patrz niżej) i ubija przy wyjściu. Log:
~/.autodesk_fusion/logs/frame-kicker.log.
2. Logowanie: handler adskidmgr://
Po zalogowaniu w przeglądarce Autodesk przekierowuje na URL
adskidmgr://..., który system oddaje handlerowi
(~/.local/share/applications/wine/Programs/Autodesk/*/adskidmgr-opener.desktop),
a ten uruchamia AdskIdentityManager.exe w prefiksie, przekazując token do
działającego Fusiona.
Krytyczne: handler musi używać customowego wine i jego wineservera
(WINESERVER=~/fusion-wine-build/bin/wineserver). Systemowy wine innej
wersji nie połączy się z działającym wineserverem („wine client error:
version mismatch") i callback umiera po cichu — przeglądarka się otwiera,
ale logowanie nigdy nie wraca do Fusiona (przypadek z 2026-08-24).
winemenubuilder potrafi zregenerować ten plik przy aktualizacji Fusiona i
przywrócić gołe wine — dlatego apply-fixes.sh zostawia plik jako
read-only (444). Gdyby mimo to wrócił zły handler — ponownie uruchom
./apply-fixes.sh.
3. Kicker a logowanie SSO
Gdy kicker działa od startu Fusiona, klient SSO dostaje „Timed out after 15s
while waiting for SSO process to be ready" (error 3213) i Fusion pokazuje
dialog „antivirus is likely preventing you from signing in", po czym się
zamyka (2 przypadki 2026-08-20; starty bez kickera zawsze OK — mocna
korelacja, mechanizm niewyjaśniony). Stąd 90 s opóźnienia startu kickera w
launcherze. Jeśli logujesz się później (np. po wylogowaniu) — ubij kickera na
czas logowania: pkill -f '/fusion-frame-kicker$' (wróci przy następnym
starcie Fusiona).
Odtworzenie od zera
- Instalacja bazowa (cryinkfly). Pobierz i uruchom instalator z
https://codeberg.org/cryinkfly/Autodesk-Fusion-360-on-Linux (wersja
odniesienia: 2.1.6-Alpha), instalując do
~/.autodesk_fusionz DXVK. Instalacja przejdzie z systemowym wine — poprawki nakładamy po niej. Nie loguj się jeszcze. - Customowy wine:
./build-wine.sh— klonuje winewine-11.10, nakłada patch, buduje z flagami--enable-archs=i386,x86_64 --disable-tests(nowy WoW64, mingw-w64) i instaluje do~/fusion-wine-build. Wymagabase-devel,mingw-w64-gcci zależności budowania wine;ccacheopcjonalny. - Poprawki:
./apply-fixes.sh— kopiuje skrypty do~/.autodesk_fusion/bin, kompiluje kickera (gcc -O2 ... -lXdamage -lXfixes -lX11), ustawia trybWine-fix(linia 4logs/wineprefixes.log), instaluje oba pliki .desktop i rejestruje handleradskidmgr. - Start i logowanie:
~/.autodesk_fusion/bin/autodesk_fusion_launcher.sh, zaloguj się w ciągu 90 s (zanim wystartuje kicker) albo ubij kickera na czas logowania (punkt 3 wyżej). - Opcjonalnie, po zalogowaniu:
bin/fix-navbar-flicker.sh(wymaga istniejącego profilu użytkownika w prefiksie).
Rozwiązywanie problemów
| Objaw | Przyczyna / naprawa |
|---|---|
| Logowanie: przeglądarka się otwiera, nic nie wraca do Fusiona | handler adskidmgr używa złego wine (version mismatch z wineserverem) → ./apply-fixes.sh; diagnoza: WINEPREFIX=~/.autodesk_fusion/wineprefixes/default wine cmd /c echo test przy działającym Fusionie |
| „antivirus is likely preventing you from signing in" | kicker działał podczas logowania → pkill -f '/fusion-frame-kicker$' i spróbuj ponownie |
| Hover highlight zawiesza się na ostatniej klatce | kicker nie działa (pgrep -f '/fusion-frame-kicker$') lub Fusion odpalony bez trybu Wine-fix (linia 4 wineprefixes.log); sprawdź logs/frame-kicker.log |
| Migotanie paska nawigacji | bin/fix-navbar-flicker.sh |
| Zdublowane wpisy menu po aktualizacji Fusiona | bin/swap_desktop_files.sh |
Pułapki (nauczone bólem)
pgrep/pkill -xnie złapie kickera — nazwa procesu ma 16 znaków,commucina do 15. Zawsze-f '/fusion-frame-kicker$'.pgrep -f Fusion360.exeuruchomione ze skryptu łapie własne polecenie (wzorzec jest w cmdline). Używaćpgrep -f 'Fusion360[.]exe'.- NVIDIA obfuskuje nazwy zmiennych środowiskowych w binarkach — brak stringa
NV_DISABLE_EXPLICIT_SYNCw libce niczego nie dowodzi. - Pliki
.desktopwdesktop/*.inmają placeholder__HOME__— instalowane są przezapply-fixes.sh(nie kopiować ręcznie bez podmiany). - Przy nawrocie buga klatek po aktualizacjach sterowników: nieprzetestowana
opcja odwrotna to downgrade
nvidia-utilsdo 610.43 (cache pacmana).