Shell-based solution to set wayland screens coordinates - kde-plasma

I have a 3-display setup where the 3rd display also runs a HDMI sound gateway. Sometimes the 3rd display is off, so I want to set it to replicate one of the other monitors. I can't disable it because then the HDMI output also gets disabled.
What I do manually and I'm looking for a way to achieve programatically is in the display settings GUI drag the 3rd monitor on top of one of the others so that it duplicates the display and windows can't get stuck on an invisible display. So basically I'm looking for something like a set-display-coords 3 0 0 / set-display-coords 3 3840 0 command.

Related

chrome command line flag for auto sharing system sound

I am developing web automation of Zoom meeting (all the way from creation till joining and leaving thereon).
I have been able to complete the creation, joining and screen sharing automation.
I am using --auto-select-desktop-capture-source=MyTab flag to automatically share the desired tab. Up until here, its all working fine.
Where I am stuck is that the chrome tab gets shared without system sound.
I want to automatically share the screen/tab along with system sound / tab audio.
What is the appropriate chrome flag for sharing audio along with screen?

Programmatically signal LXDE desktop manager to hide its start panel?

I'm working on a RaspberryPi with a 3.5 inch LCD screen. I have a Qt 5 based application that operates in kiosk mode without a title bar. The app uses the entire 320x480 screen. I want to hide the LXDE start panel to reclaim the pixels for my app.
I found several posts that detail configuration changes for LXDE to hide the start panel. For example, here and here. They provide answers like edit /etc/xdg/lxsession/LXDE-pi/autostart and restart.
I'm trying to do the same programmatically. LXDE has a Wiki but I don't see an API to dynamically configure it.
My first question is, how do tell LXDE to hide its start panel? I'd like the start menu go away, or ensure my app is layered on top of the start panel. I would like to do something like this:
MainForm::MainForm(QDialog *parent)
: QDialog(parent)
{
ui.setupUi(this);
LXDE* lxde = getDesktopManager();
lxde->hideDesktopPanel();
}
If it is not possible to do at runtime, then my next question is, can I run the RPI with only X11? In this case I can remove the desktop manager because I don't need it. Qt can talk to X11 the window manager directly.
PCManFM and friends are pretty much useless on the 3.5 screen, so I don't really care if the solution is to remove the desktop manager.
A workaround is to use showFullScreen() that makes the GUI occupy the entire window.

Use my own default picture on roboter Peppers tablet

I am using Aldebaran-Softbanks Pepper robot. Per default it's tablet shows an animtion with colored dots.
I want to change that to my own png-picture.
I still have a project/package with a "Show Image" behaviour which displays my picture without problems. I installed this package to the robot and set the autostart flag.
While starting Pepper the picture is shown for some seconds and then it disapears because of the deffault-start-pepper-behaviour which shows a softbank logo, an animated cloud of colored dots and fancy things like that.
My current workaround is to add a "Wait" box between the start-event and the "ShowImage" box. The wait is 22 seconds.
There is a similar looking question but the topic doesn't really fit.
Create empty application. Make a folder named 'html' and place your image inside it.
Add this setup to your robots database either here or via SSH
Restart the robot

CGDisplayCopyAllDisplayModes() does not give a complete list of available modes

I've been trying to write a simple app that resets display resolution for an iMac and a connected projector to 1024x768, 85 Hz and 32bit color.
When the projector is directly connected to the mac with VGA or HDMI, the CGDisplayCopyAllDisplayModes() function gives a list of modes which includes the settings I want to apply. But my college uses Extron VGA wall box thing to connect VGA wires to projectors, which leads to CGDisplayCopyAllDisplayModes() giving a much smaller (only 800x600 and 640X480) list of modes. Also, the name of the display when using the wall box is just VGA Display as opposed to Np-511 or whatever the name of the projector is. The weird thing is that System Preferences->Display shows a 1024x768 setting even then and lets me apply it too.
Is there any way to either get a larger list of modes for the projector, create a 1024x768 mode from scratch and apply it (I've already confirmed that the projector supports it) or simply make System preferences choose that mode for me? I've already written an applescript to do the latter but the disply preferences changes according to the projector connected so I need a more general solution.
Looking forward to your help! I've added some code I used and can include more of it if it'd help.
CGGetOnlineDisplayList (MAX_DISPLAYS, displays, &numDisplays); // to get list of display ids
// ... now iterating over list of displays
CFArrayRef modeList = CGDisplayCopyAllDisplayModes (displays[i], NULL);

Detach and reattach a complete Screen session with multiple windows

I am writing a client/server-application and when I'm testing the code I want to be able to have both the server and client in a separate terminal (+ vim). For this I thought I could use GNU Screen and divide the terminal in multiple windows (and it works great!). But I have a problem when I want to detach the whole session with windows and all. When I try to reattach the session I don't get them in windows like I arranged it, but instead they attaches like "normal" screen instances.
Also, is there a way to change the size of a screen window? Like change the height proportions of two windows splitted vertically.
your first question isn't possible because the regions (the way the windows are displayed) are bound to a single screen instance and not to a screen session.
C-a :
resize
see man screen for more explanation of the resize command