aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/app/share.display.go
diff options
context:
space:
mode:
authorOphestra Umiker <cat@ophivana.moe>2024-10-10 12:44:08 +0900
committerOphestra Umiker <cat@ophivana.moe>2024-10-10 12:44:08 +0900
commit86cb5ac1dbd581078b10f5ec1eb723549c662a1b (patch)
tree9198789d0a47ebeda49b4e000013cfbf009b1b45 /internal/app/share.display.go
parent2220055e26bff8b426ebf086d09ba242e5180e76 (diff)
app: hardlink sockets to process-specific share local to XDG_RUNTIME_DIR
This avoids adding ACLs to the PulseAudio directory. Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
Diffstat (limited to 'internal/app/share.display.go')
-rw-r--r--internal/app/share.display.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/internal/app/share.display.go b/internal/app/share.display.go
index c1891876..9dbb6c3f 100644
--- a/internal/app/share.display.go
+++ b/internal/app/share.display.go
@@ -35,9 +35,11 @@ func (seal *appSeal) shareDisplay() error {
if wd, ok := os.LookupEnv(waylandDisplay); !ok {
return (*ErrDisplayEnv)(wrapError(ErrWayland, "WAYLAND_DISPLAY is not set"))
} else {
- // wayland socket path
+ // hardlink wayland socket
wp := path.Join(seal.RuntimePath, wd)
- seal.appendEnv(waylandDisplay, wp)
+ wpi := path.Join(seal.shareLocal, "wayland")
+ seal.sys.link(wp, wpi)
+ seal.appendEnv(waylandDisplay, wpi)
// ensure Wayland socket ACL (e.g. `/run/user/%d/wayland-%d`)
seal.sys.updatePerm(wp, acl.Read, acl.Write, acl.Execute)