VOOZH about

URL: https://phabricator.kde.org/T17458

⇱ ⚓ T17458 Freedom through Better Data and Workflow Organization and Management


Maniphest T17458

Freedom through Better Data and Workflow Organization and Management
Open, Needs TriagePublic

Description

Description

Goal Summary

The goal is to provide users with better control and digital autonomy by adjusting discoverability, cohesion, and interoperability of interfaces for managing user data and application workflow across the ecosystem.

At a high level the changes include:

  • Modifications to Activities, Virtual Desktops, Tiling, and more in KDE Plasma;
  • Additions and changes to components and interfaces in KDE libraries and frameworks such as KConfig and Kiosk to coordinate adherence to user settings and improve cohesion and interoperability in application and user data management across the KDE ecosystem; and
  • Adjustments in user interfaces to improve discovery and exploration of all of these options and tools to users;
  • All of this with a focus on easing integration of these components in KDE applications--both within the Plasma desktop itself and separately--with both users and developers in mind

Background and Motivation

Over time, KDE has explored a number of innovative ideas concerning user organization in desktop and application workspaces, workflows, configuration, and data. Current iterations of Plasma feature Activities and Virtual Desktops for placing and organizing windows according to purpose and workflow. Desktop sessions are designed to save and restore application state between logins. Applications such as Kate and Krita offer local sessions for switching between sets of related open files. Frameworks for application configuration management are provided for via KConfig and Kiosk and pre-built components for general application needs are available in offerings such as KDialog. However, while most these features and frameworks are well maintained, innovation and exploration into new ways of providing useful behaviours and interfaces has significantly slowed, leaving many features feeling redundant and unloved.

Although initially promising, Activities are currently limited in capability and configuration, development has stagnated, and support is meager across KDE applications. This is partly because both users and developers alike are confused about the distinction between activities and virtual desktops. Meanwhile, individual applications spend precious development resources reimplementing limited, local session management or provide none at all. Users are required to search for popular and useful functionality for tiling, desktop management, and even proper KDE backup and restore in the KDE Store and external repositories, or even start bounties for these to be added, then hope these will ultimately stay maintained. Scripts modifying the behaviour of virtual desktops have to hack around the interface to provide alternative structure and behaviour. Most end users find themselves unaware of useful features like activity scripting with existing utilities to explore them designed bare bones for an experienced developer workflow.

These issues and shortcomings--among many others--concern the freedom and control users have to organize their desktop, workflows, applications, configurations, and data files; a significant portion of most user's digital lives. To meet KDE's vision to provide a diverse body of end users with freedom and control over their desktop, applications, and more, this goal proposes to revitalize, rework, experiment, and innovate on features, both extant and as-of-yet unrealized, to manage digital workspace, application workflow, and overall data organization across the KDE ecosystem of desktop applications, frameworks, and interfaces.

What it will take

What is your plan for making it happen? What do we need to do to make this reality? What kind of support do you need?

The Basics

Organizational Pillars

The overall focus of this goal is on improving organization with an emphasis on flexibility, discoverability, and interoperability across the various system and application interfaces exposed to users, power users, and developers. This not only covers tools for window management and visual organization of *graphical* user interfaces but equally organization in configuration and data files stored on behalf of users by the system and applications. Improvements may come in the form of restructuring features or components; adding new components or modules; polishing or extending APIs for better user control through scripting; and more across KDE's desktop, applications, and libraries.

The goal of providing organization breaks down into three pillars:

  • User-guided Tailoring and Control: Put users in *control over their digital life* by improving and innovating on open-ended apps, components, plasmoids, and other interfaces for introspecting and modifying overall configuration and data structure in apps, workspace, and the system itself.
  • Feature Cohesion and Discoverability: Knowing is half the battle: tools and features for organizing the system need to be obvious and relevant to one another and provide critical information upfront, letting users naturally find and explore more complex options at their own pace with a gentle learning curve.
  • Components and Interoperability: Workflows don't flow when applications don't communicate fluidly with one another. We need to double down on exploring and developing innovative ideas, especially with regards to pushing for components over monolithic applications.

Leveraging Community Infrastructure

The KDE community provides a wide variety of services to facilitate a comfortable and flexible workflow for various developers and projects. This section simply notes any important, specific actions on how to apply the existing tools to this goal rather than the community at-large.

  • Focus on facilitating community efforts by maintaining the Goal page to the standard of the current Sustainability Software Goal and doing the same for individual pages related to the goal such as reviving the Plasma/Activities wiki page.
    • This would naturally be the first place to look for a 'live' overview of current developments to help bring out-of-the-loop developers and interested users into the fold.
  • Discussions and developments tend to span across multiple KDE Invent repositories, KDE Discuss threads, Phabricator threads, Bugzilla issues, Matrix rooms, etc. with relatively few links in between each. Discoverability and good housekeeping is important here for maintaining interest and a good connection between developers and users.
    • Provision a central location to track actual user's use cases for the various features, in addition to the usual use cases and personas--likely a collaborate board / doc and/or a wiki page. A similar page would be made to track and group requests, ideas, issues, and merge requests and specific user input referenced from outreach such as polls and surveys
  • Keep interested parties informed with a blog or similar timeline for tracking important milestones, experimental releases, and progress updates.

Current ideas in this space are great but progress is stagnating. As a significant community-wide goal this could help provide further exposure, efforts, or resources to have developers, UI designers, and interested users weigh in and test work-in-progress solutions and provide feedback on how these new solutions facilitate or interfere their individual use-cases.

Plasma

Desktop & Workspaces

  • Initial focus is to complete efforts to define a clear distinction between Activities, Virtual Desktops, and Sessions by building on tables like this one.
    • A number of KDE's developers are adamant that the two represent orthogonal concepts but the UI for Activities makes them inextricably linked to Virtual Desktops. "To the user, the interface is the product" (Video): Users tend to understand Activities as simply another 'dimension' of Virtual Desktops because visually that's how they are presented and behave: e.g. opening a text file in Kate will force switch activities to use an existing Kate process (often in the wrong Kate session); stopping an activity appears to remove virtual desktop space; etc.
    • We need a clear resolution on whether intentional limitations in the design of Activities and Virtual Desktops are actually inherent to the concepts and whether these goals match with how users utilize these features ("Plasma never defines what the user is allowed to do"). Many interesting uses and parallels of the existing concepts have been offered. However the underlying tech needs to be general enough to allow users or scripts to define these kinds of specific uses, rather than facilitate one in particular.
    • Subsequently, we should continue to work on breaking this behavior apart as suggested here, potentially redefining the concepts and focusing on making the orthogonal features of each more distinct to users in their presentation. Along these lines, it would make sense to rename Activities to represent their more slimmed down functionality rather than how to use them.
  • Improve cohesion in session management across the bulk of applications by making activities more transparent to applications. Support even from KDE apps is very weak due to the current opt-in model and that makes the feature hard to utilize in the intended way while requiring more maintenance on the part of all application developers instead of one team. Efforts should focus on broad solutions that *actually work* regardless of the application since this kind of tool will actually benefit users.
  • Virtual Desktops should shift to accomodate the 'additional dimension' functionality that users seem to appreciate in Activities, while Activities focus on separating application configuration and data at a lower level. The plan here is to change the 'row' concept to 'axis', likely moving row visualization and wraparound to plasmoid settings (e.g. the pager), desktop effects, etc. instead. Similar redesign should be explored to separate Virtual Desktops from Screens.
  • Improve standard tiling capabilities and reinvent window grouping to better facilitate component based workflows while improving the KDE experience to users for whom the general windowing behaviour isn't useful. What features to add should follow KDE's visual design philosophy, studying which tiling based features of other desktops provide actual use to users and which popular community plugins could be polished and offered by default in KDE.

Naturally, this goal concerns more than just organization of Activities and Virtual Desktops. A strive for better ways to enable users to tailor their experience in management of applications and configurations, invites application, plasmoid, library, and component developers to participate as well. Each of these areas affect how users are able to interact with their computer as a whole and affects the interface between the user and various services on their device, with some specifically designed to provide configuration or application management capabilities.

System Settings & Configuration Interfaces

Improve the cohesion and semantic proximity of related configurations in settings:

  • The settings for Activities, Virtual Desktops, and Sessions should have an apparent relationship to one another in the way the settings are laid out, such as by being grouped together or linking to one another
  • Improve discovery of various configurations and data related to each setting: e.g. configuration for Activities, such as favourite or pinned applications, has no presence in the Activity related settings but only a very meager set of options to set on each Activity
  • Other modules have similar organizational design problems, e.g. makes no considerations in its design or wording to suggest that the system might have non-KDE related services, making it difficult for non-technical users to understand and discover the full functionality of their desktop
  • When settings and configuration and the Get New Stuff dialog / KDE Store can't account for specific use cases, there should be links and docs nearby to help smooth onboarding for the average user to discover, explore, and take advantage of scripting interfaces and existing development tools such as the , to empower users with more fine-grained local control over their desktop.

KDE Applications

  • Application developers are encouraged to provide their perspective in discussions on how to make Activities and their associated configurations transparent to applications with fewer interfaces requiring opt-in for instance to share only parts of configurations between individual activities more seemlessly.
    • This especially regards what capabilities the remaining opt-in interfaces should provide, e.g. synchronizing specific parts of the application's configuration across activities; also whether functionality from specs like XDG Portals is enough or if there are features more in-scope for KDE than Portals; etc.
  • Encourage applications to provide additional interfaces for some of their customized but generally useful components in for more scripting potential
    • This is a focus on the third pillar of moving more towards components and interoperability rather than large applications; allowing applications to 'borrow' more functionality from one another improves user control and choice
  • Explore other areas where KDE's libraries and compile-time components are are missing , ignored, or re-implemented, and what kind of runtime components and services could be encouraged, focusing on the pillars including user control over interoperability.

KDE Libraries and Frameworks

  • Work on adapting functionality and configuration through interfaces like Kiosk or Activity scripts to more discoverable, user-friendly interfaces and components; e.g. maybe a version of designed to give non-technical end users a chance to learn and explore what kinds of scripting or interfaces their desktop provides for customization beyond the normal system settings interface.
  • Improvements to configuration management in libraries such as KConfig to make the actual configuration and data files for Plasma, individual Activities, Sessions, and some KDE apps easier to compose, swap, save, restore, etc.
    • Make KDE's frameworks more flexible to the user's needs regarding overall organization of configuration files, focusing on how to address issues such as this one. At minimum this should include an environment variable honored by KDE and its apps, a la
    • Most application configuration could likely be handled by the suggested changes to Activities/Sessions anyways, but we should still work with KDE application and library developers to understand what kind of API would provide flexibility for both users and developers beyond hardcoding some arbitrary group of configurations into a likely less-than-ideal library/location

In General

This goal is intended to be extensible to allow users and developers alike to add their own ideas into the mix, allowing for the goal to develop further to encompass other plans within the breadth of the goal's overall pillars. Just to throw a smattering of additional (but incomplete) ideas and examples to get the community thinking about other ways KDE could improve on user control in application configuration and management:

  • Looking for other ways to lessen the hold of individual monolithic applications as encouraged in the recommended reading for design
    • This complements the changes in VDs and Activities by making individual applications less reliant on other applications and providing better mechanisms for not only visually organizing workflows through tiling and grouping of apps but by helping the applications communicate better through the desktop.
  • Explore ways to make it easier for users to explore and test changes to their overall desktop configuration while having an easy way to revert to a specific known-good configuration, potentially extending this to applications by tracking non-KDE configuration files
    • e.g. what can be learned and applied from immutable configuration setups like Nix to give users more freedom to test while drawing from KDE's history in providing an end-user friendly interface and experience
  • Innovation to add new or modify existing tools allowing users to better introspect their system, learn about, or ultimately modify it in ways that work for the average user
    • The plasma-interactiveconsole is designed to let developers poke around activity scripting, but its design is limited in useful, modern IDE features and has a very tradition developer-oriented interface. Maybe KDE could benefit from providing a plugin for the more friendly Kate application and/or we could look into other ideas for how to empower less tech-savvy KDE users through visual programming languages (e.g. Blockly/Scratch) or other methods of 'End-User Development' (e.g. IFTTT automation)
    • Components similar to that provide more varied types of functionality (e.g. a color picker) and/or provide APIs and/or GUIs building on like so that users could swap between different components offering the same kind of programmatic interface with a different human interface.
  • Expand user options in deciding how links clicked in applications open in other applications; the current model allows setting exactly one default option for this with no built-in option to drop or ignore attempts from a program to open
  • Along the vein of window grouping, the desktop could provide a means for panels and or plasmoids to be attached to windows as well, extending the windowing metaphor to make plasmoids and application components associated with particular workflows work more like dockers in applications like Krita

How we know we succeeded

Will we have fluffy kittens? Anything we can measure? How will the world be better once we're done with this?

Towards the end of the goal, KDE users will notice significant updates to application management in the Plasma desktop and better cohesion in session and configuration management options across a majority of KDE applications.

System settings pages for Virtual Desktops, Activities, and Sessions will have more relevant and clearly distinct options from one another while the pages themselves feel more semantically connected by their organization in the interface. Users and developers will be able to clearly distinguish between each of these concepts and why each is useful both individually and together when discussing them and suggesting improvements. Configuration of applications will be easily discoverable and searchable within the module to ensure a one-stop shop so users don't have to hunt for an errant setting; many configurations will also discoverable and/or available from the KDE apps, plasmoids, and panels they relate to. Users will feel comfortable experimenting with the different configurations after getting familiar with presets including one similar to the current workspace setup. Similarly, the average user will find it easier to replicate KDE-wide configuration to new installations without need for an external application.

Developers will be more confident in the existance and maintainability of each of these features. Fewer feature requests will be filed regarding capability, flexibility, and organization in application management interfaces, overall KDE configuration files in the underlying system. Many existing requests will be resolved or closed as wontfix, with the remainder representing futher additions in line with the direction and pillars pushed by this goal. Community members will be able to see the progress, timeline, and milestones of completed work over the goal's lifetime on its wiki page, blog, etc. and be able to use its links to scout for unresolved threads, discussions, and ideas to explore beyond the goal's initial two year span. There will be a noticeable improvement towards flexibility via components over full applications in the desktop interface as well as KDE frameworks and APIs, representing a more solid foundation for future work (or another goal) to build upon.

More generally, when the goal has succeeded users will feel:

  • less annoyance, dismay, and distress related to poor availability or accessibility of methods or options to guide and assist overall organization, introspection, and customization of their desktop, applications, and data;
  • that available configuration of their desktop and KDE applications don't step on the toes of the organization scheme and workflow that works best for them--that it doesn't get in their way, ignore their settings, or hardcode problematic behavior; and
  • that the tools and options they need to organize their workspace and data are readily available, accessible, and apparent to them

For this goal, the KDE community will mostly leverage its existing infrastructure and the varied skillset of our talented developers new and old to track progress of the goal and measure and apply user feedback and satisfaction. This includes community outreach through surveys and opt-in metrics like that used in Dolphin.

Champions

The team (so far) is:

  • @hydroidev - Visioneer (Vision + Technical Steering)
    • I'm aiming to provide a cohesive vision and technical direction by leveraging my academic and career experience in computer science. I pay attention to a lot of emerging standards and projects but I don't have much of a contribution history for open-source projects. I think this is a good opportunity to change that in more ways than just submitting pull requests.
  • XXX
  • XXX

Looking for Champions offering additional guidance and experience for promotional activities in particular, but also to round out technical direction and vision with complementary perspectives.

I am willing to put work into this

  • add your name

I am interested

  • add your name
hydroidev created this task.Jul 5 2024, 6:45 AM
hydroidev moved this task from Backlog to Not ready for voting on the Goal Setting 2024 board.
ngraham added a subscriber: ngraham.Jul 7 2024, 1:10 AM
Comment Actions

Would it be accurate to say that the thrust of this Goal is to listen more to feedback our users, and use that information to prioritize changes? If so, how would that differ from what we're already doing?

redstrate added a subscriber: redstrate.EditedJul 7 2024, 1:34 AM
Comment Actions

Specifically we can measure this via submission frequency and quantity of unresolved bugs, feature requests, and issues in general relating to organization in addition to user feedback from surveys, supplemented by general feedback across the community and those interested in this goal. Additional objective metrics could include satisfaction as reported in polls and surveys directed at users and the KDE Community and similar types of requests for feedback.

I think this paragraph sums up my feelings about the proposal. I think my problem with it is that everything in here is not actionable or objective.

We measure user surveys, and then create feature requests... and who will implement it? Will it just end up creating more work for the limited development time we have? Maybe it will be worse because people expect the user surveys and metrics collected to amount to something now? (Since it would be a goal everyone would see on our website.) Onto that, we will do user surveys - done by whom? And with what time?

Sometimes it's even difficult to get decent feedback when working with clients at my $dayjob, how is doing it in OSS pro bono going to affect this? Depending on regular users in the community - not even people who take time out of their day to work on KDE - sounds a little shaky to me. Maybe you did it before and know your way around the land (if so, that would be helpful to mention in the proposal)

If so, how would that differ from what we're already doing?

This as well, and is also a problem with a lot of the other goal proposals. Goals shed light on things we may do once in a while, but could do with concentrated effort on/shine a spotlight on things KDE does/could do great. "Fixing bugs", "listening to users", and I dunno - "don't commit crimes" are not really goals, it's just what we do anyway...

Comment Actions

I appreciate your feedback and I realize based on the confusion over the overall aim that I overdid it on making the goal broad enough to be worthy of being a KDE community-wide focus to avoid making it too much like a feature request as some of the other proposals. I will take some time to trim down the proposal a bit to make the goal clearer.

While I work on improving the draft, can you tell me if the following helps to clarify the proposed goal for you (if not necessarily the full action plan)?:

The goal is to push for more user-guided organization of the desktop, applications, and files by providing users with tools for analysing/introspecting their setup and usage and re-organizing KDE's methods Virtual Desktops, Activities, Tiling, and Sessions and to other components and features involved in setting, saving, and modifying 'workspaces' and/or 'workflows.'

The goal is not to improve the organization of the KDE community so much as to provide and improve tools in the actual desktop to assist users in their own organization. If that was part of the misunderstanding then the following may not be as relevant.

I definitely agree that the way I presented it was too focused on getting the community organized to accomplish it and has too little substance to be actionable. However, I am not quite sure how to address your concern over resource availability. It is my understanding that any goal accepted will involve redirecting/focusing some of the limited resources within the KDE community based on which developers are interested in volunteering to help. That being the case, my only answer to this is 'yes' I do plan for this goal to focus resources such as limited development time on organizing relevant issues and implementing changes. Similarly, since these are being put to a community vote, I imagine the community will have some hope that the goals they choose will bear fruit; I recognize that there's pressure involved if users are invested as well, but I don't see how a goal is intended to thrive without interest. However, I will endeavour to better address how developers and their time will be managed during the goal's tenure.

I don't have a lot of experience working with a large community for feedback, unfortunately. As a new contributor, I am curious to know what kind of experience and guidance is available within the community, in this case regarding how to wrangle issues and user feedback in a useful way. I expect that--should developers become interested in the goal once it is more well-presented--they would be willing to work together to further refine ideas on, for instance, how to turn the user feedback the community currently receives into a proper set of requirements to guide a more detailed implementation plan, since as you say this is already what you do anyways. However, considering the current concern over lack of actionability, I worry that too much initial focus on how to specifically address and organize feedback will further distract from the actual goal of the project instead of making it more actionable.

frdbr added a subscriber: frdbr.Jul 29 2024, 3:53 PM
hydroidev updated the task description. (Show Details)Jul 29 2024, 10:19 PM
hydroidev updated the task description. (Show Details)Jul 29 2024, 10:44 PM
Comment Actions

@ngraham @redstrate

I've made significant changes to the phrasing which I hope clarify the goal's intent and make it more actionable. Please let me know if it addresses your questions and concerns and/or raises new ones.

I intend to continue to improve it with regards to how the wider community can be involved, since many of the details fall on Plasma interfaces. I could also use more input on whether it is actionable enough without being too much like a feature request; whether there could be improvements to measurability and objective criteria; and if it needs more specifics on how developers would be involved.

Comment Actions

To be honest, the description is way too long. It's a wall of text that doesn't quickly help me understand what the main thrust of the goal is. It seems like it's basically an idea for how to better integrate activities and virtual desktops, and that's something I'd like to see too, but isn't this rather small for a KDE-wide goal?

frdbr added a comment.Aug 12 2024, 7:01 PM
Comment Actions

Hello,

Please note that the deadline is on Wednesday, just two days away, so you still have a bit of time to put the finishing touches on your proposal. Take a moment to polish, adjust, and refine your ideas to ensure they’re ready for voting.

If you need any help or have questions, don’t hesitate to reach out.

hydroidev updated the task description. (Show Details)Aug 14 2024, 11:09 PM
hydroidev renamed this task from Freedom through Organization to Freedom through Better Data and Workflow Organization and Management.Aug 14 2024, 11:18 PM
hydroidev updated the task description. (Show Details)
Comment Actions

Made some final adjustments to add a more direct goal statement and quick summary along with a hopefully more descriptive title. I'm confident that the overall goal is applicable to improvements across KDE applications and libraries beyond Plasma, though much of the actionability here is focused on Activities and Virtual Desktops since to me these appear to be one of the more significant and specific examples implicating less than ideal control, discoverability, and flexibility for user's needs and wants.

One of the main ideas for application developers to participate in the goal separate from Plasma itself is in improving interoperability of custom component implementations. For example, this could be done through runtime interfaces like or by working to integrate these components as generic interfaces in libraries / frameworks in the KDE ecosystem, since these too facilitate user control and autonomy via scripting.

lydia updated the task description. (Show Details)Aug 15 2024, 8:16 AM
lydia moved this task from Not ready for voting to Ready for voting on the Goal Setting 2024 board.
T-bond added a subscriber: T-bond.
frdbr added a comment.Sep 2 2024, 12:29 PM
Comment Actions

The voting process is over, the votes are being tallied and the chosen proposals will be announced at Akademy. In the meantime we would like to invite you all to join the KDE Goals matrix room to stay in the loop, get in touch with other people and team up on other proposals if yours doesn’t make it—or rally some support if it does.