diff --git a/.build.yml b/.build.yml index b463478..4846e90 100644 --- a/.build.yml +++ b/.build.yml @@ -28,11 +28,7 @@ tasks: cmake --build build-cmake - flatpak: | cd astra - flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo - flatpak install --user -y runtime/org.kde.Platform/x86_64/5.15-22.08 runtime/org.kde.Sdk/x86_64/5.15-22.08 org.freedesktop.Sdk.Extension.rust-stable/x86_64/22.08 - flatpak-builder build --user --force-clean zone.xiv.astra.yml - flatpak build-export export build - flatpak build-bundle export astra.flatpak zone.xiv.astra --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo + ./build-flatpak.sh artifacts: - astra/build-cmake/bin/astra - astra/astra.flatpak \ No newline at end of file diff --git a/.reuse/dep5 b/.reuse/dep5 index 39cc30b..c728a06 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -3,11 +3,11 @@ Upstream-Name: Astra Upstream-Contact: Joshua Goins Source: https://git.sr.ht/~redstrate/astra -Files: README.md .build.yml .editorconfig zone.xiv.astra.yml com.redstrate.astra.desktop test-steamdeck.sh compatibilitytool/* misc/* +Files: README.md .build.yml .editorconfig zone.xiv.astra.yml zone.xiv.astra.desktop build-flatpak.sh compatibilitytool/* misc/* Copyright: Joshua Goins License: CC0-1.0 -Files: com.redstrate.astra.svg +Files: zone.xiv.astra.svg Copyright: Joshua Goins License: CC-BY-SA-4.0 diff --git a/CMakeLists.txt b/CMakeLists.txt index 7469a1e..53dc554 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,8 +74,9 @@ find_package(QuaZip-Qt5 REQUIRED) add_subdirectory(external) add_subdirectory(launcher) -install(FILES com.redstrate.astra.desktop DESTINATION ${KDE_INSTALL_APPDIR}) -install(FILES com.redstrate.astra.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/apps) +install(FILES zone.xiv.astra.desktop DESTINATION ${KDE_INSTALL_APPDIR}) +install(FILES zone.xiv.astra.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) +install(FILES zone.xiv.astra.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/apps) feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/build-flatpak.sh b/build-flatpak.sh new file mode 100755 index 0000000..b5929d8 --- /dev/null +++ b/build-flatpak.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo && +flatpak install --user -y runtime/org.kde.Platform/x86_64/5.15-22.08 runtime/org.kde.Sdk/x86_64/5.15-22.08 org.freedesktop.Sdk.Extension.rust-stable/x86_64/22.08 && +flatpak-builder build --user --force-clean zone.xiv.astra.yml && +flatpak build-export export build && +flatpak build-bundle export astra.flatpak zone.xiv.astra --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo \ No newline at end of file diff --git a/launcher/src/main.cpp b/launcher/src/main.cpp index 24db80f..461f941 100755 --- a/launcher/src/main.cpp +++ b/launcher/src/main.cpp @@ -36,10 +36,10 @@ int main(int argc, char *argv[]) about.setHomepage("https://xiv.zone/astra"); about.addComponent("physis", "Library to access FFXIV data", physis_get_physis_version(), "https://xiv.zone/physis", KAboutLicense::GPL_V3); about.addComponent("libphysis", "C bindings for physis", physis_get_libphysis_version(), "", KAboutLicense::GPL_V3); - about.setDesktopFileName("com.redstrate.astra"); + about.setDesktopFileName("zone.xiv.astra"); about.setBugAddress("https://lists.sr.ht/~redstrate/public-inbox"); about.setComponentName("astra"); - about.setProgramLogo("com.redstrate.astra"); + about.setProgramLogo("zone.xiv.astra"); KAboutData::setApplicationData(about); @@ -70,16 +70,16 @@ int main(int argc, char *argv[]) LauncherCore c(false); #endif - qmlRegisterSingletonInstance("com.redstrate.astra", 1, 0, "LauncherCore", &c); - qmlRegisterUncreatableType("com.redstrate.astra", 1, 0, "GameInstaller", QStringLiteral("Use LauncherCore::createInstaller")); - qmlRegisterUncreatableType("com.redstrate.astra", 1, 0, "AccountManager", QStringLiteral("Use LauncherCore::accountManager")); - qmlRegisterUncreatableType("com.redstrate.astra", 1, 0, "ProfileManager", QStringLiteral("Use LauncherCore::profileManager")); - qmlRegisterUncreatableType("com.redstrate.astra", 1, 0, "Profile", QStringLiteral("Use from ProfileManager")); - qmlRegisterUncreatableType("com.redstrate.astra", 1, 0, "Account", QStringLiteral("Use from AccountManager")); - qmlRegisterSingletonType("com.redstrate.astra", 1, 0, "About", [](QQmlEngine *engine, QJSEngine *) -> QJSValue { + qmlRegisterSingletonInstance("zone.xiv.astra", 1, 0, "LauncherCore", &c); + qmlRegisterUncreatableType("zone.xiv.astra", 1, 0, "GameInstaller", QStringLiteral("Use LauncherCore::createInstaller")); + qmlRegisterUncreatableType("zone.xiv.astra", 1, 0, "AccountManager", QStringLiteral("Use LauncherCore::accountManager")); + qmlRegisterUncreatableType("zone.xiv.astra", 1, 0, "ProfileManager", QStringLiteral("Use LauncherCore::profileManager")); + qmlRegisterUncreatableType("zone.xiv.astra", 1, 0, "Profile", QStringLiteral("Use from ProfileManager")); + qmlRegisterUncreatableType("zone.xiv.astra", 1, 0, "Account", QStringLiteral("Use from AccountManager")); + qmlRegisterSingletonType("zone.xiv.astra", 1, 0, "About", [](QQmlEngine *engine, QJSEngine *) -> QJSValue { return engine->toScriptValue(KAboutData::applicationData()); }); - qmlRegisterUncreatableType("com.redstrate.astra", 1, 0, "Headline", QStringLiteral("Use from AccountManager")); + qmlRegisterUncreatableType("zone.xiv.astra", 1, 0, "Headline", QStringLiteral("Use from AccountManager")); qRegisterMetaType("Banner"); qRegisterMetaType>("QList"); qRegisterMetaType>("QList"); diff --git a/launcher/ui/Components/FormFileDelegate.qml b/launcher/ui/Components/FormFileDelegate.qml index bafdbdc..b668ca8 100644 --- a/launcher/ui/Components/FormFileDelegate.qml +++ b/launcher/ui/Components/FormFileDelegate.qml @@ -8,7 +8,7 @@ import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import QtQuick.Dialogs 1.0 -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 MobileForm.FormButtonDelegate { id: control diff --git a/launcher/ui/Components/FormFolderDelegate.qml b/launcher/ui/Components/FormFolderDelegate.qml index 01ce1dd..1ea3e19 100644 --- a/launcher/ui/Components/FormFolderDelegate.qml +++ b/launcher/ui/Components/FormFolderDelegate.qml @@ -8,7 +8,7 @@ import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import QtQuick.Dialogs 1.0 -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 MobileForm.FormButtonDelegate { id: control diff --git a/launcher/ui/Pages/BrowserPage.qml b/launcher/ui/Pages/BrowserPage.qml index 8ac751f..ce8898f 100644 --- a/launcher/ui/Pages/BrowserPage.qml +++ b/launcher/ui/Pages/BrowserPage.qml @@ -7,7 +7,6 @@ import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import QtWebEngine 1.10 -import com.redstrate.astra 1.0 Kirigami.Page { id: page diff --git a/launcher/ui/Pages/LoginPage.qml b/launcher/ui/Pages/LoginPage.qml index f810801..4ab5f3f 100644 --- a/launcher/ui/Pages/LoginPage.qml +++ b/launcher/ui/Pages/LoginPage.qml @@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 Controls.Control { id: page diff --git a/launcher/ui/Pages/MainPage.qml b/launcher/ui/Pages/MainPage.qml index 86ffa25..4a880dd 100644 --- a/launcher/ui/Pages/MainPage.qml +++ b/launcher/ui/Pages/MainPage.qml @@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 Kirigami.Page { id: page diff --git a/launcher/ui/Pages/NewsPage.qml b/launcher/ui/Pages/NewsPage.qml index c69c3ef..ffb8bab 100644 --- a/launcher/ui/Pages/NewsPage.qml +++ b/launcher/ui/Pages/NewsPage.qml @@ -8,7 +8,7 @@ import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import QtGraphicalEffects 1.0 -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 Controls.Control { id: page diff --git a/launcher/ui/Pages/StatusPage.qml b/launcher/ui/Pages/StatusPage.qml index be00e87..2537f9e 100644 --- a/launcher/ui/Pages/StatusPage.qml +++ b/launcher/ui/Pages/StatusPage.qml @@ -6,7 +6,7 @@ import QtQuick.Window 2.15 import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 Kirigami.Page { property var gameInstaller diff --git a/launcher/ui/Settings/AccountSettings.qml b/launcher/ui/Settings/AccountSettings.qml index 0fb15a0..6b26406 100644 --- a/launcher/ui/Settings/AccountSettings.qml +++ b/launcher/ui/Settings/AccountSettings.qml @@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 Kirigami.ScrollablePage { id: page diff --git a/launcher/ui/Settings/DeveloperSettings.qml b/launcher/ui/Settings/DeveloperSettings.qml index a140c96..20ad127 100644 --- a/launcher/ui/Settings/DeveloperSettings.qml +++ b/launcher/ui/Settings/DeveloperSettings.qml @@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 import "../Components" diff --git a/launcher/ui/Settings/GeneralSettings.qml b/launcher/ui/Settings/GeneralSettings.qml index 4d1ec33..b0d5446 100644 --- a/launcher/ui/Settings/GeneralSettings.qml +++ b/launcher/ui/Settings/GeneralSettings.qml @@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 MobileForm.FormCard { Layout.topMargin: Kirigami.Units.largeSpacing diff --git a/launcher/ui/Settings/ProfileSettings.qml b/launcher/ui/Settings/ProfileSettings.qml index a45b1e0..2dddded 100644 --- a/launcher/ui/Settings/ProfileSettings.qml +++ b/launcher/ui/Settings/ProfileSettings.qml @@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 import "../Components" diff --git a/launcher/ui/Settings/SettingsPage.qml b/launcher/ui/Settings/SettingsPage.qml index 985304e..32f1478 100644 --- a/launcher/ui/Settings/SettingsPage.qml +++ b/launcher/ui/Settings/SettingsPage.qml @@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 Kirigami.ScrollablePage { id: page diff --git a/launcher/ui/Setup/AccountSetup.qml b/launcher/ui/Setup/AccountSetup.qml index 03a91fb..ab6f941 100644 --- a/launcher/ui/Setup/AccountSetup.qml +++ b/launcher/ui/Setup/AccountSetup.qml @@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 Kirigami.Page { id: page diff --git a/launcher/ui/Setup/AddSapphire.qml b/launcher/ui/Setup/AddSapphire.qml index 47e0292..779c081 100644 --- a/launcher/ui/Setup/AddSapphire.qml +++ b/launcher/ui/Setup/AddSapphire.qml @@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 Kirigami.Page { id: page diff --git a/launcher/ui/Setup/AddSquareEnix.qml b/launcher/ui/Setup/AddSquareEnix.qml index 0285db3..17fee82 100644 --- a/launcher/ui/Setup/AddSquareEnix.qml +++ b/launcher/ui/Setup/AddSquareEnix.qml @@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 Kirigami.Page { id: page diff --git a/launcher/ui/Setup/DownloadSetup.qml b/launcher/ui/Setup/DownloadSetup.qml index 4d2eae5..f83c939 100644 --- a/launcher/ui/Setup/DownloadSetup.qml +++ b/launcher/ui/Setup/DownloadSetup.qml @@ -7,7 +7,7 @@ import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 Kirigami.Page { id: page diff --git a/launcher/ui/Setup/InstallProgress.qml b/launcher/ui/Setup/InstallProgress.qml index 7801e86..e32f326 100644 --- a/launcher/ui/Setup/InstallProgress.qml +++ b/launcher/ui/Setup/InstallProgress.qml @@ -6,7 +6,7 @@ import QtQuick.Window 2.15 import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 Kirigami.Page { property var gameInstaller diff --git a/launcher/ui/main.qml b/launcher/ui/main.qml index dd91efd..cd92220 100644 --- a/launcher/ui/main.qml +++ b/launcher/ui/main.qml @@ -6,7 +6,7 @@ import QtQuick.Window 2.15 import org.kde.kirigami 2.20 as Kirigami import QtQuick.Controls 2.15 as Controls import QtQuick.Layouts 1.15 -import com.redstrate.astra 1.0 +import zone.xiv.astra 1.0 import "Pages" diff --git a/test-steamdeck.sh b/test-steamdeck.sh deleted file mode 100755 index dc93de2..0000000 --- a/test-steamdeck.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -flatpak-builder build --force-clean zone.xiv.astra.yml && -flatpak build-export export build && -flatpak build-bundle export astra-next.flatpak zone.xiv.astra --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo && -rsync ./astra-next.flatpak deck@steamdeck:~/astra-next.flatpak -ssh deck@steamdeck 'flatpak install --user --noninteractive -y astra-next.flatpak' -#ssh deck@steamdeck 'flatpak run --user zone.xiv.astra' \ No newline at end of file diff --git a/zone.xiv.astra.appdata.xml b/zone.xiv.astra.appdata.xml new file mode 100644 index 0000000..6e4753f --- /dev/null +++ b/zone.xiv.astra.appdata.xml @@ -0,0 +1,53 @@ + + + + zone.xiv.astra + CC0-1.0 + Astra + Linux FFXIV Launcher + +

A custom FFXIV launcher that supports multiple accounts, Dalamud plugins and runs natively on Linux!

+
+ + Game + + + launcher + ffxiv + ff14 + + https://xiv.zone/astra + https://todo.sr.ht/~redstrate/astra + https://xiv.zone/astra/faq + https://redstrate.com/fund + https://redstrate.com/contact + https://sr.ht/~redstrate/astra + zone.xiv.astra.desktop + + + + + astra + + + always + + + 600 + + + pointing + keyboard + touch + + GPL-3.0 + redstrate + + + https://xiv.zone/astra/main-screenshot.png + + +
diff --git a/com.redstrate.astra.desktop b/zone.xiv.astra.desktop similarity index 86% rename from com.redstrate.astra.desktop rename to zone.xiv.astra.desktop index 857d427..580cbc3 100644 --- a/com.redstrate.astra.desktop +++ b/zone.xiv.astra.desktop @@ -6,8 +6,8 @@ GenericName=FFXIV Launcher Comment=Linux launcher for FFXIV Exec=astra %u Terminal=false -Icon=com.redstrate.astra +Icon=zone.xiv.astra Type=Application -Categories=Games; +Categories=X-Games; X-KDE-FormFactor=desktop;tablet; SingleMainWindow=true \ No newline at end of file diff --git a/com.redstrate.astra.svg b/zone.xiv.astra.svg similarity index 92% rename from com.redstrate.astra.svg rename to zone.xiv.astra.svg index 7cd4c01..b764e61 100644 --- a/com.redstrate.astra.svg +++ b/zone.xiv.astra.svg @@ -2,18 +2,18 @@ + width="56mm" + height="56mm" + viewBox="0 0 56 56" + version="1.1" + id="svg5" + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + sodipodi:docname="com.redstrate.astra.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" +>