Skip to content
View NachtsternBuild's full-sized avatar
📢
Working on AtlantisOS
📢
Working on AtlantisOS
  • Germany/Dresden
  • 01:12 (UTC +02:00)

Block or report NachtsternBuild

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
NachtsternBuild/README.md

✨ NachtsternBuild

"Always building, always learning."

📂 Featured Projects

🛠️ fastboot-assistant
→ Android Fastboot tools with a clean interface

🛠️ The AtlantisOS Project
→ Build Ubuntu for everyone, by everyone themself

🛠️ Treble-Updater
→ Simple GSI update manager

🛠️ VLC-PlaySaver
→ Save & restore VLC playlists

🧪 Experimente
→ My playground for new ideas

👋 Hi, thats me:

/* nerdy.c — "NachtsternBuild Orbiter" 
 * A tiny, fun C program that prints a pastel-ish animated header
 * Compile: gcc -O2 -std=c11 -o nachtstern nerdy.c
 * Run: ./nachtstern
 */
#define _XOPEN_SOURCE 500 // for usleep
#define SLEEP_US 80000

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>   /* usleep */
#include <time.h>


/* ANSI color helpers (pastel-like) */
static const char *cols[] = {
    "\x1b[38;5;159m", /* pastel cyan */
    "\x1b[38;5;175m", /* pastel purple */
    "\x1b[38;5;180m", /* pastel blue */
    "\x1b[38;5;216m", /* pastel orange */
    "\x1b[38;5;157m"  /* pastel green */
};

static const char *RESET = "\x1b[0m";
static const int NCOLS = sizeof(cols)/sizeof(cols[0]);

/* Simple spinner frames */
static const char *frames[] = { "⠁","⠂","⠄","⡀","⢀","⠠","⠐","⠈" };
static const int NFRAMES = sizeof(frames)/sizeof(frames[0]);

/* Draw a fancy title using colors */
void draw_title(int phase) 
{
    const char *name = "NachtsternBuild";
    int len = (int)strlen(name);
    printf("\r");
    for (int i = 0; i < len; ++i) 
    {
        const char *c = cols[(i + phase) % NCOLS];
        putchar(0); // no-op to keep char alignment in some terminals 
        printf("%s%c%s", c, name[i], RESET);
    }
}

/* A small "orbiter" line with spinner and progress-like dots */
void orbiter(int step) 
{
    int pos = step % 40;
    for (int i = 0; i < 40; ++i) 
    {
        if (i == pos) 
        {
            printf("%s●%s", cols[(step/3) % NCOLS], RESET);
        }
        
        else 
        {
            if (i % 5 == 0) 
            {
                printf("·");  // use UTF-8 dot
            } 
            
            else 
            {
                putchar(' ');
            }
        }
    }
}

/* A fake "updater" that alternates success/fail cheekily */
void fake_update_sequence(void) 
{
    const char *msgs[] = {
        "Scanning modules...",
        "Patching fastboot-assistant...",
        "Repacking Treble image...",
        "Optimizing AtlantisOS...",
        "Tidying Experimente..."
    };
    int n = sizeof(msgs)/sizeof(msgs[0]);
    for (int i = 0; i < n; ++i) 
    {
        printf("\n  %s ", msgs[i]);
        fflush(stdout);
        for (int t = 0; t < 10; ++t) 
        {
            printf("%s%s%s", cols[(i+t) % NCOLS], frames[(i+t) % NFRAMES], RESET);
            fflush(stdout);
            usleep(SLEEP_US);
            printf("\b \b");
        }
        /* playful outcome */
        if ((i % 2) == 0) 
        {
            printf("%s[OK]%s", cols[(i+2) % NCOLS], RESET);
        } 
        
        else 
        {
            printf("%s[skipped — user debug pending]%s", cols[(i+4) % NCOLS], RESET);
        }
    }
    printf("\n\n");
}

int main(void) 
{
    /* hide cursor */
    printf("\x1b[?25l");
    for (int phase = 0; phase < 12; ++phase) 
    {
        /* print title */
        printf("\r");
        const char *header = "  •  ";
        printf("%s", header);
        for (int i = 0; i < (int)strlen("NachtsternBuild"); ++i) 
        {
            printf("%s%c%s", cols[(i + phase) % NCOLS], "NachtsternBuild"[i], RESET);
        }
        printf("  ");
        /* spinner */
        printf("%s%s%s", cols[phase % NCOLS], frames[phase % NFRAMES], RESET);
        fflush(stdout);
        usleep(SLEEP_US * 6);
    }

    /* orbiter animation */
    for (int i = 0; i < 80; ++i) 
    {
        printf("\r ");
        orbiter(i);
        fflush(stdout);
        usleep(SLEEP_US);
    }

    /* fake update */
    printf("\n\n");
    fake_update_sequence();

    /* final playful tagline */
    printf("%s✨ Done — build something weird and useful ✨%s\n", cols[2], RESET);

    /* restore cursor */
    printf("\x1b[?25h");
    return 0;
}

📂 Languages & Tools

C C Bash Bash Python Python3 Linux Linux Ubuntu Ubuntu Android Android

📊 GitHub Insights

Pinned Loading

  1. fastboot-assistant fastboot-assistant Public

    Project to facilitate the installation of custom ROMs and GSIs on Android devices. Created with GTK and C.

    C 18 2

  2. Experimente Experimente Public

    Hier finden sich einige Experimente mit allen möglichen Sachen.

    Shell

  3. Treble-Updater Treble-Updater Public archive

    A Magisk module that has the task of flashing system images into the inactive slot on a/b partitioned devices. To set a new active slot and reboot the device.

    Java