<!DOCTYPE HTML>
<html>
<head>
-<link rel="stylesheet" href="css/materialize.min.css">
- <style>
- #splash-screen {
- width: 100%;
- height: 100%;
- position: absolute;
- z-index: 999;
- overflow: hidden;
- background:-webkit-radial-gradient(center, ellipse cover,
- #9e9e9e 0%, #757575 100%);
- /* top: 0; */
- /* transition: top 700ms cubic-bezier(0.895, 0.03, 0.685, 0.22), */
- /* opacity: 1;
- transition: opacity 1000ms cubic-bezier(0.895, 0.03, 0.685, 0.22); */
- }
-
- #splashscreen * {
- overflow: hidden;
- }
- .clock {
- display: none;
- }
- #splash-screen-content {
- position: absolute;
- width: 100%;
- height: 100%;
- top: 0;
- }
- .SplashScreen-screen-img {
-
-/* height: 100%;
- width: 100%; */
- /* border: 8px solid red; */
- }
- .filter{
- filter: blur(4px) contrast(110%) brightness(80%);
- }
- .vignette {
- width: 100%;
- height: 100%;
- position: absolute;
- top: 0;
- box-shadow: inset 0 0 100px black;
- z-index: 2;
- display: none;
- }
- /* CSS animations for smoother response, delays have to be hardcoded */
- .move-up {
- animation-name: move-up;
- animation-duration: 500ms;
- }
- @keyframes move-up {
- from {top: 0;}
- to {top: -100%}
- }
-
- .move-up {
- animation-name: move-up;
- /* animation-timing-function: ease-in-out; */
- animation-duration: 700ms; /* has to be hardcoded */
- }
- @keyframes move-up {
- from {top: 0;}
- to {top: -100%}
- }
- .move-down {
- animation-name: move-down;
- /* animation-timing-function: ease-in; */
- animation-duration: 700ms;
- }
- @keyframes move-down {
- from {top: -100%;}
- to {top: 0}
- }
-
- body {
- display: flex;
- min-height: 100vh;
- flex-direction: column;
- background-color: #37474f;
- background:-webkit-radial-gradient(center, ellipse cover,
- rgba(55,71,79,1) 0%, rgba(38,50,56,1) 100%);
- color: white;
- overflow: hidden;
- }
- main {
- flex: 1 0 auto;
- }
- input {
- color: white;
- }
- .caret {
- fill: grey !important;
- }
- .power-button {
- fill: white;
- }
- .power-button:hover {
- fill: #01579b;
- }
- .power-button:active {
- fill: #4dd0e1;
- }
-
- div#console {
- z-index: 9999;
- position: absolute;
- top: 10px;
- }
- div#console .terminal {
- overflow-y: scroll;
- background-color: rgba(0,0,0,0.8);
- font-size: 14pt;
- color: white;
- height: 30vh;
- width: 85vw;
- resize: both;
- }
- div#console .terminal text {
- display: block;
- padding: 0;
- margin: 0;
- }
-
- </style>
+ <meta charset="utf-8">
+ <link rel="stylesheet" href="css/materialize.min.css">
+ <link rel="stylesheet" href="css/splashscreen.css">
+ <link rel="stylesheet" href="css/theme.css">
</head>
+<!-- Load dependencies -->
<script src="js/jquery-3.4.1.min.js"></script>
<script src="js/moment-with-locales.js"></script>
<script src="js/jquery-ui.min.js"></script>
<script src="js/materialize.min.js"></script>
+
+
+<!-- Sample lightdm object (for browser use only) -->
<!-- <script src="js/lightdm-sample.js"></script> -->
-<!-- Load Plugins -->
+
+<!-- Load Utility functions -->
+<script src="js/_utils.js"></script>
+
+<!-- Load Plugins first -->
<script src="js/splashscreen.js"></script>
-<!-- Load main theme -->
+<!-- <script src="js/another_plugin.js"></script> -->
+
+<!-- Load Login Manager, depends on plugins -->
+<script src="js/LoginManager.js"></script>
+
+<!-- Load example theme -->
<script src="js/theme.js"></script>
<body>
- <div id="splash-screen">
- <!--TODO autogenerate this content -->
- <img class="splash-screen-img" src="images/splash-screen.jpg">
- <img id="backblur" class="filter" src="images/splash-screen.jpg">
- <div class="vignette"></div>
- <div id="splash-screen-content">
- <!--Content will be generated here -->
- </div>
- </div>
-
<header></header>
- <main>
- <div class="container">
- <div class="row" style="margin-top: 35vh;"></div>
- <div class="row ">
- <!-- User Select -->
- <div class="row">
- <div class="input-field col s4 offset-s4">
- <select id="selectUser"></select>
- <label>User</label>
- </div>
- </div>
-
- <!-- Password field -->
- <div class="row">
- <div class="input-field col s4 offset-s4">
- <input id="inputPassword" type="password">
- <label for="inputPassword">Password</label>
- </div>
- </div>
- <!-- End Password field -->
-
+ <main>
+ <div class="container">
+ <div class="row" style="margin-top: 10vh;"></div>
+
+ <div class="row">
+ <div style="text-align: center" class="col s12">
+ <!-- <img class="logo-ubuntu" src="images/ubuntu_logo.svg"> -->
+ <!-- <img class="logo-arch" src="images/arch_logo.svg"> -->
+ <img class="logo-alter" src="images/alter_logo.svg">
+ </div>
+ </div>
+ <div class="row" style="margin-top: 5vh;"></div>
+ <div class="row">
+ <div class="col s12" style="text-align: center">
+ <h1 class="welcome-text"><script>document.write(text[1])</script></h1>
+ </div>
</div>
- </div>
-
- </main>
+ <!-- User & Password Selections -->
+ <div class="row ">
+ <!-- User Select -->
+ <div class="row">
+ <div class="input-field col s4 offset-s4">
+ <select id="selectUser"></select>
+ <label><script>document.write(text[3])</script></label>
+ </div>
+ </div>
+ <!-- Password field -->
+ <div class="row">
+ <div class="input-field col s4 offset-s4">
+ <input id="inputPassword" type="password">
+ <label for="inputPassword"><script>document.write(text[4])</script></label>
+ </div>
+ </div>
+ <!-- End Password field -->
+ </div>
+ <!-- End User & Password Selections -->
- <footer class="">
+ </div>
+ </main>
+<!-- Bottom footer contains Session selection & power buttons -->
+ <footer >
<div class="row">
-
<!-- Window Manager Select -->
<div class="input-field col s2 offset-s1">
<select id="selectSession"></select>
- <label>Select Session</label>
+
+ <label><script>document.write(text[2])</script></label>
</div>
<!-- End Window Manager Select -->
- <div class="col right">
- <div class="row">
- <!-- Hibernate Button -->
- <div id="buttonHibernate" class="col S4">
- <svg viewBox="0 0 297.613 297.613" width="40px" height="40px" class="power-button">
- <g>
- <path d="M148.807,50.869c-4.971,0-9,4.029-9,9v46.438c0,4.971,4.029,9,9,9s9-4.029,9-9V59.869
- C157.807,54.898,153.777,50.869,148.807,50.869z"/>
- <path d="M178.859,127.754c2.303,0,4.606-0.879,6.364-2.636L212.17,98.17c3.515-3.515,3.515-9.213,0-12.728
- c-3.515-3.515-9.213-3.515-12.728,0l-26.948,26.948c-3.515,3.515-3.515,9.213,0,12.728
- C174.252,126.875,176.556,127.754,178.859,127.754z"/>
- <path d="M237.744,139.807h-46.438c-4.971,0-9,4.029-9,9s4.029,9,9,9h46.438c4.971,0,9-4.029,9-9S242.715,139.807,237.744,139.807z"
- />
- <path d="M185.22,172.493c-3.515-3.515-9.213-3.515-12.728,0c-3.515,3.515-3.515,9.213,0,12.728l26.95,26.95
- c1.757,1.757,4.061,2.636,6.364,2.636s4.606-0.879,6.364-2.636c3.515-3.515,3.515-9.213,0-12.728L185.22,172.493z"/>
- <path d="M148.807,182.307c-4.971,0-9,4.029-9,9v46.438c0,4.971,4.029,9,9,9s9-4.029,9-9v-46.438
- C157.807,186.336,153.777,182.307,148.807,182.307z"/>
- <path d="M112.391,172.495l-26.948,26.948c-3.515,3.515-3.515,9.213,0,12.728c1.757,1.757,4.061,2.636,6.364,2.636
- s4.606-0.879,6.364-2.636l26.948-26.948c3.515-3.515,3.515-9.213,0-12.728C121.604,168.98,115.905,168.98,112.391,172.495z"/>
- <path d="M115.307,148.807c0-4.971-4.029-9-9-9H59.869c-4.971,0-9,4.029-9,9s4.029,9,9,9h46.438
- C111.277,157.807,115.307,153.777,115.307,148.807z"/>
- <path d="M98.17,85.443c-3.515-3.515-9.213-3.515-12.728,0c-3.515,3.515-3.515,9.213,0,12.728l26.95,26.95
- c1.757,1.757,4.061,2.636,6.364,2.636s4.606-0.879,6.364-2.636c3.515-3.515,3.515-9.213,0-12.728L98.17,85.443z"/>
- <path d="M148.807,0C66.754,0,0,66.754,0,148.807s66.754,148.807,148.807,148.807s148.807-66.754,148.807-148.807
- S230.859,0,148.807,0z M148.807,279.613C76.68,279.613,18,220.934,18,148.807S76.68,18,148.807,18s130.807,58.68,130.807,130.807
- S220.934,279.613,148.807,279.613z"/>
- </g>
- </svg>
- <!-- <img id="buttonHibernate" class="right power-button" src="images/hibernate.svg" width="40px" height="40px"> -->
- </div>
- <!-- End Hibernate Button -->
- <!-- Restart Button -->
- <div id="buttonRestart" class="col s4">
- <svg class="power-button" height="40px" width="40px" viewBox="0 0 1000 1000" >
- <g>
- <path d="M506,984.1c-98.1,0-192.5-29.2-273.1-84.4C154.1,845.9,93.6,770.9,
- 57.6,682.9c-9.9-24.3-17.9-49.6-23.7-75.2c-3.2-13.9,5.5-27.7,
- 19.4-30.9c13.9-3.2,27.7,5.5,30.9,19.4c5.2,22.8,12.3,45.4,21.2,67.1C137.5,
- 742,191.6,809,262,857.2c72,49.3,156.4,75.3,244,75.3c238.5,0,432.5-194,
- 432.5-432.5c0-238.5-194-432.5-432.5-432.5c-87.6,0-172,26-244,75.3C191.7,191,
- 137.5,257.9,105.4,336.5C100,349.7,85,356,71.8,
- 350.7c-13.2-5.4-19.5-20.4-14.1-33.6c35.9-88,96.5-162.9,
- 175.2-216.8c80.6-55.2,175-84.3,273.1-84.3c129.3,0,250.8,50.4,
- 342.3,141.8C939.6,249.1,990,370.7,990,500c0,129.3-50.4,250.9-141.8,
- 342.3C756.8,933.7,635.2,984.1,506,984.1z"/>
- <path d="M82.3,352.6c-10.5,0-20.3-6.5-24.1-16.8L11.6,211.6c-5-13.3,1.8-28.2,
- 15.1-33.2c13.3-5,28.2,1.8,33.2,15.1l38.5,102.8l106.2-26.1c13.8-3.4,27.8,
- 5.1,31.2,18.9c3.4,13.8-5.1,27.8-18.9,31.2L88.4,351.8C86.4,352.3,84.3,
- 352.6,82.3,352.6z"/>
- </g>
- </svg>
+ <!-- Power button column -->
+ <div class="col right" style="margin-right: 15px;">
+ <div class="row">
+ <!-- Hibernate Button -->
+ <div id="buttonHibernate" class="col S4">
+ <svg viewBox="0 0 44.693 44.693" width="24px" height="24px" class="power-button">
+ <path d="M22.347,44.693c-3.017,0-5.942-0.591-8.698-1.757c-2.662-1.126-5.051-2.737-7.104-4.788
+ c-2.052-2.053-3.662-4.441-4.787-7.104C0.592,28.289,0,25.362,0,22.347c0-3.017,0.592-5.942,1.758-8.699
+ c1.125-2.661,2.735-5.051,4.787-7.103c2.053-2.052,4.441-3.662,7.104-4.788C16.404,0.592,19.33,0,22.347,0s5.942,0.592,8.698,1.757
+ c2.662,1.126,5.051,2.736,7.104,4.788c2.051,2.052,3.662,4.441,4.787,7.103c1.166,2.757,1.758,5.683,1.758,8.699
+ c0,3.016-0.592,5.942-1.758,8.698c-1.125,2.662-2.736,5.051-4.787,7.104c-2.053,2.051-4.441,3.662-7.104,4.788
+ C28.289,44.103,25.363,44.693,22.347,44.693z M22.347,3.534c-10.373,0-18.812,8.439-18.812,18.813s8.438,18.812,18.812,18.812
+ s18.812-8.438,18.812-18.812S32.72,3.534,22.347,3.534z"/>
+ <path d="M33.072,29.529c-6.354,1.064-12.367-3.223-13.432-9.575c-0.725-4.32,1.027-8.482,4.219-11.04
+ c-0.852-0.025-1.719,0.031-2.592,0.177c-7.164,1.2-11.998,7.981-10.797,15.146s7.982,11.998,15.146,10.797
+ c3.794-0.635,6.936-2.838,8.871-5.832C34.029,29.338,33.557,29.447,33.072,29.529z"/>
+ </svg>
+ </div>
+ <!-- End Hibernate Button -->
- <!-- <img id="buttonRestart" class="power-button" src="images/restart.svg" width="40px" height="40px"> -->
- </div>
- <!-- End Restart Button -->
- <!-- Shutdown Button -->
- <div id="buttonShutdown" class="col s4">
+ <!-- Restart Button -->
+ <div id="buttonRestart" class="col s4">
+ <svg class="power-button" height="24px" width="24px" viewBox="0 0 50.076 44.694" >
+ <g>
+ <path d="M50.076,26.094l-7.258-8.435l-7.544,8.179l5.542,0.096c-1.689,8.741-9.475,15.226-18.471,15.226
+ c-10.373,0-18.811-8.438-18.811-18.812S11.973,3.535,22.346,3.535c6.002,0,11.684,2.896,15.22,7.753l1.443-3.829
+ c-1.79-1.998-3.937-3.678-6.31-4.92C29.529,0.879,25.949,0,22.346,0c-3.016,0-5.941,0.592-8.698,1.758
+ c-2.661,1.125-5.051,2.736-7.103,4.788c-2.051,2.052-3.662,4.441-4.788,7.103C0.591,16.404,0,19.331,0,22.348
+ c0,3.016,0.591,5.942,1.757,8.698c1.126,2.661,2.737,5.051,4.788,7.103c2.052,2.052,4.441,3.663,7.103,4.788
+ c2.757,1.166,5.683,1.758,8.698,1.758c5.41,0,10.631-1.959,14.699-5.515c3.914-3.421,6.513-8.088,7.352-13.185L50.076,26.094z"/>
+ </g>
+ </svg>
+ </div>
+ <!-- End Restart Button -->
- <svg class="power-button" height="40px" width="40px" viewBox="0 0 56 56">
+ <!-- Shutdown Button -->
+ <div id="buttonShutdown" class="col s4">
+ <svg class="power-button" height="24px" width="24px" viewBox="0 0 44.771 46.559">
<g>
- <path d="M35.31,5.042c-0.532-0.155-1.085,0.15-1.24,0.68s0.149,
- 1.085,0.68,1.24C44.906,9.932,52,19.405,52,30c0,13.233-10.767,
- 24-24,24S4,43.233,4,30C4,19.392,11.105,9.915,21.279,
- 6.953c0.53-0.154,0.835-0.709,0.681-1.239
- c-0.153-0.53-0.708-0.839-1.239-0.681C9.698,8.241,2,18.508,2,
- 30c0,14.337,
- 11.663,26,26,26s26-11.663,26-26
- C54,18.522,46.314,8.26,35.31,5.042z"/>
- <path d="M28,27c0.553,0,1-0.447,1-1V1c0-0.553-0.447-1-1-1s-1,
- 0.447-1,1v25C27,
- 26.553,27.447,27,28,27z"/>
+ <path d="M22.386,46.559c-3.021,0-5.953-0.592-8.714-1.76c-2.666-1.127-5.06-2.741-7.115-4.797
+ c-2.055-2.055-3.669-4.449-4.797-7.115C0.592,30.127,0,27.195,0,24.174c0-3.619,0.885-7.215,2.559-10.399
+ c1.619-3.081,3.973-5.781,6.807-7.812l2.059,2.873c-4.939,3.538-7.889,9.271-7.889,15.338c0,10.395,8.457,18.851,18.851,18.851
+ s18.851-8.456,18.851-18.851c0-6.066-2.949-11.8-7.889-15.338l2.059-2.873c2.834,2.03,5.188,4.73,6.807,7.812
+ c1.674,3.185,2.559,6.78,2.559,10.399c0,3.021-0.592,5.953-1.76,8.713c-1.128,2.666-2.742,5.061-4.797,7.115
+ c-2.056,2.056-4.449,3.67-7.115,4.797C28.339,45.967,25.407,46.559,22.386,46.559z"/>
+ <rect x="20.93" width="3" height="22"/>
</g>
- </svg>
- <!-- <img id="buttonShutdown" class="power-button" src="images/shutdown.svg" width="40px" height="40px"> -->
- </div>
- <!-- End Shutdown Button -->
+ </svg>
</div>
- </div>
+ <!-- End Shutdown Button -->
+ </div>
+ </div>
+ <!-- End Power button column -->
</div>
</footer>
-<script>
-
-// hide enverything until fully loaded
-$("body").append(`<div id="block" style="position: absolute;background-color: black;
-width: 100%; height: 100vh; z-index:9999;"></div>`);
-
-// pass true to show logger output
-const log = new logger(false);
-
-// create singleton
-const greeter = new LoginManager();
-
-// called after greeter and lightdm are initialized
-$(greeter).on("ready", function(e) {
-
- let $user = $("#selectUser");
- let $session = $("#selectSession");
- let $password = $("#inputPassword");
-
- greeter.fillUserSelect($user);
- greeter.fillSessionSelect($session);
-
-
- /* Bind shutdown, restart hibernate and suspend to the
- appropriate buttons */
- $("#buttonPoweroff").click(function() {
- greeter.shutdown();
- });
- $("#buttonRestart").click(function() {
- greeter.restart();
- });
- $("#hibernate").click(function() {
- greeter.hibernate();
- });
-
-
- $password.keypress((e) => {
- // user has typed, remove placeholder and invalid class
- $password.prop("placeholder", "").removeClass("invalid");
-
- /* attempt authentication, 'grant' event will be emitted on sucecss
- and 'deny' will be emitted on failure */
- if (e.keyCode == 13) {
- let username = $user.children("option:selected").val();
- let pass = $password.val();
- log.debug("attempt authenticate with: " + username + " " + pass);
- greeter.auth(username, pass);
- }
-
- });
-
-
- // when the user is authenticated do transitions and login
- $(greeter).on("grant", () => {
- let session_key = $session.children("option:selected").val();
- greeter.login(session_key);
- })
- .on("deny", () => {
- // inform the user that the credentials are invalid
- $password.removeClass("valid").addClass("invalid");
- $password.val("").prop("placeholder", "Incorrect Password");
- });
-
- $(greeter.plugins.SplashScreen).on("active", function() {
- $(".active-appear").fadeIn();
- }).on("inactive", function() {
- $(".active-appear").fadeOut();
- });
-
- setTimeout(() => $("#block").remove(), dur=1);
-});
-
-var smooth = function($el, offset, dur=1, cb) {
- let element = $el[0];
- let initial = parseInt($el.css("top"));
- let step;
- let i = initial;
- let res = offset*1000/33/dur;
- let finish = initial + offset;
- let start = null;
- console.log(res);
- console.log("going to: ", finish)
-
- prev = i;
- if (offset > 0) {
- step = function(timestamp) {
- if (!start) start = timestamp;
-
- if (Math.abs(i - prev) >= 1)
- element.style.top = i + "px";
- prev = i
- i += res;
- if (i < finish) {
- window.requestAnimationFrame(step);
-
- } else {
- element.style.top = finish + "px";
- if (typeof cb == "function") cb();
- }
-
- }
- } else if (offset < 0) {
-
- step = function(timestamp) {
- if (!start) start = timestamp;
- var progress = timestamp - start;
-
- if (Math.abs(i - prev) >= 1){
- element.style.top = i + "px";
- // console.log("setting")
- }
-
- prev = i
- i += res;
-
- if (i > finish) {
- setTimeout(window.requestAnimationFrame(step),1)
-
- } else {
- element.style.top = finish + "px";
- if (typeof cb == "function") cb();
- }
- }
- }
- window.requestAnimationFrame(step);
-}
-
-
-
-
-
-
-
-</script>
-<script>
- /*
- * Define this fuction so lightdm doesnt crash, gets resassigned
- * in login manager
- */
- window.authentication_complete = function() {
- };
+ <script>
+ /* Use custom logging for debugging without a browser.
+ Pass true to show logger output on screen */
+ const log = new Logger(false);
-</script>
+ /* Define this fuction so lightdm doesn't crash, gets redefined
+ in login manager. */
+ window.authentication_complete = function() {};
+ </script>
</body>
</html>