# SPDX-License-Identifier: GPL-3.0-or-later # Flatpak manifest for Daily Driver # Build: flatpak-builder --user --install build-dir io.github.gregfelice.DailyDriver.yml # Run: flatpak run io.github.gregfelice.DailyDriver app-id: io.github.gregfelice.DailyDriver runtime: org.gnome.Platform runtime-version: '47' sdk: org.gnome.Sdk command: dailydriver finish-args: # GUI access - --share=ipc - --socket=fallback-x11 - --socket=wayland - --device=dri # GSettings/dconf access (for reading/writing shortcuts) # Connect to host dconf service - --talk-name=ca.desrt.dconf - --filesystem=xdg-run/dconf - --filesystem=~/.config/dconf:rw - --own-name=ca.desrt.dconf.Writer # Point dconf to host config directory # GSettings schemas from host (for GNOME Shell, mutter, etc.) - --talk-name=org.freedesktop.portal.Settings # Access host GSettings schemas (media-keys, custom keybindings) - --env=GSETTINGS_SCHEMA_DIR=/run/host/usr/share/glib-2.0/schemas # Extension detection (host-os provides read-only access to /usr) - --filesystem=host-os:ro # For detecting hardware keyboards - --filesystem=/sys/class/input:ro - --filesystem=/sys/module/hid_apple:ro # hid-apple configuration requires polkit - --system-talk-name=org.freedesktop.PolicyKit1 # Save user profiles - --filesystem=xdg-config/dailydriver # For app detection (terminal, file manager, etc.) - --talk-name=org.freedesktop.portal.Desktop # For compositor-level shortcut grabs (ShortcutGrabberService) - --talk-name=org.gnome.Shell build-options: env: PYTHONPATH: /app/lib/python3.12/site-packages modules: # dconf GIO module for GSettings backend - name: dconf buildsystem: meson config-opts: - -Dbash_completion=false - -Dman=false - -Dvapi=false cleanup: - /libexec - /share/dbus-1 sources: - type: archive url: https://download.gnome.org/sources/dconf/0.40/dconf-0.40.0.tar.xz sha256: cf7f22a4c9200421d8d3325c5c1b8b93a36843650c9f95d6451e20f0bcb24533 # Runtime dependencies - install wheels directly with unzip - name: python3-typing-extensions buildsystem: simple build-commands: - mkdir -p /app/lib/python3.12/site-packages - unzip -o *.whl -d /app/lib/python3.12/site-packages sources: - type: file url: https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl sha256: 04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d - name: python3-annotated-types buildsystem: simple build-commands: - unzip -o *.whl -d /app/lib/python3.12/site-packages sources: - type: file url: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl sha256: 1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 - name: python3-pydantic-core buildsystem: simple build-commands: - unzip -o pydantic_core-*.whl -d /app/lib/python3.12/site-packages sources: - type: file url: https://files.pythonhosted.org/packages/8d/f0/49129b27c43396581a635d8710dae54a791b17dfc50c70164866bbf865e3/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl sha256: 6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2 - name: python3-pydantic buildsystem: simple build-commands: - unzip -o *.whl -d /app/lib/python3.12/site-packages sources: - type: file url: https://files.pythonhosted.org/packages/58/26/82663c79010b28eddf29dcdd0ea723439535fa917fce5905885c0e9ba562/pydantic-2.10.5-py3-none-any.whl sha256: 4dd4e322dbe55472cb7ca7e73f4b63574eecccf2835ffa2af9021ce113c83c53 - name: python3-tomli-w buildsystem: simple build-commands: - unzip -o *.whl -d /app/lib/python3.12/site-packages sources: - type: file url: https://files.pythonhosted.org/packages/c4/ac/ce90573ba446a9bbe65838ded066a805234d159b4446ae9f8ec5bbd36cbd/tomli_w-1.1.0-py3-none-any.whl sha256: 1403179c78193e3184bfaade390ddbd071cba48a32a2e62ba11aae47490c63f7 # Main application - use meson directly - name: dailydriver buildsystem: meson builddir: true sources: - type: dir path: . skip: - build - .git - .pytest_cache - .ruff_cache - .coverage - __pycache__ - "*.pyc"