@jidem @Nijate and....... bingo.
I've got it, I'm so happy.
First, you need to know what is the name of your HDMI screen. For that, plug HDMI, boot, then open console (for exemple in Rasbian) then type :
tvservice -n
(tvservice works too with a recalbox console : I say that because I'm a total noob in Linux and I think I'm not alone)
=> this will give your TV name like that :
device_name=THIS_IS_YOUR_TV_NAME
Note that name on paper (or take a photo : mine was SNY_SONY-TV, and never could remember if - was before _)
Then, open config.txt in Rasbian and on the very very top of the file, you put those 3 lines :
[EDID=THIS_IS_YOUR_TV_NAME]
display_default_lcd=0
[all]
What will happen there is when the Raspi detect on boot the TV, then it will use the next lines in the config.
Then it found the [all] filter that is used by default when there is no filter.
Therefor, display_default_lcd=0 will only be used when my TV is plugged on boot. Since that line happens to make the output on the HDMI, this is perfect : when HDMI is plugged, then the raspi will boot on HDMI else, it will boot on LCD.
Ok. This is not finished. This will only work with Rasbian.
You have to go in recalbox's /boot, and copy the same 3 lines on the very top of your config.txt file there so recalbox boot with the same behaviour.
It s NOT finish... I know there is a config command to power off the lcd. If you find it, you can put this between the [EDID=...] and the [all] filter so it power off the LCD if you use the HDMI output.
I think this is the solution !
(also, @Substring if this is the real solution and that does not work only for me, this could be automated in recalbox ? before the boot, use tvservice to know if something is plugged and [EDID=that stuff] then [all] the rest of the config file)
The solution was REALLY simple in fact. So simple that it's hard to notice just under our noses