Tide Island 完整指南:Hyprland 灵动岛如何重塑 Wayland 桌面的信息中枢

发布时间:2026/10/30 15:15:13
Tide Island 完整指南:Hyprland 灵动岛如何重塑 Wayland 桌面的信息中枢

【免费下载链接】Tide-island

Tide Island is a smooth, lightweight, and flexible interactive island for Hyprland.

项目地址:https://gitcode.com/gh_mirrors/ti/Tide-island
点击查看免费下载

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-island

AUR 包 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.sh

install.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 提供六页结构,侧边导航即可切换:

页面对应文件管什么
GeneralGeneral.qml通用行为
WallpaperWallpaper.qml壁纸设置
FontFontSettings.qml字体与主题
ShortcutShortcut.qml快捷键(含锁屏Super + L)
InteractionInteraction.qml手势与交互
Lock screenLockScreenSettings.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.

项目地址:https://gitcode.com/gh_mirrors/ti/Tide-island
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考