release blend 2.0.0

This commit is contained in:
Rudra Saraswat 2023-02-11 17:33:29 +05:30
parent 4e4bdd33d2
commit 37d4a6155e
36 changed files with 2557 additions and 458 deletions

View file

@ -0,0 +1,49 @@
<div class="container-fluid d-flex justify-content-center">
<div class="col-12 col-lg-10 col-xl-8 mx-auto">
<strong class="mb-0">Containers</strong>
<p>You can install any app from any of the supported distributions (Arch, Fedora, and Ubuntu). Any apps you install in them will appear as regular applications on your system, and so will any binaries. In case a binary is common between two containers, the binary from the most recently created container will be exported. You can override this by rearranging (dragging) the containers below to select the priority that should be assigned to each container.</p>
<div class="list-group mb-5 shadow" id="container-list">
<div class="list-group-item">
<div class="row align-items-center">
<div class="col">
<strong class="mb-0">Loading list of containers.</strong>
<p class="text-muted mb-0">You'll find a list of all the containers here.</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container-fluid d-flex justify-content-center">
<div class="col-12 col-lg-10 col-xl-8 mx-auto">
<strong class="mb-0">Create new container</strong>
<form onsubmit="create_container(); return false">
<div class="form-group row">
<label for="inputContainerName" class="col-sm-3 col-form-label">Container name</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="inputContainerName" placeholder="Container name" required>
</div>
</div>
<div class="form-group row">
<label for="inputContainerDistro" class="col-sm-3 col-form-label">Distribution</label>
<div class="col-sm-4">
<select class="form-control" id="inputContainerDistro">
<option selected>Arch</option>
<option>Fedora Rawhide</option>
<option>Ubuntu 22.04</option>
<option>Ubuntu 22.10</option>
</select>
</div>
</div>
<br>
<button type="submit" id="publish-button" class="btn btn-primary">Create container</button>
</form>
</div>
</div>
<!-- Import generic page JS. -->
<script src="internal/js/generic_page.js"></script>
<!-- Import containers JS. -->
<script src="internal/js/containers.js"></script>

View file

@ -0,0 +1,64 @@
<div class="container-fluid d-flex justify-content-center">
<div class="col-12 col-lg-10 col-xl-8 mx-auto">
<strong class="mb-0">System Settings</strong>
<br><br>
<div class="list-group mb-5 shadow">
<div class="list-group-item">
<div class="row align-items-center">
<div class="col">
<strong class="mb-0">Disable automatic state creation</strong>
<p class="text-muted mb-0">blendOS creates copies of apps and config every 6 hours (and keeps the
last two).</p>
</div>
<div class="col-auto">
<div class="form-check form-switch align-middle">
<input class="form-check-input align-middle" type="checkbox" role="switch"
id="automatic-state-toggle">
</div>
</div>
</div>
</div>
<div class="list-group-item">
<div class="row align-items-center">
<div class="col">
<strong class="mb-0">Save current state</strong>
<p class="text-muted mb-0">Create a copy of the current system state, including apps and config.</p>
</div>
<div class="col-auto">
<div class="form-check form-switch align-middle">
<button type="button" id="save-state-btn" onclick="save_state()" class="btn btn-success">Save state</button>
</div>
</div>
</div>
</div>
<div class="list-group-item">
<div class="row align-items-center">
<div class="col">
<strong class="mb-0">Rollback</strong>
<p class="text-muted mb-0">Rollback to the most recent state on the next boot. (note: this is irreversible)
</p>
</div>
<div class="col-auto">
<div class="form-check form-switch align-middle">
<button type="button" class="btn btn-danger" onclick="rollback()" id="rollback-btn">Rollback</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container-fluid d-flex justify-content-center">
<div class="col-12 col-lg-10 col-xl-8 mx-auto">
<p>
You can install packages just like you would on a regular Arch system, or install them in containers.
</p>
</div>
</div>
<!-- Import generic page JS. -->
<script src="internal/js/generic_page.js"></script>
<!-- Import overlay JS. -->
<script src="internal/js/overlay.js"></script>

View file

@ -0,0 +1,110 @@
<html>
<head>
<link rel="stylesheet" href="../../node_modules/xterm/css/xterm.css" />
<style>
html,
body,
#term {
margin: 0;
height: 100%;
width: 100%;
background-color: #242430;
}
.xterm {
padding: 30px !important;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
*::-webkit-scrollbar-track {
background-color: rgb(36, 36, 48);
border-radius: 10px;
}
*::-webkit-scrollbar {
width: 5px;
background-color: rgb(36, 36, 48);
}
*::-webkit-scrollbar-thumb {
background-color: rgb(61, 61, 74);
border-radius: 10px;
}
</style>
</head>
<body style="height: 100%;">
<div id="term" style="height: 100%; width: 100%;"></div>
<script>
var os = require("os");
var pty = require("node-pty");
var xterm = require("xterm");
var ipc = require("electron").ipcRenderer;
var { FitAddon } = require("xterm-addon-fit");
const fit = new FitAddon();
var once;
function create_term() {
ipc.removeAllListeners('terminal.reset')
ipc.removeAllListeners('terminal.keystroke')
ipc.removeAllListeners('terminal.incomingData')
ipc.removeAllListeners('title')
ipc.on("terminal.reset", (event, data) => {
document.getElementById('term').innerHTML = ''
create_term()
});
var term = new xterm.Terminal({
fontSize: 14,
experimentalCharAtlas: 'dynamic',
theme: {
background: '#242430'
}
});
once = true
term.loadAddon(fit)
var term_e = document.getElementById('term');
term.open(term_e);
fit.fit()
ipc.on("terminal.incomingData", (event, data) => {
term.write(data);
});
ipc.on("title", (event, title) => {
document.title = title;
});
window.addEventListener('beforeunload', (event) => {
term.dispose()
})
window.onresize = function () {
fit.fit();
term.resize(term.cols, term.rows)
ipc.send("terminal.resize", [term.cols, term.rows])
};
term.onData(e => {
ipc.send("terminal.keystroke", e);
});
}
ipc.on("terminal.reset", (event) => create_term)
create_term()
</script>
</body>
</html>