Glossary of Topics:
- Virtual Desktops
- Desktop Grid
- Pager widget
- Discoverability
- Virtual Desktops Shortcuts
- Future Ideal Workflow Concept
Virtual Desktops
Virtual Desktops (aka Workspaces in other Linux based DEs) are great but have very low discoverability in Plasma and when you do initiate their usage you run into a lot of clunky defaults that mostly just get in the way.
The current default setting for amount of virtual desktops in Plasma is just one (1) and I suggest it be changed to four (4).
This would result in a unfortunate side effect with the Desktop Grid & the Pager widget however, I have addressed both of these in their own sections below.
Desktop Grid
Desktop Grid is the Desktop Effect that manages the display of Plasma's Virtual Desktop visualization. The defaults for this effect are quite unfortunate in multiple ways.
The current Layout Mode is set as *Pager* and this means it is locked to whatever the setting is inside of the Pager widget. The Pager widget by default has the layout as 1 Row + X Columns where X is defined by the amount of virtual desktops resulting in a single horizontal row regardless of desktop count. This is ideal for shortcut navigation but not for the desktop grid, more on the navigation in the Shortcuts section.
I suggest changing this setting to "*Automatic*" because this will decouple the display of the grid from the Pager making it actually a grid. This is also alleviate the mandatory manual user interaction for a good looking grid layout.
The shortcut to activate this feature is Ctrl+F8 and that's unfortunate due to its awkward finger positioning and zero discoverability. I have addressed this below in a separate section.
Pager Widget
The Pager widget is the widget on the Plasma Panel that gives quick interaction for virtual desktops from the panel. This widget is unintuitive and creates more hassle / clunk than value.
KDE Plasma starts with the Pager widget in the default layout of the Plasma Panel. The Pager widget is dormant and unused when there is only 1 virtual desktop and since Plasma starts with only 1 virtual desktop, at the moment, this means that by default the Pager widget does not display and provides no default value.
When you add more virtual desktops in Plasma, you also initiate the usage of the Pager widget that effectively feels to come out of nowhere. The value of quick interaction is only present for those who already know the functionality is there due to its hidden unintuitive nature.
In my opinion, this widget should be removed from the Plasma Panel defaults and relegated to only being used when users choose to add it themselves because it does not offer any value by default and when initiated it takes up an excessive amount of panel space depending on the layout of the desktops the user chose.
This would create another problem due to no elements on the Panel related to virtual desktops, I have addressed this below in the Discoverability section.
Discoverability
Discoverability is very important for a feature such as this and therefore it should have a high priority. I have reimagined this as well and have a solution that I feel is both efficient and appealing in its discoverability as it uses the "it just works and gets out of the way" mindset as the basis.
I suggest adding a new single button that represents virtual desktops and when clicked activates the desktop grid effect. I also have addressed the visual aspect and functionality of this button.
Visual:
- use the existing symbolic icon of virtual-desktops available in Breeze Icons.
- create alternates if preferred but with the same vibe
Functionality:
- activating this with a button is already available with a command so set the button to initiate the command and that's it.
- command needed to activate is:
- qdbus org.kde.kglobalaccel /component/kwin org.kde.kglobalaccel.Component.invokeShortcut ShowDesktopGrid
This will create intrigue of interest for what the button does and introduce the Virtual Desktops as a cool effect with a clean predefined layout of 4 in a 2x2 grid.
Virtual Desktops Shortcuts
Keyboard Shortcuts can be a wonderful time saver and usability value, however at this time, this is not the case for Virtual Desktops in KDE Plasma. My reimagining of the virtual desktops entails essentially a total revamp of the shortcuts which I believe to be a more ideal workflow.
I have used @thiagosueto's Shortcut Guidelines as the basis for my revamping of the structure as I feel this set of guidelines and testing is well-thought out and fits seamlessly in my workflow structure concept.
Reference: Meta = Windows key on PC keyboards
Shortcut Mapping:
- Desktop Grid
- Meta+Ctrl+D = activate the Desktop Grid
- exiting this effect:
- same shortcut as activation
- Escape
- via mouse click on a desktop
- Note: this would happen automatically as it already works this way
- Arrows to easily navigate when inside of the effect
- Note: already works this way
- exiting this effect:
- Meta+Ctrl+D = activate the Desktop Grid
- Navigation of Virtual Desktops
- Meta+Ctrl+Left Arrow / Right Arrow = move between Previous & Next Desktops with a Left & Right paradigm
- No Default Exists at this time
- provides consistent modifier value
- process is simple to understand for most with Right = Next and Left = Previous.
- Meta+Ctrl+Shift+Left Arrow / Right Arrow = move windows to the Previous & Next Desktops
- No Default Exists at this time
- provides consistent modifier value
- process is simple to understand = simply adding Shift to the existing Left & Right paradigm
- Meta+Ctrl+[1-9/0] = switch directly to a designated virtual desktop
- Current Defaults are Ctrl+F1 - Ctrl+F4
- has awkward uncomfortable finger positioning
- is locked to no more than 6 because Ctrl+F7 - Ctrl+F12 are used for other things
- side note: all of the Ctrl+F7 - Ctrl+F12 need fixing too (partial exception of Ctrl+F12 having been addressed)
- provides consistent modifier value
- provides quick direct access to a specific desktop
- process is simple to understand, consistent modifiers plus the number of the desktop you want.
- allows for direct acces up to 10 virtual desktops
- Current Defaults are Ctrl+F1 - Ctrl+F4
- Meta+Ctrl+Shift+[1-9/0] = move windows to a designated virtual desktop
- No Default Exists at this time
- provides consistent modifier value
- process is simple to understand = simply adding Shift to the designated virtual desktop paradigm
- Meta+Ctrl+Tab & Meta+Ctrl+Shift+Tab = for walking through virtual desktops
- No Default Exists at this time
- provides consistent modifier value
- process is simple to understand as it functions similar to Alt+Tab paradigm
- can be done in parallel with the Left & Right arrow paradigm
- provides discoverability for those who assume existence from Alt+Tab paradigm expectation
- Meta+Ctrl+Left Arrow / Right Arrow = move between Previous & Next Desktops with a Left & Right paradigm
Future Ideal Workflow Concept
The above reimagining of the workflow requires no additional work to be done on the development side in order to accomplish this structure, everything is available through configuration changes exclusively. The only slight effort would be to create the button on the panel with the command I provided to activate the Desktop Grid, though a simple .desktop file should accomplish this.
With the above said, I think there still is a lot of room for improvement and that this would be essential *Phase 1*. This can be expanded on to an amazing amount of value if developers joined in to take the workflow to awesome levels. For example, Virtual Desktops could be combined with Present Windows and Activities to create an awesome UX workflow that integrates so much value all in one interface.
Here are two great paradigm concepts to consider for the potential of where it could go.
- @alex-l's great mockups of combining Virtual Desktops with Activities
- @tcorreabr's project "Parachute" combining Virtual Desktops with Present Windows
I think another great thing of this reimagining for the virtual desktops workflow is that it has built in transitional value. If Phase 2 becomes something that people want to pursue then practically everything in this new workflow structure would seamlessly transition to the next phase.
What are your thoughts?