mkinitcpio hooks that print the word "Welcome" in big letters and draw a box for inputting an encryption password and catching the fsck output during early userspace. See blog post for a video: https://mcol.xyz/2020/06/ricing-early-userspace.html
git clone https://github.com/m-col/mkinitcpio-welcome
Files | Refs | Readme

Commit e1f548fbc48a28db86e9f114347d7788271edee6
Parent: 
Author: mcol <mcol@posteo.net>
Date: 2020-06-29 17:20:04 +0100
Committer: mcol <mcol@posteo.net>
Committed: 2020-06-29 17:20:04 +0100

init commit with working prototype hook

install/welcome Added

@@ -0,0 +1,11 @@
+#!/bin/bash
+
+build() {
+    add_runscript
+}
+
+help() {
+    cat <<HELPEOF
+Sets up console appearance before asking for passphrase
+HELPEOF
+}

hooks/welcome Added

@@ -0,0 +1,44 @@
+#!/usr/bin/ash
+
+
+# # # # # # # USER SETTINGS
+
+# These should be a number from 0 to 15
+
+BACKGROUND=0
+WELCOME=5
+INPUTBOX=4
+
+# # # # # # # # # # # # # #
+
+
+run_hook() {
+    bk="\x1b[48;5;${BACKGROUND}m"
+    we="\x1b[48;5;${WELCOME}m"
+    in="\x1b[48;5;${INPUTBOX}m"
+
+    p="$we  $bk"  		# single pixel
+    s="$we  "	    		# start pixel row
+    e="  $bk"	    		# end pixel row
+    non="\x1b[0m"		# reset all settings
+    fill="\033[K"   		# fill to end of line
+
+    echo -e "$b14\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill"
+    echo -e "                                                                                                  $s$e$fill"
+    echo -e "                                                                   $p          $p                   $p$fill"
+    echo -e "                                                                   $p          $p                   $p$fill"
+    echo -e "                                                                   $p          $p    $s    $e       $p            $s    $e        $s    $e      $s  $e  $s$e      $s    $e$fill"
+    echo -e "                                                                   $p    $p    $p  $p        $p     $p          $p        $p    $p        $p    $p    $p    $p  $p        $p$fill"
+    echo -e "                                                                   $p    $p    $p  $s        $e     $p          $p              $p        $p    $p    $p    $p  $s        $e$fill"
+    echo -e "                                                                   $p    $p    $p  $p               $p          $p              $p        $p    $p    $p    $p  $p$fill"
+    echo -e "                                                                   $p  $p  $p  $p  $p               $p          $p        $p    $p        $p    $p    $p    $p  $p$fill"
+    echo -e "                                                                   $s$e      $s$e    $s      $e       $s  $e      $s    $e        $s    $e      $p    $p    $p    $s      $e$fill"
+    echo -e "$fill\n$fill\n$fill\n$fill"
+    echo -e "                                                                                             $in                                                      $bk$fill"
+    echo -e "                                                                                             $in  $bk                                                  $in  $bk$fill"
+    echo -e "                                                                                             $in                                                      $bk$fill"
+    echo -e "$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill\n$fill"
+
+    # move cursor to input box
+    echo -ne "\x1b[32;96H"
+}