当一个应用程序在linux上发布时,它如何与大多数窗口管理器兼容?

时间:2013-09-25 10:42:23

标签: linux qt gnome kde window-managers

当我说窗口管理器时,我正在谈论KDE,Gnome,lxde,xfce等。

我从不构建一个窗口应用程序,除了Qt,但我的猜测是并非所有应用程序都使用Qt,有些使用wx,但是当ubuntu的repos有一个应用程序时,它会为所有窗口管理器发布

这些应用如何与所有窗口管理器兼容?是应用程序开发人员将他的应用程序与所有窗口管理器相关联,还是有一个共同的基础,使用Xorg或其他窗口应用程序? Qt或wx能解决这些问题吗?我想我记得看到一些只为gnome或KDE发布的应用程序,但我不确定。

我总是想知道这一点,这让我对linux应用程序领域的碎片感到疑惑......

3 个答案:

答案 0 :(得分:2)

曾经有ICCCM标准,但现在您至少应该定位EWMH和其他freedesktop标准(包括dbus)。

当然,最近的工具包如GTK3或Qt5应该有所帮助,因为它们支持很多。

(细节很复杂,所以从头开始是不现实的)

答案 1 :(得分:2)

您的应用程序链接到GUI库,而不是特定的窗口管理器。在X11的情况下,这些库的共同基础是Xlib。

如果某个应用程序仅适用于某些特定的窗口管理器,原因是它还会链接某个特定于该窗口管理器的功能(例如,KWallet或gnome-keyring)。如果从分发软件存储库安装该应用程序,则会自动安装此类附加库。

答案 2 :(得分:1)

AFAIK Qt应用程序将在任何地方运行,其中提供了Qt库。它与Linux发行版有关,而与Window Manager无关。

另一个问题是菜单和系统托盘集成或桌面消息传递。这与一个窗口管理器不同。

请参阅http://www.freedesktop.org/wiki/Software/dbus/