91 lines
2.5 KiB
JavaScript
91 lines
2.5 KiB
JavaScript
import Adw from 'gi://Adw';
|
|
import Gdk from 'gi://Gdk?version=4.0';
|
|
import GdkPixbuf from 'gi://GdkPixbuf';
|
|
import GdkWayland from 'gi://GdkWayland?version=4.0';
|
|
import GdkX11 from 'gi://GdkX11?version=4.0';
|
|
import Gio from 'gi://Gio';
|
|
import GLib from 'gi://GLib';
|
|
let GLibUnix;
|
|
GLibUnix = await import('gi://GLibUnix').then(module => module.default).catch(_e => {
|
|
console.log('GLibUnix not found.');
|
|
});
|
|
if (!GLibUnix) {
|
|
console.log('Falling back to GLib...');
|
|
GLibUnix = {
|
|
'signal_add_full': GLib.unix_signal_add,
|
|
};
|
|
}
|
|
import GnomeDesktop from 'gi://GnomeDesktop?version=4.0';
|
|
const GnomeAutoar = await import('gi://GnomeAutoar')
|
|
.then(module => module.default)
|
|
.catch(e => console.error(e));
|
|
import GObject from 'gi://GObject';
|
|
import Graphene from 'gi://Graphene';
|
|
import Gsk from 'gi://Gsk';
|
|
import Gtk from 'gi://Gtk';
|
|
import Pango from 'gi://Pango';
|
|
const Poppler = await import('gi://Poppler')
|
|
.then(module => module.default)
|
|
.catch(e => console.error(`Install Poppler for proper fallback pdf thumbnailing \n ${e}`));
|
|
const Cairo = await import('gi://cairo')
|
|
.then(module => module.default)
|
|
.catch(e => console.error(`Install Cairo for proper fallback pdf thumbnailing \n ${e}`));
|
|
import gettext from 'gettext';
|
|
|
|
const GioUnix = await import('gi://GioUnix?version=2.0')
|
|
.then(module => module.default)
|
|
.catch(_e => {
|
|
console.log('GioUnix not found, falling back to Gio...');
|
|
});
|
|
|
|
var DesktopAppInfo;
|
|
// Prefer GioUnix if available (newer GLib ≥ 2.80)
|
|
if (GioUnix?.DesktopAppInfo)
|
|
DesktopAppInfo = GioUnix.DesktopAppInfo;
|
|
else if (Gio?.DesktopAppInfo)
|
|
DesktopAppInfo = Gio.DesktopAppInfo;
|
|
|
|
if (!DesktopAppInfo)
|
|
console.error('DesktopAppInfo is not available on this system!');
|
|
|
|
const WebKit = await import('gi://WebKit?version=6.0')
|
|
.then(m => m.default)
|
|
.catch(e => {
|
|
console.log(`WebKit GI not found; desktop widgets disabled\n${e}`);
|
|
return null;
|
|
});
|
|
|
|
const Soup = await import('gi://Soup?version=3.0')
|
|
.then(m => m.default)
|
|
.catch(e => {
|
|
console.log(`Soup GI not found; desktop widgets disabled\n${e}`);
|
|
return null;
|
|
});
|
|
|
|
const DesktopWidgetCapability = !!WebKit && !!Soup;
|
|
|
|
export {
|
|
Adw,
|
|
Cairo,
|
|
DesktopAppInfo,
|
|
DesktopWidgetCapability,
|
|
Gdk,
|
|
GdkPixbuf,
|
|
GdkX11,
|
|
GdkWayland,
|
|
gettext,
|
|
GLib,
|
|
GLibUnix,
|
|
GnomeDesktop,
|
|
GnomeAutoar,
|
|
GObject,
|
|
Gio,
|
|
Graphene,
|
|
Gsk,
|
|
Gtk,
|
|
Pango,
|
|
Poppler,
|
|
Soup,
|
|
WebKit
|
|
};
|