前言 在 Windows 中相信大家已经很熟悉使用 Xmanager(Xshell), MobaXterm, SecureCRT 通过 X11 实现 Linux 图形化界面显示,我的需求是在 macOS...Linux 图形化显示效果。...X11 介绍 有些 Linux 服务器出于性能和效率的考虑,通常都是没有安装图形化界面的,那么图形化程序在服务器上压根儿就跑不起来,或者无法直接显示出来,这就很尴尬了!那么如何解决这个问题呢?...Linux 本身是没有图形化界面的,所谓的图形化界面系统只不过中 Linux 下的应用程序。这一点和 Windows 不一样。...Linux 的图形化界面,底层都是基于 X 协议。
在 Linux 桌面领域,Wayland 常被提及为 “X11 的继任者”。...事实上,各大主流 Linux 发行版都在加速推进去 “X11 化”,国产桌面系统也在积极转向 Wayland 作为默认显示协议。...Display vs wl_display 在 X11 程序中,几乎所有代码都会从这样一句开始: Display *dpy = XOpenDisplay(NULL); 在 X11 体系中,Display...对象具有非常核心的地位,它代表了: 客户端与 X Server 之间的连接 X11 所有 API 的根对象 底层通信通道 Screen / Visual / Depth 等全局显示状态 可以说,在 X11...Xlib 诞生于 X11 生态的早期阶段,其设计目标是为应用程序提供一套完整且易用的客户端 API,尽可能隐藏 X11 协议细节。
最近是有Xshell登录服务器总是连接慢,需要等很长时间,但是最后还是可以登录;xshell窗口提示如下图:图片提示信息主要如下;The remote SSH server rejected X11 forwarding...request.主要解决登录慢的问题:SSH登录到服务器执行命令:vim /etc/ssh/sshd_config,找到如下信息并修改:> (可选) X11Forwarding 设置为yes 是否允许进行 X11...是否在交互式会话的登录过程中使用 login,如果开启此指令,那么 X11Forwarding 将会被禁止;> UseDns 设置为 no 让xshell在连接时不要每次都自动检测DNS环境是否一致,这样一来就可以提高我们连接linux
例如: Platform: Linux-4.13.0-37-generic-x86_64-with-LinuxMint-18.3-sylvia Browser: Google Chrome 65.0.3325.181
本文记录我在麒麟 Kylin 的 X11 应用开发过程的经验 系统版本信息 本文面向的麒麟系统版本信息如下: $ cat /etc/os-release NAME="Kylin" VERSION="银河麒麟桌面操作系统...(教育版)V10" VERSION_US="Kylin Linux Desktop EDU V10" ID=kylin ID_LIKE=debian PRETTY_NAME="Kylin V10 SP1
本文记录如何在 X11 应用里面,使用 XShapeCombineRegion 方法配置一个 X11 窗口支持和 Win32 窗口一样的命中测试穿透功能,即对应 Win32 的 WS_EX_TRANSPARENT...的鼠标、触摸等的点击等动作的穿透功能,可以实现在窗口中挖空一块范围直接穿透到后面的窗口 在 X11 窗口中,想要实现让窗口不可命中,即所有的鼠标、触摸等的事件穿透到后面的窗口上,可以采用 libXext.so...提供的 XShapeCombineRegion 方法,也可以使用有争议的 libXfixes.so 提供的 XFixesSetWindowShapeRegion 方法 通过以上两个方法即可让 X11...让这个窗口不参与到交互里面 使用比较有争议的 libXfixes.so 提供的 XFixesSetWindowShapeRegion 方法的示例代码如下 // 以下的 childWindowHandle 是一个 X11...libXext.so.so: 无法打开共享对象文件: 没有那个文件或目录 /home/uos/Downloads/lin/liblibXext.so.so: 无法打开共享对象文件: 没有那个文件或目录 at CPF.Linux.XLib.XShapeCombineRegion
本文将通过阅读 lib x11 代码告诉大家,调用 XRootWindow 函数是不耗时的,没有成本的 在我阅读 Avalonia 和 CPF 和 UNO 框架的代码的时候,我发现了很多时候都是在需要用到...RootWindow 存放起来,这样可以稍微提升一点性能 在对某个函数调用进行性能测量考虑时,不仅可以使用基准性能测试工具进行测试,还可以通过阅读代码的方式了解实现原理从而了解其性能 通过阅读 lib x11...github.com/lindexi/lindexi_gd.git git pull origin 7ad18fcc3b99003e0864e54e1ea6e696909b4b3b 获取代码之后,进入 X11
} finally { XCloseDisplay(display1); } } }); 以上的 handle 是一个 X11...pull origin ee9c8da351838b0ec3b8ab577a6c9904e024517d 获取代码之后,进入 DikalehebeekaJaqunicobo 文件夹,即可获取到源代码 更多 X11...display, handle, false, 0, ref @event); XFlush(display); } }); 这里由于需要进行多线程共用一个 display 对象,根据 X11...XInitThreads 方法才能确保安全 完全的代码如下 // See https://aka.ms/new-console-template for more information using CPF.Linux...; using System; using System.Diagnostics; using System.Runtime; using static CPF.Linux.XLib; XInitThreads
故事的背景是我在给 Avalonia 加上触摸尺寸的支持时,代码审查过程中大佬提出了在多屏上的 X11 行为问题,为此我找了两个触摸屏进行测试 X11 的多屏触摸行为。...由于 Min 常是 0 因此在计算中常被忽略 但值得一提的是在 X11 里面,根据 https://www.kernel.org/doc/html/latest/input/multi-touch-protocol.html...文档,所获取的是椭圆长轴,将其当成触摸宽度是不准确的 校准屏幕 在我的设备上,发现触摸屏的触摸输入和对应的屏幕显示没有对齐,需要根据以下大佬们的博客进行修复 Linux处理多触屏的终极解决方案 香风家的火柴盒...github.com/lindexi/lindexi_gd.git git pull origin dedfc0ec3a3c8d04e7bec5276fe5bcaa926fe6e9 获取代码之后,进入 X11
本文记录我学习开发 X11 应用的笔记 如何设置X11里面两个窗口之间的层级关系 如何类似 WPF 的 Owner 之类的关系?可使用 XSetTransientForHint 方法。...dc1b79521e00300dfaef49d54226b6f687b25b3e 获取代码之后,进入 GececurbaiduhaldiFokeejukolu 文件夹,即可获取到源代码 和 Avalonia 相互调用 设置工具栏与 X11...窗口绘制的笔迹 获取 Avalonia 的 X11 窗口 if (TryGetPlatformHandle()?.
接着是将远程的linux服务器上的运行结果,在本地的XQuartz中显示。...: localhost:10.0,这时候仔细观察ssh命令执行后的第一条提示,有可能会是X11 forwarding request failed on channel 0。...这表示实际本地和远端没有能建立起来X11协议的转发体系,原因可能有很多,比如连接端口不是10.0,或者认证没通过等等。...断开ssh连接,使用ssh -AX username@ip地址重新连过来,-A的意思是使用X11认证授权方式,这样连接之后,linux主机会生成一个~/.Xauthority保存授权允许连接的远程终端信息...再次尝试执行x11应用,比如xclock,应当能成功了。
out prop); // https://gitlab.gnome.org/GNOME/mutter/-/blame/3.29.90/src/backends/x11...github.com/lindexi/lindexi_gd.git git pull origin 46db729ca3aaa4d73169d07e903c96f0aa2f7fee 获取代码之后,进入 X11.../FelocerebeWirolerco 文件夹,即可获取到源代码 更多 X11 技术博客,请参阅 博客导航
在《从 X11 到 Wayland,迈出这一步为何如此艰难?》一文中,我们分析过从 X11 过渡到 Wayland 所面临的诸多挑战。...如今,终于有 Linux 发行版吹响了 X11 的丧钟:Ubuntu 25.10 正式弃用 GNOME 的 Xorg/X11 会话,将 GNOME Shell + Mutter 桌面环境完全切换为 Wayland-only...然而 X11 会话仍被保留,用户可在登录时选择。 到了 25.10,Ubuntu 终于与 X11 彻底告别——不再提供 X11 会话选择。...从 X11 迁移到 Wayland,也会出现一些问题: 某些依赖 X11 特性的应用(快捷键、工具、窗口管理扩展或插件)在 Wayland 上可能表现不同; 远程桌面/显示转发(如 X11 转发、xrdp...这不仅是技术上的更新,更是方向上的宣示:Ubuntu 正迈向一个更安全、更现代、更统一的 Linux 桌面未来。
你可能会看到如下错误: No protocol specified No protocol specified No protocol specified No protocol specified 这是由于X11...解决的办法很简单,允许所有用户访问X11服务即可。这个事情可以用xhost命令完成。
这是我在学习 CPF 和 Avalonia 过程中,编写的 X11 触摸测试程序所测试到的一些行为 前置博客: dotnet 学习 CPF 框架笔记 了解 X11 里如何获取触摸信息 X11 触摸测试程序...ManipulationDemoCpfX11 此测试程序基于 CPF 的源代码进行编写 XI_Leave 行为 以下是我测试到的 XI_Leave 的行为逻辑 当存在别的窗口在当前的窗口之上时,触摸先进入当前的窗口,让当前的进程收到了 X11...XITouchClass Touch mode: direct Max number of touches: 50 如此可以证明这是从 X11...github.com/lindexi/lindexi_gd.git git pull origin c64e19bfab4a85720d9a0692f1de3c960d6d8ce1 获取代码之后,进入 X11
只需在 Program.cs 的 BuildAvaloniaApp 方法里面配置 X11PlatformOptions 即可,代码如下
正式踏入 linux 学习历程,记录日常 BUG,总结提升 序 作为学习 Linux 的小白来说,无论什么样的操作,必须不能影响到主机的健全,为此,专门搞了台服务器来耍一耍 连接服务器肯定是需要终端的...,点击里面的下载链接,安装就好 问题描述 今天使用 XShell 连接服务器的时候,总是弹出这么一个警告信息,很是烦人 WARNING:The remote SSH server rejected X11...解决办法如下,非常简单就能解决,强迫症患者滴福音诶 解决方案 在会话管理器中找到当前会话 右键选择属性 点击隧道取消选中转发X11连接到(X) 点击确定,双击会话重新连接 警告消失,问题解决
本文将告诉大家如何在 X11 里面设置窗口透明 不同于在 WPF 里面可以使用 AllowsTransparency 简单方便的设置透明,在 X11 里面设置窗口透明的方法比较绕。...PropertyGroup> 以上的 csproj 项目文件代码里和空控制台核心不同在于使用 AllowUnsafeBlocks 开启不安全代码 打开 Program.cs 文件,开始编写 X11...透明窗口示例应用代码 按照 X11 的基础使用方法,先获取 Display 和 Screen 和 RootWindow 对象/指针,代码如下 var display = XOpenDisplay(0)...{ break; } } return visual->visual; } 获取 Visual 指针的方法就是本文的核心逻辑了,也是 X11...return _addr_GetVisualFromFBConfig(@dpy, @config); } // Ignores egl functions. // On some Linux
命令行链接时添加-L/opt/X11/lib -lX11即可;2....IDE下编写C++程序,需要在Library search path(-L)中添加/opt/X11/lib,在Libraries(-l)中添加X11,重新编译链接即可。
本文将告诉大家如何在 dotnet 里面的后台线程设置 X11 窗口的最小化 核心设置 X11 窗口最小化的方法是 XIconifyWindow 方法,核心问题是在后台线程需要自己使用 XOpenDisplay...display); } }); 完全的代码如下 // See https://aka.ms/new-console-template for more information using CPF.Linux...; using System; using System.Diagnostics; using System.Runtime; using static CPF.Linux.XLib; XInitThreads