Configuration 如何从脚本控制KDE监视器配置?

Configuration 如何从脚本控制KDE监视器配置?,configuration,scripting,kde,multiple-monitors,Configuration,Scripting,Kde,Multiple Monitors,每天早上我来上班,把睡觉的笔记本电脑插入我桌上的大显示器,然后摆弄这个对话框: 我想这种摆弄的结果是“显示设置”应用程序将新的监视器配置写入某个文件,然后向窗口管理器发送一些信号,通知设置已更改。我想自己做这件事,并直接控制它,为了这个目的,也为了其他目的 如果我能找到生成“显示设置”对话框的进程的名称,我可以用strace运行它,看看它在做什么,但我也没能找到 我的问题是: 此对话框属于哪个程序?我会在ps输出中寻找什么来识别它?当它改变监视器配置时,它实际上在做什么 xrandr实用程序可

每天早上我来上班,把睡觉的笔记本电脑插入我桌上的大显示器,然后摆弄这个对话框:

我想这种摆弄的结果是“显示设置”应用程序将新的监视器配置写入某个文件,然后向窗口管理器发送一些信号,通知设置已更改。我想自己做这件事,并直接控制它,为了这个目的,也为了其他目的

如果我能找到生成“显示设置”对话框的进程的名称,我可以用
strace
运行它,看看它在做什么,但我也没能找到

我的问题是:

此对话框属于哪个程序?我会在
ps
输出中寻找什么来识别它?当它改变监视器配置时,它实际上在做什么


xrandr
实用程序可以通过脚本进行控制。通过运行以下命令可以获得屏幕截图中显示的配置:

为了生成这个命令行,我使用了
arandr
。它显示一个类似于原始问题中的对话框,但更简单,然后有一个“保存”选项,将正确的
xrandr
调用保存到文件中

在使用
arandr
对话框以我想要的方式配置监视器之后,我将配置保存到一个文件中,比如
~/.screenlayout/office.sh
。以shell脚本的形式执行此文件将恢复保存的配置。我编写了一个简单的shell脚本,
disp
,它执行
$HOME/.screenlayout/$1.sh
,因此当我到达办公室时,我只需在命令行上键入
disp office
,即可恢复办公室监视器配置。当我回家时,我键入
disp1
,它运行
~/.screenlayout/1.sh
,在那里我保存了默认的单监视器配置

尽管原始问题中的对话框可能正在运行
xrandr
来更改屏幕配置,但我的帖子中的其他问题仍然没有答案

[更新2018-04-08:我继续使用
disp
,这不再是微不足道的。当前版本是。一个改进是它有一个
-c
标志来支持shell可编程完成,我这样设置:

    complete -F __complete_disp disp

    __complete_disp () {
        COMPREPLY=($(disp -c "$2"))
    }
自从我写了这个回复后,KDE本身在使用正确的显示器配置方面变得更聪明了。它通常似乎能识别插入的显示器,并能记住上次相同的配置,所以我发现自己使用的
disp
比以前少了很多。尽管有时它会感到困惑,然后我就忘记了使用
disp
重置配置很方便

    complete -F __complete_disp disp

    __complete_disp () {
        COMPREPLY=($(disp -c "$2"))
    }