Files
MontaukOS/montaukos.org/index.html
T

311 lines
9.4 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="MontaukOS">
<title>MontaukOS</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Open Sans', Arial, sans-serif;
max-width: 960px;
margin: 0 auto;
padding: 1em;
line-height: 1.5;
display: flex;
gap: 2em;
}
p { margin: 0 0 0.5em; }
h2 { margin: 0.5em 0; }
.sidebar {
width: 160px;
flex-shrink: 0;
}
.sidebar ul {
list-style: none;
padding: 0;
}
.sidebar li {
margin: 0.5em 0;
}
.sidebar a {
color: #0066CC;
text-decoration: none;
font-weight: 600;
}
.sidebar a:hover {
color: #004499;
text-decoration: underline;
}
.main {
flex: 1;
min-width: 0;
}
a { color: #0000EE; }
a:visited { color: #0066CC; }
hr { border-style: solid; border-width: 1px 0 0 0; border-color: #999; }
pre { background: #f0f0f0; padding: 0.5em; overflow-x: auto; }
.center { text-align: center; }
.box {
border: 1px solid #999;
padding: 0.5em;
margin: 0.5em 0;
}
.app-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
gap: 0 1em;
margin: 0;
}
.app-item {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
margin: 0;
}
.app-item img {
width: 48px;
height: 48px;
display: block;
}
.app-item a {
color: #0000EE;
text-decoration: none;
font-size: 0.9em;
}
.app-item a:hover {
text-decoration: underline;
}
.slideshow {
margin: 0 0 1em;
}
.slideshow-frame {
position: relative;
}
.slideshow-frame img {
display: block;
width: 100%;
aspect-ratio: 16 / 10;
object-fit: contain;
}
.slideshow-button {
position: absolute;
top: 50%;
transform: translateY(-50%);
border: 1px solid #999;
background: rgba(255, 255, 255, 0.9);
color: #222;
padding: 0.35em 0.55em;
cursor: pointer;
font: inherit;
}
.slideshow-button:hover {
background: #fff;
}
.slideshow-button.prev {
left: 0.75em;
}
.slideshow-button.next {
right: 0.75em;
}
.slideshow-meta {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1em;
margin-top: 0.6em;
flex-wrap: wrap;
}
.slideshow-caption {
margin: 0;
}
.slideshow-dots {
display: flex;
gap: 0.4em;
}
.slideshow-dot {
width: 10px;
height: 10px;
border-radius: 50%;
border: 1px solid #999;
background: #ddd;
padding: 0;
}
.slideshow-dot.active {
background: #0066CC;
border-color: #004499;
}
</style>
</head>
<body>
<div class="sidebar">
<ul>
<li><a href="#about">About</a></li>
<li><a href="#features">Features</a></li>
<li><a href="#applications">Applications</a></li>
<li><a href="downloads.html">Downloads</a></li>
<li><a href="docs/index.html">Documentation</a></li>
</ul>
</div>
<div class="main">
<div class="center">
<h1>MontaukOS</h1>
<p>Modern and unique bare metal operating system</p>
</div>
<hr>
<h2 id="about">About</h2>
<p>
MontaukOS is a novel multi-user operating system that runs on bare metal.
It features its own preemptive multitasking kernel and modern userspace with its own desktop environment,
targeting both emulators and real hardware.
</p>
<br>
<p>
MontaukOS is <strong>not</strong> Linux, nor is it Unix-like. Rather, it uses its own custom Montauk kernel with its own architecture and design.
</p>
<hr>
<h2 id="features">Features</h2>
<ul style="margin: 0 0 0.5em;">
<li>Real hardware support: Intel GPU, e100e Ethernet, HDA audio, Bluetooth</li>
<li>Storage: AHCI/NVMe SSDs, GPT partitions, ext2 and FAT32 filesystems</li>
<li>ACPI support including support for shutdown and partial support for S3 sleep</li>
<li>USB and PS/2 input device support</li>
<li>Desktop environment with 12+ applications</li>
</ul>
<h2 id="applications">Applications</h2>
<br>
<div class="app-grid">
<div class="app-item">
<a href="#"><img src="fr_icons/utilities-terminal.svg" width="48" height="48" alt="Terminal"></a>
<a href="#">Terminal</a>
</div>
<div class="app-item">
<a href="#"><img src="fr_icons/system-file-manager.svg" width="48" height="48" alt="File Manager"></a>
<a href="#">File Manager</a>
</div>
<div class="app-item">
<a href="#"><img src="fr_icons/web-browser.svg" width="48" height="48" alt="Wikipedia Client"></a>
<a href="#">Wikipedia Client</a>
</div>
<div class="app-item">
<a href="#"><img src="fr_icons/weather-widget.svg" width="48" height="48" alt="Weather App"></a>
<a href="#">Weather App</a>
</div>
<div class="app-item">
<a href="#"><img src="fr_icons/application-pdf.svg" width="48" height="48" alt="PDF Viewer"></a>
<a href="#">PDF Viewer</a>
</div>
<div class="app-item">
<a href="#"><img src="fr_icons/audio-player.svg" width="48" height="48" alt="Music Player"></a>
<a href="#">Music Player</a>
</div>
<div class="app-item">
<a href="#"><img src="fr_icons/doom.svg" width="48" height="48" alt="DOOM"></a>
<a href="#">DOOM</a>
</div>
</div>
<br><br>
<hr>
<h2 id="screenshots">Screenshots</h2>
<div class="slideshow">
<div class="slideshow-frame">
<img id="slideshow-image" src="images/mtk_doomgame.png" alt="MontaukOS screenshot showing DOOM running in the desktop environment">
<button type="button" class="slideshow-button prev" id="slideshow-prev" aria-label="Show previous screenshot">&lt;</button>
<button type="button" class="slideshow-button next" id="slideshow-next" aria-label="Show next screenshot">&gt;</button>
</div>
<div class="slideshow-meta">
<p class="slideshow-caption" id="slideshow-caption">DOOM running inside MontaukOS.</p>
<div class="slideshow-dots" id="slideshow-dots" aria-label="Screenshot selector"></div>
</div>
</div>
<hr>
<div class="center">
<a href="downloads.html">Releases</a>
</div>
<hr>
<br>
<div class="center"><p>Copyright &copy; 2025-2026 Montauk Operating System Project</p></div>
</div>
<script>
const slideshowItems = [
{
src: 'images/mtk_doomgame.png',
alt: 'MontaukOS screenshot showing DOOM running in the desktop environment',
caption: 'DOOM running inside MontaukOS.'
},
{
src: 'images/mtk_procmgr_devexplorer.png',
alt: 'MontaukOS screenshot showing Process Manager and Developer Explorer',
caption: 'Process Manager and Developer Explorer open on the MontaukOS desktop.'
}
];
const slideshowImage = document.getElementById('slideshow-image');
const slideshowCaption = document.getElementById('slideshow-caption');
const slideshowDots = document.getElementById('slideshow-dots');
const slideshowPrev = document.getElementById('slideshow-prev');
const slideshowNext = document.getElementById('slideshow-next');
let slideshowIndex = 0;
function renderSlideshow(index) {
const item = slideshowItems[index];
slideshowImage.src = item.src;
slideshowImage.alt = item.alt;
slideshowCaption.textContent = item.caption;
Array.from(slideshowDots.children).forEach(function(dot, dotIndex) {
dot.classList.toggle('active', dotIndex === index);
dot.setAttribute('aria-current', dotIndex === index ? 'true' : 'false');
});
}
function showSlide(index) {
slideshowIndex = (index + slideshowItems.length) % slideshowItems.length;
renderSlideshow(slideshowIndex);
}
if (slideshowItems.length === 0) {
slideshowImage.remove();
slideshowCaption.textContent = 'Screenshots will appear here when they are added to the site.';
slideshowPrev.hidden = true;
slideshowNext.hidden = true;
} else {
slideshowItems.forEach(function(item, index) {
const dot = document.createElement('span');
dot.className = 'slideshow-dot';
dot.setAttribute('aria-hidden', 'true');
slideshowDots.appendChild(dot);
});
slideshowPrev.addEventListener('click', function() {
showSlide(slideshowIndex - 1);
});
slideshowNext.addEventListener('click', function() {
showSlide(slideshowIndex + 1);
});
if (slideshowItems.length === 1) {
slideshowPrev.hidden = true;
slideshowNext.hidden = true;
}
renderSlideshow(slideshowIndex);
}
</script>
</body>
</html>