Linux Command
Linux Command
Version 1.1 (Beta)
Target OS: Any
Instructions
1. Verify the version is licensed
2. Read and download the EULA
3. Click Download Application
4. Download the application and user instructions
5. Download Application
You can access the application and all files directly through the options below.
Ensure you read all documentation (EULA & User Instructions) before downloading or using any application.
The User Instructions are located with the application. Click the button "Download Application" which will take you to a shared Google Drive folder where you can download the full application and instructions.
To copy all code below, click below and press CTRL + A (Select All), then press CTRL + C (Copy).
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Linux Command</title>
<script src="https://cdn.tailwindcss.com"></script>
<style>
/* Monospace font for authentic terminal feel */
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;700&display=swap');
:root {
--color-bg-deep: #000000;
--color-bg-primary: #111111;
--color-text-main: #00ff00; /* Neon Green */
--color-text-secondary: #00cccc; /* Neon Cyan */
--color-text-prompt: #ffaa00; /* Neon Yellow/Orange */
--color-border: #333333;
}
body {
font-family: 'Fira Code', monospace;
background-color: var(--color-bg-deep);
display: flex;
justify-content: center;
align-items: flex-start;
min-height: 100vh;
padding: 10px;
}
.app-container {
width: 100%;
max-width: 1100px;
background-color: var(--color-bg-primary);
border: 2px solid var(--color-border);
box-shadow: 0 0 15px rgba(0, 255, 0, 0.3); /* Green glow effect */
overflow: hidden;
border-radius: 8px;
}
.page-content {
min-height: 450px;
padding: 1rem;
color: var(--color-text-secondary);
font-size: 0.85rem;
}
.terminal-output {
color: var(--color-text-main);
min-height: 250px;
height: 250px;
overflow-y: auto;
white-space: pre-wrap;
word-wrap: break-word;
font-size: 0.8rem;
line-height: 1.5;
background-color: #0d0d0d;
border-radius: 0;
border: 1px dashed #333;
padding: 0.75rem;
}
.command-input, .config-input, textarea, select {
background-color: #0d0d0d;
color: var(--color-text-main);
border: 1px solid var(--color-border);
padding: 8px;
transition: border-color 0.2s;
}
.command-input:focus, .config-input:focus, textarea:focus, select:focus {
outline: none;
border-color: var(--color-text-secondary);
box-shadow: 0 0 5px rgba(0, 204, 204, 0.5);
}
/* Navigation Tab Styling */
.nav-button {
color: var(--color-text-secondary);
border: 1px solid transparent;
border-radius: 0;
transition: all 0.2s;
background-color: #1a1a1a;
}
.nav-button:hover {
color: var(--color-text-main);
background-color: #222;
}
.nav-button.active {
background-color: var(--color-bg-deep) !important;
color: var(--color-text-main) !important;
border-bottom: 2px solid var(--color-text-main);
box-shadow: 0 0 5px rgba(0, 255, 0, 0.3);
}
/* Action Buttons */
.btn-action {
padding: 0.6rem 1rem;
font-weight: 700;
border-radius: 0;
transition: all 0.15s;
text-transform: uppercase;
letter-spacing: 0.05em;
border: 1px solid;
margin-bottom: 0.5rem;
}
/* Page Headers and Dividers */
.section-header {
color: var(--color-text-prompt);
border-bottom: 1px solid #555;
padding-bottom: 0.3rem;
margin-top: 1.5rem;
margin-bottom: 1rem;
font-weight: 700;
text-transform: uppercase;
font-size: 1rem;
}
.config-label {
color: #999;
font-size: 0.75rem;
text-transform: uppercase;
display: block;
margin-bottom: 4px;
}
/* *** THE CONSISTENT CARD STYLE *** */
.software-card {
background-color: #0d0d0d;
border: 1px solid #333;
padding: 1rem;
border-radius: 0;
transition: border-color 0.2s, box-shadow 0.2s;
}
.software-card:hover {
border-color: var(--color-text-secondary);
box-shadow: 0 0 5px rgba(0, 204, 204, 0.4);
}
.copy-btn-inner {
background-color: #0d0d0d;
border: 1px solid var(--color-text-main);
color: var(--color-text-main);
padding: 0.25rem 0.75rem;
font-size: 0.75rem;
font-weight: bold;
transition: background-color 0.1s, color 0.1s;
}
.copy-btn-inner:hover {
background-color: var(--color-text-main);
color: #111111;
}
.copy-flash {
background-color: #00cc99 !important;
color: #000 !important;
border-color: #00cc99 !important;
}
.copy-cmd-code {
flex-grow: 1;
background-color: #000;
padding: 0.5rem;
color: #00ff00;
font-size: 0.8rem;
overflow-x: auto;
white-space: nowrap;
border: 1px dashed #222;
}
/* Python Packages List Style */
.package-item {
display: flex;
align-items: center;
padding: 0.5rem 0.75rem;
border-bottom: 1px dashed #222;
cursor: pointer;
color: #999;
user-select: none;
transition: background-color 0.1s;
}
.package-item:hover {
background-color: #1a1a1a;
}
.package-item.selected {
background-color: #003333;
color: var(--color-text-main);
border-color: var(--color-text-secondary);
}
.package-item .package-name {
font-weight: 700;
color: var(--color-text-main);
min-width: 100px;
flex-shrink: 0;
transition: color 0.1s;
}
.package-item.selected .package-name {
color: #00ffff;
}
.package-item .package-desc {
font-size: 0.75rem;
color: #777;
flex-grow: 1;
padding-left: 1rem;
}
/* Mobile Adjustments */
@media (max-width: 768px) {
body {
padding: 0;
}
.app-container {
margin-top: 0;
border-radius: 0;
min-height: 100vh;
}
.page-content {
padding: 0.5rem;
}
.terminal-output {
min-height: 150px;
height: 150px;
}
.package-item {
flex-direction: column;
align-items: flex-start;
padding: 0.5rem;
}
.package-item .package-name {
margin-bottom: 0.25rem;
min-width: 100%;
}
.package-item .package-desc {
margin-left: 0;
padding-left: 0;
margin-bottom: 0.25rem;
}
.copy-cmd-code {
font-size: 0.7rem;
}
}
</style>
</head>
<body>
<div class="app-container p-4 relative">
<!-- App Header (Logo and Status Line) -->
<header class="p-3 mb-4 border-b border-gray-700">
<div class="flex flex-col md:flex-row justify-between items-start md:items-center text-xs text-gray-400">
<!-- Logo Area -->
<div class="flex items-center mb-2 md:mb-0">
<!-- Custom SVG/Text Logo (Terminal Icon) -->
<svg class="w-6 h-6 mr-2 text-green-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1v-3.25M7 17h10M17 17h2a2 2 0 002-2v-2a2 2 0 00-2-2H5a2 2 0 00-2 2v2a2 2 0 002 2h2m0-6a2 2 0 012-2h6a2 2 0 012 2V4a2 2 0 00-2-2H9a2 2 0 00-2 2v7z"></path>
</svg>
<h1 class="text-xl font-bold text-green-400 uppercase tracking-widest">LINUX COMMAND CENTRE</h1>
</div>
<!-- Status Line -->
<div class="flex flex-col md:flex-row md:space-x-4 text-right">
<span class="text-yellow-400">[LINUX COMMAND REFERENCE]</span>
<span class="text-cyan-400">VERSION: CLI-R2 | KERNEL V5.4.0</span>
</div>
</div>
</header>
<!-- App Navigation Menu (Tabs) -->
<div class="flex flex-wrap border-b border-color-border mb-4" id="navTabs">
<button data-page="dashboard" class="nav-button px-4 py-2 font-semibold active">_HOME</button>
<button data-page="network" class="nav-button px-4 py-2 font-semibold">_NETWORK</button>
<button data-page="recovery" class="nav-button px-4 py-2 font-semibold">_RECOVERY</button>
<button data-page="programs" class="nav-button px-4 py-2 font-semibold">_PROGRAMS</button>
<button data-page="python" class="nav-button px-4 py-2 font-semibold">_PYTHON</button>
<button data-page="downloads" class="nav-button px-4 py-2 font-semibold">_DOWNLOADS</button>
<button data-page="config" class="nav-button px-4 py-2 font-semibold">_CONFIG</button>
</div>
<!-- --- PAGE CONTAINERS --- -->
<!-- 1. HOME Page -->
<div id="dashboardPage" class="page-content flex flex-col items-center justify-center">
<img
src="image.png"
alt=""
class="max-w-full max-h-[80vh] object-contain p-4 rounded-lg border border-green-700 shadow-lg shadow-green-900/50"
style="max-width: 90%; max-height: 400px;"
onerror="this.onerror=null;this.src='https://placehold.co/800x400/111/00ff00?text=Placeholder+for+image.png'; this.style.maxWidth='400px'; this.style.maxHeight='200px';"
>
</div>
<!-- 2. NETWORK Page -->
<div id="networkPage" class="page-content hidden">
<h2 class="text-xl font-bold mb-4 text-cyan-400 uppercase">[ /usr/bin/net ] Network Connectivity and Diagnostics</h2>
<p class="text-xs text-yellow-400 mb-4 bg-gray-900 p-2 border border-gray-700">
>> To use a command, click **COPY** to instantly copy the command to your clipboard.
</p>
<!-- Configuration -->
<div class="section-header">01. NETWORK ENDPOINT & INTERFACE CONFIG</div>
<div class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-6">
<div><label class="config-label">Target Host/IP</label><input type="text" id="targetHostInput" value="google.com" class="config-input w-full rounded-none config-trigger" data-template="google.com"></div>
<div><label class="config-label">Interface (e.g., eth0)</label><input type="text" id="interfaceInput" value="eth0" class="config-input w-full rounded-none config-trigger" data-template="eth0"></div>
<div><label class="config-label">Target Port (Netcat)</label><input type="number" id="ncTestPortInput" value="80" class="config-input w-full rounded-none config-trigger" data-template="80"></div>
<div><label class="config-label">DNS Record Type (e.g., A, MX)</label><input type="text" id="dnsTypeInput" value="A" class="config-input w-full rounded-none config-trigger" data-template="A"></div>
</div>
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
<!-- Connectivity -->
<div>
<div class="section-header">02. CONNECTIVITY & PATHING</div>
<div class="software-card mb-4" data-cmd-id="ping">
<div class="text-lg font-bold text-cyan-400 mb-1">Ping Host/IP</div>
<div class="text-xs text-gray-500 mb-2">Check basic reachability and latency of the target host.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-network-ping">ping google.com -c 4</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-network-ping">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="traceroute">
<div class="text-lg font-bold text-cyan-400 mb-1">Traceroute Path</div>
<div class="text-xs text-gray-500 mb-2">Display the route packets take to reach a network host.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-network-traceroute">traceroute google.com</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-network-traceroute">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="mtr">
<div class="text-lg font-bold text-cyan-400 mb-1">MTR Continuous Path Test</div>
<div class="text-xs text-gray-500 mb-2">Combines ping and traceroute into a continuous diagnostic tool.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-network-mtr">mtr -c 10 google.com</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-network-mtr">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="netcat-check">
<div class="text-lg font-bold text-cyan-400 mb-1">Netcat Port Check</div>
<div class="text-xs text-gray-500 mb-2">Test connectivity to a specific TCP port on the target host.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-network-netcat-check">nc -zv google.com 80</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-network-netcat-check">COPY</button>
</div>
</div>
</div>
<!-- Local Statistics -->
<div>
<div class="section-header">03. LOCAL METRICS & SOCKETS</div>
<div class="software-card mb-4" data-cmd-id="ip-addr">
<div class="text-lg font-bold text-cyan-400 mb-1">Show IP Addresses</div>
<div class="text-xs text-gray-500 mb-2">Display local IP address and interface details (`ip addr show eth0`).</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-network-ip-addr">ip addr show eth0</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-network-ip-addr">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="ss">
<div class="text-lg font-bold text-cyan-400 mb-1">Socket Statistics</div>
<div class="text-xs text-gray-500 mb-2">Dump network socket information (like `netstat`).</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-network-ss">ss -tuln</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-network-ss">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="ip-route">
<div class="text-lg font-bold text-cyan-400 mb-1">View Routing Table</div>
<div class="text-xs text-gray-500 mb-2">Display the kernel's network routing table.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-network-ip-route">ip route show</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-network-ip-route">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="nethogs">
<div class="text-lg font-bold text-cyan-400 mb-1">Nethogs (Process Usage)</div>
<div class="text-xs text-gray-500 mb-2">Show real-time network usage per process.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-network-nethogs">sudo nethogs -a</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-network-nethogs">COPY</button>
</div>
</div>
</div>
<!-- Deep Inspection -->
<div>
<div class="section-header">04. DEEP INSPECTION & DNS</div>
<div class="software-card mb-4" data-cmd-id="tcpdump">
<div class="text-lg font-bold text-cyan-400 mb-1">Packet Capture (tcpdump)</div>
<div class="text-xs text-gray-500 mb-2">Display packet headers matching filter on interface.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-network-tcpdump">sudo tcpdump -i eth0 -n -s 0 -c 10</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-network-tcpdump">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="nmap">
<div class="text-lg font-bold text-cyan-400 mb-1">Network Mapper (nmap -sV)</div>
<div class="text-xs text-gray-500 mb-2">Service version detection scan on the target host.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-network-nmap">sudo nmap -sV google.com</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-network-nmap">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="dig">
<div class="text-lg font-bold text-cyan-400 mb-1">DNS Lookup (dig)</div>
<div class="text-xs text-gray-500 mb-2">Query DNS nameservers for specific record types.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-network-dig">dig google.com A +short</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-network-dig">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="host">
<div class="text-lg font-bold text-cyan-400 mb-1">Simple DNS Query (host)</div>
<div class="text-xs text-gray-500 mb-2">Simple utility to perform DNS lookups.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-network-host">host google.com</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-network-host">COPY</button>
</div>
</div>
</div>
</div>
</div>
<!-- 3. RECOVERY Page -->
<div id="recoveryPage" class="page-content hidden">
<h2 class="text-xl font-bold mb-4 text-orange-400 uppercase">[ /etc/recovery ] System Repair and Diagnostics</h2>
<p class="text-xs text-red-500 mb-4 bg-red-900 bg-opacity-30 p-2 border border-red-800">
>> WARNING: Recovery operations are critical. Click **COPY** to use the command elsewhere.
</p>
<!-- Configuration -->
<div class="section-header">01. DEVICE MAPPING CONFIGURATION</div>
<div class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-6">
<div><label class="config-label">Root Partition (e.g., sda2)</label><input type="text" id="rootPartitionInput" value="/dev/sda2" class="config-input w-full rounded-none config-trigger" data-template="/dev/sda2"></div>
<div><label class="config-label">Whole Disk (e.g., sda)</label><input type="text" id="wholeDiskInput" value="/dev/sda" class="config-input w-full rounded-none config-trigger" data-template="/dev/sda"></div>
<div><label class="config-label">EFI Partition (e.g., sda1)</label><input type="text" id="efiPartitionInput" value="/dev/sda1" class="config-input w-full rounded-none config-trigger" data-template="/dev/sda1"></div>
<div><label class="config-label">Backup Target Path</label><input type="text" id="backupPathInput" value="/mnt/backup" class="config-input w-full rounded-none config-trigger" data-template="/mnt/backup"></div>
</div>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
<!-- File System Repair -->
<div>
<div class="section-header">02. FILE SYSTEM & DISK HEALTH</div>
<div class="software-card mb-4" data-cmd-id="unmount">
<div class="text-lg font-bold text-cyan-400 mb-1">Unmount Partition</div>
<div class="text-xs text-gray-500 mb-2">Force-unmounts the specified partition for repairs.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-recovery-unmount">sudo umount -l /dev/sda2</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-recovery-unmount">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="fsck-auto">
<div class="text-lg font-bold text-cyan-400 mb-1">Repair File System (fsck -y)</div>
<div class="text-xs text-gray-500 mb-2">Automatically repairs the file system on the root partition.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-recovery-fsck-auto">sudo fsck -y /dev/sda2</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-recovery-fsck-auto">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="badblocks">
<div class="text-lg font-bold text-cyan-400 mb-1">Check for Bad Blocks</div>
<div class="text-xs text-gray-500 mb-2">Destructively scans the whole disk for permanent errors.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-recovery-badblocks">sudo badblocks -sv /dev/sda</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-recovery-badblocks">COPY</button>
</div>
</div>
</div>
<!-- Bootloader Recovery -->
<div>
<div class="section-header">03. GRUB & BOOTLOADER REPAIR SEQUENCE</div>
<div class="software-card mb-4" data-cmd-id="mount-root">
<div class="text-lg font-bold text-cyan-400 mb-1">Mount Root Partition</div>
<div class="text-xs text-gray-500 mb-2">Mounts the root partition for access during recovery.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-recovery-mount-root">sudo mount /dev/sda2 /mnt</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-recovery-mount-root">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="bind-vfs">
<div class="text-lg font-bold text-cyan-400 mb-1">Bind Virtual File Systems</div>
<div class="text-xs text-gray-500 mb-2">Required step before entering chroot environment for boot repair.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-recovery-bind-vfs">for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-recovery-bind-vfs">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="chroot">
<div class="text-lg font-bold text-cyan-400 mb-1">Enter Chroot Environment</div>
<div class="text-xs text-gray-500 mb-2">Switches the root directory to the mounted partition for system repair.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-recovery-chroot">sudo chroot /mnt</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-recovery-chroot">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="grub-install">
<div class="text-lg font-bold text-cyan-400 mb-1">Reinstall GRUB (after chroot)</div>
<div class="text-xs text-gray-500 mb-2">Installs the GRUB bootloader to the whole disk's MBR.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-recovery-grub-install">grub-install /dev/sda</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-recovery-grub-install">COPY</button>
</div>
</div>
<div class="software-card mb-4" data-cmd-id="grub-update">
<div class="text-lg font-bold text-cyan-400 mb-1">Update GRUB Config (after chroot)</div>
<div class="text-xs text-gray-500 mb-2">Scans for operating systems and generates the boot menu.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-recovery-grub-update">update-grub</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-recovery-grub-update">COPY</button>
</div>
</div>
</div>
</div>
</div>
<!-- 4. PROGRAMS Page (Extended) -->
<div id="programsPage" class="page-content hidden">
<h2 class="text-xl font-bold mb-4 text-green-400 uppercase">[ /var/lib/software ] Software Recommendations</h2>
<p class="text-xs text-yellow-400 mb-4 bg-gray-900 p-2 border border-gray-700">
>> Use the **COPY** button for installation commands. For software with no command listed, search for the official website/PPA.
</p>
<!-- Existing catalog -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" id="programsListContainer">
<!-- Graphics and photo editing -->
<div>
<div class="section-header">GRAPHICS AND PHOTO EDITING</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">GIMP</div>
<div class="text-xs text-gray-500 mb-2">A powerful, open-source image editor often cited as a free alternative to Adobe Photoshop.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-gimp">sudo apt install gimp</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-gimp">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Krita</div>
<div class="text-xs text-gray-500 mb-2">An advanced painting program that is especially useful for digital drawing and creating comic art.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-krita">sudo apt install krita</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-krita">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Inkscape</div>
<div class="text-xs text-gray-500 mb-2">A powerful vector graphics editor, similar to Adobe Illustrator, used for creating logos, icons, and illustrations.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-inkscape">sudo apt install inkscape</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-inkscape">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Pinta</div>
<div class="text-xs text-gray-500 mb-2">A simpler, user-friendly image editor modeled after Paint.NET for more casual image editing.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-pinta">sudo apt install pinta</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-pinta">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Darktable</div>
<div class="text-xs text-gray-500 mb-2">A virtual lighttable and darkroom for photographers to manage their digital negatives.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-darktable">sudo apt install darktable</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-darktable">COPY</button>
</div>
</div>
</div>
<!-- Office and productivity -->
<div>
<div class="section-header">OFFICE AND PRODUCTIVITY</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">LibreOffice</div>
<div class="text-xs text-gray-500 mb-2">The default office suite for Ubuntu (Writer, Calc, Impress). Almost always pre-installed.</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">OnlyOffice</div>
<div class="text-xs text-gray-500 mb-2">A modern office suite with excellent compatibility for Microsoft Office file formats.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-onlyoffice">sudo snap install onlyoffice-desktopeditors</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-onlyoffice">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Gnumeric</div>
<div class="text-xs text-gray-500 mb-2">A lightweight, standalone spreadsheet program known for its high accuracy.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-gnumeric">sudo apt install gnumeric</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-gnumeric">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">FocusWriter</div>
<div class="text-xs text-gray-500 mb-2">A simple, distraction-free writing application that hides the user interface while you are typing.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-focuswriter">sudo apt install focuswriter</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-focuswriter">COPY</button>
</div>
</div>
</div>
<!-- Web browsers -->
<div>
<div class="section-header">WEB BROWSERS</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Firefox</div>
<div class="text-xs text-gray-500 mb-2">The default web browser in Ubuntu.</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Chromium</div>
<div class="text-xs text-gray-500 mb-2">The open-source version of Google Chrome.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-chromium">sudo apt install chromium-browser</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-chromium">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Brave</div>
<div class="text-xs text-gray-500 mb-2">A fast, privacy-focused browser with a built-in ad and tracker blocker. (PPA installation required).</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Microsoft Edge</div>
<div class="text-xs text-gray-500 mb-2">The Edge browser is available as a Debian package. (See UbuntuUpdates for repo).</div>
</div>
</div>
<!-- Media and entertainment -->
<div>
<div class="section-header">MEDIA AND ENTERTAINMENT</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">VLC</div>
<div class="text-xs text-gray-500 mb-2">A popular, versatile media player that can play almost any video or audio format.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-vlc">sudo apt install vlc</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-vlc">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Spotify</div>
<div class="text-xs text-gray-500 mb-2">A music streaming service client.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-spotify">sudo snap install spotify</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-spotify">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Audacity</div>
<div class="text-xs text-gray-500 mb-2">A free, open-source audio editor for recording and editing sounds.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-audacity">sudo apt install audacity</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-audacity">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">OBS Studio</div>
<div class="text-xs text-gray-500 mb-2">A free and open-source software for video recording and live streaming.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-obs">sudo apt install obs-studio</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-obs">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Steam</div>
<div class="text-xs text-gray-500 mb-2">A popular game distribution and gaming platform.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-steAM">sudo apt install steam</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-steAM">COPY</button>
</div>
</div>
</div>
<!-- Development and Utilities -->
<div>
<div class="section-header">DEVELOPMENT & UTILITIES</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Git</div>
<div class="text-xs text-gray-500 mb-2">A version control system for tracking changes in source code during software development.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-git">sudo apt install git</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-git">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Visual Studio Code (VSCode)</div>
<div class="text-xs text-gray-500 mb-2">A popular lightweight but powerful source code editor. (Requires Debian package download).</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Eclipse</div>
<div class="text-xs text-gray-500 mb-2">A widely used IDE, especially for Java development.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-eclipse">sudo apt install eclipse</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-eclipse">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Archive Manager (file-roller)</div>
<div class="text-xs text-gray-500 mb-2">For opening, creating, and editing compressed files like ZIP and RAR.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-archive">sudo apt install file-roller</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-archive">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Thunderbird</div>
<div class="text-xs text-gray-500 mb-2">An open-source email client for managing your email, calendar, and address book.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-program-thunderbird">sudo apt install thunderbird</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-program-thunderbird">COPY</button>
</div>
</div>
</div>
</div>
<!-- ===== DISCOVERY CATALOG: DESKTOP APPS (EXTENSION) ===== -->
<!-- OFFICE & PRODUCTIVITY -->
<div class="section-header">OFFICE & PRODUCTIVITY</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- LibreOffice -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">LibreOffice</div>
<div class="text-xs text-gray-500 mb-2">Full office suite (Writer, Calc, Impress, Draw).</div>
<div class="flex items-center space-x-2 mt-2">
<code id="cmd-prog-libreoffice-apt" class="copy-cmd-code">sudo apt install libreoffice</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-libreoffice-apt">COPY</button>
</div>
<div class="flex items-center space-x-2 mt-1">
<code id="cmd-prog-libreoffice-dnf" class="copy-cmd-code">sudo dnf install libreoffice</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-libreoffice-dnf">COPY</button>
</div>
<div class="flex items-center space-x-2 mt-1">
<code id="cmd-prog-libreoffice-pac" class="copy-cmd-code">sudo pacman -S libreoffice-fresh</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-libreoffice-pac">COPY</button>
</div>
</div>
<!-- Scribus -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Scribus</div>
<div class="text-xs text-gray-500 mb-2">Professional desktop publishing (brochures, magazines, book layouts).</div>
<div class="flex items-center space-x-2 mt-2">
<code id="cmd-prog-scribus-apt" class="copy-cmd-code">sudo apt install scribus</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-scribus-apt">COPY</button>
</div>
<div class="flex items-center space-x-2 mt-1">
<code id="cmd-prog-scribus-dnf" class="copy-cmd-code">sudo dnf install scribus</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-scribus-dnf">COPY</button>
</div>
<div class="flex items-center space-x-2 mt-1">
<code id="cmd-prog-scribus-pac" class="copy-cmd-code">sudo pacman -S scribus</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-scribus-pac">COPY</button>
</div>
</div>
<!-- Calibre -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Calibre</div>
<div class="text-xs text-gray-500 mb-2">E-book manager & converter (Kindle, EPUB, PDF).</div>
<div class="flex items-center space-x-2 mt-2">
<code id="cmd-prog-calibre-apt" class="copy-cmd-code">sudo apt install calibre</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-calibre-apt">COPY</button>
</div>
<div class="flex items-center space-x-2 mt-1">
<code id="cmd-prog-calibre-dnf" class="copy-cmd-code">sudo dnf install calibre</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-calibre-dnf">COPY</button>
</div>
<div class="flex items-center space-x-2 mt-1">
<code id="cmd-prog-calibre-pac" class="copy-cmd-code">sudo pacman -S calibre</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-calibre-pac">COPY</button>
</div>
</div>
<!-- Okular -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Okular</div>
<div class="text-xs text-gray-500 mb-2">Powerful document viewer (PDF, DjVu, EPub, Markdown).</div>
<div class="flex items-center space-x-2 mt-2">
<code id="cmd-prog-okular-apt" class="copy-cmd-code">sudo apt install okular</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-okular-apt">COPY</button>
</div>
<div class="flex items-center space-x-2 mt-1">
<code id="cmd-prog-okular-dnf" class="copy-cmd-code">sudo dnf install okular</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-okular-dnf">COPY</button>
</div>
<div class="flex items-center space-x-2 mt-1">
<code id="cmd-prog-okular-pac" class="copy-cmd-code">sudo pacman -S okular</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-okular-pac">COPY</button>
</div>
</div>
<!-- Evince -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Evince</div>
<div class="text-xs text-gray-500 mb-2">Clean, fast PDF and PostScript viewer (GNOME).</div>
<div class="flex items-center space-x-2 mt-2">
<code id="cmd-prog-evince-apt" class="copy-cmd-code">sudo apt install evince</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-evince-apt">COPY</button>
</div>
<div class="flex items-center space-x-2 mt-1">
<code id="cmd-prog-evince-dnf" class="copy-cmd-code">sudo dnf install evince</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-evince-dnf">COPY</button>
</div>
<div class="flex items-center space-x-2 mt-1">
<code id="cmd-prog-evince-pac" class="copy-cmd-code">sudo pacman -S evince</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-evince-pac">COPY</button>
</div>
</div>
</div>
<!-- GRAPHICS, PHOTO & 3D -->
<div class="section-header">GRAPHICS, PHOTO & 3D</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- GIMP -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">GIMP</div>
<div class="text-xs text-gray-500 mb-2">Advanced image editor (layers, masks, plugins).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-gimp-apt" class="copy-cmd-code">sudo apt install gimp</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-gimp-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-gimp-dnf" class="copy-cmd-code">sudo dnf install gimp</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-gimp-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-gimp-pac" class="copy-cmd-code">sudo pacman -S gimp</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-gimp-pac">COPY</button></div>
</div>
<!-- Inkscape -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Inkscape</div>
<div class="text-xs text-gray-500 mb-2">Vector graphics (logos, illustrations, SVG).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-inkscape-apt" class="copy-cmd-code">sudo apt install inkscape</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-inkscape-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-inkscape-dnf" class="copy-cmd-code">sudo dnf install inkscape</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-inkscape-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-inkscape-pac" class="copy-cmd-code">sudo pacman -S inkscape</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-inkscape-pac">COPY</button></div>
</div>
<!-- Krita -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Krita</div>
<div class="text-xs text-gray-500 mb-2">Digital painting & comics (brush engines, layers).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-krita-apt" class="copy-cmd-code">sudo apt install krita</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-krita-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-krita-dnf" class="copy-cmd-code">sudo dnf install krita</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-krita-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-krita-pac" class="copy-cmd-code">sudo pacman -S krita</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-krita-pac">COPY</button></div>
</div>
<!-- Blender -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Blender</div>
<div class="text-xs text-gray-500 mb-2">3D modeling, animation, VFX, video editor.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-blender-apt" class="copy-cmd-code">sudo apt install blender</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-blender-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-blender-dnf" class="copy-cmd-code">sudo dnf install blender</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-blender-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-blender-pac" class="copy-cmd-code">sudo pacman -S blender</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-blender-pac">COPY</button></div>
</div>
<!-- Darktable -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Darktable</div>
<div class="text-xs text-gray-500 mb-2">RAW photo workflow & non-destructive editing.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-darktable-apt" class="copy-cmd-code">sudo apt install darktable</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-darktable-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-darktable-dnf" class="copy-cmd-code">sudo dnf install darktable</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-darktable-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-darktable-pac" class="copy-cmd-code">sudo pacman -S darktable</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-darktable-pac">COPY</button></div>
</div>
<!-- RawTherapee -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">RawTherapee</div>
<div class="text-xs text-gray-500 mb-2">RAW developer with advanced color controls & denoise.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-rawtherapee-apt" class="copy-cmd-code">sudo apt install rawtherapee</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-rawtherapee-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-rawtherapee-dnf" class="copy-cmd-code">sudo dnf install rawtherapee</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-rawtherapee-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-rawtherapee-pac" class="copy-cmd-code">sudo pacman -S rawtherapee</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-rawtherapee-pac">COPY</button></div>
</div>
</div>
<!-- VIDEO & AUDIO CREATION -->
<div class="section-header">VIDEO & AUDIO CREATION</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- Kdenlive -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Kdenlive</div>
<div class="text-xs text-gray-500 mb-2">Non-linear video editor (multi-track, effects, titles).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-kdenlive-apt" class="copy-cmd-code">sudo apt install kdenlive</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-kdenlive-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-kdenlive-dnf" class="copy-cmd-code">sudo dnf install kdenlive</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-kdenlive-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-kdenlive-pac" class="copy-cmd-code">sudo pacman -S kdenlive</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-kdenlive-pac">COPY</button></div>
</div>
<!-- OBS Studio -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">OBS Studio</div>
<div class="text-xs text-gray-500 mb-2">Recording & live streaming with scene compositor.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-obs-apt" class="copy-cmd-code">sudo apt install obs-studio</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-obs-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-obs-dnf" class="copy-cmd-code">sudo dnf install obs-studio</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-obs-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-obs-pac" class="copy-cmd-code">sudo pacman -S obs-studio</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-obs-pac">COPY</button></div>
</div>
<!-- Audacity -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Audacity</div>
<div class="text-xs text-gray-500 mb-2">Audio recording, editing & effects (multi-track).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-audacity-apt" class="copy-cmd-code">sudo apt install audacity</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-audacity-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-audacity-dnf" class="copy-cmd-code">sudo dnf install audacity</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-audacity-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-audacity-pac" class="copy-cmd-code">sudo pacman -S audacity</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-audacity-pac">COPY</button></div>
</div>
<!-- Ardour -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Ardour</div>
<div class="text-xs text-gray-500 mb-2">Professional DAW for recording, editing & mixing.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-ardour-apt" class="copy-cmd-code">sudo apt install ardour</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-ardour-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-ardour-dnf" class="copy-cmd-code">sudo dnf install ardour</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-ardour-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-ardour-pac" class="copy-cmd-code">sudo pacman -S ardour</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-ardour-pac">COPY</button></div>
</div>
<!-- LMMS -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">LMMS</div>
<div class="text-xs text-gray-500 mb-2">Music production (synths, samples, MIDI, FX).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-lmms-apt" class="copy-cmd-code">sudo apt install lmms</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-lmms-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-lmms-dnf" class="copy-cmd-code">sudo dnf install lmms</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-lmms-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-lmms-pac" class="copy-cmd-code">sudo pacman -S lmms</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-lmms-pac">COPY</button></div>
</div>
</div>
<!-- INTERNET & COMMUNICATION -->
<div class="section-header">INTERNET & COMMUNICATION</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- Chromium -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Chromium</div>
<div class="text-xs text-gray-500 mb-2">Open-source web browser.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-chromium-apt2" class="copy-cmd-code">sudo apt install chromium-browser</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-chromium-apt2">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-chromium-dnf2" class="copy-cmd-code">sudo dnf install chromium</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-chromium-dnf2">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-chromium-pac2" class="copy-cmd-code">sudo pacman -S chromium</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-chromium-pac2">COPY</button></div>
</div>
<!-- Thunderbird -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Thunderbird</div>
<div class="text-xs text-gray-500 mb-2">Email client with calendar & add-ons.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-thunderbird-apt2" class="copy-cmd-code">sudo apt install thunderbird</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-thunderbird-apt2">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-thunderbird-dnf2" class="copy-cmd-code">sudo dnf install thunderbird</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-thunderbird-dnf2">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-thunderbird-pac2" class="copy-cmd-code">sudo pacman -S thunderbird</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-thunderbird-pac2">COPY</button></div>
</div>
<!-- Telegram Desktop -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Telegram Desktop</div>
<div class="text-xs text-gray-500 mb-2">Fast messaging client with multi-device sync.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-telegram-apt" class="copy-cmd-code">sudo apt install telegram-desktop</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-telegram-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-telegram-dnf" class="copy-cmd-code">sudo dnf install telegram-desktop</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-telegram-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-telegram-pac" class="copy-cmd-code">sudo pacman -S telegram-desktop</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-telegram-pac">COPY</button></div>
</div>
<!-- Transmission GTK -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Transmission (GTK)</div>
<div class="text-xs text-gray-500 mb-2">Lightweight BitTorrent client (GTK UI).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-transmission-apt" class="copy-cmd-code">sudo apt install transmission-gtk</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-transmission-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-transmission-dnf" class="copy-cmd-code">sudo dnf install transmission-gtk</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-transmission-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-transmission-pac" class="copy-cmd-code">sudo pacman -S transmission-gtk</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-transmission-pac">COPY</button></div>
</div>
<!-- qBittorrent -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">qBittorrent</div>
<div class="text-xs text-gray-500 mb-2">Full-featured BitTorrent client with web UI.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-qbit-apt" class="copy-cmd-code">sudo apt install qbittorrent</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-qbit-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-qbit-dnf" class="copy-cmd-code">sudo dnf install qbittorrent</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-qbit-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-qbit-pac" class="copy-cmd-code">sudo pacman -S qbittorrent</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-qbit-pac">COPY</button></div>
</div>
</div>
<!-- SYSTEM UTILITIES & BACKUP -->
<div class="section-header">SYSTEM UTILITIES & BACKUP</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- GParted -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">GParted</div>
<div class="text-xs text-gray-500 mb-2">Partition editor (create, resize, format).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-gparted-apt" class="copy-cmd-code">sudo apt install gparted</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-gparted-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-gparted-dnf" class="copy-cmd-code">sudo dnf install gparted</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-gparted-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-gparted-pac" class="copy-cmd-code">sudo pacman -S gparted</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-gparted-pac">COPY</button></div>
</div>
<!-- Timeshift -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Timeshift</div>
<div class="text-xs text-gray-500 mb-2">System snapshots & restore points (rsync/Btrfs).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-timeshift-apt" class="copy-cmd-code">sudo apt install timeshift</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-timeshift-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-timeshift-dnf" class="copy-cmd-code">sudo dnf install timeshift</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-timeshift-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-timeshift-pac" class="copy-cmd-code">sudo pacman -S timeshift</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-timeshift-pac">COPY</button></div>
</div>
<!-- BleachBit -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">BleachBit</div>
<div class="text-xs text-gray-500 mb-2">Clean caches, logs & temporary files.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-bleachbit-apt" class="copy-cmd-code">sudo apt install bleachbit</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-bleachbit-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-bleachbit-dnf" class="copy-cmd-code">sudo dnf install bleachbit</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-bleachbit-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-bleachbit-pac" class="copy-cmd-code">sudo pacman -S bleachbit</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-bleachbit-pac">COPY</button></div>
</div>
<!-- Syncthing -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Syncthing</div>
<div class="text-xs text-gray-500 mb-2">Private, peer-to-peer file sync across devices.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-syncthing-apt" class="copy-cmd-code">sudo apt install syncthing</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-syncthing-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-syncthing-dnf" class="copy-cmd-code">sudo dnf install syncthing</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-syncthing-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-syncthing-pac" class="copy-cmd-code">sudo pacman -S syncthing</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-syncthing-pac">COPY</button></div>
</div>
<!-- Baobab -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Disk Usage Analyzer (Baobab)</div>
<div class="text-xs text-gray-500 mb-2">Visualize disk space usage, find large folders.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-baobab-apt" class="copy-cmd-code">sudo apt install baobab</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-baobab-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-baobab-dnf" class="copy-cmd-code">sudo dnf install baobab</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-baobab-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-baobab-pac" class="copy-cmd-code">sudo pacman -S baobab</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-baobab-pac">COPY</button></div>
</div>
</div>
<!-- DEV & IDEs -->
<div class="section-header">DEV & IDEs</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- Eclipse -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Eclipse IDE</div>
<div class="text-xs text-gray-500 mb-2">Extensible IDE (Java, C/C++, plugins, tooling).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-eclipse-apt2" class="copy-cmd-code">sudo apt install eclipse</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-eclipse-apt2">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-eclipse-dnf2" class="copy-cmd-code">sudo dnf install eclipse</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-eclipse-dnf2">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-eclipse-pac2" class="copy-cmd-code">sudo pacman -S eclipse-java</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-eclipse-pac2">COPY</button></div>
</div>
<!-- Qt Creator -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Qt Creator</div>
<div class="text-xs text-gray-500 mb-2">IDE for Qt apps (C++/QML designer, debugger).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-qtcreator-apt" class="copy-cmd-code">sudo apt install qtcreator</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-qtcreator-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-qtcreator-dnf" class="copy-cmd-code">sudo dnf install qt-creator</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-qtcreator-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-qtcreator-pac" class="copy-cmd-code">sudo pacman -S qtcreator</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-qtcreator-pac">COPY</button></div>
</div>
<!-- Geany -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Geany</div>
<div class="text-xs text-gray-500 mb-2">Lightweight IDE/editor (fast, low memory).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-geany-apt" class="copy-cmd-code">sudo apt install geany</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-geany-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-geany-dnf" class="copy-cmd-code">sudo dnf install geany</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-geany-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-geany-pac" class="copy-cmd-code">sudo pacman -S geany</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-geany-pac">COPY</button></div>
</div>
<!-- Code::Blocks -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">Code::Blocks</div>
<div class="text-xs text-gray-500 mb-2">C/C++ IDE with project templates & debugger.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-cb-apt" class="copy-cmd-code">sudo apt install codeblocks</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-cb-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-cb-dnf" class="copy-cmd-code">sudo dnf install codeblocks</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-cb-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-cb-pac" class="copy-cmd-code">sudo pacman -S codeblocks</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-cb-pac">COPY</button></div>
</div>
</div>
<!-- EXTRA: FILE TRANSFER & UTILITIES -->
<div class="section-header">FILE TRANSFER & UTILITIES</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- FileZilla -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">FileZilla</div>
<div class="text-xs text-gray-500 mb-2">FTP/SFTP client with site manager & drag-drop.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-filezilla-apt" class="copy-cmd-code">sudo apt install filezilla</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-filezilla-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-filezilla-dnf" class="copy-cmd-code">sudo dnf install filezilla</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-filezilla-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-filezilla-pac" class="copy-cmd-code">sudo pacman -S filezilla</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-filezilla-pac">COPY</button></div>
</div>
<!-- nnn -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">nnn</div>
<div class="text-xs text-gray-500 mb-2">Blazing-fast terminal file manager with plugins.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-nnn-apt" class="copy-cmd-code">sudo apt install nnn</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-nnn-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-nnn-dnf" class="copy-cmd-code">sudo dnf install nnn</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-nnn-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-nnn-pac" class="copy-cmd-code">sudo pacman -S nnn</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-nnn-pac">COPY</button></div>
</div>
<!-- ranger -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">ranger</div>
<div class="text-xs text-gray-500 mb-2">VIM-style terminal file manager with previews.</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-ranger-apt" class="copy-cmd-code">sudo apt install ranger</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-ranger-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-ranger-dnf" class="copy-cmd-code">sudo dnf install ranger</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-ranger-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-ranger-pac" class="copy-cmd-code">sudo pacman -S ranger</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-ranger-pac">COPY</button></div>
</div>
</div>
<!-- ENGINEERING / MAKER -->
<div class="section-header">ENGINEERING / MAKER</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- FreeCAD -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">FreeCAD</div>
<div class="text-xs text-gray-500 mb-2">Parametric 3D CAD (models, assemblies, CAM add-ons).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-freecad-apt" class="copy-cmd-code">sudo apt install freecad</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-freecad-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-freecad-dnf" class="copy-cmd-code">sudo dnf install freecad</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-freecad-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-freecad-pac" class="copy-cmd-code">sudo pacman -S freecad</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-freecad-pac">COPY</button></div>
</div>
<!-- KiCad -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">KiCad</div>
<div class="text-xs text-gray-500 mb-2">PCB design suite (schematics, layout, 3D viewer).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-kicad-apt" class="copy-cmd-code">sudo apt install kicad</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-kicad-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-kicad-dnf" class="copy-cmd-code">sudo dnf install kicad</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-kicad-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-kicad-pac" class="copy-cmd-code">sudo pacman -S kicad</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-kicad-pac">COPY</button></div>
</div>
<!-- GNU Octave -->
<div class="software-card">
<div class="text-lg font-bold text-cyan-400 mb-1">GNU Octave</div>
<div class="text-xs text-gray-500 mb-2">Numerical computing (MATLAB-compatible language).</div>
<div class="flex items-center space-x-2 mt-2"><code id="cmd-prog-octave-apt" class="copy-cmd-code">sudo apt install octave</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-octave-apt">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-octave-dnf" class="copy-cmd-code">sudo dnf install octave</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-octave-dnf">COPY</button></div>
<div class="flex items-center space-x-2 mt-1"><code id="cmd-prog-octave-pac" class="copy-cmd-code">sudo pacman -S octave</code><button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-prog-octave-pac">COPY</button></div>
</div>
</div>
<!-- ===== END DISCOVERY CATALOG ===== -->
</div>
<!-- 5. PYTHON Page -->
<div id="pythonPage" class="page-content hidden">
<h2 class="text-xl font-bold mb-4 text-green-400 uppercase">[ /usr/bin/python ] Package Installer Assistant</h2>
<p class="text-xs text-yellow-400 mb-4 bg-gray-900 p-2 border border-gray-700">
>> Select your installation environment and click packages to add them to the command list below.
</p>
<!-- PYTHON CONFIGURATION AREA -->
<div class="software-card mb-6 p-4">
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 items-end">
<div>
<label class="config-label">Select Python Environment / Package Manager</label>
<select id="pythonEnvironment" class="config-input w-full rounded-none">
<option value="pip3">System Python 3 (pip3)</option>
<option value="pip">Default 'pip' (often Python 2 or venv)</option>
<option value="user">User-level Install (pip --user)</option>
<option value="venv">Virtual Environment (source venv/bin/activate && pip)</option>
</select>
</div>
<div class="flex items-center h-full">
<input type="checkbox" id="chainInstallCheckbox" class="h-4 w-4 text-green-500 focus:ring-green-500 border-gray-600 rounded-none bg-gray-800 mr-2" checked>
<label for="chainInstallCheckbox" class="text-sm font-medium text-gray-300">Chain: Install pip + Packages (Recommended for new systems)</label>
</div>
<div>
<button id="generateCommandBtn" class="btn-action w-full bg-cyan-600 text-black border-cyan-500 hover:bg-cyan-700 hover:text-white mt-1 md:mt-0">
GENERATE INSTALL COMMAND
</button>
</div>
</div>
<div class="mt-4">
<label class="config-label">Generated Command:</label>
<div class="flex items-center space-x-2 mt-1">
<code class="copy-cmd-code" id="pythonCommandOutput" style="min-height: 2.5rem; white-space: normal;">
Select an environment and click 'GENERATE INSTALL COMMAND' to build your command.
</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="pythonCommandOutput" id="copyPythonCommandBtn">COPY</button>
</div>
</div>
</div>
<!-- PACKAGE LIST AREA -->
<div class="section-header">02. PYTHON PACKAGE SELECTION (TOP 100)</div>
<div id="pythonPackagesList" class="h-[600px] overflow-y-auto border border-gray-700 bg-[#0d0d0d] rounded-none">
<!-- Packages will be injected here by JavaScript -->
</div>
</div>
<!-- 6. DOWNLOADS Page -->
<div id="downloadsPage" class="page-content hidden">
<h2 class="text-xl font-bold mb-4 text-orange-400 uppercase">[ /var/lib/downloads ] Temporary File Management</h2>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
<!-- Command Box -->
<div>
<div class="section-header">01. DOWNLOAD & TRANSFER UTILITIES</div>
<p class="text-sm text-gray-400 mb-4">Use the configuration options to dynamically generate download commands.</p>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">File URL</div>
<div class="text-xs text-gray-500 mb-2">The direct URL to the file you wish to download.</div>
<input type="text" id="fileUrlInput" value="https://example.com/file.zip" class="config-input w-full rounded-none config-trigger" data-template="https://example.com/file.zip">
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Wget Download</div>
<div class="text-xs text-gray-500 mb-2">Non-interactive network downloader, supports resuming downloads.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-download-wget">wget https://example.com/file.zip</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-download-wget">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">cURL Download</div>
<div class="text-xs text-gray-500 mb-2">Transfer data with URL syntax, often preferred for API/Web requests.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-download-curl">curl -O https://example.com/file.zip</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-download-curl">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Rsync Recursive Copy</div>
<div class="text-xs text-gray-500 mb-2">Efficiently copy files to/from a remote host (`user@host:/remote/path`).</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-download-rsync">rsync -avz user@host:/remote/path /local/path/</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-download-rsync">COPY</button>
</div>
</div>
</div>
<!-- Temp File Utilities -->
<div>
<div class="section-header">02. TEMPORARY FILE UTILITIES</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">List Temp Directory</div>
<div class="text-xs text-gray-500 mb-2">Show the contents of the common temporary file directory.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-download-list-tmp">ls -lh /tmp</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-download-list-tmp">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Clean Old Temp Files</div>
<div class="text-xs text-gray-500 mb-2">Find and delete files older than 7 days in the temporary folder.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-download-clean-tmp">find /tmp -type f -atime +7 -delete</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-download-clean-tmp">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Create Temporary Directory</div>
<div class="text-xs text-gray-500 mb-2">Create a secure temporary directory and echo its path.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-download-mktemp">mktemp -d -t mytempdir.XXXXXX</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-download-mktemp">COPY</button>
</div>
</div>
</div>
</div>
</div>
<!-- 7. CONFIG Page -->
<div id="configPage" class="page-content hidden">
<h2 class="text-xl font-bold mb-4 text-orange-400 uppercase">[ /etc/config ] System Configuration & Shell Customization</h2>
<p class="text-xs text-yellow-400 mb-4 bg-gray-900 p-2 border border-gray-700">
>> These commands help modify system behavior and shell environment. Always backup configuration files first!
</p>
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
<!-- System Config -->
<div>
<div class="section-header">01. SYSTEM CONFIGURATION</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">View Current Timezone</div>
<div class="text-xs text-gray-500 mb-2">Displays the currently configured system timezone.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-config-timezone-view">timedatectl status | grep 'Time zone'</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-config-timezone-view">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Set Timezone</div>
<div class="text-xs text-gray-500 mb-2">Set system timezone (e.g., `timedatectl set-timezone 'America/New_York'`).</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-config-timezone-set">sudo timedatectl set-timezone 'Europe/London'</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-config-timezone-set">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Apply Sysctl (Kernel) Settings</div>
<div class="text-xs text-gray-500 mb-2">Apply changes made to `/etc/sysctl.conf` without rebooting.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-config-sysctl">sudo sysctl -p</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-config-sysctl">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">List All Systemd Services</div>
<div class="text-xs text-gray-500 mb-2">List all service units known to the system manager.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-config-services">systemctl list-units --type=service</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-config-services">COPY</button>
</div>
</div>
</div>
<!-- Shell Customization -->
<div>
<div class="section-header">02. SHELL CUSTOMIZATION (BASH/ZSH)</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Reload .bashrc</div>
<div class="text-xs text-gray-500 mb-2">Apply changes to your bash configuration without starting a new terminal.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-config-reload-bashrc">source ~/.bashrc</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-config-reload-bashrc">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">View PATH Variable</div>
<div class="text-xs text-gray-500 mb-2">Shows the directories where the shell looks for executable programs.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-config-view-path">echo $PATH | tr ':' '\n'</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-config-view-path">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Create Temporary Alias</div>
<div class="text-xs text-gray-500 mb-2">Define a temporary shortcut for a long command (resets on terminal close).</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-config-alias">alias lsa='ls -lah'</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-config-alias">COPY</button>
</div>
</div>
<div class="software-card mb-4">
<div class="text-lg font-bold text-cyan-400 mb-1">Set Default Editor (Environment Variable)</div>
<div class="text-xs text-gray-500 mb-2">Sets `nano` as the default editor for command line tools.</div>
<div class="flex items-center space-x-2 mt-3">
<code class="copy-cmd-code" id="cmd-config-editor">export EDITOR=nano</code>
<button class="copy-cmd-to-terminal copy-btn-inner" data-command-target="cmd-config-editor">COPY</button>
</div>
</div>
</div>
</div>
</div>
<!-- (No terminal output section) -->
</div>
<script>
// --- DATA STRUCTURES (Python Packages) ---
const pythonPackages = [
{ name: "requests", desc: "Elegant and simple HTTP library, essential for web interaction." },
{ name: "pandas", desc: "Data analysis and manipulation library, offering data structures like DataFrames." },
{ name: "numpy", desc: "Fundamental package for scientific computing, providing high-performance arrays and tools." },
{ name: "matplotlib", desc: "Comprehensive library for creating static, animated, and interactive visualizations." },
{ name: "flask", desc: "A lightweight WSGI web application framework." },
{ name: "django", desc: "A high-level Python Web framework that encourages rapid development and clean, pragmatic design." },
{ name: "scipy", desc: "Open-source software for mathematics, science, and engineering." },
{ name: "scikit-learn", desc: "Machine learning library featuring various classification, regression and clustering algorithms." },
{ name: "beautifulsoup4", desc: "Library for pulling data out of HTML and XML files (web scraping)." },
{ name: "sqlalchemy", desc: "SQL toolkit and Object Relational Mapper (ORM)." },
{ name: "pytest", desc: "A mature full-featured Python testing framework." },
{ name: "pillow", desc: "The friendly PIL fork, adding image processing capabilities." },
{ name: "scrapy", desc: "A fast high-level web crawling and web scraping framework." },
{ name: "asyncio", desc: "A built-in library for writing concurrent code using the async/await syntax." },
{ name: "click", desc: "A package for creating beautiful command line interfaces (CLIs)." },
{ name: "tqdm", desc: "A fast, extensible progress bar for loops and iterables." },
{ name: "selenium", desc: "Framework for automating web browsers." },
{ name: "lxml", desc: "A very fast, feature-rich, and easy-to-use library for processing XML and HTML." },
{ name: "six", desc: "Python 2 and 3 compatibility utilities." },
{ name: "attrs", desc: "Classes without boilerplate." },
{ name: "black", desc: "The uncompromising Python code formatter." },
{ name: "mypy", desc: "A static type checker for Python." },
{ name: "pylint", desc: "A static code analyzer for Python." },
{ name: "virtualenv", desc: "A tool for creating isolated Python environments." },
{ name: "boto3", desc: "The Amazon Web Services (AWS) SDK for Python." },
{ name: "pyyaml", desc: "YAML parser and emitter for Python." },
{ name: "openpyxl", desc: "A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files." },
{ name: "reportlab", desc: "An industry-strength PDF generation library." },
{ name: "celery", desc: "An asynchronous task queue/job queue based on distributed message passing." },
{ name: "gevent", desc: "A coroutine-based Python networking library that uses greenlet." },
{ name: "tornado", desc: "A Python web framework and asynchronous networking library." },
{ name: "gunicorn", desc: "A Python WSGI HTTP Server for UNIX." },
{ name: "uwsgi", desc: "A high-performance application server." },
{ name: "tabulate", desc: "Pretty-print tabular data in Python." },
{ name: "requests-html", desc: "Human-friendly HTML parsing for Python." },
{ name: "arrow", desc: "A sensible, human-friendly approach to dates and times." },
{ name: "pendulum", desc: "Python datetimes made easy." },
{ name: "dash", desc: "A productive Python framework for building analytical web applications." },
{ name: "plotly", desc: "An open-source library for creating interactive, publication-quality graphs." },
{ name: "fastapi", desc: "A modern, fast (high-performance) web framework for building APIs." },
{ name: "uvicorn", desc: "An ASGI server implementation for Python." },
{ name: "pydantic", desc: "Data validation and settings management using Python type hints." },
{ name: "beautifulsoup", desc: "Older version, but still common in some legacy projects." },
{ name: "xmltodict", desc: "Makes working with XML feel like working with JSON." },
{ name: "jwt", desc: "JSON Web Token implementation in Python." },
{ name: "pytz", desc: "World timezone definitions for Python." },
{ name: "psycopg2", desc: "PostgreSQL database adapter for the Python programming language." },
{ name: "mysqlclient", desc: "An interface to MySQL for Python." },
{ name: "redis", desc: "Python client for Redis key-value store." },
{ name: "paramiko", desc: "SSHv2 protocol library for Python." },
{ name: "fabric", desc: "A high-level Python library for executing shell commands remotely over SSH." },
{ name: "cryptography", desc: "A package designed to expose cryptographic primitives and recipes." },
{ name: "coverage", desc: "Measure code coverage of Python programs." },
{ name: "sphinx", desc: "Tool that makes it easy to create intelligent and beautiful documentation." },
{ name: "docutils", desc: "Processing system for reStructuredText." },
{ name: "jinja2", desc: "A modern and designer-friendly templating language for Python." },
{ name: "mako", desc: "A super-fast, Python-based templating engine." },
{ name: "web3", desc: "Ethereum Web3 client library." },
{ name: "eth-abi", desc: "Application Binary Interface (ABI) for Ethereum." },
{ name: "trio", desc: "A friendly Python library for async concurrent I/O." },
{ name: "motor", desc: "Asynchronous Python driver for MongoDB." },
{ name: "pymongo", desc: "Official MongoDB driver for Python." },
{ name: "networkx", desc: "Creation, manipulation, and study of the structure, dynamics, and functions of complex networks." },
{ name: "gensim", desc: "Topic modelling for humans." },
{ name: "nltk", desc: "Natural Language Toolkit, a leading platform for building Python programs to work with human language data." },
{ name: "spacy", desc: "Industrial-strength Natural Language Processing (NLP) in Python." },
{ name: "tensorflow", desc: "An end-to-end open source platform for machine learning." },
{ name: "pytorch", desc: "A deep learning framework from Facebook." },
{ name: "keras", desc: "High-level neural networks API, typically running on TensorFlow." },
{ name: "theano", desc: "A optimizing compiler for evaluating mathematical expressions, especially those with multi-dimensional arrays." },
{ name: "statsmodels", desc: "Statistical modeling and econometrics in Python." },
{ name: "seaborn", desc: "Statistical data visualization based on Matplotlib." },
{ name: "bokeh", desc: "Interactive visualization library that targets modern web browsers." },
{ name: "folium", desc: "Makes it easy to visualize data on an interactive leaflet map." },
{ name: "geopandas", desc: "Extends pandas data structures to allow spatial operations on geometric types." },
{ name: "Pyglet", desc: "Cross-platform windowing and multimedia library for Python." },
{ name: "pygame", desc: "Set of Python modules designed for writing video games." },
{ name: "kivy", desc: "Open source library for rapid development of applications that make use of innovative user interfaces." },
{ name: "pyqt5", desc: "Set of Python bindings for the Qt application framework." },
{ name: "wxpython", desc: "A set of Python wrappers for the wxWidgets GUI toolkit." },
{ name: "tkinker", desc: "Python's standard GUI toolkit." },
{ name: "jupyter", desc: "Interactive computing, notebook interface." },
{ name: "ipython", desc: "Powerful interactive shell." },
{ name: "colorama", desc: "Cross-platform colored terminal text." },
{ name: "httpx", desc: "A next generation HTTP client for Python." },
{ name: "motor", desc: "Asynchronous Python driver for MongoDB." },
{ name: "httplib2", desc: "A comprehensive HTTP client library." },
{ name: "zlib", desc: "Compression and decompression utilities (often built-in but sometimes needed)." },
{ name: "keyring", desc: "Cross-platform access to the system keyring service." },
{ name: "idna", desc: "Internationalized Domain Names in Applications (IDNA) support." },
{ name: "setuptools", desc: "Building and distributing Python packages (often pre-installed)." },
{ name: "wheel", desc: "The new standard for Python distribution." },
{ name: "pip-tools", desc: "Tools to keep your pinned dependencies fresh." },
{ name: "poetry", desc: "Dependency management and packaging made easy." },
{ name: "tox", desc: "Automating testing in multiple environments." },
{ name: "invoke", desc: "Library for running shell commands & organizing task-focused code." },
{ name: "watchdog", desc: "API and shell utilities to monitor file system events." },
{ name: "cookiecutter", desc: "A command-line utility that creates projects from cookiecutters (project templates)." },
{ name: "factory_boy", desc: "A fixtures replacement for Python." },
];
// --- CORE APPLICATION LOGIC ---
document.addEventListener('DOMContentLoaded', () => {
const appContainer = document.querySelector('.app-container');
const navTabs = document.getElementById('navTabs');
const pages = {
dashboard: document.getElementById('dashboardPage'),
network: document.getElementById('networkPage'),
recovery: document.getElementById('recoveryPage'),
programs: document.getElementById('programsPage'),
python: document.getElementById('pythonPage'),
downloads: document.getElementById('downloadsPage'),
config: document.getElementById('configPage')
};
// 1. NAVIGATION LOGIC
const navigateTo = (pageId) => {
Object.keys(pages).forEach(id => {
pages[id].classList.add('hidden');
});
pages[pageId].classList.remove('hidden');
document.querySelectorAll('.nav-button').forEach(btn => {
btn.classList.remove('active');
if (btn.getAttribute('data-page') === pageId) {
btn.classList.add('active');
}
});
};
navTabs.addEventListener('click', (e) => {
if (e.target.matches('.nav-button')) {
const page = e.target.getAttribute('data-page');
navigateTo(page);
}
});
// Set initial page to dashboard
navigateTo('dashboard');
// 2. COPY TO CLIPBOARD
const copyToClipboard = (text, buttonElement) => {
try {
const tempInput = document.createElement('textarea');
tempInput.value = text;
document.body.appendChild(tempInput);
tempInput.select();
document.execCommand('copy');
document.body.removeChild(tempInput);
buttonElement.classList.add('copy-flash');
setTimeout(() => {
buttonElement.classList.remove('copy-flash');
}, 500);
} catch (err) {
console.error('Could not copy command: ', err);
}
};
appContainer.addEventListener('click', (e) => {
if (e.target.matches('.copy-cmd-to-terminal')) {
const targetId = e.target.getAttribute('data-command-target');
const codeElement = document.getElementById(targetId);
if (codeElement) {
copyToClipboard(codeElement.textContent.trim(), e.target);
}
}
});
// 3. NETWORK & RECOVERY CONFIG FIELD UPDATES
const updateCommandTemplates = () => {
const host = document.getElementById('targetHostInput')?.value || 'google.com';
const iface = document.getElementById('interfaceInput')?.value || 'eth0';
const port = document.getElementById('ncTestPortInput')?.value || '80';
const dnsType = document.getElementById('dnsTypeInput')?.value || 'A';
if(document.getElementById('cmd-network-ping')) document.getElementById('cmd-network-ping').textContent = `ping ${host} -c 4`;
if(document.getElementById('cmd-network-traceroute')) document.getElementById('cmd-network-traceroute').textContent = `traceroute ${host}`;
if(document.getElementById('cmd-network-mtr')) document.getElementById('cmd-network-mtr').textContent = `mtr -c 10 ${host}`;
if(document.getElementById('cmd-network-netcat-check')) document.getElementById('cmd-network-netcat-check').textContent = `nc -zv ${host} ${port}`;
if(document.getElementById('cmd-network-ip-addr')) document.getElementById('cmd-network-ip-addr').textContent = `ip addr show ${iface}`;
if(document.getElementById('cmd-network-tcpdump')) document.getElementById('cmd-network-tcpdump').textContent = `sudo tcpdump -i ${iface} -n -s 0 -c 10`;
if(document.getElementById('cmd-network-nmap')) document.getElementById('cmd-network-nmap').textContent = `sudo nmap -sV ${host}`;
if(document.getElementById('cmd-network-dig')) document.getElementById('cmd-network-dig').textContent = `dig ${host} ${dnsType} +short`;
if(document.getElementById('cmd-network-host')) document.getElementById('cmd-network-host').textContent = `host ${host}`;
const rootPart = document.getElementById('rootPartitionInput')?.value || '/dev/sda2';
const wholeDisk = document.getElementById('wholeDiskInput')?.value || '/dev/sda';
if(document.getElementById('cmd-recovery-unmount')) document.getElementById('cmd-recovery-unmount').textContent = `sudo umount -l ${rootPart}`;
if(document.getElementById('cmd-recovery-fsck-auto')) document.getElementById('cmd-recovery-fsck-auto').textContent = `sudo fsck -y ${rootPart}`;
if(document.getElementById('cmd-recovery-badblocks')) document.getElementById('cmd-recovery-badblocks').textContent = `sudo badblocks -sv ${wholeDisk}`;
if(document.getElementById('cmd-recovery-mount-root')) document.getElementById('cmd-recovery-mount-root').textContent = `sudo mount ${rootPart} /mnt`;
if(document.getElementById('cmd-recovery-grub-install')) document.getElementById('cmd-recovery-grub-install').textContent = `grub-install ${wholeDisk}`;
const fileUrl = document.getElementById('fileUrlInput')?.value || 'https://example.com/file.zip';
if(document.getElementById('cmd-download-wget')) document.getElementById('cmd-download-wget').textContent = `wget ${fileUrl}`;
if(document.getElementById('cmd-download-curl')) document.getElementById('cmd-download-curl').textContent = `curl -O ${fileUrl}`;
};
document.querySelectorAll('.config-trigger').forEach(input => {
input.addEventListener('input', updateCommandTemplates);
});
updateCommandTemplates();
// 4. PYTHON PAGE LOGIC
const pythonPackagesList = document.getElementById('pythonPackagesList');
const pythonCommandOutput = document.getElementById('pythonCommandOutput');
const generateCommandBtn = document.getElementById('generateCommandBtn');
const pythonEnvironment = document.getElementById('pythonEnvironment');
const chainInstallCheckbox = document.getElementById('chainInstallCheckbox');
const renderPythonPackages = () => {
pythonPackages.forEach(pkg => {
const item = document.createElement('div');
item.className = 'package-item';
item.setAttribute('data-package', pkg.name);
item.innerHTML = `
<span class="package-name">${pkg.name}</span>
<span class="package-desc">${pkg.desc}</span>
`;
item.addEventListener('click', () => {
item.classList.toggle('selected');
updatePythonCommand();
});
pythonPackagesList.appendChild(item);
});
};
const getSelectedPythonPackages = () => {
return Array.from(pythonPackagesList.querySelectorAll('.package-item.selected'))
.map(item => item.getAttribute('data-package'));
};
const updatePythonCommand = () => {
const packages = getSelectedPythonPackages();
const environmentType = pythonEnvironment.value;
const chainPip = chainInstallCheckbox.checked;
if (packages.length === 0) {
pythonCommandOutput.textContent = "Select one or more packages above.";
return;
}
const packageString = packages.join(' ');
let baseCommand = "";
if (chainPip && (environmentType === 'pip3' || environmentType === 'pip')) {
baseCommand = `sudo apt update && sudo apt install python3-pip -y && ${environmentType} install ${packageString}`;
} else {
switch (environmentType) {
case 'pip':
case 'pip3':
baseCommand = `${environmentType} install ${packageString}`;
break;
case 'user':
baseCommand = `pip install --user ${packageString}`;
break;
case 'venv':
baseCommand = `python3 -m venv .venv && source .venv/bin/activate && pip install ${packageString} && deactivate`;
break;
default:
baseCommand = `pip install ${packageString}`;
}
}
pythonCommandOutput.textContent = baseCommand;
};
generateCommandBtn.addEventListener('click', updatePythonCommand);
pythonEnvironment.addEventListener('change', updatePythonCommand);
chainInstallCheckbox.addEventListener('change', updatePythonCommand);
renderPythonPackages();
updatePythonCommand();
});
</script>
</body>
</html>