summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorRaindropsSys <contact@minteck.org>2023-06-18 10:21:55 +0200
committerRaindropsSys <contact@minteck.org>2023-06-18 10:21:55 +0200
commit391ed3d1afa0334390df24af3f1ab13cf7066a84 (patch)
treeb1e839a44b3276391bd0dca5c2b9438d17824fa4 /core
parentb866a05ca2e3be0e6d379e68ec8a0ba6064a5248 (diff)
downloadkirinos-391ed3d1afa0334390df24af3f1ab13cf7066a84.tar.gz
kirinos-391ed3d1afa0334390df24af3f1ab13cf7066a84.tar.bz2
kirinos-391ed3d1afa0334390df24af3f1ab13cf7066a84.zip
Updated 4 files, added 5 files and deleted core/index.html (automated)
Diffstat (limited to 'core')
-rw-r--r--core/index.html18
-rw-r--r--core/startup/index.html128
-rw-r--r--core/startup/loader.svg52
3 files changed, 180 insertions, 18 deletions
diff --git a/core/index.html b/core/index.html
deleted file mode 100644
index 4751dc6..0000000
--- a/core/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="UTF-8">
- <title>mangoos</title>
- <style>
- html, body {
- background-color: black;
- color: white;
- }
- </style>
-</head>
-<body>
- <h1>Vapor is cute</h1>
- <p>UwU<br>(Lyra is too)</p>
- <p>Cloudburst saw this eep (I broke everything because of her, so not cute)</p>
-</body>
-</html> \ No newline at end of file
diff --git a/core/startup/index.html b/core/startup/index.html
new file mode 100644
index 0000000..edd1c63
--- /dev/null
+++ b/core/startup/index.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title>mangoos</title>
+ <style>
+ * {
+ font-family: "Inter", sans-serif;
+ pointer-events: none;
+ user-select: none;
+ user-focus: none;
+ cursor: none;
+ }
+
+ html, body {
+ background-color: cornflowerblue;
+ color: black;
+ margin: 0;
+ }
+ </style>
+</head>
+<body>
+ <div style="display: flex; align-items: center; justify-content: center; position: fixed; inset: 0;">
+ <div style="background: rgba(255, 255, 255, .75); backdrop-filter: blur(10px); padding: 50px; width: 512px; height: 256px; border-radius: 10px;">
+ <div style="height: calc(100% - 48px + 50px); display: flex; align-items: center; justify-content: center;">
+ <div>
+ <img src="../../logo.svg" style="width: 96px; display: block; margin-left: auto; margin-right: auto;">
+ <h2 style="text-align: center;">Welcome to mangoOS</h2>
+ </div>
+ </div>
+ <div style="background: rgba(0, 0, 0, .1); height: 48px; margin: 0 -50px -50px;border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; border-top: 1px solid rgba(0, 0, 0, .1);">
+ <div style="display: flex; align-items: center; height: 100%; padding: 0 10px;">
+ <img src="loader.svg" style="width: 42px; opacity: .5;">
+ <span id="loading-message">Hold down Shift to disable loading system extensions</span>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <script>
+ const steps = [
+ {
+ title: "Loading kernel extensions...",
+ command: "systemctl start kmod.service"
+ },
+ {
+ title: "Applying kernel variables...",
+ command: "systemctl start systemd-sysctl.service"
+ },
+ {
+ title: "Starting scheduled jobs manager...",
+ command: "systemctl start cron.service"
+ },
+ {
+ title: "Starting desktop manager...",
+ command: "systemctl start dbus.service"
+ },
+ {
+ title: "Starting OpenSSH server...",
+ command: "systemctl start ssh.service"
+ },
+ {
+ title: "Starting NTP client...",
+ command: "systemctl start systemd-timesyncd.service"
+ },
+ {
+ title: "Starting device manager...",
+ command: "systemctl start systemd-udevd.service"
+ },
+ {
+ title: "Initialising network core...",
+ command: "systemctl start networking.service"
+ },
+ {
+ title: "Initialising network frontend...",
+ command: "systemctl start NetworkManager.service"
+ },
+ {
+ title: "Initialising WLAN manager...",
+ command: "systemctl start wpa_supplicant.service"
+ },
+ {
+ title: "Starting UNIX policy manager...",
+ command: "systemctl start polkit.service"
+ }
+ ];
+
+ const cp = require('child_process');
+
+ function sleep(ms) {
+ return new Promise((res) => {
+ setTimeout(res, ms);
+ });
+ }
+
+ function exec(cmd) {
+ return new Promise((res, rej) => {
+ let p = cp.exec(cmd);
+
+ p.on('close', (code, signal) => {
+ if (!code || code === 0) {
+ res(code, signal);
+ } else {
+ rej(code, signal);
+ }
+ })
+ });
+ }
+
+ setTimeout(async () => {
+ for (let step of steps) {
+ document.getElementById("loading-message").innerText = step.title;
+ await sleep(100);
+
+ try {
+ await exec(step.command);
+ await sleep(100);
+ } catch (e) {
+ console.error(e);
+ }
+ }
+
+ document.getElementById("loading-message").innerText = "Initialising login screen...";
+ location.href = "../login/index.html";
+ }, 3000);
+ </script>
+</body>
+</html> \ No newline at end of file
diff --git a/core/startup/loader.svg b/core/startup/loader.svg
new file mode 100644
index 0000000..8d4e7ee
--- /dev/null
+++ b/core/startup/loader.svg
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin: auto; background: none; display: block; shape-rendering: auto;" width="200px" height="200px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
+<g transform="rotate(0 50 50)">
+ <rect x="48" y="24" rx="0" ry="0" width="4" height="12" fill="#000000">
+ <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.9166666666666666s" repeatCount="indefinite"></animate>
+ </rect>
+</g><g transform="rotate(30 50 50)">
+ <rect x="48" y="24" rx="0" ry="0" width="4" height="12" fill="#000000">
+ <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.8333333333333334s" repeatCount="indefinite"></animate>
+ </rect>
+</g><g transform="rotate(60 50 50)">
+ <rect x="48" y="24" rx="0" ry="0" width="4" height="12" fill="#000000">
+ <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.75s" repeatCount="indefinite"></animate>
+ </rect>
+</g><g transform="rotate(90 50 50)">
+ <rect x="48" y="24" rx="0" ry="0" width="4" height="12" fill="#000000">
+ <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.6666666666666666s" repeatCount="indefinite"></animate>
+ </rect>
+</g><g transform="rotate(120 50 50)">
+ <rect x="48" y="24" rx="0" ry="0" width="4" height="12" fill="#000000">
+ <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.5833333333333334s" repeatCount="indefinite"></animate>
+ </rect>
+</g><g transform="rotate(150 50 50)">
+ <rect x="48" y="24" rx="0" ry="0" width="4" height="12" fill="#000000">
+ <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.5s" repeatCount="indefinite"></animate>
+ </rect>
+</g><g transform="rotate(180 50 50)">
+ <rect x="48" y="24" rx="0" ry="0" width="4" height="12" fill="#000000">
+ <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.4166666666666667s" repeatCount="indefinite"></animate>
+ </rect>
+</g><g transform="rotate(210 50 50)">
+ <rect x="48" y="24" rx="0" ry="0" width="4" height="12" fill="#000000">
+ <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.3333333333333333s" repeatCount="indefinite"></animate>
+ </rect>
+</g><g transform="rotate(240 50 50)">
+ <rect x="48" y="24" rx="0" ry="0" width="4" height="12" fill="#000000">
+ <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.25s" repeatCount="indefinite"></animate>
+ </rect>
+</g><g transform="rotate(270 50 50)">
+ <rect x="48" y="24" rx="0" ry="0" width="4" height="12" fill="#000000">
+ <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.16666666666666666s" repeatCount="indefinite"></animate>
+ </rect>
+</g><g transform="rotate(300 50 50)">
+ <rect x="48" y="24" rx="0" ry="0" width="4" height="12" fill="#000000">
+ <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.08333333333333333s" repeatCount="indefinite"></animate>
+ </rect>
+</g><g transform="rotate(330 50 50)">
+ <rect x="48" y="24" rx="0" ry="0" width="4" height="12" fill="#000000">
+ <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="0s" repeatCount="indefinite"></animate>
+ </rect>
+</g>
+<!-- [ldio] generated by https://loading.io/ --></svg> \ No newline at end of file