aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/app/share.display.go
diff options
context:
space:
mode:
authorOphestra Umiker <cat@ophivana.moe>2024-10-11 02:01:03 +0900
committerOphestra Umiker <cat@ophivana.moe>2024-10-11 02:01:03 +0900
commit6220f7e197f01846f5e4e3090acf9251f3ae6ade (patch)
treeb6282fefd49f321ca341c61019b144b2ea4260e5 /internal/app/share.display.go
parentb86fa6b4c91a2bf331ae4a50a5aa14b668efc4e6 (diff)
app: migrate to new shim implementation
Both machinectl and sudo launch methods launch shim as shim is now responsible for setting up the sandbox. Various app structures are adapted to accommodate bwrap configuration and mediated wayland access. Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
Diffstat (limited to 'internal/app/share.display.go')
-rw-r--r--internal/app/share.display.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/internal/app/share.display.go b/internal/app/share.display.go
index 51ac54d3..01ae00a9 100644
--- a/internal/app/share.display.go
+++ b/internal/app/share.display.go
@@ -34,7 +34,7 @@ func (seal *appSeal) shareDisplay() error {
if seal.et.Has(state.EnableWayland) {
if wd, ok := os.LookupEnv(waylandDisplay); !ok {
return (*ErrDisplayEnv)(wrapError(ErrWayland, "WAYLAND_DISPLAY is not set"))
- } else {
+ } else if seal.wlDone == nil {
// hardlink wayland socket
wp := path.Join(seal.RuntimePath, wd)
wpi := path.Join(seal.shareLocal, "wayland")
@@ -43,6 +43,9 @@ func (seal *appSeal) shareDisplay() error {
// ensure Wayland socket ACL (e.g. `/run/user/%d/wayland-%d`)
seal.sys.updatePermTag(state.EnableWayland, wp, acl.Read, acl.Write, acl.Execute)
+ } else {
+ // set wayland socket path (e.g. `/run/user/%d/wayland-%d`)
+ seal.wl = path.Join(seal.RuntimePath, wd)
}
}