gitwtfhub

wtf is layer_shell.dart?

mattkae/layer_shell.dart — explained in plain English

Analysis updated 2026-05-18

2DartAudience · developerComplexity · 4/5LicenseSetup · hard

TL;DR

A Flutter library for building Wayland desktop panels, docks, and wallpapers on Linux using the Layer Shell protocol.

Mindmap

mindmap
  root((layer_shell.dart))
    What it does
      Builds Wayland panels
      Anchors Flutter windows
      Reserves screen space
    Tech stack
      Dart
      Flutter
      GTK layer shell
    Use cases
      Build desktop panels
      Create wallpapers
      List monitors
    Audience
      Linux developers
      Flutter developers
    Status
      Experimental
      Requires main channel
      Not on pub.dev

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Build a custom desktop panel or taskbar for a Wayland Linux desktop using Flutter.

REASON 2

Create a wallpaper or notification surface anchored to a screen edge.

REASON 3

Reserve exclusive screen space so a panel does not overlap other windows.

REASON 4

List connected monitors and get screen size for a multi-monitor desktop shell.

What's in the stack?

DartFlutterGTKWayland

How it stacks up

mattkae/layer_shell.dartabhishek-kumar09/mini_project1arsalankaleem/aestimo
Stars211
LanguageDartDartDart
Last pushed2020-01-30
MaintenanceDormant
Setup difficultyhardmoderate
Complexity4/51/5
Audiencedevelopervibe codergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1h+

Requires Flutter's experimental main channel, system GTK layer shell libraries, and a compatible Wayland compositor.

Any project that uses this and is distributed to others must also share its own source code under a compatible license.

Wtf does this do

This project is a library for building desktop panels, docks, wallpapers, and notification popups on Linux computers running Wayland, a system that manages what appears on screen. It is built with Flutter, the app framework normally used for mobile and web apps, and connects it to a lower level Linux tool called gtk-layer-shell so that Flutter windows can be pinned to the edges of the screen, reserve space so other windows do not overlap them, and sit above or below regular application windows the way a taskbar or wallpaper would. The README is upfront that this is experimental. It depends on windowing features inside Flutter that are private and can change at any time, even in small updates. Because of that, it cannot be published through Flutter's normal package system, so anyone using it has to pull it directly from its source code location instead. It also requires using Flutter's less stable main release channel rather than the regular stable one. To use it, a computer needs some system libraries installed first, plus a Wayland environment that actually supports the layer shell feature, since not all Wayland setups do. Developers add the library to their Flutter project, link the system library into the Linux build files, and then create a window controller inside their app describing which screen edge to attach to, how much space to reserve, and which layer to sit on. The library also offers helper functions for listing connected monitors and getting screen size. A small working example project is included so developers can see a single panel running before building something more complex. The project is released under the GPLv3 license, meaning any project that uses it and is distributed to others must also make its own source code available under compatible terms.

Yoink these prompts

Prompt 1
Show me how to set up layer_shell.dart in a Flutter Linux project to build a top panel.
Prompt 2
Explain why this package can't be published to pub.dev and how to add it as a git dependency instead.
Prompt 3
Help me configure LayershellWindowController to anchor a dock to the bottom of the screen.
Prompt 4
What system libraries do I need to install before running a layer_shell.dart app?

Frequently asked questions

wtf is layer_shell.dart?

A Flutter library for building Wayland desktop panels, docks, and wallpapers on Linux using the Layer Shell protocol.

What language is layer_shell.dart written in?

Mainly Dart. The stack also includes Dart, Flutter, GTK.

What license does layer_shell.dart use?

Any project that uses this and is distributed to others must also share its own source code under a compatible license.

How hard is layer_shell.dart to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is layer_shell.dart for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.