Add PKGBUILD file (#25)
This commit is contained in:
parent
04edf2eecc
commit
eb81b7af4a
|
|
@ -0,0 +1,76 @@
|
||||||
|
# Maintainer: hodasemi <michaelh.95 at t-online dot de>
|
||||||
|
_pkgbase=breezy-desktop
|
||||||
|
pkgname="${_pkgbase}"-gnome
|
||||||
|
pkgver=0.1
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Breezy desktop - XR desktop"
|
||||||
|
arch=('x86_64')
|
||||||
|
url="https://github.com/wheaney/breezy-desktop"
|
||||||
|
license=('GPL-3.0')
|
||||||
|
makedepends=('ninja' 'meson' 'librsvg')
|
||||||
|
depends=('python' 'python-pydbus' 'gnome-shell' 'XRLinuxDriver-BreezyGNOME')
|
||||||
|
conflicts=("${_pkgbase}")
|
||||||
|
source=("git+${url}")
|
||||||
|
md5sums=(SKIP)
|
||||||
|
|
||||||
|
_uuid="breezydesktop@xronlinux.com"
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd ${_pkgbase}
|
||||||
|
|
||||||
|
# init submodules (only required ones)
|
||||||
|
git submodule update --init --recursive modules/sombrero
|
||||||
|
git submodule update --init --recursive ui/modules/PyXRLinuxDriverIPC
|
||||||
|
|
||||||
|
# build binaries
|
||||||
|
cd ui
|
||||||
|
meson setup build
|
||||||
|
cd build
|
||||||
|
meson compile
|
||||||
|
|
||||||
|
# prepare extension
|
||||||
|
cd ../..
|
||||||
|
unlink gnome/src/schemas/com.xronlinux.BreezyDesktop.gschema.xml
|
||||||
|
cp ui/data/com.xronlinux.BreezyDesktop.gschema.xml gnome/src/schemas/
|
||||||
|
glib-compile-schemas --targetdir="gnome/src/schemas" "gnome/src/schemas"
|
||||||
|
|
||||||
|
unlink gnome/src/textures/custom_banner.png
|
||||||
|
cp vulkan/custom_banner.png gnome/src/textures/
|
||||||
|
|
||||||
|
unlink gnome/src/textures/calibrating.png
|
||||||
|
cp modules/sombrero/calibrating.png gnome/src/textures/
|
||||||
|
|
||||||
|
unlink gnome/src/IMUAdjust.frag
|
||||||
|
cp modules/sombrero/IMUAdjust.frag gnome/src/
|
||||||
|
|
||||||
|
# create icon
|
||||||
|
rsvg-convert ui/data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 64 -h 64 -o ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_64.png
|
||||||
|
rsvg-convert ui/data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 128 -h 128 -o ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_128.png
|
||||||
|
rsvg-convert ui/data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 256 -h 256 -o ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_256.png
|
||||||
|
rsvg-convert ui/data/icons/hicolor/scalable/apps/com.xronlinux.BreezyDesktop.svg -w 1024 -h 1024 -o ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_1024.png
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
# copy gnome extension
|
||||||
|
install -Dm755 ${_pkgbase}/ui/data/com.xronlinux.BreezyDesktop.gschema.xml "${pkgdir}"/usr/share/glib-2.0/schemas/com.xronlinux.BreezyDesktop.gschema.xml
|
||||||
|
|
||||||
|
install -d "${pkgdir}/usr/share/gnome-shell/extensions/${_uuid}/"
|
||||||
|
cp -r ${_pkgbase}/gnome/src/* "${pkgdir}/usr/share/gnome-shell/extensions/${_uuid}/"
|
||||||
|
|
||||||
|
# copy binaries
|
||||||
|
install -d "${pkgdir}"/usr/local/share/breezydesktop/breezydesktop/
|
||||||
|
cp -r ${_pkgbase}/ui/src/*.py "${pkgdir}"/usr/local/share/breezydesktop/breezydesktop/
|
||||||
|
install -Dm755 ${_pkgbase}/ui/modules/PyXRLinuxDriverIPC/xrdriveripc.py "${pkgdir}"/usr/local/share/breezydesktop/breezydesktop/xrdriveripc.py
|
||||||
|
|
||||||
|
install -Dm755 ${_pkgbase}/ui/build/src/breezydesktop "${pkgdir}"/usr/bin/breezydesktop
|
||||||
|
|
||||||
|
install -Dm755 ${_pkgbase}/ui/build/src/breezydesktop.gresource "${pkgdir}"/usr/local/share/breezydesktop/breezydesktop.gresource
|
||||||
|
install -Dm755 ${_pkgbase}/ui/build/data/com.xronlinux.BreezyDesktop.desktop "${pkgdir}"/usr/share/applications/com.xronlinux.BreezyDesktop.desktop
|
||||||
|
sed -i '/Exec/c\Exec=breezydesktop --skip-verification' "${pkgdir}"/usr/share/applications/com.xronlinux.BreezyDesktop.desktop
|
||||||
|
|
||||||
|
install -Dm755 ${_pkgbase}/ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_64.png "${pkgdir}"/usr/share/icons/hicolor/64x64/apps/com.xronlinux.BreezyDesktop.png
|
||||||
|
install -Dm755 ${_pkgbase}/ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_128.png "${pkgdir}"/usr/share/icons/hicolor/128x128/apps/com.xronlinux.BreezyDesktop.png
|
||||||
|
install -Dm755 ${_pkgbase}/ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_256.png "${pkgdir}"/usr/share/icons/hicolor/256x256/apps/com.xronlinux.BreezyDesktop.png
|
||||||
|
install -Dm755 ${_pkgbase}/ui/data/icons/hicolor/com.xronlinux.BreezyDesktop_1024.png "${pkgdir}"/usr/share/icons/hicolor/1024x1024/apps/com.xronlinux.BreezyDesktop.png
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -21,6 +21,7 @@ import gi
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import argparse
|
||||||
|
|
||||||
from logging.handlers import TimedRotatingFileHandler
|
from logging.handlers import TimedRotatingFileHandler
|
||||||
|
|
||||||
|
|
@ -58,13 +59,14 @@ XRDriverIPC.set_instance(XRDriverIPC(logger))
|
||||||
class BreezydesktopApplication(Adw.Application):
|
class BreezydesktopApplication(Adw.Application):
|
||||||
"""The main application singleton class."""
|
"""The main application singleton class."""
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self, skip_verification):
|
||||||
super().__init__(application_id='com.xronlinux.BreezyDesktop',
|
super().__init__(application_id='com.xronlinux.BreezyDesktop',
|
||||||
flags=Gio.ApplicationFlags.DEFAULT_FLAGS)
|
flags=Gio.ApplicationFlags.DEFAULT_FLAGS)
|
||||||
self.create_action('quit', self.on_quit_action, ['<primary>q'])
|
self.create_action('quit', self.on_quit_action, ['<primary>q'])
|
||||||
self.create_action('about', self.on_about_action)
|
self.create_action('about', self.on_about_action)
|
||||||
self.create_action('license', self.on_license_action)
|
self.create_action('license', self.on_license_action)
|
||||||
self.create_action('reset_driver', self.on_reset_driver_action)
|
self.create_action('reset_driver', self.on_reset_driver_action)
|
||||||
|
self._skip_verification = skip_verification
|
||||||
|
|
||||||
def do_activate(self):
|
def do_activate(self):
|
||||||
"""Called when the application is activated.
|
"""Called when the application is activated.
|
||||||
|
|
@ -74,7 +76,7 @@ class BreezydesktopApplication(Adw.Application):
|
||||||
"""
|
"""
|
||||||
win = self.props.active_window
|
win = self.props.active_window
|
||||||
if not win:
|
if not win:
|
||||||
win = BreezydesktopWindow(application=self)
|
win = BreezydesktopWindow(self._skip_verification, application=self)
|
||||||
win.connect('close-request', lambda *_: self.on_quit_action())
|
win.connect('close-request', lambda *_: self.on_quit_action())
|
||||||
win.connect('destroy', lambda *_: self.on_quit_action())
|
win.connect('destroy', lambda *_: self.on_quit_action())
|
||||||
win.present()
|
win.present()
|
||||||
|
|
@ -125,5 +127,9 @@ class BreezydesktopApplication(Adw.Application):
|
||||||
|
|
||||||
|
|
||||||
def main(version):
|
def main(version):
|
||||||
app = BreezydesktopApplication()
|
parser = argparse.ArgumentParser()
|
||||||
return app.run(sys.argv)
|
parser.add_argument("-sv", "--skip-verification", action="store_true")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
app = BreezydesktopApplication(args.skip_verification)
|
||||||
|
return app.run(None)
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ class BreezydesktopWindow(Gtk.ApplicationWindow):
|
||||||
license_action_needed_banner = Gtk.Template.Child()
|
license_action_needed_banner = Gtk.Template.Child()
|
||||||
missing_breezy_features_banner = Gtk.Template.Child()
|
missing_breezy_features_banner = Gtk.Template.Child()
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, skip_verification, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
||||||
self.state_manager = StateManager.get_instance()
|
self.state_manager = StateManager.get_instance()
|
||||||
|
|
@ -57,6 +57,8 @@ class BreezydesktopWindow(Gtk.ApplicationWindow):
|
||||||
|
|
||||||
self._handle_state_update(self.state_manager, None)
|
self._handle_state_update(self.state_manager, None)
|
||||||
|
|
||||||
|
self._skip_verification = skip_verification
|
||||||
|
|
||||||
self.connect("destroy", self._on_window_destroy)
|
self.connect("destroy", self._on_window_destroy)
|
||||||
|
|
||||||
def _handle_state_update(self, state_manager, val):
|
def _handle_state_update(self, state_manager, val):
|
||||||
|
|
@ -71,9 +73,11 @@ class BreezydesktopWindow(Gtk.ApplicationWindow):
|
||||||
for child in self.main_content:
|
for child in self.main_content:
|
||||||
self.main_content.remove(child)
|
self.main_content.remove(child)
|
||||||
|
|
||||||
if not verify_installation():
|
if not self._skip_verification:
|
||||||
self.main_content.append(self.failed_verification)
|
if not verify_installation():
|
||||||
elif not self.state_manager.get_property('license-present'):
|
self.main_content.append(self.failed_verification)
|
||||||
|
|
||||||
|
if not self.state_manager.get_property('license-present'):
|
||||||
self.main_content.append(self.no_license)
|
self.main_content.append(self.no_license)
|
||||||
elif not ExtensionsManager.get_instance().is_installed():
|
elif not ExtensionsManager.get_instance().is_installed():
|
||||||
self.main_content.append(self.no_extension)
|
self.main_content.append(self.no_extension)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue