{"id":50999951,"url":"https://github.com/ifilot/uil","last_synced_at":"2026-06-20T13:31:10.217Z","repository":{"id":360150816,"uuid":"1248868148","full_name":"ifilot/uil","owner":"ifilot","description":"Fast, dual-screen PDF presentation utility optimized for Beamer slide decks.","archived":false,"fork":false,"pushed_at":"2026-05-25T07:42:45.000Z","size":51,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-25T09:12:26.704Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ifilot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-25T06:03:26.000Z","updated_at":"2026-05-25T07:42:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ifilot/uil","commit_stats":null,"previous_names":["ifilot/uil"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ifilot/uil","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifilot%2Fuil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifilot%2Fuil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifilot%2Fuil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifilot%2Fuil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ifilot","download_url":"https://codeload.github.com/ifilot/uil/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifilot%2Fuil/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34572423,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-20T13:31:09.420Z","updated_at":"2026-06-20T13:31:10.203Z","avatar_url":"https://github.com/ifilot.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UIL\n\nPronunciation: `/ œyl /`\n\n[![Windows Installer](https://github.com/ifilot/uil/actions/workflows/windows-installer.yml/badge.svg)](https://github.com/ifilot/uil/actions/workflows/windows-installer.yml)\n[![License: LGPL v3](https://img.shields.io/badge/license-LGPL--3.0--only-blue.svg)](LICENSE)\n[![Version](https://img.shields.io/badge/version-v0.1.0-blue.svg)](CMakeLists.txt)\n\n## Purpose\n\n`uil` is a Windows-focused Qt presentation prototype for Beamer-style slide\ndecks. It can open regular PDF presentations as well as so-called `uil`\npresentations: a PDF bundled together with its supporting assets. That second\nform is useful when a slide deck contains movies, because the PDF alone does not\ncarry the media in a way that is convenient for a lightweight presenter.\n\nMovie support is an important part of the project. `uil` uses the handles\nprovided by the Beamer LaTeX class to connect slide content to the corresponding\nmedia assets, allowing presentations to include videos without giving up the\nfamiliar PDF-based workflow. The application is also designed with effective\ncaching in mind, so it remains practical on low-end systems where rendering\nevery slide or media frame on demand would be too expensive.\n\nThe goal is not only to show slides, but to support live presentation and\nteaching workflows. Slides can be annotated during a session, and those\nannotations can later be saved, making `uil` useful in classroom and lecture\nsettings where the presentation often becomes part of the teaching material.\n\n## Build\n\nWindows builds are intended to be made with **MSYS2 UCRT64**. Use the\n`MSYS2 UCRT64` shell, not the plain `MSYS`, `MINGW64`, or Windows `cmd.exe`\nprompt, so CMake finds the same compiler, Qt libraries, and runtime DLLs that\nthe deployment scripts expect.\n\nInstall or update MSYS2 first, then install the build dependencies:\n\n```bash\npacman -Syu\n```\n\nIf MSYS2 asks you to close the terminal after the system update, reopen the\n`MSYS2 UCRT64` shell and run `pacman -Syu` again until there is nothing left to\nupdate.\n\nThen install the project dependencies:\n\n```bash\npacman -S --needed \\\n  git \\\n  mingw-w64-ucrt-x86_64-toolchain \\\n  mingw-w64-ucrt-x86_64-cmake \\\n  mingw-w64-ucrt-x86_64-ninja \\\n  mingw-w64-ucrt-x86_64-qt6-base \\\n  mingw-w64-ucrt-x86_64-qt6-pdf \\\n  mingw-w64-ucrt-x86_64-qt6-svg \\\n  mingw-w64-ucrt-x86_64-zlib \\\n  mingw-w64-ucrt-x86_64-ffmpeg\n```\n\n`ffmpeg` is optional at configure time, but install it for media-frame\nextraction support. The `toolchain` group provides GCC, binutils, make, and\n`pkgconf`; CMake uses `pkgconf` to detect the FFmpeg libraries when they are\navailable.\n\nConfigure and build from the repository root:\n\n```bash\ncmake -S . -B build-windows -G Ninja\ncmake --build build-windows\n./build-windows/uil.exe\n```\n\nTo create a deployable Windows staging directory after building:\n\n```bash\nscripts/windows/deploy-msys2.sh\n```\n\nThe deployment script writes a complete staged dependency audit to\n`dist/uil-windows-x64/THIRD_PARTY_NOTICES.txt` and\n`dist/uil-windows-x64/third-party/`. Those files include the staged file\ninventory, owning MSYS2 packages, package versions, package license metadata,\ncopied installed license/notice files, and a generated review file for\nGPL/LGPL-family attention items.\n\nTo build the installer, install Inno Setup 6 for Windows, make sure `ISCC.exe`\nis available on `PATH` or set `ISCC=/path/to/ISCC.exe`, then run:\n\n```bash\nscripts/windows/build-inno-installer.sh\n```\n\n## License\n\n`uil` is licensed under the GNU Lesser General Public License v3.0 only. The\napplication links Qt 6 modules that are available under Qt's commercial or\nopen-source licensing options, including LGPL/GPL terms depending on module and\ndistribution. Windows release builds also redistribute the MSYS2 runtime\ndependency closure, including optional FFmpeg dependencies when FFmpeg is\navailable at configure time. See [LICENSE](LICENSE) for the application LGPLv3\ntext, [LICENSES/GPL-3.0-only.txt](LICENSES/GPL-3.0-only.txt) for the GPLv3\nterms incorporated by LGPLv3, and the generated third-party notices in release\nartifacts for redistributed dependency licenses.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fifilot%2Fuil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fifilot%2Fuil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fifilot%2Fuil/lists"}