1.Gnome Wayland环境下将输入法修改为Fcitx5(Fedora 39/Ubuntu 22.04)
2.Wayland发展前景
3.1.Wayland介绍
4.UEngine 运行器2.2.0——支持 Deepin 23(X11或Wayland)
5.debian系如何把已经安装的某个程序还原为deb?
6.GTK+版本发布
Gnome Wayland环境下将输入法修改为Fcitx5(Fedora 39/Ubuntu 22.04)
在从Ubuntu .切换到Fedora 后,我决定尝试使用fcitx5输入法来替代ibus,鉴于不少Linux用户在安装过程中遇到困难,我写这篇博客来分享我的经历和步骤。
首先,通过包管理器安装fcitx5,风玫瑰python源码参考了@沈拙言的文章进行配置[1]。与传统的安装方式相比,这种方法可能有所不同,你可以参考他的文章来对比。
在安装完成后,需为依赖Gtk X的软件和Electron应用分别设置输入法。然而,由于Electron软件在Wayland环境下可能遇到缩放模糊的问题,需要特别处理,通常需要在Gnome设置中进行调整[2]。
Fedora用户仅需这些步骤即可,但在Ubuntu .中,还需要在"设置->区域与语言"中将输入法改为fcitx5,然后重启系统。此时,通过`ctrl+space`键,fcitx5将启动并支持拼音输入。
接着,为了实现开机自启,安装gnome-tweak并配置它。顶离指标源码这样,fcitx5将无缝融入你的日常使用。
尽管基本功能已设置完毕,但可能还需安装KimPanel插件,以优化桌面环境与Chrome的交互。Fedora用户可以直接通过dnf安装,Ubuntu .则需从源码安装,并确保Chrome依赖正确添加。
完成上述步骤后,你应该能看到期望的效果,如图所示。
至此,你已经成功安装并配置了Fcitx5输入法,享受更顺畅的输入体验。以下是最终的输入法界面:
Wayland发展前景
要体验Wayland的潜力,开发者可以从官方网站获取源码,按照教程进行编译,从而构建出一个基础的"Wayland Compositor"。Wayland协议的灵活性使其可以拥有多种后端实现,比如直接在底层图形驱动(DRM)上运行,或者在X Window系统中嵌套一个Wayland Compositor,就像Xephyr在X上运行X Window一样。 在Ubuntu .的图形环境中,预置的简易Wayland Compositor已经运行良好,它支持透明度、struts源码下载地址阴影效果以及基本的窗口管理。所有图形绘制都依赖于Cairo-gl,即Cairo的OpenGL后端,如Clutter的Wayland后端成功运行了Clutter Demo,展示了与Ubuntu Tweak 3D Logo相似的效果。 值得注意的是,这个Compositor虽然运行在X Window之上,但它本身并不依赖X进行合成或窗口布局,代码结构简洁高效。未来的Linux图形界面将朝着这种轻量且性能卓越的方向发展。 总的来说,Wayland是一种旨在简化X Window设计、充分利用现代Linux内核图形技术的显示机制。它的目标并非取代X Window,而是提升Linux图形技术的水平。传统的X Window应用,包括经典X应用和旧版的Gtk 1.x/2.x等,将在较长一段时间内继续得到支持,通过Wayland Client的形式与Wayland Compositor协同工作,直至最终进行升级或被替代。扩展资料
Wayland是一个简单的“显示服务器”(Display Server),与X Window属于同一级的事物,而不是仅仅作为X Window下X Server的替代(注:X Window下分X Server和X Client)。也就是说,Wayland不仅仅是对象全景js 源码要完全取代X Window,而且它将颠覆Linux桌面上X Client/X Server的概念,以后将没有所谓的“X Client”了,而是“Wayland Client”。1.Wayland介绍
Wayland简介
Wayland是Unix系统中的下一代显示服务器,由Xorg-Server的开发者设计和构建。它提供了一种将应用程序窗口呈现在用户屏幕上的方式,为使用过X的读者带来了惊喜,为新手提供了灵活强大的图形构建系统。本书将帮助读者深入了解Wayland的概念、设计和实现,提供构建Wayland客户端和服务端应用的工具。理解Wayland的直观设计选择将带来许多“啊哈!”的时刻。欢迎加入开源图形的未来!
注意:当前版本包含第1-章的内容,后续部分仍在开发中。
待办事项:
关于本书
本作品采用知识共享署名-相同方式共享4.0国际许可协议。源代码可在此获取。
关于作者
Drew DeVault通过构建sway,成功进入Wayland世界,这是i3窗口管理器的流行克隆。如今,sway是最受欢迎的平铺Wayland合成器,拥有大量用户、提交次数和影响力。jlhb绝路航标源码Drew通过启动wlroots回报了Wayland社区,这是一个构建Wayland合成器的开放、可组合的模块,成为数十个独立合成器的基础。
1.1 高层设计
计算机由输入设备和输出设备组成,分别用于接收和显示信息。输入设备包括键盘、鼠标等;输出设备通常以显示器的形式呈现,适用于桌面、笔记本或移动设备。Wayland合成器负责将输入事件分派给适当的应用程序窗口,并在输出设备上显示它们。
1.2 目标与目标受众
本书旨在使读者全面了解Wayland协议及高级应用,掌握核心协议和协议扩展知识。本书主要面向客户端开发者,同时也为合成器开发者提供实用性信息。本书聚焦于协议和libwayland,不包含所有Linux桌面组件的详细信息,如libdrm、libinput等。
1.3 Wayland软件包中有什么
安装Linux发行版中的"wayland"时,通常会安装libwayland-client、libwayland-server、wayland-scanner和wayland.xml等组件。这些组件代表了流行的Wayland协议实现,本书适用于任何Wayland实现。
方式协议由XML文件定义,包含了核心Wayland协议的高级规范。wayland-scanner工具用于处理XML文件生成代码,libwayland客户端和服务端库实现了线路协议,提供了处理Wayland数据结构的工具。
UEngine 运行器2.2.0——支持 Deepin (X或Wayland)
新版本的Deepin/UOS应用商店支持安装部分官方已适配的安卓应用,但对一些爱好者而言,自行安装APK软件包仍是一种渴望。为此,UEngine安卓运行环境应运而生,为用户提供了安装自定义APK软件包的能力,并能将安装的APK包启动菜单发送至桌面或系统菜单。 UEngine运行器2.2.0版本更新包括多个关键功能改进和修复:支持Deepin ,无需强制依赖aapt。
解决Deepin 安装的APK无法正常在启动器显示图标的问题。
新增识别非飞腾CPU的ARM架构,防止破坏鲲鹏kbox环境。
修复部分系统在使用程序时发生崩溃的问题。
新增对Wayland的补丁支持。
优化安装量统计机制。
增加赞助页和QQ交流群入口。
内置Via浏览器。
UEngine运行器不仅提供下载链接,包括蓝奏云和诚通网盘,还支持通过GitHub和Gitee获取源代码。同时,用户可通过内置的更新程序进行版本更新(支持1.6.0及以上版本)。 新增功能包括通过包名值获取应用适配情况,用户可访问链接gfdgd-xi.github.io/ueng...以贡献自己的适配情况,只需在UEngine运行器进行评分即可。请注意,对于Debian 、Debian 、Ubuntu .的用户,需要从/glfw/glfw.git```
使用CMake构建GLFW,配置CMakeLists.txt文件,将GLFW的源代码目录指定为构建目标:
```cmake
cmake -S path/to/glfw -B build
cmake --build build
```
安装GLAD库时,访问官网下载包含头文件的include文件夹,将其移动到`/usr/local/include`,并将`glad.c`文件放置在你的项目目录中。在CMakeLists.txt中添加GLAD的链接,以确保其在编译时可用:
```cmake
find_package(GLFW REQUIRED)
find_package(GLAD REQUIRED)
include_directories(${ GLAD_INCLUDE_DIRS})
add_executable(main main.cpp)
target_link_libraries(main glfw glad)
```
在`main.cpp`中,编写核心代码来初始化窗口、加载GLAD函数指针、创建和编译shader程序、设置顶点数组对象(VAO)和缓冲区(VBO),并进行基本的OpenGL渲染:
```cpp
// GLFW初始化
if (!glfwInit()) {
std::cerr << "Failed to initialize GLFW" << std::endl;
return -1;
}
// GLAD加载
if (!gladLoadGLLoader(glfwGetProcAddress)) {
std::cerr << "Failed to initialize GLAD" << std::endl;
glfwTerminate();
return -1;
}
// 创建顶点着色器和顶点数组对象
std::vector vertices = { ...};
unsigned int VBO, VAO;
glGenVertexArrays(1, &VAO);
glGenBuffers(1, &VBO);
glBindVertexArray(VAO);
// 着色器程序和顶点数据
std::string vertexShaderSource = /*...*/;
std::string fragmentShaderSource = /*...*/;
// (编译、链接、设置顶点数据)
// 渲染循环
while (!glfwWindowShouldClose(window)) {
// 清空颜色缓冲,绘制三角形,交换双缓冲
// 处理用户输入和窗口回调
}
// 释放资源
glfwTerminate();
```
在这个过程中,我们引入了glm库,用于进行三维数学计算,如旋转度。在CMakeLists.txt中添加对glm的依赖和链接:
```cmake
find_package(glm REQUIRED)
target_link_libraries(main ${ GLM_INCLUDE_DIRS})
```
通过这些步骤,你将在Ubuntu .上成功搭建一个基于GLFW和GLAD的OpenGL开发环境,实现窗口创建、基本渲染功能以及使用glm库进行数学运算。
Qt Embedded:简介与平台插件介绍
嵌入式Linux图形界面包括Qt/Embedded、DirectFB、MicroWindows/NanoX、MiniGUI和OpenGUI等,各有特点和应用场合。Qt在嵌入式环境中的分支平台Qt/E,通过调整原始Qt以节省内存,摒弃Xlib,采用Framebuffer作为底层图形接口,简化应用程序直接写入内核帧缓冲的操作。
Qt/E的编译流程需下载源代码,使用交叉编译器编译生成Qt库,库需在开发主机和目标板上各保留一份,供编译和运行时动态加载使用。此过程需具备Qt源代码、交叉编译器以及创造性思维。移植Qt/E至硬件平台时,先编译Qt库,然后将库复制至开发主机与目标板。使用命令行参数或环境变量配置移植过程。
Qt/E在嵌入式Linux设备上可使用多种平台插件,如EGLFS、LinuxFB、DirectFB、Wayland等,选择依据Qt配置。EGLFS是Qt5应用运行的默认平台插件,支持OpenGL ES2.0,通过硬件加速提供渲染,推荐在具备GPU的现代嵌入式设备上使用。EGLFS配置环境变量可调整显示参数,如日志记录、清屏行为等。LinuxFB通过Linux fbdev子系统直接写入帧缓冲区,仅支持软件渲染,使用环境变量配置显示参数,如指定fb设备。DirectFB为轻量级图形库,提供硬件加速、多层显示和输入设备处理,适用于嵌入式系统,支持多种显示卡、输入设备及图像文件格式。XCB插件在具备X和XCB开发文件的嵌入式环境中提供与桌面Linux平台相似的功能。Wayland作为一种轻量级窗户系统,Qt提供Wayland平台插件,允许Qt应用程序连接到Wayland合成器。
配置环境变量时,以树莓派为例,追加内容到/etc/profile,根据需求修改。字体配置通常使用fontconfig访问系统字体,若不可用则退回到QBasicFontDatabase,通过QT_QPA_FONTDIR环境变量覆盖字体目录。Qt不再在lib/fonts目录提供字体,由平台提供必要字体。
Unix信号处理程序默认捕获中断、暂停、继续和终止信号,通过QT_QPA_ENABLE_TERMINAL_KEYBOARD设置允许通过键盘终止或挂起程序。在某些情况下,捕获SIGINT可能与远程调试冲突,可通过QT_QPA_NO_SIGNAL_HANDLER环境变量退出内置信号处理。