Mercurial > minori
annotate 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 |
rev | line source |
---|---|
56
6ff7aabeb9d7
deps: add animia for open files detection
Paper <mrpapersonic@gmail.com>
parents:
diff
changeset
|
1 # Animia |
199
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
2 Animia is a work-in-progress cross-platform hard fork of Anisthesia and part of |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
3 Minori. |
62 | 4 |
199
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
5 Most (if not all) Anisthesia configs should also work in this library as well |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
6 (at least on Windows). |
158
80d6b28eb29f
dep/animia: fix most X11 stuff
Paper <mrpapersonic@gmail.com>
parents:
152
diff
changeset
|
7 |
80d6b28eb29f
dep/animia: fix most X11 stuff
Paper <mrpapersonic@gmail.com>
parents:
152
diff
changeset
|
8 ## Support |
199
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
9 Animia supports Windows, macOS, and Linux when dealing with file descriptors. |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
10 When enumerating windows, it supports Windows, macOS (Quartz), X11, and |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
11 Wayland (only via the `ext_foreign_toplevel_handle_v1` interface). |
191
0fc126d52de4
animia: multiple stylistic choices
Paper <mrpapersonic@gmail.com>
parents:
158
diff
changeset
|
12 |
199
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
13 Unlike Anisthesia, Animia currently does not support UI automation, i.e., most |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
14 web browsers will not work properly, if at all. |
191
0fc126d52de4
animia: multiple stylistic choices
Paper <mrpapersonic@gmail.com>
parents:
158
diff
changeset
|
15 |
0fc126d52de4
animia: multiple stylistic choices
Paper <mrpapersonic@gmail.com>
parents:
158
diff
changeset
|
16 ## Platform-specific quirks |
158
80d6b28eb29f
dep/animia: fix most X11 stuff
Paper <mrpapersonic@gmail.com>
parents:
152
diff
changeset
|
17 |
199
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
18 ### Windows |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
19 To get the currently opened file handles on Windows, Animia has to use internal |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
20 kernel functions. However, these functions aren't likely to change anytime soon. |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
21 |
191
0fc126d52de4
animia: multiple stylistic choices
Paper <mrpapersonic@gmail.com>
parents:
158
diff
changeset
|
22 ### macOS |
199
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
23 The code to retrieve executable names on macOS uses internal functions. However, |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
24 if these functions cannot be found for whatever reason, it falls back to parsing |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
25 the arguments, and then to calling the kernel. |
191
0fc126d52de4
animia: multiple stylistic choices
Paper <mrpapersonic@gmail.com>
parents:
158
diff
changeset
|
26 |
199
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
27 Additionally, macOS does not have the concept of class names, rather, it has |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
28 bundle identifiers, which are a suitable replacement in most use cases, and are |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
29 what Animia will try to grab before falling back to the Quartz window name. |
191
0fc126d52de4
animia: multiple stylistic choices
Paper <mrpapersonic@gmail.com>
parents:
158
diff
changeset
|
30 |
0fc126d52de4
animia: multiple stylistic choices
Paper <mrpapersonic@gmail.com>
parents:
158
diff
changeset
|
31 ### X11 |
199
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
32 If your X server has the XRes extension installed, Animia will use it to get |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
33 PIDs. Otherwise, X11 has no idea what PID started your window. As a result, |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
34 what Animia will give you is from the `_NET_WM_PID` resource, which is |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
35 [very](https://stackoverflow.com/a/49970490) |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
36 [unreliable](https://stackoverflow.com/a/49970271). |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
37 |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
38 ### Wayland |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
39 Only Wayland servers that implement the `ext_foreign_toplevel_handle_v1` |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
40 interface will work with Animia. As of 2 January 2024, this means there are no |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
41 server implementations that will work. **However**, it is possible to implement |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
42 support for the wlroots-specific `wlr_foreign_toplevel_management_unstable_v1` |
9f3534f6b8c4
dep/animia: initial Wayland support, drop non-working kvm fd plugin
Paper <mrpapersonic@gmail.com>
parents:
191
diff
changeset
|
43 protocol, which will at least give support to window managers based off of it. |