psifidotos / nowdock-panel

Plasma 5 panel that that creates a plank or mac style zoom effect for its tasks (accompanies the Now Dock Plasmoid)
GNU General Public License v3.0
22 stars 6 forks source link

Request for collaboration #36

Open jsmitar opened 7 years ago

jsmitar commented 7 years ago

Hi regards.

I like your project, your concept and it all. But I think what There are still things missing for be competitive.

I think we can join our projects and make an incredible dock, as good as the plank or any other.

I am currently developing a Dock that has the following ready features. Visibility Modes.

Hide timers:

Alignments

Support partial for when KWin compositing is disabled. Just only one Config Window, for the appearance and behavior.

An Dock interface for QML

Custom window mask exposed to QML. For setting mask accord to taskmanager geometry.

Based totally on technologies KF5 as PlasmaQuick, Corona, PlasmaApplet, PlasmaContainment and etc, all plugins of plasma we can use.

My dock was done from scratch, based on plasmashell but thinking just for contain a TaskManager(or maybe a Plasma::Containment panel for be more precise) not a Desktop, Also it is written in C++14, and is a very Tiny shell :).

Missing features.

Please see this video, is a demo of Visibility Modes https://www.youtube.com/watch?v=Vm2h6Z1QnwA Project: https://github.com/audoban/Candil-Dock

What do you think the proposed?.

Sorry for my English, my native language is Spanish.

jsmitar commented 7 years ago

And have a good year. And it is an honor to work with you. 👍

psifidotos commented 7 years ago

I agree. I think we should choose a new name that marks the beginning of our new Dock.

Do you have any suggestions ?? I will think in the next days what insprires me more... :-)

I want to continue using your UI style for dock, is beautiful.

of course no prob.

The mask, please explain your strategies for managing this, I had some visual glitches on CandilDock

in order to not update the mask all the time I have 4 states for masking:

the qml part (updateMaskArea function in the container file: VisibilityManager.qml) calculates what mask in needed all the time based on the animations executed and checks if this is the current mask used, if it isnt then it updates the mask

in my main.qml files for the container and the plasmoid there is a debugMode variable at the top. If you make it true then visuals are appearing to show you the currentmask, elements sizes etc... :)

I'm reading your code of the branch Corona, and I see which you use some things from CandilDock. But your class VisibilityManager, is a very different to my class, you consider which your class is better for our next Dock?, or you want reuse and add more functionality to my class?, because I consider which my class is more atomic.

what is atomic? from c++ cleaness I definitely like yours :) but because my ui has so big orchestration with the visibilitymanager I would go for mine. The design behind the visibilitymanager is the following which is much different that yours (everything goes into qml except those that cant :)). This lead all the animations into the qml part but with them also some orchestration from the visibilitymanager. Some pros is that my visibilitymanager is already abstracted for X case. If we manage in the future to implement the waylandinterface.h then everything will just works. All the X code or code that might not work in wayland has been added in the xwindowinterface.h We can work together for the visibilitymanager in order to improve it!!! In that case I will be able to track what changes break the ui experience and that way implement things better for both the visibilitymanager and the qml orchestration.

Let's use my fork PlasmaCore::IconItem uses less ram and scale very well.

if it provides the same visual quality with less ram why not!! This should be added in the plasma plugin section, this way more plasmoids will be able to use it if they want to

Your cmake scripts for generate .desktop files are great, let's continue using them, also I see which you drop KDE4Libs dependence, it's a good decision, because I do not like to use old apis :).

:+1:

Do you want use your branch Corona or my containmet-dev branch as base?.

lets go for mine and we can move it if you want to in another repository

I want to support custom themes. This week I present a proposal of how the themes will be.

no prob, but we provide plasma experience as the default one, correct?

Let's use astyle before each commit to keep a clean code, and a uniform style. astylerc script You can integrate astyle with qtcreator.

Tottally agree, I hope only that I will be able to set it up...

And have a good year. And it is an honor to work with you.

Me too!!!! I hope you have fun during Christmas...

psifidotos commented 7 years ago

@audoban , everything ok with the astyle and I have sent also the commit, this is for .cpp and .h files. Are we going to use something similar for qml files?

psifidotos commented 7 years ago

@audoban

If you want use your VisibilityManager, please consider add timers for hide and show, is a very important feature.

yes of course, there is already one timer in VisibilityManager I could add and a second one. One small detail, to check we are talking about the same thing...\

hide timer: after the mouse leaves the dock, is the time waited before goes hidden in a case the mouse does not enter again.

show timer: the dock is hidden, if an event received (e.g. active window changed) except mouse triggered the edge, the timer holds the time after which the dock could be shown.

is that what we are talking about?

Question: How did you handle in your code the edge triggerring event? (currently if the dock is covered from other windows (fullscreen, active etc.) does not trigger to show)

In my old code I had a second hidden window which was ontop of everything and was triggering the dock that was underneath to show above...

jsmitar commented 7 years ago

Hi @psifidotos

in order to not update the mask all the time I have 4 states for masking:

My strategy is similar to Plank Dock

dockview.h has a function for set the mask, it's all. But shell/Dock.qml I manage the mask the accord to thickness and length panel and position of the containment. And when the dock is hidden I setting thickness mask to 1 pixel. Also dock window is always on top, and I never change this.

Question: How did you handle in your code the edge triggerring event? (currently if the dock is covered from other windows (fullscreen, active etc.) does not trigger to show)

When a window is top o fullscreen, you can't show dock because the dock window is behind of active window. Even plank and plasmashell panel, has problem with this. I think it's a limitation of X or WindowManager, this can not be fixed. When a window is active but is not has not top state, I don't having problems, because always exist 1 pixel of mask in the edge.

In my old code I had a second hidden window which was ontop of everything and was triggering the dock that was underneath to show above...

it was an ingenious solution but a bit ugly xD. In the next dock, just we a need dockview window.

what is atomic?

My VisibilityManager just know the geometry absolute of dock in the current screen (x, y, LengthxThickness), id Window view, and it does not matters mask of dock. When I update the panel geometry, VisibilityManager recalculate the state(Visible, Hidden), and update struts whether mode is Normal. VisibilityManager just have 4 functions.

Some pros is that my visibilitymanager is already abstracted for X case

Is a good point.

I'm accord of use your class, but I think we can simplify the interface.

lets go for mine and we can move it if you want to in another repository

Yes, I want a new repository.

jsmitar commented 7 years ago

@psifidotos

hide timer: after the mouse leaves the dock, is the time waited before goes hidden in a case the mouse does not enter again.

show timer: the dock is hidden, if an event received (e.g. active window changed) except mouse triggered the edge, the timer holds the time after which the dock could be shown.

Yes, If that's what I'm talking about, but just for mouse events.

jsmitar commented 7 years ago

@psifidotos

, everything ok with the astyle and I have sent also the commit, this is for .cpp and .h files. Are we going to use something similar for qml files?

I using qtcreator qml formatter. It is not the best, but it is what there is. I am very obsessed with the style and order of the code, please use it with 4 spaces, not tabs characters. The reason is that the tabs are very variable, sometimes they are 4 or 8 spaces, I don't like tabs

jsmitar commented 7 years ago

I agree. I think we should choose a new name that marks the beginning of our new Dock.

Do you have any suggestions ??

I suggest Iris Dock.

psifidotos commented 7 years ago

But shell/Dock.qml I manage the mask the accord to thickness and length panel and position of the containment. And when the dock is hidden I setting thickness mask to 1 pixel. Also dock window is always on top, and I never change this.

ok, I was already supporting this behavior but it wasnt the default, now it is the default ;) . If we stick with this a lot of code from VisibilityManager and qml can be removed... ;)

I'm accord of use your class, but I think we can simplify the interface.

of course, no problem at all... If we stick with Dock Type window all the time then much code can be cleaned up from visibilitymanager and xwindowinterface and abstractinterface also...

Yes, If that's what I'm talking about, just for mouse events.

easy .... :)

The reason is that the tabs are very variable, sometimes they are 4 or 8 spaces, I don't like tabs.

I added the astylerc from candil... I believe this is ok there...

I suggest Iris Dock.

Give me 2-3 days in case I come up with another proposal... But I kind of like it already !!!

image

Do you mean the flower or the eye or the combination of colors in general? I kind of fond the flower...

Yes, I want a new repository.

would you like to push everything from nowdockpanel into an IrisDock repository or create a new one with not history in it (based on the corona branch)? in my space? either way we must be both administrators and commiters... Is this possible in github?

jsmitar commented 7 years ago

@psifidotos

Do you mean the flower or the eye or the combination of colors in general? I was thinking of both would you like to push everything from nowdockpanel into an IrisDock repository or create a new one with not history in it (based on the corona branch)? in my space? either way we must be both administrators and commiters... Is this possible in github?

Just create a repository where we both have all permissions, but we need decide a name. Without history.

jsmitar commented 7 years ago

@psifidotos

of course, no problem at all... If we stick with Dock Type window all the time then much code can be cleaned up from visibilitymanager and xwindowinterface and abstractinterface also...

Please leave this task to me.

psifidotos commented 7 years ago

we need decide a name

Ok, I have also 2 suggestions:

Plaid Dock (from the fabric) image

(ContarDo)ck -from the coffee- but I dont know how to call it in english... :) image

jsmitar commented 7 years ago

Plaid Dock

I don't like xD

(ContarDo)ck -from the coffee- but I dont know how to call it in english... :)

Latte Dock, art in coffee? Arte del latte

psifidotos commented 7 years ago

(ContarDo)ck

Latte Dock, art in coffee?

I like a lot the "art in coffee" moto!!!

Do you prefer "Latte Dock" or "Contar Dock"? previously that I asked about english I meant the pronunciation, I dont know if in english "Contar Dock" will sound nice.. I like both!

jsmitar commented 7 years ago

Contar have another mean in Spanish, sounds rare for me. I prefer Latte Dock.

psifidotos commented 7 years ago

Contar http://www.wordreference.com/definicion/contar have another mean in Spanish, sounds rare for me. I prefer Latte Dock.

Latte Dock, it is then!!! Art In Coffee!!! Tomorrow I will set up the repo!!

jsmitar commented 7 years ago

Ok, I like the new name.

psifidotos commented 7 years ago

Me too!!! One more thing... Do we need the Dock part why dont we just call it, Latte?

Eg Plank, is not a Plank Dock... It has a personality... :-)

and one more question for the uris I propose to use, org.kde.latte as we are part of the kde community... org.kde.latte.dock, org.kde.latte.plasmoid .... shell etc.

psifidotos commented 7 years ago

I found also this https://www.math.ucdavis.edu/~latte/software.php

Do we have a conflict? Is there already a latte executable for linux?

psifidotos commented 7 years ago

and this http://www.latte.org/download.html

jsmitar commented 7 years ago

Latte.org have linux binary, but is a very old software 1999. And math latte have recent versions. We can use latte-shell, latte-dock, lattedock for binary.

psifidotos commented 7 years ago

Latte.org have linux binary, but is a very old software 1999. And math latte have recent versions. We can use latte-shell, latte-dock, lattedock for binary.

Ok we stick with Latte!!! I am trying also to forward https://git.reviewboard.kde.org/r/129696/ that effects our Dock!!!

During the day I will also send to the designer mentioned earlier in case he can help us with an icon...

psifidotos commented 7 years ago

@audoban

https://github.com/psifidotos/Latte-Dock I have send you an invitation!! Lets Latte it!!! :)

psifidotos commented 7 years ago

https://github.com/psifidotos/Latte-Dock/issues/1

JenaPlinsky commented 7 years ago

Merry Christmas Latte-Dock

psifidotos commented 7 years ago

Merry Christmas to everyone!!!! ;)

jsmitar commented 7 years ago

Merry Christmas

psifidotos commented 7 years ago

image

psifidotos commented 7 years ago

@audoban , do you have time to look at some logos ? https://github.com/psifidotos/Latte-Dock/issues/1

kupiqu commented 7 years ago

Guys, you are amazing!

I just moved to Latte, and it works like a charm.

Congrats!

psifidotos commented 7 years ago

thank u!!! ;)

jsmitar commented 7 years ago

thanks a lot. 👍