diff options
Diffstat (limited to 'internal/app/share.display.go')
| -rw-r--r-- | internal/app/share.display.go | 21 |
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") } } |
