Panorama panel
==============

The Panorama panel provides a configurable and traditional desktop panel
(taskbar) for traditional environments, especially the upcoming "Panorama DE".
It only runs correctly in Wayland compositors with layer-shell support, and is
designed specifically for Wayfire.

One can set up this program to display one or multiple panels on the screen,
each panel is set to display on a particular edge of a particular monitor, it
has a configurable size, can hide itself unless the mouse is over it and holds
applets in the left, centre or right areas.

Every widget you see on the panels is an applet provided by a dynamically loaded
Python module.

Dependencies
------------

* GTK 4.6 or newer
* [GTK4 Layer Shell](https://github.com/wmww/gtk4-layer-shell)
* libwayland
* Python 3.10 or newer
* [pywayland](https://pypi.org/project/pywayland/)
* [PyGObject](https://pygobject.gnome.org/)
* [ruamel.yaml](https://yaml.dev/doc/ruamel.yaml/)

For Debian and Ubuntu, this can be executed in the command:

~~~
sudo apt install libgtk-4-dev libgtk4-layer-shell-dev libwayland-dev python3 python3-gi python3-ruamel.yaml
~~~

Alternatively you can use venv. You also need a Wayland compositor that supports
the wlr-layer-shell protocol, which is supported by most reasonably popular
compositors except GNOME, Weston and Cage.

To use the included `wf-window-list` applet you need a Wayland compositor that
supports wlr-foreign-toplevel-management, that is, one based on wlroots,
Hyprland, Louvre or Mir.

Usage
-----

Unless you're installing from a hypothetical package which would create a
system-wide directory for applets, it is recommended to store them
in the user-specific location. These are
`~/.local/share/panorama-panel/applets` for applets and
`~/.config/panorama-panel/config.yaml` for config. For development purposes, it
is recommended that you make them symbolic links to the corresponding location
in the repository.

After creating these directories, simply run the code and the panels should
appear on your screen.

Writing applets
---------------

See [implementing-applets.md](docs/applet-api/implementing-applets.md).

Configuration
-------------

The configuration is in `~/.config/panorama-panel/config.yaml`. See
[configuration.md](docs/configuration.md) for information.

A configuration GUI is supported by right-clicking an empty area of the panel
and choosing "Open manager". Not all settings can be currently changed there.
The panel you're currently editing will flash when it is selected. The toggle
"Panel editing mode" makes applets draggable for you to reorder them.
