Linux Antiquity Quickshell架构拆解:5大UI组件与模块划分完整清单
【免费下载链接】linux-antiquityA highly tasteful Linux-theme, reminiscent of art-nouveau and old drawings related to astronomy, science, and mythology.项目地址https://gitcode.com/gh_mirrors/li/linux-antiquity点击查看免费下载Linux Antiquity 是一款以 Art-Nouveau新艺术运动与古典天文、神话手绘为灵感的 Hyprland 主题。它的核心界面由 Quickshell 驱动本文带你完整拆解configs/quickshell/下的 5 大 UI 组件与模块划分帮你快速理解每个 QML 文件在桌面中的角色与协作方式。项目定位一个艺术项目级别的桌面主题在深入架构前先明确 Linux Antiquity 的组成详见 README.md部分目录作用Hyprland 配置configs/hypr/hyprland.lua窗口管理、快捷键、绑定壁纸configs/hypr/hyprpaper.conf配合 Hyprpaper 使用终端配色configs/kitty/每个主题色对应的 kitty 配色图标主题iconTheme/buuf-nestort/Quickshell UI 专用的复古图标集Quickshell 主程序configs/quickshell/本文拆解重点整体模块划分一览Quickshell 部分采用入口 目录级模块 全局单例的组织方式configs/quickshell/ ├── shell.qml # 入口组装所有 UI ├── Config.qml # 全局单例主题色、设置持久化、天气数据 ├── Time.qml # 全局单例系统时钟 ├── AudioSystem.qml # 全局单例Pipewire 音频音量/静音 ├── taskbar/ # 组件①②③顶栏、侧边栏、径向任务栏 ├── widgets/ # 组件④桌面小部件天气、CPU 温度 ├── popups/ # 组件⑤应用启动器、设置窗口 ├── sidebarPopups/ # 组件⑤侧边栏的 4 个弹出菜单 ├── smallicons/ # 手绘 SVG 小图标的 QML 封装 ├── utils/ # 模糊搜索等工具单例 ├── assets/ # SVG 素材星体、天气、塔罗卡 └── fonts/ # 内置字体Boska、Recia、Monaco…每个 UI 目录都带有一个qmldir模块声明文件例如 taskbar/qmldir 把Bar、Sidebar、Workspaces、SysTray等注册为Taskbar模块的成员供入口文件以Taskbar.Bar {}的方式引用。入口文件shell.qml 如何组装桌面所有 UI 的组装点只有 20 行左右位于 shell.qml先加载 8 个内置字体FontLoader包括图标字体 MaterialSymbolsSharp实例化 5 个核心 UIWidgets.WidgetScreen、Taskbar.RadialTaskbar、Taskbar.Sidebar、Taskbar.Bar、Popups.SettingsWindow文件头部的pragma指令声明了图标主题buuf-nestort是切换 Quickshell 图标集的唯一入口见 shell.qml#L6-L8组件①顶部任务栏 Bar源码taskbar/Bar.qmlBar使用Variants按屏幕数量循环实现每块屏幕各有一条顶栏。它由 4 个子件拼成子件文件功能工作区按钮组Workspaces.qml以罗马数字显示工作区点击通过Hyprland.dispatch切换应用启动器按钮TaskbarButton.qml居中太阳图标触发AppLauncher弹出系统托盘SysTray.qmlRepeater遍历 SystemTray 服务项左/右键弹出托盘菜单时间显示ClockWidget.qml直接读取Time.time单例属性Bar 还内置了一个透明的全屏overlay面板Bar.qml#L128-L157专门用来检测点击弹窗外区域从而关闭弹出层——这是整个主题弹窗交互的统一模式。组件②左侧侧边栏 Sidebar源码taskbar/Sidebar.qml侧边栏沿屏幕左侧布置一排小行星星体手绘按钮每个按钮对应一个侧边栏弹窗通过Config.SidebarPopup枚举管理当前打开项Config.qml#L190-L196PowerMenusidebarPopups/PowerMenu.qml关机/重启/休眠配手绘塔罗卡图标FavoriteAppsMenu常用应用收藏数据持久化在favoriteapps.jsonThemingMenusidebarPopups/ThemingMenu.qml主题色切换器对应 5 套配色MainMenu主菜单入口组件③底部径向任务栏 RadialTaskbar源码taskbar/RadialTaskbar.qml这是主题的视觉招牌底部一条弧形地平线平时收起WlrLayer.Bottom鼠标进入或点击后抬升到顶层WlrLayer.Top并展开为弧形工作区/窗口切换界面。几个值得注意的实现细节MouseArea监听鼠标进出控制isOpen状态RadialTaskbar.qml#L61-L70用RectangularShadow绘制大范围柔光阴影增强悬浮感通过Hyprland.dispatch发送hl.dsp.focus指令切换工作区组件④桌面小部件系统 widgets源码widgets/WidgetScreen.qml小部件系统采用每屏幕一个透明全屏面板 动态 Loader的模式Config.widgets按屏幕名维护一份小部件 JSON 列表Config.qml#L269-L331通过FileView持久化到widgets.jsonRepeater遍历当前屏幕的小部件Loader按widgetType动态加载对应 QML目前已启用的是天气小部件widgets/WeatherWidget.qml展示温度与四种体液情绪sanguine、choleric、melancholic、phlegmatic配手绘太阳/月亮/星体插画CPUTemperatureWidget.qml已在 Config.qml#L198-L206 中预留等待启用天气数据来自 OpenWeatherMap API由Config单例中的Timer每 10 分钟轮询一次Config.qml#L208-L229。组件⑤弹出窗口 popups源码目录popups/、sidebarPopups/弹窗文件触发方式应用启动器popups/AppLauncher.qmlmodD或顶栏太阳按钮支持模糊搜索设置窗口popups/SettingsWindow.qml侧边栏按钮Config.openSettingsWindow控制显隐侧边栏四菜单sidebarPopups/*Menu.qml侧边栏星体按钮应用启动器的搜索核心在 utils/AppSearch.qml它封装了fuzzysort.jsutils/fuzzysort.js做模糊匹配utils/qmldir中注册为Utils模块的单例。全局单例层Config / Time / AudioSystem三个pragma Singleton文件构成整个 UI 的服务总线Config.qml5 套主题色helios、eris、priapus、eros、hades每套含 30 色值变量全部 UI 通过Config.colors取色同时负责settings.json的设置读写——改设置即时写盘外部改文件即时热重载Time.qml基于SystemClock秒级刷新供顶栏时钟消费AudioSystem.qml桥接 Pipewire 默认音频 sink双向同步音量与静音状态模块协作关系小结shell.qml ──组装── Bar / Sidebar / RadialTaskbar / WidgetScreen / SettingsWindow │ │ │ └── Config配色设置天气数据 │ └── Time时钟 / AudioSystem音量 └── utilsAppSearch/Fuzzy/TextUtils── 应用启动器与菜单搜索理解这套架构的钥匙只有两点一是一切颜色与配置都走Config单例换主题只需改一个currentTheme字符串二是**弹窗统一用透明 overlay 点击外部关闭**的交互模式跨顶栏与侧边栏保持一致体验。快速上手三步跑起来克隆仓库并执行安装脚本会自动备份已有配置、检查依赖git clone https://gitcode.com/gh_mirrors/li/linux-antiquity后运行 install.sh编辑~/.config/hypr/hyprland.lua与hyprpaper.conf设置显示器与壁纸按需修改 shell.qml 顶部的pragma IconTheme切换图标主题依赖清单Quickshell 0.3.0、Hyprland 0.55、Hyprpaper、Kitty、Nemo、Mako 等详见 README.md 的 Dependencies 一节。总结Linux Antiquity 的 Quickshell 架构非常克制——5 大组件各司其职、3 个单例统一管理数据与配色、目录级qmldir模块划分清晰。这种结构对学习 QML/Quickshell 开发也具有很好的参考价值。赞分享【免费下载链接】linux-antiquityA highly tasteful Linux-theme, reminiscent of art-nouveau and old drawings related to astronomy, science, and mythology.项目地址https://gitcode.com/gh_mirrors/li/linux-antiquity点击查看免费下载相关推荐Linux Antiquity 依赖清单Hyprland、Quickshell、Kitty 完整技术栈解析新手指南Linux Antiquity 依赖清单Hyprland、Quickshell、Kitty 完整技术栈解析新手指南 Linux Antiquity115网盘全速下载终极指南如何用115Exporter突破下载限速115网盘全速下载终极指南如何用115Exporter突破下载限速 你是否曾经为115网盘的下载速度感到沮丧官方客户端的限速让你等待数小时甚至数天现在一前端开发工具StreamFX终极指南如何在5分钟内为OBS直播添加电影级特效StreamFX终极指南如何在5分钟内为OBS直播添加电影级特效 想要让你的直播画面瞬间达到专业水准吗厌倦了OBS自带的简单滤镜效果 StreamFX 作音视频直播图形学创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考