Mercurial > minori
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. |
