@@ -172,13 +172,15 @@ func (s *Server) sessionHandler(session ssh.Session) {
172
172
173
173
ctx := session .Context ()
174
174
175
+ extraEnv := make ([]string , 0 )
175
176
x11 , hasX11 := session .X11 ()
176
177
if hasX11 {
177
178
handled := s .x11Handler (session .Context (), x11 )
178
179
if ! handled {
179
180
_ = session .Exit (1 )
180
181
return
181
182
}
183
+ extraEnv = append (extraEnv , fmt .Sprintf ("DISPLAY=:%d.0" , x11 .ScreenNumber ))
182
184
}
183
185
184
186
switch ss := session .Subsystem (); ss {
@@ -192,7 +194,7 @@ func (s *Server) sessionHandler(session ssh.Session) {
192
194
return
193
195
}
194
196
195
- err := s .sessionStart (session )
197
+ err := s .sessionStart (session , extraEnv )
196
198
var exitError * exec.ExitError
197
199
if xerrors .As (err , & exitError ) {
198
200
s .logger .Debug (ctx , "ssh session returned" , slog .Error (exitError ))
@@ -209,9 +211,9 @@ func (s *Server) sessionHandler(session ssh.Session) {
209
211
_ = session .Exit (0 )
210
212
}
211
213
212
- func (s * Server ) sessionStart (session ssh.Session ) (retErr error ) {
214
+ func (s * Server ) sessionStart (session ssh.Session , extraEnv [] string ) (retErr error ) {
213
215
ctx := session .Context ()
214
- env := session .Environ ()
216
+ env := append ( session .Environ (), extraEnv ... )
215
217
var magicType string
216
218
for index , kv := range env {
217
219
if ! strings .HasPrefix (kv , MagicSessionTypeEnvironmentVariable ) {
0 commit comments