Skip to content

enhaoswen/Tide-island

Repository files navigation

Tide Island

A smooth, lightweight, and flexible interactive Dynamic Island for Hyprland and niri.

English · 简体中文

GitHub stars GitHub issues AUR package Hyprland niri C++ + Qt

Preview · Features · Installation · Configuration · Common Commands


About Tide Island

Tide Island is a small desktop widget for Hyprland and niri, styled like the Dynamic Island.

When nothing much is going on, it just sits in the corner, staying out of the way. When you need to check some information, it expands into a panel where you can view lyrics, switch workspaces, adjust system settings, check notifications, or put in some custom content.

It's built with Quickshell, QML, and C++/Qt 6. Most of the effort went into making the animations as smooth as possible, interactions responsive, and resource usage kept in check. I can't claim it's anything special, but I hope it's comfortable to use.


Preview

Tide Island

Music player Message preview
Timer Wallpaper switcher
Control center Workspace overview

Config App


Features

  • Clock
  • Music player
  • Control Center
  • Timer
  • Lyrics displayer
  • Wallpaper switcher
  • Workspace overview
  • Custom page

System Feedback

  • Volume changes
  • Brightness changes
  • Battery charging / discharging
  • Workspace changes
  • Media playback (optional)
  • System notifications

Custom Page

  • Time
  • Date
  • Battery
  • Volume
  • CPU usage
  • Current workspace
  • Memory usage
  • Brightness
  • Cava

Compositor support

  • Hyprland: full current experience, including Tide's workspace overview, workspace animations, shortcuts, and Night Light through hyprsunset.
  • niri: island views, focused-output IPC commands, workspace change hints, native niri overview, shortcuts through ~/.config/tide-island/niri-shortcuts.kdl, and Night Light through gammastep.
  • Tide checks TIDE_ISLAND_COMPOSITOR first, then $XDG_CURRENT_DESKTOP. It uses $NIRI_SOCKET only when the desktop environment is inconclusive, then falls back to Hyprland. This prevents inherited compositor sockets from causing a false detection.

Installation

Arch Linux

Install from the AUR:

yay -S tide-island

Or build manually:

git clone https://github.com/enhaoswen/Tide-island.git
cd Tide-island
makepkg -si

Ubuntu / Debian

Clone the repository and run the installer:

git clone https://github.com/enhaoswen/Tide-island.git
cd Tide-island
./scripts/install-debian-ubuntu.sh

Starting Tide Island

Tide Island provides a systemd user service.

Enable and start it immediately (Recommended):

systemctl --user enable --now tide-island

If you want to manage startup manually, add this to your hyprland.conf:

exec-once = tide-island

Or add this to hyprland.lua:

hl.exec_once("tide-island")

If the systemd service is already enabled, you do not need to add exec-once.


Configuration

Search Tide Island Settings in any application launcher

The Shortcut page can apply bindings automatically. On niri it writes ~/.config/tide-island/niri-shortcuts.kdl, includes it from ~/.config/niri/config.kdl, validates with niri validate, then reloads niri with niri msg action load-config-file.

Common Commands

Restart after editing the configuration:

systemctl --user restart tide-island

Stop Tide Island:

systemctl --user stop tide-island

View logs:

journalctl --user -u tide-island -f

Contributing

Issues, bug reports, design suggestions, and pull requests are all welcome.

Acknowledgments

Thanks to:

Community


Made for Hyprland and niri users who like quiet and practical desktops.

About

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

Topics

Resources

License

Stars

261 stars

Watchers

5 watching

Forks

Sponsor this project

 

Packages

 
 
 

Contributors