commit 0c9c0f1b3d0e023465bb4a27c571e87eb6eadcfc Author: MeowcaTheoRange Date: Mon Apr 24 01:47:34 2023 -0500 this fucking library diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/COPYING @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/data/icons/hicolor/scalable/apps/xyz.trollcall.Beekeeper.svg b/data/icons/hicolor/scalable/apps/xyz.trollcall.Beekeeper.svg new file mode 100644 index 0000000..68537ca --- /dev/null +++ b/data/icons/hicolor/scalable/apps/xyz.trollcall.Beekeeper.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/icons/hicolor/symbolic/apps/xyz.trollcall.Beekeeper-symbolic.svg b/data/icons/hicolor/symbolic/apps/xyz.trollcall.Beekeeper-symbolic.svg new file mode 100644 index 0000000..807d048 --- /dev/null +++ b/data/icons/hicolor/symbolic/apps/xyz.trollcall.Beekeeper-symbolic.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/data/icons/meson.build b/data/icons/meson.build new file mode 100644 index 0000000..b97d3bb --- /dev/null +++ b/data/icons/meson.build @@ -0,0 +1,13 @@ +application_id = 'xyz.trollcall.Beekeeper' + +scalable_dir = join_paths('hicolor', 'scalable', 'apps') +install_data( + join_paths(scalable_dir, ('@0@.svg').format(application_id)), + install_dir: join_paths(get_option('datadir'), 'icons', scalable_dir) +) + +symbolic_dir = join_paths('hicolor', 'symbolic', 'apps') +install_data( + join_paths(symbolic_dir, ('@0@-symbolic.svg').format(application_id)), + install_dir: join_paths(get_option('datadir'), 'icons', symbolic_dir) +) diff --git a/data/meson.build b/data/meson.build new file mode 100644 index 0000000..233f64d --- /dev/null +++ b/data/meson.build @@ -0,0 +1,43 @@ +desktop_file = i18n.merge_file( + input: 'xyz.trollcall.Beekeeper.desktop.in', + output: 'xyz.trollcall.Beekeeper.desktop', + type: 'desktop', + po_dir: '../po', + install: true, + install_dir: join_paths(get_option('datadir'), 'applications') +) + +desktop_utils = find_program('desktop-file-validate', required: false) +if desktop_utils.found() + test('Validate desktop file', desktop_utils, + args: [desktop_file] + ) +endif + +appstream_file = i18n.merge_file( + input: 'xyz.trollcall.Beekeeper.appdata.xml.in', + output: 'xyz.trollcall.Beekeeper.appdata.xml', + po_dir: '../po', + install: true, + install_dir: join_paths(get_option('datadir'), 'appdata') +) + +appstream_util = find_program('appstream-util', required: false) +if appstream_util.found() + test('Validate appstream file', appstream_util, + args: ['validate', appstream_file] + ) +endif + +install_data('xyz.trollcall.Beekeeper.gschema.xml', + install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas') +) + +compile_schemas = find_program('glib-compile-schemas', required: false) +if compile_schemas.found() + test('Validate schema file', compile_schemas, + args: ['--strict', '--dry-run', meson.current_source_dir()] + ) +endif + +subdir('icons') diff --git a/data/xyz.trollcall.Beekeeper.appdata.xml.in b/data/xyz.trollcall.Beekeeper.appdata.xml.in new file mode 100644 index 0000000..0e3ce23 --- /dev/null +++ b/data/xyz.trollcall.Beekeeper.appdata.xml.in @@ -0,0 +1,10 @@ + + + Beekeeper + xyz.trollcall.Beekeeper.desktop + CC0-1.0 + + +

No description

+
+
diff --git a/data/xyz.trollcall.Beekeeper.desktop.in b/data/xyz.trollcall.Beekeeper.desktop.in new file mode 100644 index 0000000..c5e6d03 --- /dev/null +++ b/data/xyz.trollcall.Beekeeper.desktop.in @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Beekeeper +Exec=xyz.trollcall.Beekeeper +Icon=xyz.trollcall.Beekeeper +Terminal=false +Type=Application +Categories=GTK; +StartupNotify=true diff --git a/data/xyz.trollcall.Beekeeper.gschema.xml b/data/xyz.trollcall.Beekeeper.gschema.xml new file mode 100644 index 0000000..bd98d09 --- /dev/null +++ b/data/xyz.trollcall.Beekeeper.gschema.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..1038f1f --- /dev/null +++ b/meson.build @@ -0,0 +1,23 @@ +project('beekeeper', + version: '0.1.0', + meson_version: '>= 0.59.0', + default_options: [ 'warning_level=2', + 'werror=false', + ], +) + +i18n = import('i18n') + +gnome = import('gnome') + + + +subdir('data') +subdir('src') +subdir('po') + +gnome.post_install( + glib_compile_schemas: true, + gtk_update_icon_cache: true, + update_desktop_database: true, +) diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 0000000..e69de29 diff --git a/po/POTFILES b/po/POTFILES new file mode 100644 index 0000000..7c14d9c --- /dev/null +++ b/po/POTFILES @@ -0,0 +1,8 @@ +data/xyz.trollcall.Beekeeper.desktop.in +data/xyz.trollcall.Beekeeper.appdata.xml.in +data/xyz.trollcall.Beekeeper.gschema.xml +src/window.ui +src/main.js +src/window.js +src/folders.js + diff --git a/po/meson.build b/po/meson.build new file mode 100644 index 0000000..69e15a1 --- /dev/null +++ b/po/meson.build @@ -0,0 +1 @@ +i18n.gettext('beekeeper', preset: 'glib') diff --git a/src/folders.js b/src/folders.js new file mode 100644 index 0000000..ee6ad4a --- /dev/null +++ b/src/folders.js @@ -0,0 +1,89 @@ +import Gtk from 'gi://Gtk'; +import Gio from 'gi://Gio'; +import GLib from 'gi://GLib'; + +export function getFilesInFolder(folderPath) { + let folder = Gio.File.new_for_path(folderPath); + let files = folder.enumerate_children( + "*", + Gio.FileQueryInfoFlags.NONE, + null, + ); + let file = files.next_file(null); + + let fileNames = []; + + while (file !== null) { + if (file.get_file_type() === Gio.FileType.DIRECTORY) + fileNames.push({ + name: file.get_name(), + icon: file.get_icon(), + hidden: file.get_is_hidden(), + time: + (file.get_modification_date_time() ?? + file.get_creation_date_time() ?? + GLib.DateTime.new_from_unix_utc(0)).to_unix(), + }); + file = files.next_file(null); + } + + return fileNames.sort((a,b) => b.time - a.time); +} + +export function indexObjects(array) { + return array.map(item => { + const mainRow = new Gtk.ListBoxRow(); + + const itemBox = new Gtk.Box({ + marginBottom: 12, + marginEnd: 12, + marginStart: 12, + marginTop: 12, + spacing: 16, + }); + + let iconConfig = { + icon_size: Gtk.IconSize.LARGE, + name: "stridersBeats" + }; + + iconConfig.icon_name = item.icon?.to_string()?.split(" ")[3] ?? "folder"; + + const innerImage = new Gtk.Image(iconConfig); + + itemBox.append(innerImage); + + const nameBox = new Gtk.Box({ + hexpand: true, + orientation: 1, + spacing: 4, + }); + + const name = new Gtk.Label({ + cssClasses: ["heading"], + ellipsize: "end", + label: item.name, + valign: "baseline", + xalign: 0.0, + }); + + nameBox.append(name); + + const path = new Gtk.Label({ + cssClasses: ["dim-label"], + ellipsize: "end", + label: GLib.DateTime.new_from_unix_utc(item.time).format("%x, %X"), + valign: "baseline", + xalign: 0.0, + }); + + nameBox.append(path); + + itemBox.append(nameBox); + + mainRow.set_child(itemBox); + + return mainRow; + }) +} + diff --git a/src/gtk/help-overlay.ui b/src/gtk/help-overlay.ui new file mode 100644 index 0000000..ef12f02 --- /dev/null +++ b/src/gtk/help-overlay.ui @@ -0,0 +1,29 @@ + + + + True + + + shortcuts + 10 + + + General + + + Show Shortcuts + win.show-help-overlay + + + + + Quit + app.quit + + + + + + + + diff --git a/src/gtk/modal.ui b/src/gtk/modal.ui new file mode 100644 index 0000000..3c27891 --- /dev/null +++ b/src/gtk/modal.ui @@ -0,0 +1,61 @@ + + + + + note + True + Cum Balance + header_bar + + + :close + + + + + + 16 + 16 + 16 + 16 + vertical + 8 + center + + + folder + large + + + + + title-2 + Cambalache + + + + + 8 + 8 + + + + + center + 8 + + + circular + center + accessories-calculator + center + + + + + + + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..20d501f --- /dev/null +++ b/src/main.js @@ -0,0 +1,74 @@ +/* main.js + * + * Copyright 2023 MeowcaTheoRange + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import GObject from 'gi://GObject'; +import Gio from 'gi://Gio'; +import GLib from 'gi://GLib'; +import Gtk from 'gi://Gtk?version=4.0'; +import Adw from 'gi://Adw?version=1'; + +import { BeekeeperWindow } from './window.js'; + +pkg.initGettext(); +pkg.initFormat(); + +export const BeekeeperApplication = GObject.registerClass( + class BeekeeperApplication extends Adw.Application { + constructor() { + super({application_id: 'xyz.trollcall.Beekeeper', flags: Gio.ApplicationFlags.FLAGS_NONE}); + + const quit_action = new Gio.SimpleAction({name: 'quit'}); + quit_action.connect('activate', action => { + this.quit(); + }); + this.add_action(quit_action); + this.set_accels_for_action('app.quit', ['q']); + + const show_about_action = new Gio.SimpleAction({name: 'about'}); + show_about_action.connect('activate', action => { + let aboutParams = { + authors: [ + 'MeowcaTheoRange' + ], + version: '0.1.0', + logo_icon_name: 'xyz.trollcall.Beekeeper', + license_type: Gtk.License.APACHE_2_0, + program_name: 'Beekeeper', + transient_for: this.active_window, + modal: true, + }; + const aboutDialog = new Gtk.AboutDialog(aboutParams); + aboutDialog.present(); + }); + this.add_action(show_about_action); + } + + vfunc_activate() { + let {active_window} = this; + + if (!active_window) + active_window = new BeekeeperWindow(this); + + active_window.present(); + } + } +); + +export function main(argv) { + const application = new BeekeeperApplication(); + return application.run(argv); +} diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000..0a57164 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,33 @@ +pkgdatadir = join_paths(get_option('datadir'), meson.project_name()) +gnome = import('gnome') + +src_res = gnome.compile_resources('xyz.trollcall.Beekeeper.src', + 'xyz.trollcall.Beekeeper.src.gresource.xml', + gresource_bundle: true, + install: true, + install_dir: pkgdatadir, +) + +data_res = gnome.compile_resources('xyz.trollcall.Beekeeper.data', + 'xyz.trollcall.Beekeeper.data.gresource.xml', + gresource_bundle: true, + install: true, + install_dir: pkgdatadir, +) + +bin_conf = configuration_data() +bin_conf.set('GJS', find_program('gjs').full_path()) +bin_conf.set('PACKAGE_VERSION', meson.project_version()) +bin_conf.set('PACKAGE_NAME', meson.project_name()) +bin_conf.set('prefix', get_option('prefix')) +bin_conf.set('libdir', join_paths(get_option('prefix'), get_option('libdir'))) +bin_conf.set('datadir', join_paths(get_option('prefix'), get_option('datadir'))) +bin_conf.set('resource_path', '/xyz/trollcall/Beekeeper') + +configure_file( + input: 'xyz.trollcall.Beekeeper.in', + output: 'xyz.trollcall.Beekeeper', + configuration: bin_conf, + install: true, + install_dir: get_option('bindir') +) diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..b3271e3 --- /dev/null +++ b/src/style.css @@ -0,0 +1,3 @@ +#main-button { + background-color: @accent_bg_color; +} diff --git a/src/window.js b/src/window.js new file mode 100644 index 0000000..a9461c1 --- /dev/null +++ b/src/window.js @@ -0,0 +1,60 @@ +/* window.js + * + * Copyright 2023 MeowcaTheoRange + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import GObject from 'gi://GObject'; +import Gtk from 'gi://Gtk'; +import Gio from 'gi://Gio'; +import GLib from 'gi://GLib'; + +import { getFilesInFolder, indexObjects } from './folders.js'; + +export const BeekeeperWindow = GObject.registerClass({ + GTypeName: 'BeekeeperWindow', + Template: 'resource:///xyz/trollcall/Beekeeper/window.ui', + InternalChildren: ['label', 'folders', 'bigBox', 'userName', 'timeThingy'], +}, class BeekeeperWindow extends Gtk.ApplicationWindow { + #_folders; + #_bigBox; + #_userName; + #_timeThingy; + + _init(application) { + super._init({application}) + + this._userName.set_text(`Welcome, ${GLib.get_real_name().split(" ")[0]}!`); + this._timeThingy.set_text(`It is ${GLib.DateTime.new_now_local().format("%X")}.`); + setInterval(() => this._timeThingy.set_text(`It is ${GLib.DateTime.new_now_local().format("%X")}.`), 500); + const getModal = (row) => { + let builder = Gtk.Builder.new_from_resource("/xyz/trollcall/Beekeeper/gtk/modal.ui"); + let modalWindow = builder.get_object("modalWindow"); + modalWindow.set_modal(true); + modalWindow.set_transient_for(this); + print(row); + const recommendedTypes = Gio.AppInfo.get_recommended_for_type(row.get_child().get_child_at_index(0).icon_name); + modalWindow.present(); + } + + this._bigBox.connect("row_activated", getModal); + this._folders.connect("row_activated", getModal); + + let folderPath = "Documents/github/"; + let files = getFilesInFolder(folderPath); + let GtkBoxThings = indexObjects(files); + GtkBoxThings.splice(0, 3).map(x => this._bigBox.append(x)); + GtkBoxThings.map(x => this._folders.append(x)); + } +}); diff --git a/src/window.ui b/src/window.ui new file mode 100644 index 0000000..0c82c2e --- /dev/null +++ b/src/window.ui @@ -0,0 +1,124 @@ + + + + + + + +
+ + _Preferences + app.preferences + + + _Keyboard Shortcuts + win.show-help-overlay + + + _About Beekeeper + app.about + +
+
+
diff --git a/src/xyz.trollcall.Beekeeper.data.gresource.xml b/src/xyz.trollcall.Beekeeper.data.gresource.xml new file mode 100644 index 0000000..85e5b5c --- /dev/null +++ b/src/xyz.trollcall.Beekeeper.data.gresource.xml @@ -0,0 +1,9 @@ + + + + style.css + window.ui + gtk/help-overlay.ui + gtk/modal.ui + + diff --git a/src/xyz.trollcall.Beekeeper.in b/src/xyz.trollcall.Beekeeper.in new file mode 100755 index 0000000..d9baf49 --- /dev/null +++ b/src/xyz.trollcall.Beekeeper.in @@ -0,0 +1,11 @@ +#!@GJS@ +imports.package.init({ + name: "@PACKAGE_NAME@", + version: "@PACKAGE_VERSION@", + prefix: "@prefix@", + libdir: "@libdir@", + datadir: "@datadir@", +}); +import("resource://@resource_path@/js/main.js") + .then((main) => imports.package.run(main)) + .catch(logError); diff --git a/src/xyz.trollcall.Beekeeper.src.gresource.xml b/src/xyz.trollcall.Beekeeper.src.gresource.xml new file mode 100644 index 0000000..f32636e --- /dev/null +++ b/src/xyz.trollcall.Beekeeper.src.gresource.xml @@ -0,0 +1,8 @@ + + + + main.js + window.js + folders.js + + diff --git a/xyz.trollcall.Beekeeper.json b/xyz.trollcall.Beekeeper.json new file mode 100644 index 0000000..17be2ec --- /dev/null +++ b/xyz.trollcall.Beekeeper.json @@ -0,0 +1,38 @@ +{ + "app-id" : "xyz.trollcall.Beekeeper", + "runtime" : "org.gnome.Platform", + "runtime-version" : "master", + "sdk" : "org.gnome.Sdk", + "command" : "xyz.trollcall.Beekeeper", + "finish-args" : [ + "--share=network", + "--share=ipc", + "--socket=fallback-x11", + "--device=dri", + "--socket=wayland" + ], + "cleanup" : [ + "/include", + "/lib/pkgconfig", + "/man", + "/share/doc", + "/share/gtk-doc", + "/share/man", + "/share/pkgconfig", + "*.la", + "*.a" + ], + "modules" : [ + { + "name" : "beekeeper", + "builddir" : true, + "buildsystem" : "meson", + "sources" : [ + { + "type" : "git", + "url" : "file:///home/theorange/Projects/Beekeeper" + } + ] + } + ] +}