aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gsr-kms-server.165
-rw-r--r--meson.build2
2 files changed, 66 insertions, 1 deletions
diff --git a/gsr-kms-server.1 b/gsr-kms-server.1
new file mode 100644
index 0000000..0d60783
--- /dev/null
+++ b/gsr-kms-server.1
@@ -0,0 +1,65 @@
+.TH GSR\-KMS\-SERVER 1 "2025-12-22" "5.10.2" "GPU Screen Recorder KMS Server Manual"
+.SH NAME
+gsr\-kms\-server \- KMS (Kernel Mode Setting) server for GPU Screen Recorder
+.SH SYNOPSIS
+.B gsr\-kms\-server
+<\fIdomain_socket_path\fR> <\fIcard_path\fR>
+.SH DESCRIPTION
+\fBgsr\-kms\-server\fR is a companion daemon for GPU Screen Recorder that provides
+Kernel Mode Setting (KMS) access for screen capture in environments where
+direct DRM access is required. It acts as a local server that communicates
+via a Unix domain socket, allowing GPU Screen Recorder to capture screen
+content through the KMS interface.
+.PP
+This component is typically used when GPU Screen Recorder needs to access
+display hardware directly, bypassing the windowing system for more efficient
+or lower-level capture. It runs as a separate process and communicates with
+the main GPU Screen Recorder instance.
+.SH ARGUMENTS
+.TP
+.B \fIdomain_socket_path\fR
+Path to the Unix domain socket that the server will create and listen on.
+This socket is used for communication between GPU Screen Recorder and the
+KMS server. The path should be in a location where both processes have
+appropriate permissions to read and write.
+.TP
+.B \fIcard_path\fR
+Path to the DRM device file (typically \fI/dev/dri/cardX\fR) that the server
+will use for KMS operations. This corresponds to a specific graphics card
+in the system.
+.SH EXAMPLES
+Start the KMS server using card0 and create socket at /tmp/gsr-kms.sock:
+.RS
+.B gsr\-kms\-server /tmp/gsr\-kms.sock /dev/dri/card0
+.RE
+.PP
+Start the KMS server using card1 and create socket in a user-specific location:
+.RS
+.B gsr\-kms\-server ~/.cache/gsr\-kms.sock /dev/dri/card1
+.RE
+.SH NOTES
+.IP \(bu 3
+The \fBgsr-kms-server\fR typically runs with elevated permissions to access
+DRM devices, which requires root permission.
+.IP \(bu 3
+Only one instance should run per DRM card at a time.
+.IP \(bu 3
+The server will exit when the client disconnects or when terminated by a signal.
+.IP \(bu 3
+The socket file is created by the server and removed when the server exits.
+.SH FILES
+.TP
+.B /dev/dri/card*
+DRM device files for graphics cards
+.TP
+.B /tmp/gsr-kms.sock
+Typical location for the domain socket (user-configurable)
+.SH SEE ALSO
+.BR gpu\-screen\-recorder (1),
+.BR drm (4)
+.PP
+Project homepage: <https://git.dec05eba.com/gpu-screen-recorder/about/>
+.SH BUGS
+Report bugs at the project homepage.
+.SH AUTHORS
+gsr\-kms\-server was written by the GPU Screen Recorder contributors.
diff --git a/meson.build b/meson.build
index c30ce84..43b6457 100644
--- a/meson.build
+++ b/meson.build
@@ -115,7 +115,7 @@ executable('gsr-kms-server', 'kms/server/kms_server.c', dependencies : dependenc
executable('gpu-screen-recorder', src, dependencies : dep, install : true)
install_headers('plugin/plugin.h', install_dir : 'include/gsr')
-install_man('gpu-screen-recorder.1')
+install_man('gpu-screen-recorder.1', 'gsr-kms-server.1')
if get_option('systemd') == true
install_data(files('extra/gpu-screen-recorder.service'), install_dir : 'lib/systemd/user')