Wine下运行的一个Window程序的窗口默认不在前面

Tim*_*Tim 3 ubuntu wine

我经常运行一个程序从终端打开一个文件,我只想快速查看程序中的文件,而不是点击程序窗口,然后关闭程序Ctrl——F4这需要程序的窗口在前面 ie默认在焦点中。

  • 如果程序是本地 Linux 的程序,程序的窗口总是在前面,即默认情况下处于焦点,所以我可以通过Ctrl-关闭程序F4

  • 如果程序是在Wine 下运行的Windows 程序,程序的窗口不在前面,即默认不处于焦点。前面的程序是启动程序的终端。我经常忘记这一点,并且不小心关闭了终端而不是程序Ctrl- F4。关闭终端也会关闭程序,但做的不仅仅是我想要的。

所以我的问题是:如何让 Windows 的程序默认运行在前面?

笔记:

  1. 您可以通过在Wine 2.0.1 下使用Windows 程序PDFXCview.exe和本地linux 程序evince打开pdf 文件来测试上述内容。我在 Ubuntu 16.04 下运行它们。

  2. 我运行 Windows 的程序,通过以下方式在终端中的 wine 下打开一个文件

    wine /home/tim/path/to/PDFXCview.exe myfile.pdf
    
    Run Code Online (Sandbox Code Playgroud)

    并且程序的窗口默认不在前面。

    奇怪的是,如果我在不打开任何文件的情况下运行程序

    wine /home/tim/path/to/PDFXCview.exe 
    
    Run Code Online (Sandbox Code Playgroud)

    程序窗口默认在最前面。

  3. 可能相关或不相关的一件事是,我已设置为使用 PDFXCview.exe 从 LXDE 中的文件管理器 PcManFM 打开 pdf 文件,方法是添加到~/.local/share/applications/mimeinfo.cache

    application/pdf=wine-extension-pdf.desktop;userapp-PDFXCview.exe-NHNW1Y.desktop;
    
    Run Code Online (Sandbox Code Playgroud)

    该文件的内容 ~/.local/share/applications/userapp-PDFXCview.exe-NHNW1Y.desktop

    [Desktop Entry]
    Type=Application
    Name=PDFXCview.exe
    Exec=wine /home/tim/path/to/PDFXCview.exe %U
    Categories=Other;
    NoDisplay=true
    MimeType=application/pdf
    Terminal=false
    
    Run Code Online (Sandbox Code Playgroud)

    它可能不相关,因为它是从桌面环境运行程序的设置,而我的问题是关于从终端运行程序。

    当我在PcManFM的wine下使用PDFXCview.exe打开pdf文件时,通过双击PcManFM中的文件,PDFXCview.exe的窗口也不在前面。见https://askubuntu.com/q/925540/1471

谢谢。

ctr*_*lor 5

首先请注意,前景窗口和带键盘焦点的窗口不是一回事。它们适用于 Mircosoft 的 Windows,也适用于许多窗口管理器,但不一定。例如 KDE 可以分别管理这两个属性。

现在关于你的问题,就像我上面提到的那样,这将取决于窗口管理器。在 Kde 中有一些设置允许您控制键盘焦点,甚至是依赖于应用程序的设置(但仍然是窗口管理器的一部分)。在此处输入图片说明上图显示了如何做相反的事情(将接受焦点设置为是来执行您的要求)。我为一个应用程序测试了这个配置。


不要混淆窗口管理器、启动器等的角色。KDE、Gnome、LXDE 和其他人都做所有这些。窗口管理器管理哪些窗口在哪里,那里的大小,它们是否最小化,哪个在哪​​个后面,哪个具有键盘焦点。应用程序也可以控制这一点,另一个应用程序也可以控制,但最终是注册为窗口管理器的进程负责。它可以阻止其他进程做这些事情,并决定窗口被映射到哪里,以及它是否获得键盘焦点,当第一次映射时(或永远)。窗口管理器唯一可见的部分是所有其他窗口的标题栏(+关闭、最大化、最小化等图标)。