]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
firstboot: welcome user with emoji in firstboot wizard 🧙
authorLennart Poettering <lennart@poettering.net>
Fri, 14 Mar 2025 14:44:31 +0000 (15:44 +0100)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 14 Mar 2025 20:12:12 +0000 (05:12 +0900)
src/basic/glyph-util.c
src/basic/glyph-util.h
src/firstboot/firstboot.c
src/home/homectl.c
src/test/test-locale-util.c

index 64f6685cb4fcb53ff67ad790e5a8b40c0e5364e1..fa4c5888bd8bf252df2c252845409e020a876e45 100644 (file)
@@ -82,6 +82,7 @@ const char* special_glyph_full(SpecialGlyph code, bool force_utf) {
                         [SPECIAL_GLYPH_GREEN_CIRCLE]            = "o",
                         [SPECIAL_GLYPH_SUPERHERO]               = "S",
                         [SPECIAL_GLYPH_IDCARD]                  = "@",
+                        [SPECIAL_GLYPH_HOME]                    = "^",
                 },
 
                 /* UTF-8 */
@@ -153,6 +154,7 @@ const char* special_glyph_full(SpecialGlyph code, bool force_utf) {
                         [SPECIAL_GLYPH_GREEN_CIRCLE]            = u8"🟢",
                         [SPECIAL_GLYPH_SUPERHERO]               = u8"🦸",
                         [SPECIAL_GLYPH_IDCARD]                  = u8"🪪",
+                        [SPECIAL_GLYPH_HOME]                    = u8"🏠",
                 },
         };
 
index ca4d4eda71aa00deccdcdde109b2f8f99b5ab375..84c01a5fedcac1bab0ba61f9577386f3ec3ca56b 100644 (file)
@@ -57,6 +57,7 @@ typedef enum SpecialGlyph {
         SPECIAL_GLYPH_GREEN_CIRCLE,
         SPECIAL_GLYPH_SUPERHERO,
         SPECIAL_GLYPH_IDCARD,
+        SPECIAL_GLYPH_HOME,
         _SPECIAL_GLYPH_MAX,
         _SPECIAL_GLYPH_INVALID = -EINVAL,
 } SpecialGlyph;
index cd72f5439690e94411dccfe859ab447c3d33a934..a5a6ff7a846a574f80c7faf1e28181dcdcd1a7af 100644 (file)
@@ -124,11 +124,17 @@ static void print_welcome(int rfd) {
         (void) terminal_reset_defensive_locked(STDOUT_FILENO, /* flags= */ 0);
 
         if (colors_enabled())
-                printf("\nWelcome to your new installation of \x1B[%sm%s\x1B[0m!\n", ac, pn);
+                printf("\n"
+                       ANSI_HIGHLIGHT "Welcome to your new installation of " ANSI_NORMAL "\x1B[%sm%s" ANSI_HIGHLIGHT "!" ANSI_NORMAL "\n", ac, pn);
         else
                 printf("\nWelcome to your new installation of %s!\n", pn);
 
-        printf("\nPlease configure your system!\n");
+        putchar('\n');
+        if (emoji_enabled()) {
+                fputs(special_glyph(SPECIAL_GLYPH_SPARKLES), stdout);
+                putchar(' ');
+        }
+        printf("Please configure your new system!\n");
 
         any_key_to_proceed();
 
index 65243e4a6fe9c9ac920ead38d21357ad86dec83e..4ac53be2890cf3576a4629cf5e5b0bc4a7bc62ff 100644 (file)
@@ -2710,7 +2710,12 @@ static int create_interactively(void) {
                 return 0;
         }
 
-        printf("\nPlease create your user account!\n");
+        putchar('\n');
+        if (emoji_enabled()) {
+                fputs(special_glyph(SPECIAL_GLYPH_HOME), stdout);
+                putchar(' ');
+        }
+        printf("Please create your user account!\n");
 
         if (!any_key_to_proceed()) {
                 log_notice("Skipping.");
index f9b2712444a9c9613a54af7c0f57b7514a318e47..40d07597835d823a7e3fc01c465dd47066ae6ac1 100644 (file)
@@ -82,7 +82,7 @@ TEST(keymaps) {
 
 #define dump_glyph(x) log_info(STRINGIFY(x) ": %s", special_glyph(x))
 TEST(dump_special_glyphs) {
-        assert_cc(SPECIAL_GLYPH_IDCARD + 1 == _SPECIAL_GLYPH_MAX);
+        assert_cc(SPECIAL_GLYPH_HOME + 1 == _SPECIAL_GLYPH_MAX);
 
         log_info("is_locale_utf8: %s", yes_no(is_locale_utf8()));
 
@@ -135,6 +135,7 @@ TEST(dump_special_glyphs) {
         dump_glyph(SPECIAL_GLYPH_GREEN_CIRCLE);
         dump_glyph(SPECIAL_GLYPH_SUPERHERO);
         dump_glyph(SPECIAL_GLYPH_IDCARD);
+        dump_glyph(SPECIAL_GLYPH_HOME);
 }
 
 DEFINE_TEST_MAIN(LOG_INFO);