Project Submission

Aleix Pol aleixpol at kde.org
Wed Sep 22 17:03:42 BST 2021


Hi Farkas,
Integration is never a problem. QML is also written in C++. In fact, if
something is not possible to do with QML we generally just add it. On the
other hand it's harder to get C++ components to integrate visually without
QML/QtQuick as we use the components transparently.

Most of what you see in Plasma is QML, so if you aspire to integrate with
it, I also would recommend using the same technology. I'm not entirely sure
about what you mean with the different cases you see could be contentious
but I'm sure we'd find a way to integrate them.

You can for example look at the application dashboard plasmoid
(kickerdash), I'm sure it will help you understand how it works and
probably open the possibility to sharing code.
https://invent.kde.org/plasma/plasma-desktop/-/tree/master/applets/kicker/package/contents/ui

Aleix

On Tue, Sep 21, 2021 at 8:46 PM Farkas Máté <wolfom at gmail.com> wrote:

> Hi Nate,
>
> Thank you for your interest. Following our brief exchange on Reddit where
> I initially announced the project, I have indeed considered rewriting
> things in QML. There are three reasons I stuck with C++ however, but I
> might have been naîve. First, in the long run I would like to allow the
> user to add plasmoids to the dashboard, eliminating the overall need for
> classical menus (as they are the only way to access the power buttons).
> With other words, I think it might be an interesting feature if the user
> could create a menu similar to those on iOS and Android devices containing
> both icons and widgets.
>
> Second, I have heard (from an unreliable source) that touchpad gestures
> are coming to Plasma. From the user's perspective, I believe it would be a
> nice touch to Rocket, if it had an appearance/disappearance animation
> synced to a pre-defined gesture (similar to what Launchpad in MacOS has). I
> am not an expert, but I thought the implementation of these features above
> would be easier in C++. Third, I also played with the idea of using KRunner
> as a backend, which is purely written in C++ as far as I know.
>
> Lastly (this does not really count as a reason), I wanted to accomplish
> something usable in a reasonable timeframe in order to play around with the
> idea a bit, and to see whether there would be any interest at all. Since
> QML still looks weird and annoyingly nonlinear to me (I initially took a
> look at Kickoff's code, and I could barely follow what was going on), I
> stayed with C++, which I am more familiar with; apart from that, I had the
> impression, that some functions in the Plasma libraries are C++-exclusive.
>
> Would you still propose going for QML given in this situation?
>
> Regards,
> Mate
>
> Le mar. 21 sept. 2021 à 18:01, Nate Graham <nate at kde.org> a écrit :
>
>> Hello Farkas,
>>
>> Have you considered making this a Plasma widget using QML? Plasma has an
>> existing infrastructure for installing, deleting, adding, and removing
>> widgets, and allowing users to see alternatives. Since this is basically
>> an alternative launcher, it would make sense for it to appear in the
>> "Alternatives" popup that shows existing installed alternative widgets.
>> We already have a full screen launcher widget ("Application Dastboard"),
>> so it's conceptually possible to do something like what you've done in
>> QML. However that widget is fairly old and un-loved, and would be a good
>> candidate for being overhauled or replaced with your launcher, if it
>> used the common technical infrastructure for widgets.
>>
>> Nate
>>
>>
>> On 9/16/21 16:09, Farkas Máté wrote:
>> > Dear KDE Team,
>> >
>> > hereby I would like to submit a project I have been working on in the
>> > last months with the aim of incubating it within the KDE project, as I
>> > believe it could contribute to the user experience on touch-capable
>> > devices (such as Microsoft Surface-like hybrid laptops, tablet users,
>> > Wacom-tablet users, etc.).
>> >
>> > It is an application launcher aiming for ease of use on the above
>> > mentioned devices. I believe Kicker is a simple and powerful launcher,
>> > but it still uses a classical old-style approach (i.e.
>> > menu-submenu-sub-submenu-navigation) to help the user to find the app
>> > he/she wants to launch. Using a pen or an equivalent device, this
>> > procedure (with misclicks and spending time looking for the right
>> > category, subcategory, etc.) could unnecessarily worsen the user
>> > experience, which motivated me to implement a launcher similar to those
>> > seen on smart devices and other modern desktop operating systems.
>> >
>> > The launcher (which I have named Rocket) places the user's applications
>> > in a grid and allows him/her to categorize them by making folders. It
>> > supports searching, so opening the launcher with a shortcut and typing
>> > the desired program's name into the already focused search field
>> already
>> > yields results to keep a fluent workflow for keyboard-oriented
>> > power-users too. It aims to be customizable and uses the KF5 framework
>> > to communicate with the environment.
>> >
>> > Having reached an inflection point in the project (where all the
>> > features I need have already been implemented with some bugs and
>> > inconsistencies still being present), I am asking you whether you have
>> > any interest in incorporating it in Plasma. If you have, I would be
>> more
>> > than happy to continue the development while focusing on the needs of
>> > other users and improving on the codebase; if not, I would continue
>> only
>> > improving things for myself only. In case of interest, I am also ready
>> > to comply with the standards required by the community.
>> >
>> > Things which need care include improving the customizability options,
>> > fixing some graphical glitches, improving support for multi-touch input
>> > (including double-finger trackpad scrolling which I – due to my
>> hardware
>> > restrictions – did not manage to implement as flawlessly as desired)
>> and
>> > some "complex usage cases" (i.e. cases where the user does a lot of
>> > things while dragging and dropping an application icon). I would like
>> to
>> > emphasize that none of these things are of the kind which heavily
>> > restrict everyday use, but they still force the user to make some
>> > compromises (and thus make Rocket less "market-ready"); it is thus
>> > beyond the prototype/designing phase. I am also sending you a video
>> > regarding the current state of development attached. Regarding the
>> > future of the project, I have been thinking about adding support for
>> > plasmoids (such that the user is allowed to add widgets to the menu)
>> and
>> > to allow the user to use KRunner as a backend search tool.
>> >
>> > Some months ago I posted a small video on a more primitive version of
>> > Rocket in the official KDE Reddit-channel [1
>> > <
>> https://www.reddit.com/r/kde/comments/mq408q/i_have_developed_an_application_launcher_for_kde/>],
>>
>> > which was also well-received (despite not having as many customization
>> > options and not being able to create folders yet). Also, the KDE store
>> > provides some less-powerful alternatives with a non-negligible user
>> base
>> > [2 <https://store.kde.org/p/1364064/>]. I also believe you have to
>> know
>> > that I am not a professional developer, which can be easily seen by
>> > looking into the code [3 <https://github.com/friciwolf/Rocket>]. With
>> > some help from fellow developers however, I think I can quickly improve
>> > on my programming skills (which I am also happy to do).
>> >
>> > If you have any further questions, please do not hesitate to ask me.
>> You
>> > can reach me in English, German, French or in Hungarian, if the people
>> > in charge or the community prefer it differently.
>> >
>> > Thank you for your consideration,
>> > Yours faithfully,
>> > Mate Farkas
>> >
>> > -------------------------------------------------
>> > [1]:
>> >
>> https://www.reddit.com/r/kde/comments/mq408q/i_have_developed_an_application_launcher_for_kde/
>> > <
>> https://www.reddit.com/r/kde/comments/mq408q/i_have_developed_an_application_launcher_for_kde/
>> >
>> > [2]: https://store.kde.org/p/1364064/ <https://store.kde.org/p/1364064/
>> >
>> > [3]: https://github.com/friciwolf/Rocket
>> > <https://github.com/friciwolf/Rocket>
>> > Please make sure to create the folder ~/.config/rocket if you compile
>> > the code yourself (using qmake and make or Qt Designer), as this folder
>> > is necessary for Rocket to launch – another small thing to be fixed for
>> > the general audience. Also, please turn on the blurring effect in the
>> > system settings for it to take effect (an option using the system
>> > wallpaper as background is also possible, albeit yet only by
>> recompiling
>> > the code manually).
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20210922/55b74ba1/attachment.htm>


More information about the Plasma-devel mailing list