view dep/animia/README.md @ 193:0ad2507c3e60

dep/animia: cmake: check for the objc runtime library
author Paper <mrpapersonic@gmail.com>
date Thu, 07 Dec 2023 01:56:39 -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.