view dep/animone/README @ 337:a7d4e5107531

dep/animone: REFACTOR ALL THE THINGS 1: animone now has its own syntax divergent from anisthesia, making different platforms actually have their own sections 2: process names in animone are now called `comm' (this will probably break things). this is what its called in bsd/linux so I'm just going to use it everywhere 3: the X11 code now checks for the existence of a UTF-8 window title and passes it if available 4: ANYTHING THATS NOT LINUX IS 100% UNTESTED AND CAN AND WILL BREAK! I still actually need to test the bsd code. to be honest I'm probably going to move all of the bsds into separate files because they're all essentially different operating systems at this point
author Paper <paper@paper.us.eu.org>
date Wed, 19 Jun 2024 12:51:15 -0400
parents 675865737a23
children
line wrap: on
line source

Animone 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).

--- LICENSE ---
Changes divergent from Anisthesia are under the BSD 3-clause license. You can
find a copy of the original MIT license bundled with Anisthesia at `LICENSE.MIT`
in the root folder.

--- SUPPORT ---
Unlike Anisthesia, Animone currently does not support UI automation, i.e., most
web browsers will not work properly, if at all.

Animone will first attempt to connect to a windowing system. If that fails, it
falls back to just enumerating over the open processes in the system.

--- PLATFORM-SPECIFIC QUIRKS ---
Because Animone supports multiple different platforms, there are some quirks to
keep in mind while using the library.

To get the currently opened file handles on Windows, Animone uses internal
kernel functions (however, these are unlikely to change in the future).

The code to retrieve executable names on macOS calls the kernel, and said kernel
functions aren't guaranteed to have the same API with each release. However, it
has stayed relatively stagnant since 10.4 Tiger's release, so any release after
it should work perfectly fine.

Additionally, macOS does not have the concept of class names, rather, it has
bundle identifiers, which are a suitable replacement in most use cases, and are
what Animone will attempt to grab before falling back to the Quartz window name.

On X11, Animone requires that the XRes extension is installed to retrieve window
PIDs. Animone will also attempt to retrieve window names in UTF-8 encoding; if
this is not possible it will be passed as whatever the current locale encoding
is.

File paths will always be in UTF-8 on Windows and macOS. Linux and BSD treat
filenames as just a pile of bytes and it's no telling what encoding they're in
(but in most if not all cases they will be in UTF-8 as well)

--- HISTORY ---
Animone used to be under the name Animia, as in you'd contract anemia just from
looking at the source code. It's been cleaned up a bit since then, so now it's
been changed to represent Anemone, a genus of flowering plants commonly called
windflowers :)