diff --git a/initialstart/CMakeLists.txt b/initialstart/CMakeLists.txt
index 8ffab47f..3d3bea92 100644
--- a/initialstart/CMakeLists.txt
+++ b/initialstart/CMakeLists.txt
@@ -13,6 +13,7 @@ set(plasma-mobile-initial-start_SRCS
qt_add_resources(RESOURCES resources.qrc)
add_subdirectory(modules)
+add_subdirectory(plugin)
add_executable(plasma-mobile-initial-start ${plasma-mobile-initial-start_SRCS} ${RESOURCES})
target_link_libraries(plasma-mobile-initial-start
diff --git a/initialstart/modules/finished/contents/ui/main.qml b/initialstart/modules/finished/contents/ui/main.qml
index cc6e157d..ff7d29bc 100644
--- a/initialstart/modules/finished/contents/ui/main.qml
+++ b/initialstart/modules/finished/contents/ui/main.qml
@@ -4,8 +4,11 @@
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
+
import org.kde.kirigami 2.20 as Kirigami
+import org.kde.plasma.mobileinitialstart.initialstart
+
Item {
id: root
@@ -18,7 +21,7 @@ Item {
Label {
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter | Qt.AlignTop
- text: i18n("Your device is now ready.
Enjoy Plasma 6.0!")
+ text: i18n("Your device is now ready.
Enjoy %1!", InitialStartUtil.distroName)
wrapMode: Text.Wrap
horizontalAlignment: Text.AlignHCenter
}
diff --git a/initialstart/plugin/CMakeLists.txt b/initialstart/plugin/CMakeLists.txt
new file mode 100644
index 00000000..74dfdd3f
--- /dev/null
+++ b/initialstart/plugin/CMakeLists.txt
@@ -0,0 +1,22 @@
+# SPDX-FileCopyrightText: 2023 Devin Lin
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+set(initialstartplugin_SRCS
+ initialstartplugin.cpp
+ initialstartutil.cpp
+)
+
+add_library(initialstartplugin ${initialstartplugin_SRCS})
+
+target_link_libraries(initialstartplugin
+ Qt::Core
+ Qt::Quick
+ KF6::CoreAddons
+ KF6::I18n
+)
+
+set_property(TARGET initialstartplugin PROPERTY LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/org/kde/plasma/mobileinitialstart/initialstart)
+file(COPY qmldir DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/org/kde/plasma/mobileinitialstart/initialstart)
+
+install(TARGETS initialstartplugin DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/mobileinitialstart/initialstart)
+install(FILES qmldir ${qml_SRC} DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/mobileinitialstart/initialstart)
diff --git a/initialstart/plugin/initialstartplugin.cpp b/initialstart/plugin/initialstartplugin.cpp
new file mode 100644
index 00000000..0d4c8ee5
--- /dev/null
+++ b/initialstart/plugin/initialstartplugin.cpp
@@ -0,0 +1,17 @@
+// SPDX-FileCopyrightText: 2023 Devin Lin
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "initialstartplugin.h"
+#include "initialstartutil.h"
+
+#include
+#include
+
+void InitialStartPlugin::registerTypes(const char *uri)
+{
+ Q_ASSERT(QLatin1String(uri) == QLatin1String("org.kde.plasma.mobileinitialstart.initialstart"));
+
+ qmlRegisterSingletonType(uri, 1, 0, "InitialStartUtil", [](QQmlEngine *, QJSEngine *) {
+ return new InitialStartUtil;
+ });
+}
diff --git a/initialstart/plugin/initialstartplugin.h b/initialstart/plugin/initialstartplugin.h
new file mode 100644
index 00000000..30588d6d
--- /dev/null
+++ b/initialstart/plugin/initialstartplugin.h
@@ -0,0 +1,18 @@
+// SPDX-FileCopyrightText: 2023 Devin Lin
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include
+
+#include
+#include
+
+class InitialStartPlugin : public QQmlExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
+
+public:
+ void registerTypes(const char *uri) override;
+};
diff --git a/initialstart/plugin/initialstartutil.cpp b/initialstart/plugin/initialstartutil.cpp
new file mode 100644
index 00000000..1d026182
--- /dev/null
+++ b/initialstart/plugin/initialstartutil.cpp
@@ -0,0 +1,14 @@
+// SPDX-FileCopyrightText: 2023 Devin Lin
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "initialstartutil.h"
+
+InitialStartUtil::InitialStartUtil(QObject *parent)
+ : QObject{parent}
+{
+}
+
+QString InitialStartUtil::distroName() const
+{
+ return m_osrelease.name();
+}
\ No newline at end of file
diff --git a/initialstart/plugin/initialstartutil.h b/initialstart/plugin/initialstartutil.h
new file mode 100644
index 00000000..18608c2c
--- /dev/null
+++ b/initialstart/plugin/initialstartutil.h
@@ -0,0 +1,21 @@
+// SPDX-FileCopyrightText: 2023 Devin Lin
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include
+#include
+
+class InitialStartUtil : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QString distroName READ distroName CONSTANT);
+
+public:
+ InitialStartUtil(QObject *parent = nullptr);
+
+ QString distroName() const;
+
+private:
+ KOSRelease m_osrelease;
+};
diff --git a/initialstart/plugin/qmldir b/initialstart/plugin/qmldir
new file mode 100644
index 00000000..bcc18d4e
--- /dev/null
+++ b/initialstart/plugin/qmldir
@@ -0,0 +1,6 @@
+# SPDX-FileCopyrightText: 2023 Devin Lin
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+module org.kde.plasma.mobileinitialstart.initialstart
+plugin initialstartplugin
+classname InitialStartPlugin
diff --git a/initialstart/qml/LandingComponent.qml b/initialstart/qml/LandingComponent.qml
index 034a496c..b7745f0b 100644
--- a/initialstart/qml/LandingComponent.qml
+++ b/initialstart/qml/LandingComponent.qml
@@ -4,8 +4,11 @@
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
+
import org.kde.kirigami 2.20 as Kirigami
+import org.kde.plasma.mobileinitialstart.initialstart
+
Item {
id: root
@@ -78,7 +81,7 @@ Item {
Label {
Layout.fillWidth: true
- text: i18n("Welcome to Plasma")
+ text: i18n("Welcome to
%1", InitialStartUtil.distroName)
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.Wrap