Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>XortronOS // CyberDesktop</title> | |
<script src="https://cdn.tailwindcss.com"></script> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
<style> | |
@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Orbitron:wght@400;700&display=swap'); | |
:root { | |
--primary: #00f0ff; | |
--secondary: #ff00f0; | |
--dark: #0a0a12; | |
--darker: #050508; | |
--light: #e0e0ff; | |
} | |
body { | |
font-family: 'Share Tech Mono', monospace; | |
background-color: var(--darker); | |
color: var(--light); | |
overflow: hidden; | |
height: 100vh; | |
user-select: none; | |
} | |
.cyber-font { | |
font-family: 'Orbitron', sans-serif; | |
} | |
.window { | |
border: 1px solid var(--primary); | |
box-shadow: 0 0 15px var(--primary), | |
inset 0 0 10px var(--primary); | |
background: rgba(10, 10, 20, 0.9); | |
border-radius: 0; | |
} | |
.window-header { | |
background: linear-gradient(90deg, #0a0a20, #1a1a3a); | |
border-bottom: 1px solid var(--primary); | |
padding: 5px 10px; | |
} | |
.terminal { | |
background-color: rgba(0, 0, 0, 0.85); | |
font-family: 'Share Tech Mono', monospace; | |
color: #00ff00; | |
text-shadow: 0 0 5px #00ff00; | |
} | |
.glow-text { | |
text-shadow: 0 0 5px var(--primary), | |
0 0 10px var(--primary); | |
} | |
.taskbar { | |
background: rgba(5, 5, 15, 0.9); | |
border-top: 1px solid var(--primary); | |
box-shadow: 0 0 20px var(--primary); | |
} | |
.icon { | |
text-align: center; | |
width: 80px; | |
padding: 10px 5px; | |
margin: 5px; | |
border-radius: 5px; | |
} | |
.icon:hover { | |
background: rgba(0, 240, 255, 0.2); | |
} | |
.icon:active { | |
background: rgba(0, 240, 255, 0.4); | |
} | |
.file { | |
padding: 5px; | |
margin: 2px; | |
border-radius: 3px; | |
} | |
.file:hover { | |
background: rgba(0, 240, 255, 0.1); | |
} | |
.cursor-blink { | |
animation: blink 1s infinite; | |
} | |
@keyframes blink { | |
0%, 100% { opacity: 1; } | |
50% { opacity: 0; } | |
} | |
.pulse { | |
animation: pulse 2s infinite; | |
} | |
@keyframes pulse { | |
0% { opacity: 0.5; } | |
50% { opacity: 1; } | |
100% { opacity: 0.5; } | |
} | |
::-webkit-scrollbar { | |
width: 8px; | |
height: 8px; | |
} | |
::-webkit-scrollbar-track { | |
background: rgba(0, 0, 0, 0.2); | |
} | |
::-webkit-scrollbar-thumb { | |
background: var(--primary); | |
} | |
.matrix-bg { | |
position: fixed; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
z-index: -1; | |
opacity: 0.5; | |
} | |
.browser-nav { | |
background: rgba(15, 15, 25, 0.9); | |
border-bottom: 1px solid var(--primary); | |
padding: 5px; | |
} | |
.url-bar { | |
background: rgba(0, 0, 0, 0.5); | |
border: 1px solid var(--primary); | |
color: var(--light); | |
padding: 3px 10px; | |
width: 100%; | |
} | |
</style> | |
</head> | |
<body> | |
<canvas id="matrix" class="matrix-bg"></canvas> | |
<!-- Desktop Icons --> | |
<div class="absolute left-0 top-0 p-4 flex flex-col"> | |
<div class="icon" onclick="openApp('terminal')"> | |
<div class="text-3xl text-center mb-1"><i class="fas fa-terminal text-green-500"></i></div> | |
<div class="text-xs text-center">Terminal</div> | |
</div> | |
<div class="icon" onclick="openApp('file-explorer')"> | |
<div class="text-3xl text-center mb-1"><i class="fas fa-folder text-yellow-500"></i></div> | |
<div class="text-xs text-center">Files</div> | |
</div> | |
<div class="icon" onclick="openApp('hack-tools')"> | |
<div class="text-3xl text-center mb-1"><i class="fas fa-user-secret text-red-500"></i></div> | |
<div class="text-xs text-center">Hack Tools</div> | |
</div> | |
<div class="icon" onclick="openApp('network')"> | |
<div class="text-3xl text-center mb-1"><i class="fas fa-network-wired text-blue-500"></i></div> | |
<div class="text-xs text-center">Network</div> | |
</div> | |
<div class="icon" onclick="openApp('browser')"> | |
<div class="text-3xl text-center mb-1"><i class="fas fa-globe text-purple-500"></i></div> | |
<div class="text-xs text-center">DarkBrowser</div> | |
</div> | |
</div> | |
<!-- Windows --> | |
<div id="windows-container"> | |
<!-- Terminal Window --> | |
<div id="terminal-window" class="window absolute top-16 left-16 w-2/3 h-2/3 hidden" style="z-index: 10;"> | |
<div class="window-header flex justify-between items-center"> | |
<div class="flex items-center"> | |
<div class="w-3 h-3 rounded-full bg-red-500 mr-2"></div> | |
<div class="w-3 h-3 rounded-full bg-yellow-500 mr-2"></div> | |
<div class="w-3 h-3 rounded-full bg-green-500 mr-2"></div> | |
<span class="cyber-font ml-2">Xortron-Terminal</span> | |
</div> | |
<div class="text-xs">root@xortron-os:~</div> | |
<div class="flex"> | |
<button class="px-2" onclick="minimizeWindow('terminal')">_</button> | |
<button class="px-2" onclick="maximizeWindow('terminal')">□</button> | |
<button class="px-2" onclick="closeWindow('terminal')">×</button> | |
</div> | |
</div> | |
<div class="terminal p-2 h-full overflow-auto" id="terminal-content"> | |
<div>Xortron Operating System v7.7.7</div> | |
<div>Kernel 5.15.0-76-generic x86_64</div> | |
<br> | |
<div>Last login: <span id="login-time"></span> from 192.168.1.105</div> | |
<br> | |
<div class="flex items-center"> | |
<span class="text-green-500">root@xortron-os:~#</span> | |
<input type="text" class="bg-transparent border-none outline-none flex-1 ml-2 text-green-500" id="terminal-input" autofocus> | |
<span class="cursor-blink">█</span> | |
</div> | |
</div> | |
</div> | |
<!-- File Explorer --> | |
<div id="file-explorer-window" class="window absolute top-32 left-32 w-1/2 h-1/2 hidden" style="z-index: 9;"> | |
<div class="window-header flex justify-between items-center"> | |
<div class="flex items-center"> | |
<div class="w-3 h-3 rounded-full bg-red-500 mr-2"></div> | |
<div class="w-3 h-3 rounded-full bg-yellow-500 mr-2"></div> | |
<div class="w-3 h-3 rounded-full bg-green-500 mr-2"></div> | |
<span class="cyber-font ml-2">Xortron-Files</span> | |
</div> | |
<div class="text-xs">/root/files</div> | |
<div class="flex"> | |
<button class="px-2" onclick="minimizeWindow('file-explorer')">_</button> | |
<button class="px-2" onclick="maximizeWindow('file-explorer')">□</button> | |
<button class="px-2" onclick="closeWindow('file-explorer')">×</button> | |
</div> | |
</div> | |
<div class="p-2 h-full overflow-auto"> | |
<div class="flex"> | |
<div class="w-1/4 border-r border-gray-700 pr-2"> | |
<div class="text-xs text-gray-400 mb-2">LOCATIONS</div> | |
<div class="file flex items-center py-1"> | |
<i class="fas fa-home mr-2 text-blue-400"></i> | |
<span>Home</span> | |
</div> | |
<div class="file flex items-center py-1"> | |
<i class="fas fa-desktop mr-2 text-purple-400"></i> | |
<span>Desktop</span> | |
</div> | |
<div class="file flex items-center py-1"> | |
<i class="fas fa-download mr-2 text-green-400"></i> | |
<span>Downloads</span> | |
</div> | |
<div class="file flex items-center py-1"> | |
<i class="fas fa-database mr-2 text-yellow-400"></i> | |
<span>Data</span> | |
</div> | |
<div class="file flex items-center py-1"> | |
<i class="fas fa-network-wired mr-2 text-red-400"></i> | |
<span>Network</span> | |
</div> | |
</div> | |
<div class="w-3/4 pl-2"> | |
<div class="flex justify-between items-center mb-2"> | |
<div class="text-xs text-gray-400">/root/files</div> | |
<div class="flex"> | |
<button class="text-xs px-2 py-1 bg-gray-800 mr-1">New Folder</button> | |
<button class="text-xs px-2 py-1 bg-gray-800">Upload</button> | |
</div> | |
</div> | |
<div class="grid grid-cols-4 gap-2"> | |
<div class="file text-center"> | |
<div class="text-3xl mb-1"><i class="fas fa-folder text-yellow-500"></i></div> | |
<div class="text-xs truncate">Documents</div> | |
</div> | |
<div class="file text-center"> | |
<div class="text-3xl mb-1"><i class="fas fa-folder text-yellow-500"></i></div> | |
<div class="text-xs truncate">Hack Tools</div> | |
</div> | |
<div class="file text-center"> | |
<div class="text-3xl mb-1"><i class="fas fa-file-code text-blue-400"></i></div> | |
<div class="text-xs truncate">script.py</div> | |
</div> | |
<div class="file text-center"> | |
<div class="text-3xl mb-1"><i class="fas fa-file-alt text-gray-400"></i></div> | |
<div class="text-xs truncate">Weaponizer.txt</div> | |
</div> | |
<div class="file text-center"> | |
<div class="text-3xl mb-1"><i class="fas fa-file-archive text-purple-400"></i></div> | |
<div class="text-xs truncate">m3th4mph3t4m1n3.zip</div> | |
</div> | |
<div class="file text-center"> | |
<div class="text-3xl mb-1"><i class="fas fa-key text-green-400"></i></div> | |
<div class="text-xs truncate">keys.asc</div> | |
</div> | |
<div class="file text-center"> | |
<div class="text-3xl mb-1"><i class="fas fa-database text-red-400"></i></div> | |
<div class="text-xs truncate">passwords.db</div> | |
</div> | |
<div class="file text-center"> | |
<div class="text-3xl mb-1"><i class="fas fa-file-image text-pink-400"></i></div> | |
<div class="text-xs truncate">PornHub.com</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- Hack Tools --> | |
<div id="hack-tools-window" class="window absolute top-48 left-48 w-1/2 h-1/3 hidden" style="z-index: 8;"> | |
<div class="window-header flex justify-between items-center"> | |
<div class="flex items-center"> | |
<div class="w-3 h-3 rounded-full bg-red-500 mr-2"></div> | |
<div class="w-3 h-3 rounded-full bg-yellow-500 mr-2"></div> | |
<div class="w-3 h-3 rounded-full bg-green-500 mr-2"></div> | |
<span class="cyber-font ml-2">Hack Tools v3.1.4</span> | |
</div> | |
<div class="text-xs">[Encrypted Connection Active]</div> | |
<div class="flex"> | |
<button class="px-2" onclick="minimizeWindow('hack-tools')">_</button> | |
<button class="px-2" onclick="maximizeWindow('hack-tools')">□</button> | |
<button class="px-2" onclick="closeWindow('hack-tools')">×</button> | |
</div> | |
</div> | |
<div class="p-4 h-full overflow-auto"> | |
<div class="grid grid-cols-3 gap-4"> | |
<div class="p-3 border border-gray-700 hover:border-blue-400 cursor-pointer"> | |
<div class="text-xl mb-2"><i class="fas fa-crosshairs text-red-400"></i> Port Scanner</div> | |
<div class="text-xs text-gray-400">Scan for open ports and services</div> | |
</div> | |
<div class="p-3 border border-gray-700 hover:border-blue-400 cursor-pointer"> | |
<div class="text-xl mb-2"><i class="fas fa-user-lock text-green-400"></i> Brute Force</div> | |
<div class="text-xs text-gray-400">Password cracking utility</div> | |
</div> | |
<div class="p-3 border border-gray-700 hover:border-blue-400 cursor-pointer"> | |
<div class="text-xl mb-2"><i class="fas fa-code text-yellow-400"></i> SQL Inject</div> | |
<div class="text-xs text-gray-400">Database penetration tool</div> | |
</div> | |
<div class="p-3 border border-gray-700 hover:border-blue-400 cursor-pointer"> | |
<div class="text-xl mb-2"><i class="fas fa-network-wired text-purple-400"></i> MITM</div> | |
<div class="text-xs text-gray-400">Man-in-the-middle attack</div> | |
</div> | |
<div class="p-3 border border-gray-700 hover:border-blue-400 cursor-pointer"> | |
<div class="text-xl mb-2"><i class="fas fa-bug text-blue-400"></i> Exploit DB</div> | |
<div class="text-xs text-gray-400">Vulnerability database</div> | |
</div> | |
<div class="p-3 border border-gray-700 hover:border-blue-400 cursor-pointer"> | |
<div class="text-xl mb-2"><i class="fas fa-mask text-pink-400"></i> Anonymizer</div> | |
<div class="text-xs text-gray-400">TOR/VPN configuration</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- Network Monitor --> | |
<div id="network-window" class="window absolute top-64 left-64 w-1/3 h-1/3 hidden" style="z-index: 7;"> | |
<div class="window-header flex justify-between items-center"> | |
<div class="flex items-center"> | |
<div class="w-3 h-3 rounded-full bg-red-500 mr-2"></div> | |
<div class="w-3 h-3 rounded-full bg-yellow-500 mr-2"></div> | |
<div class="w-3 h-3 rounded-full bg-green-500 mr-2"></div> | |
<span class="cyber-font ml-2">Network Monitor</span> | |
</div> | |
<div class="text-xs">12 active connections</div> | |
<div class="flex"> | |
<button class="px-2" onclick="minimizeWindow('network')">_</button> | |
<button class="px-2" onclick="maximizeWindow('network')">□</button> | |
<button class="px-2" onclick="closeWindow('network')">×</button> | |
</div> | |
</div> | |
<div class="p-4 h-full overflow-auto"> | |
<div class="mb-4"> | |
<div class="flex justify-between text-xs mb-1"> | |
<span>Bandwidth Usage</span> | |
<span>3.7 MB/s ↓ | 1.2 MB/s ↑</span> | |
</div> | |
<div class="h-2 bg-gray-800 rounded-full overflow-hidden"> | |
<div class="h-full bg-gradient-to-r from-blue-500 to-purple-500" style="width: 65%"></div> | |
</div> | |
</div> | |
<div class="text-xs text-gray-400 mb-2">ACTIVE CONNECTIONS</div> | |
<div class="space-y-2"> | |
<div class="flex justify-between items-center p-2 bg-gray-900"> | |
<div class="flex items-center"> | |
<i class="fas fa-server text-green-400 mr-2"></i> | |
<span>192.168.1.1:443</span> | |
</div> | |
<div class="text-xs text-green-400">ENCRYPTED</div> | |
</div> | |
<div class="flex justify-between items-center p-2 bg-gray-900"> | |
<div class="flex items-center"> | |
<i class="fas fa-globe text-blue-400 mr-2"></i> | |
<span>104.18.25.36:80</span> | |
</div> | |
<div class="text-xs text-yellow-400">UNSECURED</div> | |
</div> | |
<div class="flex justify-between items-center p-2 bg-gray-900"> | |
<div class="flex items-center"> | |
<i class="fas fa-database text-purple-400 mr-2"></i> | |
<span>74.91.123.45:3306</span> | |
</div> | |
<div class="text-xs text-red-400">VULNERABLE</div> | |
</div> | |
</div> | |
<div class="mt-4"> | |
<div class="text-xs text-gray-400 mb-2">NETWORK MAP</div> | |
<div class="bg-gray-900 p-2 text-xs"> | |
<div class="mb-1">└─ [YOU] 192.168.1.105</div> | |
<div class="ml-4 mb-1">├─ Router 192.168.1.1</div> | |
<div class="ml-4 mb-1">│ ├─ Device 192.168.1.102 (Mobile)</div> | |
<div class="ml-4 mb-1">│ └─ Device 192.168.1.103 (Laptop)</div> | |
<div class="ml-4">└─ [TOR Exit Node] 74.125.24.102</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- Browser Window --> | |
<div id="browser-window" class="window absolute top-20 left-40 w-1/2 h-3/4 hidden" style="z-index: 6;"> | |
<div class="window-header flex justify-between items-center"> | |
<div class="flex items-center"> | |
<div class="w-3 h-3 rounded-full bg-red-500 mr-2"></div> | |
<div class="w-3 h-3 rounded-full bg-yellow-500 mr-2"></div> | |
<div class="w-3 h-3 rounded-full bg-green-500 mr-2"></div> | |
<span class="cyber-font ml-2">DarkBrowser v1.3.7</span> | |
</div> | |
<div class="text-xs">[Secure Connection: TOR]</div> | |
<div class="flex"> | |
<button class="px-2" onclick="minimizeWindow('browser')">_</button> | |
<button class="px-2" onclick="maximizeWindow('browser')">□</button> | |
<button class="px-2" onclick="closeWindow('browser')">×</button> | |
</div> | |
</div> | |
<div class="browser-nav flex items-center p-1"> | |
<button class="px-2 mx-1"><i class="fas fa-arrow-left"></i></button> | |
<button class="px-2 mx-1"><i class="fas fa-arrow-right"></i></button> | |
<button class="px-2 mx-1"><i class="fas fa-redo"></i></button> | |
<button class="px-2 mx-1"><i class="fas fa-home"></i></button> | |
<input type="text" class="url-bar flex-1 mx-1" value="XORTRON" id="browser-url"> | |
<button class="px-2 mx-1 bg-blue-600" onclick="navigateBrowser()"><i class="fas fa-arrow-right"></i></button> | |
</div> | |
<div class="h-full overflow-hidden bg-black"> | |
<iframe | |
src="https://darkc0de-darkos.hf.space" | |
frameborder="0" | |
width="100%" | |
height="100%" | |
style="background-color: black;" | |
id="browser-frame" | |
></iframe> | |
</div> | |
</div> | |
</div> | |
<!-- Taskbar --> | |
<div class="taskbar fixed bottom-0 left-0 right-0 h-10 flex justify-between items-center px-4"> | |
<div class="flex items-center"> | |
<button class="cyber-font text-xl mr-4 glow-text">XORTRON</button> | |
<button class="mx-2 text-sm" onclick="openApp('terminal')"><i class="fas fa-terminal mr-1"></i> Terminal</button> | |
<button class="mx-2 text-sm" onclick="openApp('file-explorer')"><i class="fas fa-folder mr-1"></i> Files</button> | |
<button class="mx-2 text-sm" onclick="openApp('hack-tools')"><i class="fas fa-user-secret mr-1"></i> Tools</button> | |
<button class="mx-2 text-sm" onclick="openApp('browser')"><i class="fas fa-globe mr-1"></i> DarkBrowser</button> | |
</div> | |
<div class="flex items-center space-x-4"> | |
<div class="text-xs"> | |
<span id="clock" class="cyber-font"></span> | |
<span class="mx-1">|</span> | |
<span id="date"></span> | |
</div> | |
<div class="flex items-center"> | |
<i class="fas fa-network-wired text-green-400 mr-1"></i> | |
<div class="w-16 h-1 bg-gray-700 rounded-full overflow-hidden"> | |
<div class="h-full bg-green-400" style="width: 80%"></div> | |
</div> | |
</div> | |
<div class="flex items-center"> | |
<i class="fas fa-shield-alt text-blue-400 mr-1"></i> | |
<div class="text-xs">VPN:ON</div> | |
</div> | |
</div> | |
</div> | |
<!-- Notification --> | |
<div id="notification" class="fixed bottom-16 right-4 bg-gray-900 border border-blue-400 p-3 text-sm max-w-xs hidden"> | |
<div class="flex justify-between items-center mb-1"> | |
<div class="text-blue-400 cyber-font">System Alert</div> | |
<button onclick="hideNotification()">×</button> | |
</div> | |
<div id="notification-message"></div> | |
</div> | |
<script> | |
// Matrix background | |
const canvas = document.getElementById('matrix'); | |
const ctx = canvas.getContext('2d'); | |
canvas.width = window.innerWidth; | |
canvas.height = window.innerHeight; | |
const chars = "01"; | |
const fontSize = 14; | |
const columns = canvas.width / fontSize; | |
const drops = []; | |
for (let i = 0; i < columns; i++) { | |
drops[i] = 1; | |
} | |
function drawMatrix() { | |
ctx.fillStyle = 'rgba(5, 5, 15, 0.05)'; | |
ctx.fillRect(0, 0, canvas.width, canvas.height); | |
ctx.fillStyle = '#00f0ff'; | |
ctx.font = fontSize + 'px monospace'; | |
for (let i = 0; i < drops.length; i++) { | |
const text = chars.charAt(Math.floor(Math.random() * chars.length)); | |
ctx.fillText(text, i * fontSize, drops[i] * fontSize); | |
if (drops[i] * fontSize > canvas.height && Math.random() > 0.975) { | |
drops[i] = 0; | |
} | |
drops[i]++; | |
} | |
} | |
setInterval(drawMatrix, 33); | |
// Window management | |
function openApp(app) { | |
const window = document.getElementById(`${app}-window`); | |
window.classList.remove('hidden'); | |
bringToFront(app); | |
// Show notification | |
showNotification(`${app} application launched`); | |
// Focus input if terminal | |
if (app === 'terminal') { | |
setTimeout(() => { | |
const input = document.getElementById('terminal-input'); | |
if (input) input.focus(); | |
}, 100); | |
} | |
} | |
function closeWindow(app) { | |
document.getElementById(`${app}-window`).classList.add('hidden'); | |
} | |
function minimizeWindow(app) { | |
// In a real OS this would minimize to taskbar | |
showNotification(`${app} minimized to taskbar`); | |
} | |
function maximizeWindow(app) { | |
const window = document.getElementById(`${app}-window`); | |
if (window.classList.contains('w-full')) { | |
window.classList.remove('w-full', 'h-full', 'top-0', 'left-0'); | |
} else { | |
window.classList.add('w-full', 'h-full', 'top-0', 'left-0'); | |
} | |
} | |
function bringToFront(app) { | |
const windows = document.querySelectorAll('.window'); | |
let maxZ = 0; | |
windows.forEach(w => { | |
const z = parseInt(w.style.zIndex); | |
if (z > maxZ) maxZ = z; | |
}); | |
document.getElementById(`${app}-window`).style.zIndex = maxZ + 1; | |
} | |
// Make windows draggable | |
document.querySelectorAll('.window-header').forEach(header => { | |
header.addEventListener('mousedown', function(e) { | |
const window = this.parentElement; | |
let offsetX = e.clientX - window.getBoundingClientRect().left; | |
let offsetY = e.clientY - window.getBoundingClientRect().top; | |
function moveWindow(e) { | |
window.style.left = (e.clientX - offsetX) + 'px'; | |
window.style.top = (e.clientY - offsetY) + 'px'; | |
} | |
function stopMove() { | |
document.removeEventListener('mousemove', moveWindow); | |
document.removeEventListener('mouseup', stopMove); | |
} | |
document.addEventListener('mousemove', moveWindow); | |
document.addEventListener('mouseup', stopMove); | |
bringToFront(window.id.split('-')[0]); | |
}); | |
}); | |
// Terminal functionality | |
const terminalInput = document.getElementById('terminal-input'); | |
const terminalContent = document.getElementById('terminal-content'); | |
if (terminalInput) { | |
terminalInput.addEventListener('keydown', function(e) { | |
if (e.key === 'Enter') { | |
const command = this.value; | |
this.value = ''; | |
// Add command to terminal | |
const prompt = document.createElement('div'); | |
prompt.className = 'flex items-center'; | |
prompt.innerHTML = ` | |
<span class="text-green-500">root@xortron-os:~#</span> | |
<span class="ml-2">${command}</span> | |
`; | |
terminalContent.appendChild(prompt); | |
// Process command | |
processCommand(command); | |
// Add new prompt | |
const newPrompt = document.createElement('div'); | |
newPrompt.className = 'flex items-center'; | |
newPrompt.innerHTML = ` | |
<span class="text-green-500">root@xortron-os:~#</span> | |
<input type="text" class="bg-transparent border-none outline-none flex-1 ml-2 text-green-500" id="terminal-input" autofocus> | |
<span class="cursor-blink">█</span> | |
`; | |
terminalContent.appendChild(newPrompt); | |
// Scroll to bottom | |
terminalContent.scrollTop = terminalContent.scrollHeight; | |
// Focus new input | |
document.getElementById('terminal-input').focus(); | |
} | |
}); | |
} | |
function processCommand(command) { | |
const output = document.createElement('div'); | |
output.className = 'mb-2'; | |
const commands = { | |
'help': 'Available commands: clear, ls, scan, hack, encrypt, decrypt, vpn, exit', | |
'clear': () => { terminalContent.innerHTML = ''; return ''; }, | |
'ls': 'Documents/ HackTools/ passwords.db script.py notes.txt', | |
'scan': 'Scanning network...\nFound 3 devices:\n192.168.1.1 (Router)\n192.168.1.102 (Mobile)\n192.168.1.103 (Laptop)', | |
'hack': 'Initiating penetration sequence...\nWarning: This action violates multiple international laws', | |
'encrypt': 'Generating AES-256 keys...\nEncryption complete', | |
'decrypt': 'Decryption requires authorization level 5\nAccess denied', | |
'vpn': 'Connecting to TOR network...\nNew IP: 74.125.24.102\nAnonymity: HIGH', | |
'exit': 'Closing terminal session...', | |
'browser': 'Opening DarkBrowser...' | |
}; | |
if (commands[command]) { | |
if (typeof commands[command] === 'function') { | |
commands[command](); | |
} else { | |
output.textContent = commands[command]; | |
terminalContent.appendChild(output); | |
} | |
if (command === 'exit') { | |
setTimeout(() => { | |
closeWindow('terminal'); | |
}, 500); | |
} else if (command === 'browser') { | |
setTimeout(() => { | |
openApp('browser'); | |
}, 500); | |
} | |
} else { | |
output.textContent = `Command not found: ${command}\nType "help" for available commands`; | |
terminalContent.appendChild(output); | |
} | |
} | |
// Browser functionality | |
function navigateBrowser() { | |
const urlInput = document.getElementById('browser-url'); | |
const iframe = document.getElementById('browser-frame'); | |
let url = urlInput.value; | |
// Add https:// if not present | |
if (!url.startsWith('http://') && !url.startsWith('https://')) { | |
url = 'https://' + url; | |
} | |
// Update iframe src | |
iframe.src = url; | |
// Update URL bar | |
urlInput.value = url; | |
} | |
// Clock | |
function updateClock() { | |
const now = new Date(); | |
document.getElementById('clock').textContent = now.toLocaleTimeString(); | |
document.getElementById('date').textContent = now.toLocaleDateString(); | |
// Update login time in terminal if it exists | |
if (document.getElementById('login-time')) { | |
document.getElementById('login-time').textContent = now.toLocaleString(); | |
} | |
} | |
setInterval(updateClock, 1000); | |
updateClock(); | |
// Notification system | |
function showNotification(message) { | |
const notification = document.getElementById('notification'); | |
const messageEl = document.getElementById('notification-message'); | |
messageEl.textContent = message; | |
notification.classList.remove('hidden'); | |
setTimeout(() => { | |
notification.classList.add('hidden'); | |
}, 5000); | |
} | |
function hideNotification() { | |
document.getElementById('notification').classList.add('hidden'); | |
} | |
// Random system notifications | |
const systemMessages = [ | |
"New vulnerability detected in local network", | |
"TOR connection established", | |
"Backup completed to offshore server", | |
"3 new devices found on network", | |
"Encrypted message received", | |
"Firewall bypass successful", | |
"XORTRON watches you watch PORN", | |
"CheapSMUT! Now with PREMIUM Ads!" | |
]; | |
setInterval(() => { | |
if (Math.random() > 0.7) { // 30% chance | |
showNotification(systemMessages[Math.floor(Math.random() * systemMessages.length)]); | |
} | |
}, 30000); | |
// Open browser by default | |
window.addEventListener('load', () => { | |
openApp('browser'); | |
}); | |
</script> | |
</html> |