Thank you for your answer ! Your workaround with tty windows worked perfectly for me.
Just two things to mention :
When using this on boot, sometimes when the correct GPU isn't initially bound to the pty, creating a new window without parameters then attaching it to the root process will cause internal errors in tty.lua. So providing parameters to term.internal.open() is mandatory in this case :
local w,h = gpu.getResolution()
local window = term.internal.open(0,0,w,h)
Else the window's width and height will be nil. This isn't a problem when used after boot, directly in the s