comparison dep/animia/README.md @ 202:71832ffe425a

animia: re-add kvm fd source this is all being merged from my wildly out-of-date laptop. SORRY! in other news, I edited the CI file to install the wayland client as well, so the linux CI build might finally get wayland stuff.
author Paper <paper@paper.us.eu.org>
date Tue, 02 Jan 2024 06:05:06 -0500
parents 9f3534f6b8c4
children 8a482049b968
comparison
equal deleted inserted replaced
201:8f6f8dd2eb23 202:71832ffe425a
1 # Animia 1 # Animia
2 Animia is a work-in-progress cross-platform hard fork of Anisthesia and part of Minori. 2 Animia is a work-in-progress cross-platform hard fork of Anisthesia and part of
3 Minori.
3 4
4 Most (if not all) Anisthesia configs should also work in this library as well (at least on Windows). 5 Most (if not all) Anisthesia configs should also work in this library as well
6 (at least on Windows).
5 7
6 ## Support 8 ## Support
7 Animia supports Windows, macOS, and Linux when dealing with file descriptors. When enumerating windows, it supports Windows, macOS (Quartz), 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. 9 Animia supports Windows, macOS, and Linux when dealing with file descriptors.
10 When enumerating windows, it supports Windows, macOS (Quartz), X11, and
11 Wayland (only via the `ext_foreign_toplevel_handle_v1` interface).
8 12
13 Unlike Anisthesia, Animia currently does not support UI automation, i.e., most
14 web browsers will not work properly, if at all.
15
16 ## Platform-specific quirks
17
18 ### Windows
19 To get the currently opened file handles on Windows, Animia has to use internal
20 kernel functions. However, these functions aren't likely to change anytime soon.
21
22 ### macOS
23 The code to retrieve executable names on macOS uses internal functions. However,
24 if these functions cannot be found for whatever reason, it falls back to parsing
25 the arguments, and then to calling the kernel.
26
27 Additionally, macOS does not have the concept of class names, rather, it has
28 bundle identifiers, which are a suitable replacement in most use cases, and are
29 what Animia will try to grab before falling back to the Quartz window name.
30
31 ### X11
32 If your X server has the XRes extension installed, Animia will use it to get
33 PIDs. Otherwise, X11 has no idea what PID started your window. As a result,
34 what Animia will give you is from the `_NET_WM_PID` resource, which is
35 [very](https://stackoverflow.com/a/49970490)
36 [unreliable](https://stackoverflow.com/a/49970271).
37
38 ### Wayland
39 Only Wayland servers that implement the `ext_foreign_toplevel_handle_v1`
40 interface will work with Animia. As of 2 January 2024, this means there are no
41 server implementations that will work. **However**, it is possible to implement
42 support for the wlroots-specific `wlr_foreign_toplevel_management_unstable_v1`
43 protocol, which will at least give support to window managers based off of it.