【免费下载链接】Tide-island
Tide Island is a smooth, lightweight, and flexible interactive island for Hyprland.
Tide Island 是一款为 Hyprland 和 niri 打造的轻量级灵动岛组件,基于 Quickshell、QML 与 C++/Qt 6 构建。它平时安静地缩在屏幕角落,需要时则展开为完整面板:播放音乐、查看歌词、切换工作区、调整系统设置、浏览通知与自定义内容,一次手势搞定。这篇完整指南将从安装、配置到进阶玩法,带你把 Wayland 桌面变成一块真正好用的「信息中枢」。
认识 Tide Island:一个安静的桌面中枢
Tide Island 的设计哲学只有一句话:不打扰,但随时都在。
- 🕐空闲时:它只是一枚小小的「岛」,显示时间、电量等轻量信息;
- 📂需要时:向下滑动即可展开面板,查看歌词、天气、日历、工作区总览;
- ⚙️系统反馈:音量、亮度、充电状态、工作区切换、媒体播放、系统通知都会同步呈现;
- 🖥️双合成器:Hyprland 提供完整体验(含工作区总览与动画),niri 提供灵动岛视图、快捷键与原生总览。
核心入口 shell.qml 负责在每一块屏幕上管理各自的灵动岛窗口,DynamicIslandWindow.qml 则是每个窗口的「总调度」,统管展开、收起、通知等所有交互。
功能清单:14 项能力一览
| 分类 | 功能 | 说明 |
|---|---|---|
| 信息 | 时钟、天气与预报、日历 | 点击日历日期还能写便签,带便签的日期会显示小圆点 |
| 媒体 | 音乐播放器、歌词显示、Cava 可视化 | 展开播放器还支持 Spotify「已喜欢歌曲」收藏 |
| 效率 | 应用启动器、剪贴板历史、文件中转站、计时器 | 剪贴板历史需安装cliphist与wl-clipboard |
| 系统 | 控制中心、通知中心、电源菜单、锁屏、壁纸切换、工作区总览、自定义页面 | 自定义页面可放置时间、CPU、内存、亮度等 10 类模块 |
👉自定义页面是它作为「信息中枢」的关键:你可以把 CPU 占用、存储、天气、Cava 音频可视化等组合成自己的仪表板。
一键安装:Arch 用户的最快路径
Arch Linux(推荐)
yay -S tide-islandAUR 包 PKGBUILD 已声明全部依赖(Qt 6 系列、quickshell>=0.3.0、cliphist等),一条命令即可完成。
其他发行版(源码安装)
curl -fLO https://github.com/enhaoswen/Tide-island/releases/latest/download/tide-island-source.tar.xz curl -fLO https://github.com/enhaoswen/Tide-island/releases/latest/download/SHA256SUMS sha256sum --check SHA256SUMS tar -xf tide-island-source.tar.xz cd Tide-island-* ./install.shinstall.sh 会把 Tide Island 写入/usr,并可在以下发行版自动安装依赖:
- 使用
apt的 Debian / Ubuntu 系 - 使用
dnf的 Fedora / RHEL 系 - 使用
zypper的 openSUSE
其他发行版可手动装好依赖后运行./install.sh --skip-deps。常用选项:
| 选项 | 作用 |
|---|---|
--no-service | 安装但不启用 systemd 用户服务 |
--skip-quickshell | 跳过构建,使用已有的/usr/bin/quickshell |
--uninstall | 移除源码安装的文件(保留依赖) |
--dry-run | 只打印将执行的操作,不改动系统 |
⚠️ NixOS、Fedora Silverblue 等不可变系统建议改用原生包或在可写容器内安装。
启动与自启:两条路线任选
路线一:systemd 用户服务(推荐)
服务定义见 tide-island.service,失败后 3 秒自动重启,随图形会话自启:
systemctl --user enable --now tide-island.service路线二:Hyprland 配置自启
在hyprland.conf中添加:
exec-once = tide-island或在hyprland.lua中:
hl.exec_once("tide-island")💡 已启用 systemd 服务就无需再加exec-once,两者叠加反而多此一举。
图形化配置:打开 Tide Island Settings
所有配置无需手改 JSON——在任意应用启动器中搜索Tide Island Settings,或运行:
tide-island-config-app图形配置界面由 Tide-island-app/ 下的 QML 工程实现,Main.qml 提供六页结构,侧边导航即可切换:
| 页面 | 对应文件 | 管什么 |
|---|---|---|
| General | General.qml | 通用行为 |
| Wallpaper | Wallpaper.qml | 壁纸设置 |
| Font | FontSettings.qml | 字体与主题 |
| Shortcut | Shortcut.qml | 快捷键(含锁屏Super + L) |
| Interaction | Interaction.qml | 手势与交互 |
| Lock screen | LockScreenSettings.qml | 锁屏开关与样式 |
修改后重启服务即可生效:
systemctl --user restart tide-island进阶玩法:把灵动岛玩出花样
1️⃣ IPC 命令:脚本化控制灵动岛
Tide Island 暴露了完整的 IPC 接口,用quickshell ipc call远程控制:
quickshell ipc call tide toggleCalendar # 日历 quickshell ipc call tide openWeather # 天气 quickshell ipc call tide openClipboard # 剪贴板历史 quickshell ipc call tide openNotificationCenter # 通知中心 quickshell ipc call tide toggleApplicationLauncher # 应用启动器把它绑到快捷键或脚本里,灵动岛就能融入你自己的工作流。
2️⃣ 锁屏:自带原生模糊
在设置 → Lock screen点击Lock now,或使用电源菜单中的锁屏按钮;快捷键在Shortcut页应用(默认Super + L)。
原生背景模糊基于 Quickshell 0.3+ 的ext-background-effect-v1协议,模糊区域会跟随面板圆角动画;合成器不支持该协议时自动退化为半透明着色背景。锁屏实现位于 qml/lockscreen/,其中 LockScreenController.qml 负责整体调度。
3️⃣ Spotify 收藏:无需开发者应用
展开播放器后,右侧心形按钮即可把当前歌曲加入/移出 Spotify「已喜欢歌曲」,并与客户端状态实时同步。它通过本机 Spotify 桌面客户端 + Spicetify 实现,无需 API Key,本地桥接只监听127.0.0.1:8976。安装后只需运行:
tide-island-spotify-setup该脚本对应 scripts/spotify-setup.py,配套扩展见 integrations/spicetify/tide-island.js。🔐 扩展不会向 Tide Island 发送任何 Spotify 凭据。
4️⃣ 系统反馈与电源管理
控制中心(ControlCenterLayer.qml)内置音量、亮度、Wi-Fi、蓝牙、电池模式切换;电池模式支持通过power-profiles-daemon或tlp应用电源方案,相关设置页见 TlpSettings.qml 与 WeatherSettings.qml 等配置页。音量/亮度/充电状态变化时,灵动岛会即时给出轻量反馈。
项目结构速览:想看源码从这里入手
| 目录 | 职责 |
|---|---|
| shell.qml | 每屏灵动岛窗口的实例化与总调度 |
| DynamicIslandWindow.qml | 单个窗口:展开动画、通知、OSD |
| qml/island/ | 音乐、天气、日历、剪贴板、壁纸选择等面板 |
| qml/lockscreen/ | 锁屏视图与认证流程 |
| qml/controlcenter/ | 控制中心与通知中心 |
| backend/ | C++ 系统服务:系统统计、Wi-Fi、蓝牙、Spotify 桥接 |
| lyricsmpris/ | 歌词后端进程(MPRIS + 歌词源) |
| Tide-island-app/ | 图形化配置应用 |
对工程质量感兴趣的读者,可阅读仓库自带的优化审查报告 docs/PROJECT_REVIEW.zh-CN.md,其中详细记录了内存优化、Wi-Fi 异步化、多屏统计等改进过程。
日常运维:三条命令就够
# 停止 systemctl --user stop tide-island # 查看实时日志(排查问题必备) journalctl --user -u tide-island -f # 配置改动后重启 systemctl --user restart tide-island常见问题(FAQ)
问:剪贴板历史是空的?需要cliphist与wl-clipboard;Tide Island 运行期间会自动启动剪贴板监听(见 scripts/cliphist-helper.sh),装好依赖后重启服务即可。
问:niri 上能用哪些功能?灵动岛视图、聚焦输出 IPC、工作区切换提示、原生总览均可用;快捷键写在~/.config/tide-island/niri-shortcuts.kdl。
问:多屏怎么办?每个屏幕都有独立的灵动岛窗口,且都拥有完整的工作区总览;多屏统计由共享的 SystemStats.cpp 统一采样。
问:动画卡顿或与窗口层动画冲突?Tide Island 自行处理展开动画;在 Hyprland Lua 配置中可为其关闭额外的 layer 动画(hl.layer_rule中匹配 namespacetide-island并设no_anim = true),避免面板被二次缩放。
写在最后
Tide Island 证明了 Wayland 桌面上「灵动岛」这种交互范式完全可行:轻、快、安静,但信息密度极高。无论是把歌词、天气、系统状态收进一块「岛」,还是用 IPC 把它接入自己的自动化脚本,它都能成为 Hyprland / niri 用户的信息中枢。安装只需一条yay命令,配置全程图形化——现在就把它加进你的桌面吧。🌊
【免费下载链接】Tide-island
Tide Island is a smooth, lightweight, and flexible interactive island for Hyprland.
相关推荐
告别卡顿:Hyprland多线程渲染架构如何重塑Wayland桌面体验
告别卡顿:Hyprland多线程渲染架构如何重塑Wayland桌面体验 你是否曾在视频会议时切换窗口导致画面撕裂?或在编译代码时整个桌面失去响应?作为新一代Wa
图形学操作系统Awesome Hyprland 终极指南:打造完美的 Wayland 桌面环境
Awesome Hyprland 终极指南:打造完美的 Wayland 桌面环境 想要打造一个既美观又高效的 Wayland 桌面环境吗?Awesome Hyp
文档QtQuick vs Electron:Quickshell在dots-hyprland中的轻量级优势
QtQuick vs Electron:Quickshell在dots hyprland中的轻量级优势 你是否还在忍受桌面环境启动缓慢、操作卡顿、风扇狂转的困扰
桌面应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考