Registered Member
|
This Idea, there is already in forum's brainstorm section:
Brainstorm Ideas if this is not the right place you can delete it... Regards, Michail ---------------------------------------------------------- We need two things Unique Virtual Desktops for each Activity (1) and a new kwin Wall Effect or a QML Plasmoid (2) I will try to explain you the previous image even though I think many of you already understand it... But because I believe a lot in this idea I will be a little more descriptive than usual... I am using Kde for more than 6 years. Currently I am using Plasma Desktop 4.7. If someone would ask me if in general I like kde4 . I would answer «it's not only that I like it anymore, It's also that I cant live without it, I am bidden to it». Would you like to know why I am bidden to it? I am bidden to it because it represents at a great level my unique workflow and life (I believe that every person has its unique workflow). But how did it achieve that? Through Activities and Virtual Desktops in combination.... I have read a lot of articles trying to describe what an activity is for a modern desktop or a user. On the other hand many others describe that they dont get it so they will use virtual desktops because they want that plenty space.... For me activities is a unique set of tools for a specific task. For example for listening to music I want different tools than developing a program... But I am doing both each and every day... Lets make it bigger... I am a teacher I have many lessons so I need specific tools for my lessons, specific tools for my browsing experience, specific tools for drawing an image etc.... So an activity for me is the set of specific tools that I need immediately available for a specific task. A virtual desktop on the other hand is a different instance for a specific set of tools(activity). For example I teach 4 lessons this year, so for each lesson I need its specific files opened, directories, websites and applications but the same tools. So because I have to use the same tools, for me it's the same activity but a different instance of it (I would prefer if it was called workarea as workspace is already being used)... Virtual Desktops (workareas for me in the future) Virtual Desktops alone without Activities is a way to use every single time the same tools in order to accomplish your work but having plenty space to organize that work. Lest think that we use our computer for Browsing experience, Teaching some lessons, Programming etc. For example (without windows) (with windows) In this example even though I can add plenty space I use all the time the same tools... So my tools are going to increase vastly on screen and my performance is going to fall (many tools for different tasks on the same space). Activities Lets see how Activities work, I am going to use the previous example. I need an activity for Browsing, an activity for my Lessons, an activity for my Programming sessions and at last an activity for Linux OSes observations... I need these because these are the main areas I work this period, if something new arises I will a create a new fifth activity without even touching the first four ones. That would look like that.... (my different tools in each activity without windows.... ) (with windows) This is a clearer solution than previous case with Virtual Desktops as I can use different tools for different tasks. But in that case also I have a small issue... Lets think I have 4 lessons, 2 Programming projects etc with all their windows in the relevant activity. In that case the windows are starting to increase and my performance is also starting to fall. So in that case my unique sets of tools exist but on the other hand many look alike but different tasks in the end(e.g. Lesson1 + Lesson2 + Lesson3), exist in the same space.... Someone would say that this is not an issue as you can create new activities for each unique lesson. But in that case many questions arises... For example some time in the future you need to change the position of a tool, or you need to add a tool, remove one etc for all your lessons... (one activity for each separation) In general both Virtual Desktops and Activities operate in one dimension logic. It's like a big one dimensional array that we can increase it or decrease it as much as we want... Activities + VirtualDesktops(WorkAreas) Let's see by combining these two great forces in our current Plasma implementation what we achieve. (with no windows) (with windows) Problem1: In the first mockup we can see that there is a small problem with describing each WorkArea correctly. What is Desktop1 for Lesssons? Or Desktop1 for Programming? What is the real meaning for me? Answer: I only describe that space without taking focus on the task I use it... With Plasma we want our desktop to know exactly what we are doing (task centric) and where we are doing it in order to be able to interact with us more intelligently. Problem2: In the second mockup we can see that if an activity needs 4 workareas(e.g. programming) then all the other activities also use 4 workareas even though they do not need them. By these two problems we can understand that Virtual Desktops(WorkAreas) currently only focus on more space and only that. Every user can use them to organize his work but without really representing his workflow. Solution So what I propose? I propose to enhance our Virtual Desktops and make them WorkAreas , in that way we can use a two dimensional structure that represents almost completely our workflow... It's not about more space, it's about meaning (task centric). We can have as much space as we want but that space will represent completely our workflow. Every set of WorkAreas is unique in its Activity, in that way I can have two workareas for Browsing with their representing names, three for lessons, four for programming etc. WorkAreas Attributes: -each one can have its unique name -I can rename them easily -I can add and delete them easily -I can move a window from one workarea to another easily -I can change their order easily -I can even move them to another activity by only changing the tools(background tools) and keeping the windows -ADD v2 -I can easily share them with my other devices which use plasma e.g. Plasma Netbook, Plasma Active, Desktop, Mobile etc. Activities Attributes: (even though they already exist) -Add and delete them easily -I can use templates with predefined set of tools -I can rename them easily -I can stop, run them etc. -I can reorder them (I dont know if that exists) For me plasma is a system that understands me, represents me and interacts with me not just intelligently but almost humanly. Plasma currently is not far from that. I am certain that in the future will influence all the other Desktop Environmets in how it is believed computers should interact with users.... |
KDE Developer
|
Wow. I really love the mockups. Will save some time to read through all of the idea very thoroughly and will give additional feedback
|
Registered Member
|
Thank you very much... I will wait for your feedback... |
Registered Member
|
I really like this idea!
I actually think this just became possible in recent weeks to implement this in QML. The window previews can now be done in QML : http://blog.martin-graesslin.com/blog/2 ... cher-love/ I'm not quite sure but i think you can already fetch the current desktops, windows and activities in QML (or plain javascript) so everything should (right?) be in place to make this possible. |
KDE Developer
|
well at least on X11 we will have a technical constraint which is the main reason why we don't have any UI yet. When an Activity is stopped or has been inactive for a long time, we don't have a window previews for the windows on those Activities. Another technical limitation is that there is one Plasma Window for the Activities/Desktops: the wallpaper changes after we switched to the Activity/Desktop. That's for example the reason why Desktop Grid show the same wallpaper for all desktops even if you have Plasma configured to show a different wallpaper for each desktop. But that are technical details and the idea here is to dream and leave the technical limitations out We can find solutions for everything |
Registered Member
|
Some solutions might be creating a separate backup window preview cache or just displaying the icon of the program As for the wallpaper, that may be a harder problem to fix. But but one should be able to parse the settings and find out if the wallpaper is fixed or changeable(photo album wallpaper, etc). If it is fixed then the wallpaper is know if not it could approximated or do what the desktop grid currently does. Ideally there needs to be some way that Kwin can accesses a preview of the current plasma desktop. This would require work on both plasma and kwin's end(not sure if it is worth it). |
Registered Member
|
Are you sure? In my work environment i (sadly) work on a hopelessly outdated KDE 3.2 (yes, no joke) and there you already have those tiny virtual desktop squares with the window outline drawn into them. Surely that is still possible nowadays? I haven't actually tried that for KDE 4.x yet. That might be a good start. Having a full image instead of the outline is obviously better but lets start easy.
Just maintaining an image cache with the previews should be enough i think.
But you can fetch all information for an activity right? So you can fetch which wallpaper is being used in which activity.
You know what the funny thing about QML is. Very very fast GUI prototyping! I'm going to give this a shot when i have some time. Just in plain QML without using any kwin/x11 stuff. Just to see if the idea would work in QML. I will post it here when i have something to show. From there someone else is free to take over and bind it to the actual KWIN parts to make it usable. Question for psifidotos, In your drawing you have the ability to move applications between activities. But do you also want to be able to move activities themselves? So for example you accidently created a lesson activity under Linux osses, i guess you want to be able to move that one to the right place? Could you also define the meaning of the buttons next to the activity name? Like next to "Lessons" you have 3 buttons. A square within a square, a play button and a delete button. I can guess the last one but what do you mean by the 2 before them? |
Registered Member
|
dear markg85, thanks a lot for your interest around that idea... for your first question the answer is yes, you can move workareas to another activities. the first two buttons next to the activity name is just a stop and play button(one could also do the job that combines play/stop). I will shortly make a post with two qml projects which are my initial tries to create the prototype you are describing... I could not finish them because of time constraints this period. The issue was that drag n drop in qml is a little strange to implement, so most of the time I focused around that... The direction I was going to follow was for the background I would also load like you the configuration for that spesific activity ( as live previews for activities do not exist right now, so we could just load the background ) For the final implementation in plasma I was directing to: 1) Because different number of workareas and names for them for each activity do not exist right now, I would store that information in a plain xml model that acts as a wrapper around the current implementation. An xml file that remembers that in the first activity there are two workareas instead of four, in second activity three workareas etc...
Last edited by psifidotos on Sun Apr 01, 2012 4:22 pm, edited 1 time in total.
|
Registered Member
|
I 'd like to thank everyone for your interest around this idea.
After I had uploaded that idea in KDE Brainstorm I started to implement some prototypes in QML (it was also a way to learn QML:) ). But because of time constraints I dont see in the near future to finish them. So the first one is the Activities.qml in archive: Activities.tar.gz, I tried to implement a GridView (wrong road I think, in the end I realized that each activity should be a ListView)//dragndrop for me was very constrained in QML) The second one is a way to make dragndrop between two different ListViews in QML: drag3-live.qml please be gentle for that code... Regards, michail |
Registered Member
|
Oh wow, you where well on your way with that! Nice animations! (some funky bugs as well ) I was already kinda afraid of drag and drop being the most difficult part. I'm going for the ListView path based on your second attempt and other examples online Will see where i end up. It's a nice thing to learn either way. |
Registered Member
|
thanks a lot markg85 , happy coding, anything I can help do not hesitate... |
Registered Member
|
Oke, drag and drop is a hard thing to handle. Damn! That's something that certainly could be made a lot easier by Qt.
|
Registered Member
|
I 'd like to inform the community that I am working on this at:
gitorious link it is a qml project right now in order to create the interface.... (you can just run it with qmlviewer Activities2.qml ) Development Steps: 1) Creating the qml interface (in a way to be ready for the plasma technologies data engines, c++ wrappers, etc...) 2) Creating the plasmoid and implement the functionality needed for activities by using the activities data engine/service (clean qml plasmoid) 3) Creating the c++ code for the plasmoid for all the functionality that is not provided other way(hybrid plasmoid with c++ and qml) Anyone wants to help dont hesitate, it is the first time i am using git and its power is incredible... |
Registered Member
|
Hello everyone, development proceeds around this idea:
Home Page: http://www.opentoolsandspace.org/en/projects/development/plasmoid-workflow Video: https://vimeo.com/43340669 Gitorious: https://gitorious.org/activities-plasma I hope to have your feedback, there is a video in the previous links in which you can see the QML UI... Regards, Michail |
Registered Member
|
Hi,
I love where this is going. I think it could be very usefull! one remark for now: please don't exagerate with the effects. It can quickly become 'to much'. In understand that making lots of animations and moving, flashing stuff is a lot more fun to develop but please keep it to a minimum so the application feels natural. Thank you for this great project! Greetings. |
Registered users: Bing [Bot], Google [Bot], kesang, Sogou [Bot], Yahoo [Bot]