当前位置: 首页 > news >正文

libvte, xfce4-terminal和gnome-terminal,干货满满

GTK+是GNOME桌面环境的核心图形库‌‌,它俩的关系像GDI和Windows的关系(不讨论GDI+和WPF)。

GTK+(GIMP Toolkit)最初是为GIMP图像处理软件开发的

VTE,即Virtual TErminal widget,是GTK+的一部分。widget像Windows的Common Control (文本框、列表框等)。

xfce4-terminal和gnome-terminal都调用VTE,都是在外面包了一层。

在我高度精减的XFCE环境下,apt install gnome-terminal:

 新安装了 88 个软件包,要卸载 0 个软件包,有 15 个软件包未被升级。
 需要下载 65.1 MB 的归档。解压缩后会消耗 269 MB 的额外空间。


在xfce4-terminal里,终端里的文字紧贴着窗口边框,我觉得不爽,于是下载了源码来改,踩了的坑如下:

当屏幕上有n个xfce4-terminal窗口时,进程只有1个。后启动的通过D-Bus要求先启动的新建窗口:

main.c里 if (terminal_gdbus_invoke_launch (nargc, nargv, &error) return EXIT_SUCCESS;

所以无论你怎么修改源码,./xfce4-terminal,都看不到变化。精确地说,在它之前exit()可以。

于是在xterm里编辑源码和运行xfce4-terminal

D-Bus(Desktop Bus)旨在为Linux桌面环境提供标准化的进程间通信(IPC)机制‌。它于2007年发布后被集成到Qt、GNOME、KDE等桌面环境,取代了CORBA、DCOP等。


terminal_screen_draw()看起来非常像是绘制字符串的,但是:

if (G_LIKELY (background_mode != TERMINAL_BACKGROUND_IMAGE)) return FALSE;

如果没有使用背景图片,该函数直接返回,绘制是VTE干的。

xfce4-terminal和gnome-terminal这俩包工头并没有不断地读终端的字符串输出并绘制。光标都是VTE画的。

一个UI东施效颦kernel,也玩likely? 而且Profile-Guided Optimization好像没啥用。

先修改terminal-screen.c加了点边框:

gtk_container_set_border_width (GTK_CONTAINER (screen->swin), 2); // 新增
gtk_container_add (GTK_CONTAINER (screen->swin), screen->terminal); // 原有


包 libvte-2.91-doc 在/usr/share/doc/vte-2.91/ 放了一堆.html文件。

打开index.html后,Functions里寥寥无几。打开比如method.Terminal.feed_child.html 后,才看到了Methods.

有很多method. set_有很多,但没有能设置margin的。


回到terminal_screen_draw()

cairo_save(ctx); // 新增
cairo_translate(ctx, 18, 0); // 新增
gtk_widget_draw (screen->terminal, ctx);
cairo_restore (ctx); // 新增

终于把文字往右挪了。最后一个bug: 透明的png和背景透明效果一样。换成了黑色的。

from PIL import Image as I
img=I.new('RGBA', (8,8), (0,0,0,0)) # 透明
img=I.new('RGBA', (8,8), (0,0,0,255)) # 黑色
img.save('bkgnd.png')

Cairo 是一个功能强大的开源2D图形库,旨在为所有输出媒体生成一致的输出,并在可用时利用显示硬件加速‌。它广泛应用于操作系统界面、网页渲染、PDF和SVG等。

SVG是Scalable Vector Graphics‌的缩写,用于描述二维矢量图形‌。

http://www.zskr.cn/news/51642.html

相关文章:

  • 寄卖业务质检1
  • [学习记录整理] ---IP地址,网关,掩码,DNS等
  • 2025 年 11 月不锈钢管件厂家权威推荐榜:欧标卡压管件,国标/薄壁/沟槽不锈钢管件,90/45弯头管件源头厂家精选
  • 2025.11.16总结
  • LeeCode_2 两数相加
  • 2025 年 11 月 CNC 高压清洗机厂家推荐排行榜,CNC全自动高压清洗机,CNC高压去毛刺清洗机,卧式/双工位CNC高压清洗机,数控高压清洗去毛刺机公司推荐
  • 2025 年 11 月 Q355B/Q345B/16Mn 冷拔扁钢厂家推荐排行榜,优质冷拔扁钢,高强度扁钢,精密扁钢公司精选
  • 2025 年 11 月 Q355B/Q345B/16Mn 冷拔圆钢厂家推荐排行榜,优质冷拔圆钢,高强度圆钢,合金结构钢圆钢公司精选
  • 图像算法处理-OpenCV图像翻转SSE版(ippicv)复现
  • 2025 年 11 月西服定制厂家推荐排行榜,兰州西服定制,婚纱/结婚/职业/男士/女士/团体/职场/新郎/定做/西装/礼服/工作服/职业装/公务员西服定制公司推荐
  • 2025 年 11 月防水网厂家推荐排行榜,防水网,味头防水网,专业防水网源头厂家实力解析与选购指南
  • 2025 年 11 月中医师承确有专长权威推荐榜:师承教育、专长医师资格考核与合法执业路径深度解析
  • 2025 年 11 月 Q355B/Q345B/16Mn 冷拉圆钢厂家推荐排行榜,高强度结构钢,低合金圆钢,精密冷拉钢材公司精选
  • 基于Tcl命令的HyperView截图
  • 团队作业3——需求改进与系统设计
  • 2025 年 11 月 Q355B/Q345B/16Mn 方钢厂家推荐排行榜,低合金高强度方钢,结构用方钢,建筑用方钢公司推荐
  • 2025 年 11 月热轧方钢/扁钢厂家推荐排行榜,方钢,扁钢,热轧方钢,热轧扁钢,优质钢材生产公司推荐
  • 2025 年 11 月冷拉/冷拔六角钢厂家推荐排行榜,冷拉六角钢,冷拔六角钢,精密冷拉六角钢,高强度六角钢公司推荐
  • 2025 年 11 月氢氧化镁厂家推荐排行榜,矿石氢氧化镁,水镁石氢氧化镁,阻燃剂氢氧化镁,改性氢氧化镁公司推荐
  • 20232421 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • Atcoder 432 A-F 总结+题解
  • Elixir 实现验证码识别
  • 终结挑战的元回应 ——当问题本身成为答案的生成器
  • Python 3.14 实用技巧:10个让代码更清晰的小改进
  • 模型管理与树形结构
  • 20232416 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • 【题解】AT_abc432_e [ABC432E] Clamp
  • 关于python的库的层级引用问题
  • 如何计算一台服务器最大TCP连接数
  • Django Q对象查询完全指南