1

刚刚开始使用 linux 编程和特定的 X Windows。我正在尝试制作一个应用程序,我在象限视图中启动 4 个不同的程序(例如 VLC、Web 浏览器等)。现在我不需要(或想要)一个位于顶部的窗口管理器,只需要运行最基本的应用程序。

我可以使用 -geometry 命令使用 x 实用程序(如时钟等)来执行此操作。

我的问题是,我如何控制这些其他应用程序的放置?

4

1 回答 1

1

解决方案 1

Devilspie是完成此任务的完美工具。举个例子:

+--------+------------------------+
| Pidgin |                        |
| Buddy  |        Pidgin          |
| List   |     Conversation       |
|        |                        |
|        +------------------------+
|        |                        |
|        |        Xchat           |
|        |                        |
|        |                        |
+--------+------------------------+

可以通过以下配置完成。

(if (is (application_name) "Pidgin")
        (begin
                (if (is (window_role) "buddy_list")
                        (begin
                                (undecorate)
                                (skip_tasklist)
                                (geometry "199x767+0+0")
                        )
                )
                (if (is (window_role) "conversation")
                        (begin
                                (undecorate)
                                (geometry "822x400+201+0")
                        )
                )
        )
)

解决方案 2

启动所需的应用程序,然后使用wmctrl将窗口移动并调整到所需位置。您可以使用 -r 参数来实现这一点。

  -r <WIN> -e <MVARG>  Resize and move the window around the desktop.

恶魔经验(更新)

按照评论中的要求。我一直在使用devilspie,它真的很棒,并且可以与我使用过的每个窗口管理器一起使用 gnome、xfce、kde、fvwm。我已经整理了一个有效的devilspie 配置,可以完成您想要的部分工作。您可以将此文件放在~/.devilspie/devilspie.ds. 还附有一个屏幕截图,显示了此配置文件的结果。我在 foosel.org 上找到的关于 devilspie 的最佳文档. 我强烈建议您使用它。在测试devilspie 时,在终端的前台运行它。如果是这样,请确保没有其他恶魔进程正在运行杀死它们。每次您更改配置并希望查看结果时,请在 Devilspie 上按 CTRL+C 并再次运行它。其他一些需要注意的事情,如果 vlc 在关闭时被最大化,那么它将再次最大化打开,并且会忽略调整大小和移动的恶魔请求。因此,请确保在关闭 vlc 时不会将其最大化。您也可以先打电话unmaximize,然后再geometry打电话。

(debug)
(if
    (is (application_name) "VLC media player")
    (geometry "500x300+0+0")
)
(if
    (is (application_name) "xterm")
    (geometry "300x300+510+0")
)
(focus)

截图 在此处输入图像描述

于 2012-11-22T18:18:02.760 回答