Metadata-Version: 2.1
Name: wlosd
Version: 1b1
Summary: OSD for wayland.
Author: Shaked Flur
Maintainer: Shaked Flur
Project-URL: Homepage, https://github.com/fshaked/wlosd
Project-URL: Documentation, https://github.com/fshaked/wlosd
Project-URL: Repository, https://github.com/fshaked/wlosd.git
Project-URL: Issues, https://github.com/fshaked/wlosd/issues
Project-URL: Changelog, https://github.com/fshaked/wlosd/CHANGELOG.md
Keywords: OSD,wayland,sway,layer-shell,wlr,wlroots
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: System Administrators
Classifier: Topic :: Desktop Environment
Classifier: Topic :: Utilities
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pycairo>=1.27.0
Requires-Dist: PyGObject>=3.50.0

# wlosd

An on-screen display for Wayland compositors.

You might also be interested in [wledges](https://github.com/fshaked/wledges)
which provides active edges for Wayland compositors.

## Supported Desktops

Tested on [Sway](https://swaywm.org/), but should work on all Wayland
compositors that support the Layer Shell protocol. More precisely,
it should work on all
[desktops supported](https://github.com/wmww/gtk4-layer-shell?tab=readme-ov-file#supported-desktops)
by gtk4-layer-shell.

## Installation

### Dependencies:

Debian/Ubuntu:

```
sudo apt install libgirepository-1.0-dev gcc libcairo2-dev pkg-config python3-dev gir1.2-gtk-4.0 libgtk4-layer-shell-dev
pip install pygobject
```

Fedora:

```
sudo dnf install gcc gobject-introspection-devel cairo-gobject-devel pkg-config python3-devel gtk4 gtk4-layer-shell-devel
pip install pygobject
```

Arch Linux:

```
sudo pacman -S python cairo pkgconf gobject-introspection gtk4 gcc gtk4-layer-shell
pip install pygobject
```

For other distributions, you will need:
- Python 3: [instructions](https://wiki.python.org/moin/BeginnersGuide/Download)
- pygobject: [instructions](https://pygobject.gnome.org/getting_started.html)
- gtk4-layer-shell: [instructions](https://github.com/wmww/gtk4-layer-shell)

### Install wlosd:
From PyPi:
```
pip install wlosd
```

Or clone this repository.

## Usage

wlosd reads commands from standard input. For example, run in a terminal:

```
cat - | wlosd
show --end-mark END test
Some text.
More text.
END
```
(don't kill the process yet)

This should display the two lines before `END` in the centre of the currently
focused display, on top of all other windows. The text is transparent to all
input events. [Pango markup](https://docs.gtk.org/Pango/pango_markup.html)
can be used in the text. The `--css` command line argument (e.g. `wlosd
--css style.css`) can be used to pass a GTK4 style sheet (see [style.css](https://github.com/fshaked/wlosd/blob/main/style.css) for example, and
[overview](https://docs.gtk.org/gtk4/css-overview.html) and
[properties](https://docs.gtk.org/gtk4/css-properties.html) for documentation).

To hide the text:

```
hide test
```

To see all available commands:

```
help
```

To quit:

```
quit
```

A more useful way to run wlosd would be to put something along the following
lines somewhere in your startup scripts:

```
rm -f "${XDG_RUNTIME_DIR}/wlosdpipe"
mkfifo "${XDG_RUNTIME_DIR}/wlosdpipe"
tail -f "${XDG_RUNTIME_DIR}/wlosdpipe" | wlosd &
```

And send commands to wlosd like this:

```
printf -- 'show --end-mark END test\nSome text.\nEND\n' > "${XDG_RUNTIME_DIR}/wlosdpipe"
```

## License

MIT, see [LICENSE](https://github.com/fshaked/wlosd/blob/main/LICENSE)
