Я уже пару раз пытался реализовать, но идеально до сих пор ни разу не получалось.
Суть моей затеи в том, чтобы вывести какое-то изображение на экран ещё на этапе загрузки. При этом в загрузчике выставляется «родное» разрешение для экрана. GRUB2 отлично для этого подходит, однако я пробовал также pxelinux (тут придётся пошаманить с изображением).
Следующий этап — загрузка ядра. Нужно как-то загрузить ядро, но при этом не обновлять экран — пускай там остаётся изображение, выведенное загрузчиком. Как только ядро (с выставленным «родным» разрешением через GFX_MODE или параметр vga=) загрузится, оно выведет на экран точно такое же изображение. Реализуется это через vesafb — early framebuffer.
Последний этап — старт иксов. Нужно запустить иксы (или что у вас там? wayland?) и первым делом выставить бэкграундом всё то же изображение.
Кажется, что ничего сложного нет, но есть. У меня так и не получается обойтись без мерцаний между загрузчиком и ядром. Также между фреймбуффером и иксами должно быть мерцание, но я до этого шага ещё не дошёл.
В итоге всё должно выглядеть очень красиво: почти сразу после старта вы видите свой десктоп, через пару секунд появляется курсор, хотя метод вывода изображения пару раз сменился, никто этого не заметил.