view dep/animia/README.md @ 198:bc1ae1810855

dep/animia: switch from using classes to global functions the old idea was ok, but sort of hackish; this method doesn't use classes at all, and this way (especially important!) we can do wayland stuff AND x11 at the same time, which wasn't really possible without stupid workarounds in the other method
author Paper <mrpapersonic@gmail.com>
date Sun, 24 Dec 2023 02:59:42 -0500
parents 0fc126d52de4
children 9f3534f6b8c4
line wrap: on
line source

# Animia
Animia is a work-in-progress cross-platform hard fork of Anisthesia and part of Minori.

Most (if not all) Anisthesia configs should also work in this library as well (at least on Windows).

## Support
Animia supports Windows, macOS, and Linux when dealing with file descriptors. When enumerating
windows, it supports Windows, macOS (Quartz), and X11. I'd love to be able to support Wayland, but
there's nothing I can do to provide an API that literally does not exist.

Unlike Anisthesia, Animia currently does not support UI automation, i.e., some web browsers will not
work properly, if at all.

## Platform-specific quirks

### macOS
The code to executable names on macOS uses internal functions. However, if these functions
cannot be found for whatever reason, it falls back to parsing the arguments, and then to calling
the kernel.

macOS doesn't have the concept of "class names", rather, it has bundle identifiers, which are
a suitable replacement for most use cases.

### X11
X11 has no idea what PID started your window. As a result, we can't provide it. Eventually,
there'll be support for the XRes extension which provides this possibility. For now, PIDs are
received using the untrustworthy `_NET_WM_PID` resource.