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.