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> |