app-id: com.leobelisario.LYNXAtlas runtime: org.gnome.Platform runtime-version: '47' sdk: org.gnome.Sdk command: lynx-atlas finish-args: - --socket=fallback-x11 - --socket=wayland - --share=ipc - --device=dri # Permite indexar PDFs sem dar permissão para alterar os documentos. - --filesystem=home:ro modules: - name: dependencias buildsystem: simple # Compilação local: pip precisa de rede para baixar as dependências. build-options: build-args: - --share=network build-commands: - pip3 install --no-cache-dir --prefix=/app -r requirements.txt sources: - type: file path: requirements.txt - name: lynx-atlas buildsystem: simple build-commands: - install -Dm644 main.py /app/share/lynx-atlas/main.py - install -Dm644 bridge.py /app/share/lynx-atlas/bridge.py - mkdir -p /app/share/lynx-atlas/core /app/share/lynx-atlas/ui /app/share/lynx-atlas/assets/icons - install -m644 core/*.py /app/share/lynx-atlas/core/ - install -m644 ui/*.qml /app/share/lynx-atlas/ui/ - install -m644 assets/icons/*.png /app/share/lynx-atlas/assets/icons/ - install -Dm644 assets/icons/lynx-atlas_32.png /app/share/icons/hicolor/32x32/apps/com.leobelisario.LYNXAtlas.png - install -Dm644 assets/icons/lynx-atlas_48.png /app/share/icons/hicolor/48x48/apps/com.leobelisario.LYNXAtlas.png - install -Dm644 assets/icons/lynx-atlas_64.png /app/share/icons/hicolor/64x64/apps/com.leobelisario.LYNXAtlas.png - install -Dm644 assets/icons/lynx-atlas_128.png /app/share/icons/hicolor/128x128/apps/com.leobelisario.LYNXAtlas.png - install -Dm644 assets/icons/lynx-atlas_256.png /app/share/icons/hicolor/256x256/apps/com.leobelisario.LYNXAtlas.png - install -Dm644 assets/icons/lynx-atlas_512.png /app/share/icons/hicolor/512x512/apps/com.leobelisario.LYNXAtlas.png - mkdir -p /app/share/doc/lynx-atlas/licenses - install -m644 LICENSE README.md THIRD_PARTY_NOTICES.md /app/share/doc/lynx-atlas/ - install -m644 licenses/* /app/share/doc/lynx-atlas/licenses/ - mkdir -p /app/bin /app/share/applications - | cat << 'EOF' > /app/bin/lynx-atlas #!/bin/sh set -eu export PYTHONPATH="/app/share/lynx-atlas${PYTHONPATH:+:$PYTHONPATH}" export PYTHONDONTWRITEBYTECODE=1 # main.py abre index.db por caminho relativo; /app é somente leitura. mkdir -p "$XDG_DATA_HOME" cd "$XDG_DATA_HOME" exec python3 /app/share/lynx-atlas/main.py "$@" EOF - chmod +x /app/bin/lynx-atlas - | cat << 'EOF' > /app/share/applications/com.leobelisario.LYNXAtlas.desktop [Desktop Entry] Name=LYNX Atlas GenericName=Pesquisa e indexação de PDFs Comment=Fast PDF Search & Indexing Exec=lynx-atlas Icon=com.leobelisario.LYNXAtlas Terminal=false Type=Application Categories=Office;Utility; Keywords=PDF;Busca;Pesquisa; EOF sources: - type: dir path: . skip: - .git - .agents - .codex - .venv - venv - __pycache__ - core/__pycache__ - tests - .flatpak-builder - build-dir - repo - '*.flatpak' - 'index.db*' # Comandos principais (execute na raiz do projeto): # flatpak-builder --repo=repo --force-clean build-dir com.leobelisario.LYNXAtlas.yaml && flatpak build-bundle repo LYNXAtlas.flatpak com.leobelisario.LYNXAtlas && flatpak install --user --reinstall LYNXAtlas.flatpak