Gtk版本更新录(202x)
GTK(GIMP Toolkit) 是一套跨多种平台的图形工具包,最初为 GIMP(GNU Image Manipulation Program) 这个 GNU 图像处理程序,其拥有几乎所有图象处理所需的功能。GTK 后来发展成为 Linux 下开发图形界面应用的主流开发工具。它使用C语言开发的一种图形用户界面(GUI)工具包。也就是说,它是一个库或者是若干个密切相关的库的集合,它支持创建基于 GUI 的应用程序。其实质上是一个面向对象的应用程序接口 (API),尽管完全用 C 写成的,但它是基于类和回调函数(指向函数的指针)的思想实现的。GTK使用C语言开发,但是其设计者使用面向对象技术。
最新版本:2
Debian放弃已经陪伴了20年的GTK2
Debian GNOME 团队在2026年1月下旬明确表示,计划在 Debian v14 正式发布之前,逐步将已经服役多年的 GTK2 从 Forky 开发分支以及主软件仓库中移除。GTK2 最早发布于 2002 年 3 月,曾经是 Linux 桌面应用的重要基础之一,支撑了大量经典软件的诞生。不过随着桌面技术和使用场景不断演进,GTK2 已明显难以适应当下的需求。按照当前规划,Debian v14 预计将在 2027 年年中发布,这也相当于为 GTK2 的“退场”划定了一个相对明确的时间窗口。
维护现状成最大压力
推动这项决定的核心原因,还是维护成本与安全风险。自 2020 年底 GTK4 正式发布以来,GTK2 早已停止上游维护,不再接收安全补丁和功能更新,实际上已经进入“无人看管”的状态。相比之下,GTK3 自 2011 年推出后,在 Debian 稳定版中长期维持在 3.24 系列,使用时间超过七年,技术成熟、维护稳定,这种强烈对比也让 GTK2 显得更加老旧,继续保留只会增加系统负担。
遗留软件仍是现实问题
从软件生态的角度来看,GTK2 的影响并没有完全消失。虽然依赖 GTK2 的软件数量正在逐年下降,但 Debian GNOME 团队指出,自 2020 年以来,这类软件包的数量虽然已经减少到原来的不到四分之一,但在整个 Debian 仓库中,仍然有 大约 150 个软件包受到影响。这意味着,GTK2 虽然“过时”,却仍然是一个无法忽视的历史包袱。
主流发行版已经在行动
Debian 的这一动向并是孤立事件,而是顺应了主流发行版的整体趋势。
Arch Linux 已在 2025 年将 GTK2 从官方仓库中移除,仅通过 AUR 方式提供
Red Hat Enterprise Linux 10 则更为彻底,完全不再支持 GTK2
在这种背景下,Debian 如果继续长期保留 GTK2,反而会显得与行业方向渐行渐远;基于这一现实,也进一步强化了 Debian 推进清理工作的合理性。
“缺乏上游支持工具包”的隐患
支持移除 GTK2 的 Debian 维护者普遍认为,继续维护一个已经停止上游支持的工具包,本身就存在多重隐患。一方面,潜在的安全漏洞无法得到及时修复;另一方面,随着编译器、工具链和系统库不断升级,保证这些老旧软件还能正常构建和运行,需要投入越来越多的时间和人力。这种“为历史买单”的维护方式,显然并不长久。
图形安装器成最后阻碍
不过 GTK2 的彻底移除目前仍面临一个现实的技术障碍:Debian 的图形化安装器至今仍依赖 GTK2。在这一关键组件完成替换或重构之前,GTK2 还无法完全从 Debian 的软件仓库中消失。因此如何为安装器找到合适的替代方案,也成为推进 GTK2 退役计划中必须优先解决的一步。
桌面体验已明显落后
从用户体验角度来看,GTK2 的局限性同样越来越明显。它既不原生支持 Wayland,也无法很好地适配现代桌面环境中常见的分数缩放。即便通过一些变通手段,部分 GTK2 应用在 HiDPI 显示器上还能“勉强能用”,但无论是显示效果还是交互体验,与 GTK3、GTK4 应用之间的差距都已经非常直观。
迁移并非易事
另一方面,一些仍然拥有用户基础的应用,至今仍构建在 GTK2 之上。相关开发者也坦言,将这些应用迁移到 GTK3 或 GTK4,往往不是简单的“升级接口”,而是需要进行较大规模的架构重构。在部分项目中,由于维护力量不足或项目进入半停滞状态,这种迁移甚至可能永远不会发生,这也让 GTK2 的退役在现实层面变得更加复杂。
外部仓库作为过渡方案
作为折中方案,有 Debian 贡献者提出可将 GTK2 及其剩余依赖软件包移入 外部仓库,而不是继续保留在官方主仓库中。随着 Debusine 平台的投入使用,这些软件包可以在 Debian 正式体系之外继续构建和分发,其思路与 Arch Linux 通过 AUR 维护 GTK2 的方式相似,既减少主仓库负担,又为少数用户保留选择空间。
最新版本:3
v3.2 将可让你在浏览器上运行任何应用程序,这得益于新的 HTML5 的 gdk 后端,这意味这你将可以在浏览器上运行远程或者本机的例如 GIMP、Gedit、视频编辑器等任何软件。当然这还在进一步开发过程中,并不是所有的功能都完成了,例如键盘输入支持、拖放等等;当前只能在 Firefox 4 上运行,尽管如此,这也足以让人感到惊奇。
GTK+ 3.X 的渲染后端支持达到一个全新的境界,增加 HTML5 渲染后端支持。实现在浏览器中渲染 GTK+ 3.X 程序,只需要满足以下条件:
* 使用 Mozilla Firefox 4 浏览器(未来会有更多浏览器的支持)。
* 打开默认禁用的 WebSocket 支持。
* 编译 GTK+ 3.2 时打开 HTML5 后端支持:–enable-x11-backend –enable-broadway-backend。
* 使用GDK_BACKEND=broadway your-application 启动你的 GTK+ 程序。
* 在 Firefox 中指向测试机的 8080 端口 IP 地址,比如 http://127.0.0.1:8080/
最新版本:4
2020年12月17日,负责发布工作的 GTK 团队成员 mclasen 感慨道:“2020年是漫长的一年,没有比用大版本更新来告别2020的更好方式了,所以 GTK v4.0 今天正式发布”。自2016年11月发布 GTK 3.89.1 以来,GTK 开发者为项目添加了 18000 多个提交,并发布了 20 多个开发版本。因此 v4.0 是一个凝聚了大量开发者时间和精力的重要版本。开发团队表示,目前 v4.0 已处于稳定阶段,GTK v3 在“可预见的未来”将会继续维护和更新,而 GTK v2 即将 EOL,计划在未来几天发布一个最终的 2.x 版本,此后不再受支持。因此建议开发者将 v2 应用程序移植到 GTK v3 或 v4。v4.0 部分更新亮点:
新的 widget 小部件以及对现有元素的重新设计
集成媒体播放支持
改进 GPU 加速功能(比如使用新的 Vulkan 渲染器)
更好的 macOS 支持
改进数据传输功能
对着色器的重大改动
Vulkan 之外的 OpenGL 渲染改进
更好的 Windows 支持,更多详情查看发行公告。
GTK v4.2 已于2021年3月末发布,更新内容包括修复错误、改进 API,以及添加新功能。例如增加了新的 GL 渲染器;改进 GTK Toolkit 处理组合键和死键序列的方式; 改进构建系统,以便在 Windows 和 macOS 上编译 GTK;以及一个全新的 API 参考,它由语言绑定也使用的相同内省数据 (introspection data) 生成。新增的渲染器是 "NGL" OpenGL 渲染器,并在 Linux、macOS 和 Windows 平台上默认使用,旧的 OpenGL 渲染器暂时还在维护,可以通过环境变量覆盖 (GSK_RENDERER=gl) 来启用。
GTK4 NGL 渲染器在移动和桌面系统上有不错的性能表现,同时开发者还在继续努力优化以提供更多的功能和性能。另外在性能方面,从用于渲染内容的 GLSL 着色器到按需创建的可访问性对象,性能都得到了全面提升。另外还改进了输入处理、可移植性和构建系统功能,以及改进 GTK4 文档,更好的 Wayland 输入方法协议支持,改进滚动性能,增强文本的亚像素 (sub-pixel) 定位等。更多详情查看发行公告。
v4.11.1 于2023年4月上旬发布,该版本最重要的是引入了对 Wayland 分数缩放的初始支持,可通过 GDK_DEBUG=gl-fractional 环境变量激活。此外还优化了一些内容,比如对新的 GtkListView 小部件:修复了长期存在的滚动错误;更好的键盘导航,具有可自定义的选项卡行为;对焦控制,程序化滚动。对 GTK 的 OpenGL 渲染器也提供更好的纹理支持,比如添加了对人为限制纹理大小的支持(使用 GSK_MAX_TEXTURE_SIZE 环境变量)。
2023年8月上旬发布的v4.12 为其 Vulkan 后端带来了许多改进,为列表部件添加了 "scroll_to" API,改进 Flatpak 包内的字体渲染,添加了 GTK4 渲染节点工具,以及其他各种修复和更新。针对 Vulkan 后端的改进包括添加管道缓存、渐变和其他各种更小的全面改进。在 v4.12 开发周期中,GTK4 在 Vulkan 渲染方面的持续工作似乎是最重要的变化。还包括部分针对 Wayland 的工作,比如修复手写笔按钮的行为和支持悬浮窗口状态。详情查看发行说明。
根据此前的计划,GTK 5 将在 v4.12 发布后启动。
v4.20 已于2025年9月上旬发布,新版本在 Wayland、渲染器兼容性、跨平台支持、无障碍以及视频与图形处理方面进行了多项重大更新,确保 GTK 在 Linux、macOS、Android 与 Windows 上拥有更稳定、一致的用户与开发体验,同时为即将上线的 GNOME v49 桌面环境提供技术基础。
Wayland 支持提升
增加对 wl_seat v10 协议的支持。
支持 tablet protocol v2。
引入 server-side 键重复机制。
改善自然滚动处理等功能。
跨平台增强
Vulkan 渲染器在 macOS 上得到修复与优化,并增强整体 Vulkan 渲染代码的稳定性。
macOS 平台新增 窗口贴靠(window snapping) 和改进的 窗口菜单支持。
功能与渲染改进
视频播放组件新增 YUV 格式支持。
增加会话管理 portal 支持,强化跨桌面环境一致性。
改善符号图标(symbolic icons)的渲染质量。
支持 CSS 媒体查询,让主题在色彩方案与对比度上具备更细致的响应式表现。
在 OpenGL 渲染路径中增加对 多平面纹理(multi-plane textures)的支持。
继续推进无障碍访问(accessibility)方面的改进,如对输入框、文件选择器等组件的辅助功能增强。
与 GNOME 生态系统同步
v4.20 正式作为稳定版本发布,且及时在 GNOME v49 发布周期前推出,可预见将被其默认采用。
最新版本:2
Debian放弃已经陪伴了20年的GTK2
Debian GNOME 团队在2026年1月下旬明确表示,计划在 Debian v14 正式发布之前,逐步将已经服役多年的 GTK2 从 Forky 开发分支以及主软件仓库中移除。GTK2 最早发布于 2002 年 3 月,曾经是 Linux 桌面应用的重要基础之一,支撑了大量经典软件的诞生。不过随着桌面技术和使用场景不断演进,GTK2 已明显难以适应当下的需求。按照当前规划,Debian v14 预计将在 2027 年年中发布,这也相当于为 GTK2 的“退场”划定了一个相对明确的时间窗口。
维护现状成最大压力
推动这项决定的核心原因,还是维护成本与安全风险。自 2020 年底 GTK4 正式发布以来,GTK2 早已停止上游维护,不再接收安全补丁和功能更新,实际上已经进入“无人看管”的状态。相比之下,GTK3 自 2011 年推出后,在 Debian 稳定版中长期维持在 3.24 系列,使用时间超过七年,技术成熟、维护稳定,这种强烈对比也让 GTK2 显得更加老旧,继续保留只会增加系统负担。
遗留软件仍是现实问题
从软件生态的角度来看,GTK2 的影响并没有完全消失。虽然依赖 GTK2 的软件数量正在逐年下降,但 Debian GNOME 团队指出,自 2020 年以来,这类软件包的数量虽然已经减少到原来的不到四分之一,但在整个 Debian 仓库中,仍然有 大约 150 个软件包受到影响。这意味着,GTK2 虽然“过时”,却仍然是一个无法忽视的历史包袱。
主流发行版已经在行动
Debian 的这一动向并是孤立事件,而是顺应了主流发行版的整体趋势。
Arch Linux 已在 2025 年将 GTK2 从官方仓库中移除,仅通过 AUR 方式提供
Red Hat Enterprise Linux 10 则更为彻底,完全不再支持 GTK2
在这种背景下,Debian 如果继续长期保留 GTK2,反而会显得与行业方向渐行渐远;基于这一现实,也进一步强化了 Debian 推进清理工作的合理性。
“缺乏上游支持工具包”的隐患
支持移除 GTK2 的 Debian 维护者普遍认为,继续维护一个已经停止上游支持的工具包,本身就存在多重隐患。一方面,潜在的安全漏洞无法得到及时修复;另一方面,随着编译器、工具链和系统库不断升级,保证这些老旧软件还能正常构建和运行,需要投入越来越多的时间和人力。这种“为历史买单”的维护方式,显然并不长久。
图形安装器成最后阻碍
不过 GTK2 的彻底移除目前仍面临一个现实的技术障碍:Debian 的图形化安装器至今仍依赖 GTK2。在这一关键组件完成替换或重构之前,GTK2 还无法完全从 Debian 的软件仓库中消失。因此如何为安装器找到合适的替代方案,也成为推进 GTK2 退役计划中必须优先解决的一步。
桌面体验已明显落后
从用户体验角度来看,GTK2 的局限性同样越来越明显。它既不原生支持 Wayland,也无法很好地适配现代桌面环境中常见的分数缩放。即便通过一些变通手段,部分 GTK2 应用在 HiDPI 显示器上还能“勉强能用”,但无论是显示效果还是交互体验,与 GTK3、GTK4 应用之间的差距都已经非常直观。
迁移并非易事
另一方面,一些仍然拥有用户基础的应用,至今仍构建在 GTK2 之上。相关开发者也坦言,将这些应用迁移到 GTK3 或 GTK4,往往不是简单的“升级接口”,而是需要进行较大规模的架构重构。在部分项目中,由于维护力量不足或项目进入半停滞状态,这种迁移甚至可能永远不会发生,这也让 GTK2 的退役在现实层面变得更加复杂。
外部仓库作为过渡方案
作为折中方案,有 Debian 贡献者提出可将 GTK2 及其剩余依赖软件包移入 外部仓库,而不是继续保留在官方主仓库中。随着 Debusine 平台的投入使用,这些软件包可以在 Debian 正式体系之外继续构建和分发,其思路与 Arch Linux 通过 AUR 维护 GTK2 的方式相似,既减少主仓库负担,又为少数用户保留选择空间。
最新版本:3
v3.2 将可让你在浏览器上运行任何应用程序,这得益于新的 HTML5 的 gdk 后端,这意味这你将可以在浏览器上运行远程或者本机的例如 GIMP、Gedit、视频编辑器等任何软件。当然这还在进一步开发过程中,并不是所有的功能都完成了,例如键盘输入支持、拖放等等;当前只能在 Firefox 4 上运行,尽管如此,这也足以让人感到惊奇。
GTK+ 3.X 的渲染后端支持达到一个全新的境界,增加 HTML5 渲染后端支持。实现在浏览器中渲染 GTK+ 3.X 程序,只需要满足以下条件:
* 使用 Mozilla Firefox 4 浏览器(未来会有更多浏览器的支持)。
* 打开默认禁用的 WebSocket 支持。
* 编译 GTK+ 3.2 时打开 HTML5 后端支持:–enable-x11-backend –enable-broadway-backend。
* 使用GDK_BACKEND=broadway your-application 启动你的 GTK+ 程序。
* 在 Firefox 中指向测试机的 8080 端口 IP 地址,比如 http://127.0.0.1:8080/
最新版本:4
2020年12月17日,负责发布工作的 GTK 团队成员 mclasen 感慨道:“2020年是漫长的一年,没有比用大版本更新来告别2020的更好方式了,所以 GTK v4.0 今天正式发布”。自2016年11月发布 GTK 3.89.1 以来,GTK 开发者为项目添加了 18000 多个提交,并发布了 20 多个开发版本。因此 v4.0 是一个凝聚了大量开发者时间和精力的重要版本。开发团队表示,目前 v4.0 已处于稳定阶段,GTK v3 在“可预见的未来”将会继续维护和更新,而 GTK v2 即将 EOL,计划在未来几天发布一个最终的 2.x 版本,此后不再受支持。因此建议开发者将 v2 应用程序移植到 GTK v3 或 v4。v4.0 部分更新亮点:
新的 widget 小部件以及对现有元素的重新设计
集成媒体播放支持
改进 GPU 加速功能(比如使用新的 Vulkan 渲染器)
更好的 macOS 支持
改进数据传输功能
对着色器的重大改动
Vulkan 之外的 OpenGL 渲染改进
更好的 Windows 支持,更多详情查看发行公告。
GTK v4.2 已于2021年3月末发布,更新内容包括修复错误、改进 API,以及添加新功能。例如增加了新的 GL 渲染器;改进 GTK Toolkit 处理组合键和死键序列的方式; 改进构建系统,以便在 Windows 和 macOS 上编译 GTK;以及一个全新的 API 参考,它由语言绑定也使用的相同内省数据 (introspection data) 生成。新增的渲染器是 "NGL" OpenGL 渲染器,并在 Linux、macOS 和 Windows 平台上默认使用,旧的 OpenGL 渲染器暂时还在维护,可以通过环境变量覆盖 (GSK_RENDERER=gl) 来启用。
GTK4 NGL 渲染器在移动和桌面系统上有不错的性能表现,同时开发者还在继续努力优化以提供更多的功能和性能。另外在性能方面,从用于渲染内容的 GLSL 着色器到按需创建的可访问性对象,性能都得到了全面提升。另外还改进了输入处理、可移植性和构建系统功能,以及改进 GTK4 文档,更好的 Wayland 输入方法协议支持,改进滚动性能,增强文本的亚像素 (sub-pixel) 定位等。更多详情查看发行公告。
v4.11.1 于2023年4月上旬发布,该版本最重要的是引入了对 Wayland 分数缩放的初始支持,可通过 GDK_DEBUG=gl-fractional 环境变量激活。此外还优化了一些内容,比如对新的 GtkListView 小部件:修复了长期存在的滚动错误;更好的键盘导航,具有可自定义的选项卡行为;对焦控制,程序化滚动。对 GTK 的 OpenGL 渲染器也提供更好的纹理支持,比如添加了对人为限制纹理大小的支持(使用 GSK_MAX_TEXTURE_SIZE 环境变量)。
2023年8月上旬发布的v4.12 为其 Vulkan 后端带来了许多改进,为列表部件添加了 "scroll_to" API,改进 Flatpak 包内的字体渲染,添加了 GTK4 渲染节点工具,以及其他各种修复和更新。针对 Vulkan 后端的改进包括添加管道缓存、渐变和其他各种更小的全面改进。在 v4.12 开发周期中,GTK4 在 Vulkan 渲染方面的持续工作似乎是最重要的变化。还包括部分针对 Wayland 的工作,比如修复手写笔按钮的行为和支持悬浮窗口状态。详情查看发行说明。
根据此前的计划,GTK 5 将在 v4.12 发布后启动。
v4.20 已于2025年9月上旬发布,新版本在 Wayland、渲染器兼容性、跨平台支持、无障碍以及视频与图形处理方面进行了多项重大更新,确保 GTK 在 Linux、macOS、Android 与 Windows 上拥有更稳定、一致的用户与开发体验,同时为即将上线的 GNOME v49 桌面环境提供技术基础。
Wayland 支持提升
增加对 wl_seat v10 协议的支持。
支持 tablet protocol v2。
引入 server-side 键重复机制。
改善自然滚动处理等功能。
跨平台增强
Vulkan 渲染器在 macOS 上得到修复与优化,并增强整体 Vulkan 渲染代码的稳定性。
macOS 平台新增 窗口贴靠(window snapping) 和改进的 窗口菜单支持。
功能与渲染改进
视频播放组件新增 YUV 格式支持。
增加会话管理 portal 支持,强化跨桌面环境一致性。
改善符号图标(symbolic icons)的渲染质量。
支持 CSS 媒体查询,让主题在色彩方案与对比度上具备更细致的响应式表现。
在 OpenGL 渲染路径中增加对 多平面纹理(multi-plane textures)的支持。
继续推进无障碍访问(accessibility)方面的改进,如对输入框、文件选择器等组件的辅助功能增强。
与 GNOME 生态系统同步
v4.20 正式作为稳定版本发布,且及时在 GNOME v49 发布周期前推出,可预见将被其默认采用。