Commit Graph

268 Commits

Author SHA1 Message Date
李通洲 97e1b987dd Global: pack all enums and make flag enums unsigned 2024-11-14 11:00:44 +08:00
李通洲 830c71ddc4 DisplayServer (NetBSD): detect WM / DE by process name 2024-11-11 17:37:01 +08:00
Carter Li 837903e845 DisplayServer: fix deprecation warnings 2024-11-09 21:36:48 +08:00
Carter Li f7288fec01 Global: support DragonFly BSD 2024-11-03 08:35:11 +08:00
Carter Li 5443334156 DisplayServer (Linux): silense compiler warnings 2024-10-29 09:08:28 +08:00
李通洲 fd26373c8f Global: overall optimization 2024-10-26 11:42:07 +08:00
李通洲 b257134d74 Chore: introduce macro ARRAY_SIZE 2024-10-18 16:44:41 +08:00
李通洲 188dbde595 Chore: remove all #ifndef guards 2024-10-17 22:33:52 +08:00
李通洲 993902916d Chore: don't use strncpy in favor of strlcpy
strncpy doesn't require target to be NUL terminated
2024-10-17 16:16:04 +08:00
Carter Li 1c598add39 Chore (Linux): always ignore hidden files when enumerating directories 2024-10-15 10:16:58 +08:00
Carter Li 71a8978f41 Display: report platform api used for detection 2024-10-14 14:42:11 +08:00
Shu Niu 986d36c028 fix build in ancient MacOS (#1334) 2024-10-12 19:45:14 +08:00
Carter Li d5d935a658 DisplayServer (Linux): fix invalid display name detection 2024-10-06 12:27:49 +08:00
Carter Li 5f3ce50022 Display (Linux): prefer detecting physical size from EDID 2024-10-05 23:56:16 +08:00
Carter Li f30501f365 Display (macOS): fix invalid physical size on old Intel Mac 2024-10-05 17:22:32 +08:00
Carter Li a32d9d788c OpenBSD: init platform support 2024-10-04 17:49:18 +08:00
Carter Li 99626149f6 Display (FreeBSD): add guards between linux specific code 2024-10-01 17:26:29 +08:00
李通洲 d5c395fb85 Display (Windows): merge features of Monitor module 2024-09-30 23:25:08 +08:00
李通洲 46eb0e4b1c Display (Linux): merge features of Monitor module 2024-09-30 22:43:29 +08:00
李通洲 fb0a18dc82 Display (macOS): merge monitor module features 2024-09-30 20:16:24 +08:00
Carter Li 88097463af Display (Linux): report displays of unknown connection state too
Ref: #1301
2024-09-29 10:25:46 +08:00
Ziyao 51796de69a Display (Linux): detect all enabled or connected connectors (#1301)
DRM connectors have two properties, "enabled" and "status", standing for
"enabled by userspace" and "a display has been connected". Connector
status cannot be reliably detected sometimes, in this case status will
be set to unknown and it is still okay to enable it. Some drivers are
also able to enable disconnected connectors.

So it is both meaningful to detect connectors in two states,

- An enabled connector, where it must have been operating in some
  configuration required by userspace
- A connected connector, where driver is sure a display has been
  connected to the port, this is the obvious case.

In the original implementation, only information of connected connectors
are detected and an enabled connector without hotplug detection
capability, like a Composite video connector, will be silently ignored.
Switch to the new strategy to detect these connectors correctly.

References: https://github.com/torvalds/linux/blob/3efc57369a0ce8f76bf0804f7e673982384e4ac9/include/drm/drm_connector.h#L58-L89

Signed-off-by: Yao Zi <ziyao@disroot.org>
2024-09-29 10:23:20 +08:00
李通洲 c9d539090d Global: remove --lib-xxx support 2024-09-04 15:56:11 +08:00
Carter Li 67d0dfcef0 DE (Linux): support unity version detection 2024-08-27 14:31:05 +08:00
Carter Li e0d733f030 DisplayServer (macOS): fix building on ancient macOS version
Fix #1190
2024-08-15 19:01:33 +08:00
李通洲 dd66626165 Display: remove detection of WCG enabled 2024-08-14 08:32:13 +08:00
李通洲 ea18d93a40 Display / Monitor (macOS): code refactor 2024-08-13 08:41:32 +08:00
Carter Li 8396f000e1 DisplayServer (Linux): don't rely on $XDG_SESSION_TYPE for detecting wm protocol
Fix #1162
2024-08-06 16:34:01 +08:00
李通洲 812a13c871 Display (macOS): fix invalid refresh rate in old mac 2024-08-01 16:41:02 +08:00
李通洲 65883766a0 Display (macOS): don't parse string 2024-08-01 16:02:41 +08:00
Carter Li 7eaaed6024 WM (Linux): don't use wl-restart as WM name
Fix #1135
2024-07-31 14:19:42 +08:00
Carter Li cf0d1cf294 DisplayServer (Linux): don't print unknown as display name 2024-07-31 10:13:29 +08:00
Carter Li ced67e81a5 DisplayServer (Linux): ensure $XDG_RUNTIME_DIR is set before connecting
wayland
2024-07-30 23:50:19 +08:00
李通洲 2cc94ee095 DisplayServer (Linux): fix build with no wayland support 2024-07-27 19:53:25 +08:00
李通洲 ce43f06863 DisplayServer (Linux): don't try to connect wayland and X11 in tty mode
Fix #1110
2024-07-26 23:53:18 +08:00
Carter Li cdee6e2997 Display (Linux): don't wake up suspended GPU 2024-07-23 19:06:04 +08:00
李通洲 f3e48a00a0 Display (Android): fix MiUI
560 is density dpi, not physical dpi
2024-07-23 09:27:07 +08:00
李通洲 4fe1bb0b7e Display: detect if WCG enabled 2024-07-20 11:52:07 +08:00
Carter Li 7ba1e3d3d9 Monitor (Linux): detect by Xrandr if EDID is not available 2024-07-19 05:43:15 +00:00
Carter Li 96ec2b662c Display (Linux): support HDR detection for KDE; fix build 2024-07-18 18:51:33 +08:00
李通洲 f11b07ba8a DisplayServer (macOS): detect bit depth 2024-07-18 16:41:57 +08:00
李通洲 4e84153e9d Display (Windows): check for hdr enabled & bit depth 2024-07-18 16:40:45 +08:00
Carter Li 5bc9a5dc4e Display: rotate physical demensions 2024-07-16 16:36:19 +08:00
Carter Li 5b064f2e7b Display (Linux); improve display type detection
1. assume `DP-x` is external (false possitive alert);
2. detect display type for X11
2024-07-12 15:29:12 +08:00
Carter Li e786cd5d33 Display: detect physical width and height 2024-07-11 20:33:25 +08:00
Carter Li 1652ec3512 Display (Linux): remove debug output 2024-07-08 18:27:42 +08:00
Carter Li fa872d7c9b Display: fix build on FreeBSD 2024-07-08 15:32:09 +08:00
Carter Li d628bdea5a Display (Linux): support primary display detection for GNOME & Cinnamon 2024-07-08 14:11:45 +08:00
Carter Li f9ce2fae0e Display (Linux): improve id generation for wayland 2024-07-08 11:04:27 +08:00
李通洲 a61765c8b1 Display (Linux): try fix building for old wayland version 2024-07-06 00:10:59 +08:00