aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/app/share.display.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/app/share.display.go')
-rw-r--r--internal/app/share.display.go21
1 files changed, 11 insertions, 10 deletions
diff --git a/internal/app/share.display.go b/internal/app/share.display.go
index 86343d8b..2675c01b 100644
--- a/internal/app/share.display.go
+++ b/internal/app/share.display.go
@@ -6,6 +6,7 @@ import (
"path"
"git.ophivana.moe/cat/fortify/acl"
+ "git.ophivana.moe/cat/fortify/internal/fmsg"
"git.ophivana.moe/cat/fortify/internal/state"
)
@@ -22,29 +23,28 @@ var (
ErrXDisplay = errors.New(display + " unset")
)
-type ErrDisplayEnv BaseError
-
func (seal *appSeal) shareDisplay() error {
// pass $TERM to launcher
if t, ok := os.LookupEnv(term); ok {
- seal.sys.setEnv(term, t)
+ seal.sys.bwrap.SetEnv[term] = t
}
// set up wayland
if seal.et.Has(state.EnableWayland) {
if wd, ok := os.LookupEnv(waylandDisplay); !ok {
- return (*ErrDisplayEnv)(wrapError(ErrWayland, "WAYLAND_DISPLAY is not set"))
+ return fmsg.WrapError(ErrWayland,
+ "WAYLAND_DISPLAY is not set")
} else if seal.wlDone == nil {
// 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.sys.setEnv(waylandDisplay, w)
+ seal.sys.Link(wp, wpi)
+ seal.sys.bwrap.SetEnv[waylandDisplay] = w
seal.sys.bwrap.Bind(wpi, w)
// ensure Wayland socket ACL (e.g. `/run/user/%d/wayland-%d`)
- seal.sys.updatePermTag(state.EnableWayland, wp, acl.Read, acl.Write, acl.Execute)
+ seal.sys.UpdatePermType(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)
@@ -55,10 +55,11 @@ func (seal *appSeal) shareDisplay() error {
if seal.et.Has(state.EnableX) {
// discover X11 and grant user permission via the `ChangeHosts` command
if d, ok := os.LookupEnv(display); !ok {
- return (*ErrDisplayEnv)(wrapError(ErrXDisplay, "DISPLAY is not set"))
+ return fmsg.WrapError(ErrXDisplay,
+ "DISPLAY is not set")
} else {
- seal.sys.changeHosts(seal.sys.Username)
- seal.sys.setEnv(display, d)
+ seal.sys.ChangeHosts(seal.sys.user.Username)
+ seal.sys.bwrap.SetEnv[display] = d
seal.sys.bwrap.Bind("/tmp/.X11-unix", "/tmp/.X11-unix")
}
}