如果程序窗口已打开,如何聚焦程序窗口而不是生成新窗口

Jas*_*mat 3 gnome keyboard-shortcuts gtk cinnamon dconf

我目前正在使用 Linux Mint 19.03 Cinnamon。

问题

gnome-calculator使用Cal快捷按钮启动,当我按下该按钮时,gnome-calculator会生成新窗口。我不想要这种行为。 在此输入图像描述

预期结果

我期待Cal按钮启动gnome-calculator,但如果它已经在运行,Cal再次按下时,它将显示现有窗口,依此类推。

目前的尝试

我发现,使用dconf 编辑器可以自定义桌面。
到目前为止,我还找到了执行的字符串gnome-calculator

org.cinnamon.desktop.default-applications.calculator exec 'gnome-calculator'
Run Code Online (Sandbox Code Playgroud)

我使用dconf 编辑器,如下所示: 在此输入图像描述

到目前为止,我需要的是使用正确的命令更改自定义值,以检查现有计算器窗口并显示它。

问题

关注现有gnome-calculator窗口的命令(或脚本)是什么?如果它不存在,只需生成一个即可。

先感谢您。

Jas*_*mat 5

我已经找到答案了。事实证明这个问题不是一个特定的 DE 问题。这是应用程序本身的行为gnome-calculator

我找到了两种方法(或解决方法)来执行此操作:

使用wmctrl

所以,基本命令是这样的:

wmctrl -xa gnome-calculator || gnome-calculator
Run Code Online (Sandbox Code Playgroud)

要使其在dconf命令中工作,请在 shell 命令中对其进行扭曲,并使用终端将其应用到dconf,如下所示:

gsettings set org.cinnamon.desktop.default-applications.calculator exec "sh -c 'wmctrl -xa gnome-calculator || gnome-calculator'"
Run Code Online (Sandbox Code Playgroud)

使用xdotool

有了这个,你需要安装xdotool.

命令:

xdotool search --class gnome-calculator windowactivate || gnome-calculator
Run Code Online (Sandbox Code Playgroud)

Dconf设置:

gsettings set org.cinnamon.desktop.default-applications.calculator exec "sh -c 'xdotool search --class gnome-calculator windowactivate || gnome-calculator'"
Run Code Online (Sandbox Code Playgroud)

参考:
mattia-b89的评论
askubuntu问题
mtwebster的github评论