view dep/animia/README.md @ 191:0fc126d52de4

animia: multiple stylistic choices win.class_name is now used to store bundle IDs on OS X, add some little explanations here and there for dumb stuff
author Paper <mrpapersonic@gmail.com>
date Thu, 07 Dec 2023 01:48:04 -0500
parents 80d6b28eb29f
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.