aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/app/share.display.go
diff options
context:
space:
mode:
authorOphestra Umiker <cat@ophivana.moe>2024-10-11 04:18:15 +0900
committerOphestra Umiker <cat@ophivana.moe>2024-10-11 04:18:15 +0900
commit662f2a9d2cea3f462cf5b508b3719d4d7a722146 (patch)
treeb1b1deedeeb22c3d09e600f87496cba107cfc939 /internal/app/share.display.go
parent3ddfd76cdf82475a3600f8e1c835bf3529ea6a31 (diff)
app: integrate bwrap into environment setup
Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
Diffstat (limited to 'internal/app/share.display.go')
-rw-r--r--internal/app/share.display.go9
1 files changed, 6 insertions, 3 deletions
diff --git a/internal/app/share.display.go b/internal/app/share.display.go
index 01ae00a9..da9f6eff 100644
--- a/internal/app/share.display.go
+++ b/internal/app/share.display.go
@@ -27,7 +27,7 @@ type ErrDisplayEnv BaseError
func (seal *appSeal) shareDisplay() error {
// pass $TERM to launcher
if t, ok := os.LookupEnv(term); ok {
- seal.appendEnv(term, t)
+ seal.sys.setEnv(term, t)
}
// set up wayland
@@ -38,8 +38,10 @@ func (seal *appSeal) shareDisplay() error {
// hardlink wayland socket
wp := path.Join(seal.RuntimePath, wd)
wpi := path.Join(seal.shareLocal, "wayland")
+ w := path.Join(seal.sys.runtime, "wayland-0")
seal.sys.link(wp, wpi)
- seal.appendEnv(waylandDisplay, wpi)
+ seal.sys.setEnv(waylandDisplay, w)
+ seal.sys.bind(wpi, w, true)
// ensure Wayland socket ACL (e.g. `/run/user/%d/wayland-%d`)
seal.sys.updatePermTag(state.EnableWayland, wp, acl.Read, acl.Write, acl.Execute)
@@ -56,7 +58,8 @@ func (seal *appSeal) shareDisplay() error {
return (*ErrDisplayEnv)(wrapError(ErrXDisplay, "DISPLAY is not set"))
} else {
seal.sys.changeHosts(seal.sys.Username)
- seal.appendEnv(display, d)
+ seal.sys.setEnv(display, d)
+ seal.sys.bind("/tmp/.X11-unix", "/tmp/.X11-unix", true)
}
}