Hi Piotr, thanks for your message and thanks for notifying us about the issue. First about the cloud problem you are pointing out:
Clouds should only show up in the satellite theme. However, I just tried to display clouds in the Marble Application and its satellite theme and while an older cloud coverage shows up for 2-3 seconds the outdated cloud coverage quickly gets replaced by a cloud-less view. :-( So there seems to be a general breakage in Marble with regard to the cloud feature (and you're doing everything right!! My initial guess is this: The cloud cover is downloaded via an external Online Service every hour to KDE servers - and from there to the Marble application. Either the download script on the KDE server is broken or the external Online Service changed its API or discontinued its service. I'll try to investigate the cause during the upcoming week and fix it if possible (any help would be appreciated of course!). Some explanation regarding the MarbleMap / MarbleQuickItem: The MarbleQuickItem is the QML item that is for primary use. As you discovered correctly MarbleMap is an internal abstraction that is being reused by the Marble-Widget as well as the QMLMarble Item. Unfortunately I have no idea about the GPS issue you described. Do you know how to debug the issue? It's great to see that you've taken the initiative to do some Marble coding. If you need further help don't hesitate to e-mail me directly. Best Regards, Torsten -----Original-Nachricht----- Betreff: Plasma Marble Globe wallpaper (was: Re: My first task) Datum: 2025-05-23T11:38:27+0200 Von: "Friedrich W. H. Kossebau" <kosse...@kde.org> An: "Piotr Frankowski" <frankowski.piot...@gmail.com> Hi Piotr, Am Freitag, 23. Mai 2025, 10:02:54 Mitteleuropäische Sommerzeit schrieb Piotr Frankowski: > Hello, > Long time has passed, I have found some free time, and with little help of > LLM I have managed to reproduce your work, modify the script(?), and it > works. I have enabled stars, but I cannot force clouds display - I think > problem is inside of Marble. I have found, that in the script there is > marbleItem which is > https://api.kde.org/marble/html/MarbleQuickItem_8h_source.html - and it has > less properties than MarbleMap. In my setup there is a problem with getting > location - geolocation is returning access denied or something. My KDE is > 5.27, I'm just curious if this script will work on new KDE. Myself not involved or staying experienced in for some years with both Marble & Plasma things, also out of spare leisure time here. So sadly cannot help myself. Perhaps there is someone active around on the mailing-list marble-devel, so I added them to the cc: next to kde-devel (you might want to subscribe there, see for more related contact info also https://marble.kde.org/contributors-welcome.php ) Hope you find some people assisting you and can have some more fun and finally achieve your goals here and extend on them :) Cheers Friedrich > This is my sript: > > ``` > /* > * Copyright 2018 Friedrich W. H. Kossebau <kosse...@kde.org> > * > * This program is free software; you can redistribute it and/or > * modify it under the terms of the GNU Lesser General Public > * License as published by the Free Software Foundation; either > * version 2.1 of the License, or (at your option) any later version. > * > * This program is distributed in the hope that it will be useful, > * but WITHOUT ANY WARRANTY; without even the implied warranty of > * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > * Lesser General Public License for more details. > * > * You should have received a copy of the GNU Lesser General Public > * License along with this program. If not, see < > http://www.gnu.org/licenses/>. > */ > > import QtQuick 2.1 > > import org.kde.plasma.core 2.0 as PlasmaCore > import org.kde.plasma.extras 2.0 as PlasmaExtras > > import org.kde.marble.private.plasma 0.20 > > MarbleItem { > id: marbleItem > // https://api.kde.org/marble/html/MarbleQuickItem_8h_source.html > // available properties > > readonly property int centerMode: wallpaper.configuration.centerMode > property double fixedLongitude: wallpaper.configuration.fixedLongitude > property double fixedLatitude: wallpaper.configuration.fixedLatitude > property double locationLongitude: 0.0 > property double locationLatitude: 0.0 > > enabled: false // do not handle input > > radius: { > var ratio = width/height; > if (ratio > 1) { > return height / 2.5; > } > return width / 2.5 > } > > // Theme settings. > projection: MarbleItem.Spherical > mapThemeId: "earth/bluemarble/bluemarble.dgml" > > // Visibility of layers/plugins. > showAtmosphere: true > showClouds: true > showBackground: true > > showGrid: false > showCrosshairs: false > showCompass: false > showOverviewMap: false > showScaleBar: false > showOtherPlaces: false > showPublicTransport: false > showOutdoorActivities: false > > > onCenterModeChanged: handleCenterModeChange() > function handleCenterModeChange() { > if (centerMode === 0) { > marbleItem.centerOn(locationLongitude, locationLatitude); > } else if (centerMode === 1) { > marbleItem.centerOn(fixedLongitude, fixedLatitude); > } else { > marbleItem.centerOn(locationLongitude, locationLatitude); > } > } > > onFixedLongitudeChanged: handleFixedLonLatChange() > onFixedLatitudeChanged: handleFixedLonLatChange() > function handleFixedLonLatChange() { > if (centerMode === 1) { > marbleItem.centerOn(fixedLongitude, fixedLatitude); > } > } > > onLocationLongitudeChanged:handleLocationChange() > onLocationLatitudeChanged:handleLocationChange() > function handleLocationChange() { > if (centerMode === 2) { > marbleItem.centerOn(locationLongitude, locationLatitude); > } > } > > Component.onCompleted: { > > // marbleItem.setShowPlaces(false); > // marbleItem.setShowCities(false); > marbleItem.setShowOtherPlaces(showOtherPlaces); > marbleItem.setShowBackground(showBackground); > > handleCenterModeChange(); > } > > PlasmaCore.DataSource { > id: geolocationDataSource > engine: "geolocation" > connectedSources: (marbleItem.centerMode === 2) ? ["location"] : [] > interval: 10 * 60 * 1000 // every 30 minutes, might be still too > large for users on the ISS :P > } > > Timer { > id: sunPositionTimer > interval: 60000 // Update every minute > running: marbleItem.centerMode === 0 // Only when following sun > repeat: true > triggeredOnStart: true > > onTriggered: { > var sunPos = calculateSunPosition(); > marbleItem.locationLongitude = sunPos.longitude; > marbleItem.locationLatitude = sunPos.latitude; > handleCenterModeChange(); > } > } > > // Function to calculate sun's position > function calculateSunPosition() { > var now = new Date(); > var dayOfYear = getDayOfYear(now); > var timeOfDay = now.getUTCHours() + now.getUTCMinutes() / 60.0; > > // Solar declination (simplified) > var declination = -23.45 * Math.cos(2 * Math.PI * (dayOfYear + 10) > / 365.25); > > // Hour angle - sun's longitude changes 15 degrees per hour > var hourAngle = 15 * (timeOfDay - 12); // 0° at solar noon (12:00 > UTC) > > // Sun's subsolar point > var longitude = hourAngle; > var latitude = declination; > > // Normalize longitude to [-180, 180] > while (longitude > 180) longitude -= 360; > while (longitude < -180) longitude += 360; > > // debug > //console.log("[earthglobe]]: ", longitude); > //console.log("[earthglobe]]: ", latitude); > > return { > longitude: -longitude, > latitude: -latitude > }; > } > > function getDayOfYear(date) { > var start = new Date(date.getFullYear(), 0, 0); > var diff = date - start; > return Math.floor(diff / (1000 * 60 * 60 * 24)); > } > } > ``` > > [image: image.png] > > > pt., 12 cze 2020 o 21:26 Piotr Frankowski <frankowski.piot...@gmail.com> > > napisał(a): > > Thanks - good starting point for me. Your email is like 5 hours of > > mentoring;) have a nice weekend > > > > pt., 12 cze 2020 o 01:10 Friedrich W. H. Kossebau <kosse...@kde.org> > > > > napisał(a): > >> Hi Piotr, > >> > >> Am Donnerstag, 11. Juni 2020, 20:49:57 CEST schrieb Piotr Frankowski: > >> > Hello, > >> > > >> > First of all,thanks for such great piece of software, which I am using > >> > >> for > >> > >> > 15 years. I would like to make small contribution - but I need little > >> > >> help, > >> > >> > a kind of mentoring or a plan and help at begin. I would like rewrite > >> > >> KDE4 > >> > >> > app - plasma-wallpaper-globe, to KDE5 using QML. I think it is possible > >> > >> to > >> > >> > do - I am thinking, that I should create plasma-wallpaper plugin, which > >> > uses Marbles Maps API. > >> > >> ((quick reminder to speak with same terms: post-KDE4 there is no KDE5, > >> things > >> got split in cross-platform apps (for platforms like Plasma, Gnome, > >> $OTHERLINUXSHELL, Windows, macOS, Android. HaikuOS, etc.), modular > >> reusable Qt > >> extensions (KDE Frameworks) and the actual workspace (Plasma).)) > >> > >> When it comes to the Globe plasma wallpaper, there actually has been a > >> working > >> patch. I know because I did it :) Though just for coding fun, did not > >> plan to > >> use it, so it died as review request because no-one pushed and no-one > >> pulled. > >> > >> It is up for adaption here, might still apply: > >> https://phabricator.kde.org/D11969 > >> > > >> > First questions: > >> > - is there template for plasma-wallpaper-plugin? > >> > >> Yes, the blog post you linked below is referencing one, and it does still > >> exist. > >> > >> > - is there tutorial for writing plasma-plugins? > >> > >> Sadly Plasma developers are lacking here and need support. People > >> learning are > >> some of the best people to write documentation/tutorials while they lean, > >> because they see all the problems and can mention them, so consider > >> picking up > >> that as side-task. > >> > >> > - I have found some linke, are they actual: > >> https://frinring.wordpress.com/2018/04/04/templates-to-create-your-own-pl > >> asm>> > >> > a-wallpaper-plugin/ > >> > >> Should still apply (I just fixed some links now given you mentioned it > >> and I > >> found they were broken). Not tested though, but I would hope Plasma > >> developers > >> kept compatibility during Plasma 5 times ;) > >> > >> > - I should learn QML and C++, right? > >> > >> Yes. If you are completely new, best first walk yourself through all the > >> Qt > >> tutorials to get some first sense about things before you enter the > >> partially > >> rough world of developing for Plasma. > >> See https://doc.qt.io/qt-5/qtexamplesandtutorials.html and make yourself > >> familiar with Qt and QtQuick/Qml. And try to find some local people to > >> talk > >> and learn together in real life, that also helps (it did for me when I > >> started). > >> > >> Sorry, not available myself for mentoring. > >> > >> Cheers > >> Friedrich > > > > -- > > Pozdrawiam > > pf