Plasma Work From Home Edition
Open, Needs TriagePublic

Description

With no midterm end to the pandemic and even then companies realizing that remote work and online meetings can be a viable solution, let's add some features to Plasma to facilitate users in focusing better on using remote conferencing solutions.

Notifications

Do not disturb while screen sharing

Automatically enable do not disturb mode when screen casting to avoid embarrassing situations or just flat out information leak when a chat message or email comes in while sharing screen.
When using the Pipewire screen sharing mechanism KWin could post a notification inhibition while someone has a stream open.

Window rule for do not disturb mode

A bit of an expert feature but could still be useful to be able to use window rules for enabling do not disturb mode. This way one could tag $proprietary-conferencing-app window as screen share window and automatically turn off notifications.

Volume Controls

Global push to talk mode

There's always that someone in a call with their mic stuck open causing echo and nausea to everyone.
Instead of having to fiddle with different microphone controls in different apps, we should have a global "push to talk" feature which, when enabled, will mute the mic and only unmute whilst a key is held down.
Plasma-pa already has a microphone indicator which can mute and unmute.
However, KGlobalAccel doesn't do "press and hold" shortcuts, just single invocations. Actually, it does do keyboard repeat but abusing that is just a hack. Perhaps KWin's modifier only shortcut feature could be extended to also report key presses? However, is just holding down e.g. "Shift" to talk fine? Maybe.. if you toggle push to talk by clicking the microphone icon first or something?

Screen Sharing

Neutral background image while screen casting

It could be beneficial to automatically change the desktop wallpaper to a neutral color during screen sharing, possibly to avoid information leak but also to save bandwidth. This could use the same hook as for notifications, see above

Keep screen on during screen casting

Most apps already do that properly by posting an inhibition but it could still be useful if we forcefully kept the screen on and lock screen off during a screen cast

Disable night color mode when screen sharing is active

Non-issue/fixed

Open new windows by default on a non-shared screen

To avoid windows not meant to be shared accidentally popping up in the shared view

Mouse click effect

So the viewers can follow where one is clicking. KWin already has a mouse click effect but enabling it is pretty cumbersome. There needs an easier way. Perhaps also just a setting to automatically enable it while screen recording/sharing.

Magnifying glass

So you can zoom in a certain area around the mouse for the audience. KWin already has that but again, enabling it is somewhat cumbersome and requires you to zoom in and then out. Ideally, there was a key (combination) that, while held down, shows a magnifying glass around the cursor.

Laser pointer / highlighter

So you can highlight/draw attention to a certain area of the screen during a presentation, maybe? However, the mouse cursor might provides that, if it's visible. So this is more for giving a presentation than regular screen sharing. Perhaps merge that with magnifying glass or something

Audio

Level meter

In volume applet to judge if microphone volume level is OK.
Additionally, might be interesting to add a red overlay to the microphone indicator (or even an OSD?) if the microphone is at/near peak level for prolonged periods of time

Noise filter

Allow to enable a simple noise filter / echo filter without having to deal with complex PulseAudio configuration on the command line

Hint about being muted when talking while muted

Not sure if it (or even should) be possible to monitor the microphone level while it's muted. Nonetheless showing a hint that the user is muted when they're trying to speak could be useful. From what I heard this feature is typically implemented using a cloud transcription service that trips when words are detected with the microphone muted in the call. Urgh. :)

Built-in echo test

Add a built-in echo test to check your equipment.

Other

Digital clock showing multiple timezones simultaneously

Digital clock can already show multiple time zones in the tooltip and change timezones with mouse wheel but it could be beneficial if it could show two (or multiple?) timezones at the same time in the panel next to each other, e.g. Local time + UTC, or Local time + head quaters time, or Local time + whatever other subsidiary office location time

broulik created this task.Sep 5 2020, 6:12 PM
vkrause added a subscriber: vkrause.Sep 5 2020, 6:32 PM
vkrause added a comment.EditedSep 5 2020, 7:33 PM

Screen sharing

  • disable night color mode when screen sharing is active [this actually does the right thing already, just tested in the hallway track room]
  • open new windows on a screen that's not shared by default (in case of multi-screen setups), to avoid windows not meant to be shared accidentally pop up in the shared view

Audio

Things from the complex OBS setup that might be interesting to have easier available:

  • show a simple level meter, to judge if your volume level is ok, your mic is properly placed, etc
  • allow to enable a noise filter without having to deal with pulseaudio etc on the command line manually
  • can we monitor the mic for activity despite being muted? that might allow us to fix the common "$PERSON, I think you are still muted." issue, by immediately warning about that. [Kai's idea]
  • add a built-in echo test to check your equipment [Nicolás' idea]

A non-representative poll in the hallway track last night suggested we should default to the right Ctrl key for push to talk.

The modifier itself will be configurable but going through KWin's modifier only shortcut features means that we have full control over the behavior (e.g. press, and then release) whereas KGlobalAccel only does single invocations, but has the downside of only being able to use modifier keys, so what needs to be done for this is:

  • make ModifierOnlyShortcuts allow to send key *presses* out, too
  • allow to configure individual modifier keys (e.g. LeftControl vs RightControl) which involves using native scan codes, as Qt does no distinction between the two keys anywhere in public API
alex awarded a token.Sep 12 2020, 11:51 AM

+1 for right Ctrl, that feels like it makes sense.

disable night color mode when screen sharing is active [this actually does the right thing already, just tested in the hallway track room]

After discussions with Volker (and analyzing the root problem to be solved) this is a non issue.

broulik updated the task description. (Show Details)Oct 29 2020, 9:22 PM

Digital clock showing multiple timezones simultaneously

FWIW the digital clock popup can now show multiple timezones in it.

broulik updated the task description. (Show Details)Oct 31 2020, 7:17 PM
broulik updated the task description. (Show Details)Oct 31 2020, 7:21 PM
apol added a subscriber: apol.Nov 2 2020, 1:56 PM

Media Session API gained "video conferencing actions, could be useful to expose those actions through p-b-i somehow: https://web.dev/media-session/#video-conferencing-actions