# LogicForge Linux preview 0.18.1 Natywna aplikacja C# / Avalonia 12.1.4, bez przeglądarki, Wine i WebView. Ten port korzysta z istniejącego LogicForge.Core i LogicForge.Automation. Wersja Windows WPF pozostaje osobnym, działającym projektem. ## Uruchomienie Pakiet Debian/Kali/Ubuntu amd64: ```sh sudo apt install './logicforge-preview_0.18.1-preview1_amd64.deb' logicforge-preview ``` Pakiet przenośny zawiera własny runtime .NET — SDK nie jest potrzebne: ```sh mkdir -p ~/LogicForgePreview tar -xzf LogicForge-Linux-0.18.1-preview-x64.tar.gz -C ~/LogicForgePreview ~/LogicForgePreview/LogicForge.Desktop ``` Wypakowane `install.sh` instaluje program dla bieżącego użytkownika bez sudo, tworzy skrót w menu i polecenie `~/.local/bin/logicforge-preview`. Na Linuxie wymagane są biblioteki systemowe: fontconfig, X11, ICE, SM, Xrandr, Xi, Xcursor, ICU oraz OpenSSL i czcionki DejaVu. Pakiet .deb deklaruje zależności. Backend X11 działa również przez XWayland i WSLg. Nie jest to pakiet dla ARM64 ani Alpine/musl. Testowano Kali Linux x86_64 w WSL2/WSLg; inne dystrybucje wymagają osobnego sprawdzenia. Brak certyfikacji wydajności GPU i dużych projektów. Testy ramki obejmują maksymalizację, przywracanie i zamykanie przez przyciski. WSLg w nieaktywnej sesji testowej odmawiało minimalizacji i nie przyjmowało syntetycznych kliknięć X11. Minimalizacja, fizyczne przeciąganie i zmiana rozmiaru wymagają jeszcze sprawdzenia w aktywnym oknie użytkownika. ## Co działa w porcie - Biblioteka z wyszukiwaniem, symbole bramek, stany 0/1/X/Z i piny. - Umieszczanie elementów kliknięciem w bibliotece i kliknięciem na płótnie. - Siatka 20 jednostek, przesuwanie, zaznaczanie ramką i Ctrl, zoom pod kursorem. - Przewody: kliknij pin wyjściowy i wejściowy. Esc anuluje. - Przesuwanie płótna środkowym przyciskiem lub spacją z przeciągnięciem. - Panel właściwości: nazwa, podpis, liczba pinów, opóźnienia, zegar i blokada. - Kopiowanie, wklejanie, duplikowanie, usuwanie, obrót, undo/redo. - Kilka projektów w zakładkach, otwieranie i zapis .lfg zgodnych z Windows. - Run/pauza/krok/reset, wspólny silnik w osobnym zadaniu, analizator sygnałów. - Tworzenie IC z kompletnego zaznaczenia i otwieranie kopii jego wnętrza. Przycisk „Zatwierdź zmiany IC” aktualizuje definicję w projekcie nadrzędnym. - Otwieranie i symulacja istniejących przykładów cyfrowych i elektrycznych. - Diagnostyka, eksport całego schematu do PNG, JPG i PDF, SVG, BOM CSV oraz VCD. Eksport obrazów pomija panele, siatkę i zaznaczenie. Nie zmienia kamery edytora. PNG/JPG ma skalę 2×, ograniczoną do 8192 px na bok i 32 mln pikseli. PDF zawiera obraz układu na jednej stronie A4 poziomo, z zachowaniem proporcji. - Własna cienka ramka okna i wektorowe przyciski minimalizacji, maksymalizacji, przywracania oraz zamykania. Pasek obsługuje przeciąganie i dwuklik; krawędzie i narożniki służą do zmiany rozmiaru. Dialogi mają ten sam styl. - Automatyczne kopie co około 30 s do `~/.local/share/LogicForge/Desktop`; ponowne uruchomienie bez argumentu .lfg otwiera dostępne kopie do odzyskania. - Lokalne MCP: tryb bez okna i jawne połączenie z linuksowym edytorem. Skróty: Ctrl+N/O/S, Ctrl+Shift+S, Ctrl+Z/Y, Ctrl+C/V/D/A/G, Delete, Home (dopasuj), F5 (run/pauza), F10 (krok), H (przesuwanie), V (zaznaczanie). Dwuklik przełącznika zmienia stan; przycisk chwilowy działa podczas przytrzymania. ## Zakres preview To pierwszy port edytora, nie kompletna migracja wszystkich funkcji Windows. Brakuje SmartWire w interfejsie, pełnego systemu motywów i tłumaczeń, odłączanych paneli oraz przewijania/wyzwalania analizatora. CAD 3D jest osobnym projektem i pozostaje poza zakresem tej aplikacji. Wykres pokazuje ograniczony, ostatni fragment historii. Cyfra jest na razie rysowana tekstem; symbole elementów elektrycznych wymagają dalszego przeniesienia. Wklejanie używa przesunięcia 40 jednostek; nie jest jeszcze trybem pod myszką. IC i inne złożone biblioteki kopiuj na razie w obrębie tego samego projektu. Kopie odzyskiwania są zachowywane — można je usunąć ręcznie po zapisaniu projektu. ## MCP na Linuxie Program `Mcp/LogicForge.Mcp` to linuksowy ELF, transport stdio. Konfiguracja klienta powinna wskazywać ten plik i argumenty: ```text --editor /opt/logicforge-preview/LogicForge.Desktop ``` `editor_list` i `editor_connect` łączą się z oknem tego samego użytkownika. .NET named pipes na Linuxie korzystają z lokalnych gniazd Unix. Nie wystawiamy portu TCP. Klient działający w Windows nie widzi bezpośrednio linuksowej listy okien: musi uruchomić linuksowy serwer np. przez `wsl.exe -d kali-linux -- ...`. Nie zmieniamy istniejącej konfiguracji Codex dla wersji Windows. PNG i PDF działają po podłączeniu do edytora oraz przez linuksowy renderer uruchamiany bez otwierania okna. Renderer wymaga dostępnej sesji graficznej (X11/XWayland/WSLg), ale nie wymaga uruchomionego edytora. Eksport SVG/BOM/VCD nie wymaga sesji graficznej. ## Budowanie i testy Na Windows: `powershell -ExecutionPolicy Bypass -File build-linux.ps1`. Skrypt używa Windows SDK .NET i WSL do utworzenia .deb i .tar.gz w Pobranych. Na Linuxie z .NET 10 SDK: ```sh dotnet publish src/LogicForge.Desktop -c Release -r linux-x64 --self-contained -o artifacts/linux-0.18.1 dotnet publish src/LogicForge.Mcp -c Release -r linux-x64 --self-contained -o artifacts/linux-0.18.1/Mcp sh installer/linux/package.sh "$PWD/artifacts/linux-0.18.1" "$HOME/Downloads" artifacts/linux-0.18.1/LogicForge.Desktop --smoke-test --test-output="$PWD/artifacts/linux-smoke" --samples="$PWD/samples" ```