VNC 显示水印

VNC 显示水印

是否有任何可行的选项可以向 VNC 会话添加水印(即对角透明文本)?

我发现现有的开源 VNC 服务器没有提供此类开箱即用的功能。Apache Guacamole 等网关/代理也没有提供此类功能。

我曾考虑运行一个 side-car 进程,使用 Xlib / Cairo 在服务器端修改 X 缓冲区,然后再由 VNC 服务器导出。但结果并不理想(VNC 客户端没有任何变化)。

韓國

0:00 /usr/sbin/lightdm
0:23  \_ /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
0:00  \_ lightdm --session-child 12 19
0:00      \_ /usr/libexec/gnome-session-binary --session=ubuntu

虚拟网络计算机

0:00 /usr/bin/x11vnc -display :0 -auth /run/lightdm/root/:0 -rfbauth /etc/x11vnc.pwd -rfbport 5900 -shared -noxdamage -repeat -forever -loop
0:06  \_ /usr/bin/x11vnc -display :0 -auth /run/lightdm/root/:0 -rfbauth /etc/x11vnc.pwd -rfbport 5900 -shared -noxdamage -repeat -forever -loop

import Xlib

display = Xlib.display.Display(':0')
screen = display.screen()
root = screen.root

gc = root.create_gc(foreground = screen.white_pixel, background = screen.black_pixel)

while True:
    root.draw_text(gc, 100, 100, b"Test")
    display.flush()
sudo XAUTHORITY=/var/run/lightdm/root/:0 python3 /tmp/watermark.py

答案1

我通过从我的python XLib客户端切换到调整代码来解决这个问题https://github.com/ftorkler/x11-overlay满足我的需要。

显然,使用 Xlib 需要某些我所不具备的技能:

相关内容