如何在 Kunbuntu 20.04 上从使用 GTK 3 恢复到使用 GTK 2?

如何在 Kunbuntu 20.04 上从使用 GTK 3 恢复到使用 GTK 2?

我在 Kubuntu 20.04 下使用 OpenCPN 5.2.4 和 OpenGL(用于将雷达覆盖在图表上)。与使用 GTK3 相关的跟踪 OpenCPN 错误导致在使用显示缩放时 OpenCPN 无法正确缩放显示(我在 15.6 英寸 4k 显示屏上使用 200% 缩放)。

临时的解决方法是使用 GTK2 而不是 GTK3。

我的问题是:我怎样才能在我的系统上恢复到 GTK2?

如能得到关于如何进行的提示我将非常感激。

系统信息:

  • 操作系统:Kubuntu 20.04
  • KDE Plasma 版本:5.18.5
  • KDE 框架版本:5.68.0
  • Qt 版本:5.12.8
  • 内核版本:5.4.0-77-generic
  • 操作系统类型:64位
  • 处理器:4 × Intel® Core™ i5-4570T CPU @ 2.90GHz
  • OpenGL:3.0 Mesa 20.2.6

$ apt-cache policy opencpn 
opencpn: 
Installed: 5.2.4.0-0~focal1 
Candidate: 5.2.4.0-0~focal1 
Version table:
 *** 5.2.4.0-0~focal1 500 
500 ppa.launchpad.net/opencpn/opencpn/ubuntu focal/main amd64 Packages 
100 /var/lib/dpkg/status 5.0.0+dfsg-1 500 
500 nz.archive.ubuntu.com/ubuntu focal/universe amd64 Packages

答案1

  • 下载源代码[升级至 OpenCPN 5.2.4]
  • 确保所有 GTK3 调用都兼容 GTK2
  • 调整/重新编码那些使用 GTK3 特性的程序,使它们仅限于 GTK2 功能并进行 GTK2 调用
  • 重新编译代码。

GTK3 和 GTK2 API 不同,因此您不能用 GTK2 包替换 GTK3(我猜您希望如此)。

程序需要移植,这是一项繁重的工作(为什么 MATE 花了很长时间来移植,XFCE 等也是如此...更不用说 GNOME 从 GTK2 移植到 GTK3,现在又转向 GTK4)

如果不清楚的话——需要完成的工作是在 OpenCPN 程序和 OpenGL 中完成的;即当前调用 GTK3 的最终用户程序——这些需要更改。

一个系统可以同时存在 GTK3 和 GTK2;例如我的 Lubuntu顽皮的系统安装了 Qt5、GTK3 和 GTK2 库,它们可以愉快地共存。

  • hexchat(我选择的 IRC 客户端)调用 GTK2 库
  • liferea& evolution(我选择的 RSS 和 MUA)调用 GTK3 库
  • 我的 Lubuntu LXQt 桌面,它的程序(例如featherpad调用 Qt5 库)就像您的 KDE 桌面一样(许多 KDE 应用程序也需要 KF5)。

需要更改的是最终用户程序。您可以在系统中安装所有 GTK2 工具包/库,但如果没有程序调用它,它将不会被使用。

另请注意: GTK2 中不存在缩放功能,因此我不明白您希望实现什么。

相关内容