# Try Omarchy for Linux: the launcher and the QEMU runtime it drives, as one # Flatpak. QEMU and virglrenderer are upstream releases; the patches are the # Windows runtime's file-drop event plus the Linux window behavior the # launcher needs (close requests, keyboard grab on focus, window title). # GNOME 51 provides GTK4/libadwaita and the Freedesktop 26.08 GL extensions. # # Build with build-flatpak.sh beside this file. app-id: com.tryomarchy.TryOmarchy runtime: org.gnome.Platform runtime-version: '51' sdk: org.gnome.Sdk command: try-omarchy finish-args: - --device=kvm - --device=dri - --socket=wayland - --socket=fallback-x11 - --share=ipc # QEMU's user-mode network (slirp) and the guest download. - --share=network - --socket=pulseaudio - --filesystem=xdg-run/pipewire-0 - --talk-name=org.kde.StatusNotifierWatcher cleanup: - /include - /lib/pkgconfig - /share/man - '*.a' - '*.la' modules: - name: wl-clipboard buildsystem: meson config-opts: - -Dzshcompletiondir=no - -Dfishcompletiondir=no sources: - type: archive url: https://github.com/bugaevc/wl-clipboard/archive/refs/tags/v2.3.0.tar.gz sha256: b4dc560973f0cd74e02f817ffa2fd44ba645a4f1ea94b7b9614dacc9f895f402 - name: libXmu buildsystem: autotools config-opts: - --disable-docs - --disable-static sources: - type: archive url: https://www.x.org/releases/individual/lib/libXmu-1.2.1.tar.xz sha256: fcb27793248a39e5fcc5b9c4aec40cc0734b3ca76aac3d7d1c264e7f7e14e8b2 - name: xclip buildsystem: autotools sources: - type: archive url: https://github.com/astrand/xclip/archive/refs/tags/0.13.tar.gz sha256: ca5b8804e3c910a66423a882d79bf3c9450b875ac8528791fb60ec9de667f758 - name: clipboard-capabilities buildsystem: simple build-commands: - cc clipboard-capabilities.c -o try-omarchy-clipboard-capabilities $(pkg-config --cflags --libs wayland-client) - install -Dm755 try-omarchy-clipboard-capabilities /app/bin/try-omarchy-clipboard-capabilities sources: - type: file path: clipboard-capabilities.c - name: libslirp buildsystem: meson sources: - type: archive url: https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v4.9.1/libslirp-v4.9.1.tar.bz2 sha256: 3caff6e2de445f4995629d4929c55419f661b2b1d14f12481e155a71c1e8f811 # virglrenderer's gallium format tables are generated with PyYAML, which # the SDK lacks. Needed at build time only. - name: pyyaml buildsystem: simple build-commands: - pip3 install --no-deps --no-build-isolation --prefix=${FLATPAK_DEST} . cleanup: - '*' sources: - type: archive url: https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz sha256: d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f - name: virglrenderer buildsystem: meson build-options: env: PYTHONPATH: /app/lib/python3.13/site-packages config-opts: - -Dplatforms=egl - -Dvenus=true - -Dvideo=false - -Dtests=false sources: - type: archive url: https://gitlab.freedesktop.org/virgl/virglrenderer/-/archive/1.3.0/virglrenderer-1.3.0.tar.bz2 sha256: 088040d130eaa0458a978fe7867fbfb1fcf1fdff52bf3b27a00658828bc4189f - name: qemu buildsystem: simple build-commands: - >- ./configure --prefix=/app --target-list=x86_64-softmmu --enable-kvm --enable-sdl --enable-opengl --enable-virglrenderer --enable-pipewire --enable-slirp --enable-virtfs --enable-tools --audio-drv-list=pipewire,sdl --disable-gtk --disable-spice --disable-xen --disable-user --disable-docs --disable-werror --disable-modules --disable-download - make -j${FLATPAK_BUILDER_N_JOBS} - make install cleanup: - /share/applications - /share/icons sources: - type: archive url: https://download.qemu.org/qemu-11.1.1.tar.xz sha256: 079ffbff8a7111bbc89022107cbabf3bbfd614d5fc9d7cc675991196aca12482 - type: patch path: ../patches/qemu/0007-report-native-file-drops.patch - type: patch path: patches/qemu/0101-report-sdl-close-requests.patch - type: patch path: patches/qemu/0102-grab-keyboard-while-sdl-window-has-focus.patch - type: patch path: patches/qemu/0103-title-sdl-windows-with-the-vm-name.patch - type: patch path: patches/qemu/0104-report-sdl-window-visibility.patch - type: patch path: patches/qemu/0105-follow-sdl-backing-scale.patch - type: patch path: patches/qemu/0106-allow-larger-virtio-gpu-backing-lists.patch # Build GTK separately so launcher edits reuse the expensive bindings build. - name: try-omarchy-setup buildsystem: simple build-options: env: CGO_ENABLED: '1' GOTOOLCHAIN: local GOFLAGS: -mod=mod -trimpath GOSUMDB: 'off' build-commands: - >- cd linux-ui && PATH="$PWD/../go/bin:$PATH" GOPROXY="file://$PWD/../goproxy" GOCACHE="$PWD/../.gocache" GOMODCACHE="$PWD/../.gomodcache" go build -p 2 -tags 'gtk_4_18,adw_1_7' -o ${FLATPAK_DEST}/bin/try-omarchy-setup . sources: - type: dir path: ../../linux-ui dest: linux-ui - go-sources.json - type: archive url: https://go.dev/dl/go1.27.1.linux-amd64.tar.gz sha256: 63d339f0da5ab53635a56f2490a7984dfe12dfcff22ad749f63edaf590168445 dest: go # The cgo-free launcher, built offline with a pinned toolchain and modules # served from a local file proxy. - name: try-omarchy buildsystem: simple build-options: env: CGO_ENABLED: '0' GOTOOLCHAIN: local GOFLAGS: -mod=mod -trimpath GOSUMDB: 'off' build-commands: - echo v1.19.2 > goproxy/github.com/klauspost/compress/@v/list - >- cd app && PATH="$PWD/../go/bin:$PATH" GOPROXY="file://$PWD/../goproxy" GOCACHE="$PWD/../.gocache" GOMODCACHE="$PWD/../.gomodcache" go build -o ${FLATPAK_DEST}/bin/try-omarchy . - install -Dm644 com.tryomarchy.TryOmarchy.desktop ${FLATPAK_DEST}/share/applications/com.tryomarchy.TryOmarchy.desktop - install -Dm644 app/OmarchyIcon.svg ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/com.tryomarchy.TryOmarchy.svg - install -Dm644 com.tryomarchy.TryOmarchy.metainfo.xml ${FLATPAK_DEST}/share/metainfo/com.tryomarchy.TryOmarchy.metainfo.xml sources: - type: dir path: ../../app dest: app - type: archive url: https://go.dev/dl/go1.27.1.linux-amd64.tar.gz sha256: 63d339f0da5ab53635a56f2490a7984dfe12dfcff22ad749f63edaf590168445 dest: go - app-go-sources.json - type: file path: com.tryomarchy.TryOmarchy.desktop - type: file path: com.tryomarchy.TryOmarchy.metainfo.xml