Mercurial > minori
comparison dep/animia/README.md @ 199:9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Tue, 02 Jan 2024 02:34:27 -0500 |
| parents | 0fc126d52de4 |
| children | 8a482049b968 |
comparison
equal
deleted
inserted
replaced
| 198:bc1ae1810855 | 199:9f3534f6b8c4 |
|---|---|
| 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 | 9 Animia supports Windows, macOS, and Linux when dealing with file descriptors. |
| 8 windows, it supports Windows, macOS (Quartz), and X11. I'd love to be able to support Wayland, but | 10 When enumerating windows, it supports Windows, macOS (Quartz), X11, and |
| 9 there's nothing I can do to provide an API that literally does not exist. | 11 Wayland (only via the `ext_foreign_toplevel_handle_v1` interface). |
| 10 | 12 |
| 11 Unlike Anisthesia, Animia currently does not support UI automation, i.e., some web browsers will not | 13 Unlike Anisthesia, Animia currently does not support UI automation, i.e., most |
| 12 work properly, if at all. | 14 web browsers will not work properly, if at all. |
| 13 | 15 |
| 14 ## Platform-specific quirks | 16 ## Platform-specific quirks |
| 15 | 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 | |
| 16 ### macOS | 22 ### macOS |
| 17 The code to executable names on macOS uses internal functions. However, if these functions | 23 The code to retrieve executable names on macOS uses internal functions. However, |
| 18 cannot be found for whatever reason, it falls back to parsing the arguments, and then to calling | 24 if these functions cannot be found for whatever reason, it falls back to parsing |
| 19 the kernel. | 25 the arguments, and then to calling the kernel. |
| 20 | 26 |
| 21 macOS doesn't have the concept of "class names", rather, it has bundle identifiers, which are | 27 Additionally, macOS does not have the concept of class names, rather, it has |
| 22 a suitable replacement for most use cases. | 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. | |
| 23 | 30 |
| 24 ### X11 | 31 ### X11 |
| 25 X11 has no idea what PID started your window. As a result, we can't provide it. Eventually, | 32 If your X server has the XRes extension installed, Animia will use it to get |
| 26 there'll be support for the XRes extension which provides this possibility. For now, PIDs are | 33 PIDs. Otherwise, X11 has no idea what PID started your window. As a result, |
| 27 received using the untrustworthy `_NET_WM_PID` resource. | 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. |
