refactor: migrate app data to modular JSON files

This commit is contained in:
N1C4T
2026-02-23 15:42:20 +04:00
parent a5cef79bbb
commit f9c7435ed1
18 changed files with 3984 additions and 263 deletions

View File

@@ -104,7 +104,8 @@ src/
│ ├── useTooltip.ts │ ├── useTooltip.ts
│ └── useDelayedTooltip.ts │ └── useDelayedTooltip.ts
├── lib/ ├── lib/
│ ├── data.ts # Apps, distros, icons │ ├── apps/ # JSON application files by category
│ ├── data.ts # Categories, distros, and app unifier
│ ├── aur.ts # AUR package detection │ ├── aur.ts # AUR package detection
│ ├── analytics.ts # Umami tracking │ ├── analytics.ts # Umami tracking
│ ├── utils.ts # Utility functions │ ├── utils.ts # Utility functions

View File

@@ -0,0 +1,26 @@
import fs from 'fs';
import path from 'path';
import { apps } from '../src/lib/data';
function sanitizeFilename(name: string) {
return name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/(^-|-$)/g, '') + '.json';
}
const outDir = path.join(__dirname, '../src/lib/apps');
if (!fs.existsSync(outDir)) {
fs.mkdirSync(outDir, { recursive: true });
}
const byCategory: Record<string, typeof apps> = {};
for (const app of apps) {
if (!byCategory[app.category]) {
byCategory[app.category] = [];
}
byCategory[app.category].push(app);
}
for (const [category, categoryApps] of Object.entries(byCategory)) {
const filename = sanitizeFilename(category);
fs.writeFileSync(path.join(outDir, filename), JSON.stringify(categoryApps, null, 4));
console.log(`Wrote ${filename}`);
}

431
src/lib/apps/cli-tools.json Normal file
View File

@@ -0,0 +1,431 @@
[
{
"id": "btop",
"name": "btop",
"description": "Beautiful terminal resource monitor with graphs",
"category": "CLI Tools",
"targets": {
"ubuntu": "btop",
"debian": "btop",
"arch": "btop",
"fedora": "btop",
"opensuse": "btop",
"nix": "btop",
"homebrew": "btop"
},
"unavailableReason": "btop is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "monitor-dashboard",
"color": "#FF6B6B"
}
},
{
"id": "htop",
"name": "htop",
"description": "Interactive process viewer and system monitor",
"category": "CLI Tools",
"targets": {
"ubuntu": "htop",
"debian": "htop",
"arch": "htop",
"fedora": "htop",
"opensuse": "htop",
"nix": "htop",
"snap": "htop",
"homebrew": "htop"
},
"unavailableReason": "htop is a CLI tool and not available as a Flatpak.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "chart-bar",
"color": "#4CE026"
}
},
{
"id": "fastfetch",
"name": "fastfetch",
"description": "Fast neofetch-like system info tool",
"category": "CLI Tools",
"targets": {
"ubuntu": "fastfetch",
"debian": "fastfetch",
"fedora": "fastfetch",
"arch": "fastfetch",
"opensuse": "fastfetch",
"nix": "fastfetch",
"homebrew": "fastfetch"
},
"unavailableReason": "CLI-only (no Flatpak/Snap).",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "console",
"color": "#57F287"
}
},
{
"id": "eza",
"name": "eza",
"description": "Modern ls replacement with colors and icons",
"category": "CLI Tools",
"targets": {
"ubuntu": "eza",
"debian": "eza",
"arch": "eza",
"opensuse": "eza",
"nix": "eza",
"homebrew": "eza"
},
"unavailableReason": "Unmaintained on Fedora; removed from repos. CLI-only (no Flatpak/Snap).",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "format-list-bulleted",
"color": "#F9E64F"
}
},
{
"id": "bat",
"name": "bat",
"description": "Cat clone with syntax highlighting and git integration",
"category": "CLI Tools",
"targets": {
"ubuntu": "bat",
"debian": "bat",
"arch": "bat",
"fedora": "bat",
"opensuse": "bat",
"nix": "bat",
"homebrew": "bat"
},
"unavailableReason": "bat is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "file-code-outline",
"color": "#A6E22E"
}
},
{
"id": "fzf",
"name": "fzf",
"description": "Lightning-fast command-line fuzzy finder",
"category": "CLI Tools",
"targets": {
"ubuntu": "fzf",
"debian": "fzf",
"arch": "fzf",
"fedora": "fzf",
"opensuse": "fzf",
"nix": "fzf",
"homebrew": "fzf"
},
"unavailableReason": "fzf is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "magnify",
"color": "#FF0055"
}
},
{
"id": "ripgrep",
"name": "ripgrep",
"description": "Ultra-fast recursive search respecting .gitignore",
"category": "CLI Tools",
"targets": {
"ubuntu": "ripgrep",
"debian": "ripgrep",
"arch": "ripgrep",
"fedora": "ripgrep",
"opensuse": "ripgrep",
"nix": "ripgrep",
"homebrew": "ripgrep"
},
"unavailableReason": "ripgrep is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "text-search",
"color": "#C0C0C0"
}
},
{
"id": "zoxide",
"name": "zoxide",
"description": "Smart cd that learns your habits",
"category": "CLI Tools",
"targets": {
"ubuntu": "zoxide",
"debian": "zoxide",
"arch": "zoxide",
"fedora": "zoxide",
"opensuse": "zoxide",
"nix": "zoxide",
"homebrew": "zoxide"
},
"unavailableReason": "zoxide is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "folder-move-outline",
"color": "#FF9F43"
}
},
{
"id": "tldr",
"name": "tldr",
"description": "Simplified community-driven man pages",
"category": "CLI Tools",
"targets": {
"arch": "tldr",
"fedora": "tldr",
"nix": "tldr",
"homebrew": "tldr"
},
"unavailableReason": "tldr is a CLI tool and not available on openSUSE, Flatpak, or Snap. For Debian 12 (Bookworm) or older and Ubuntu 24.04 or older use `sudo apt install -y tldr`",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "book-open-page-variant-outline",
"color": "#2D9CDB"
}
},
{
"id": "wget",
"name": "wget",
"description": "Command-line file downloader for HTTP/FTP",
"category": "CLI Tools",
"targets": {
"ubuntu": "wget",
"debian": "wget",
"arch": "wget",
"fedora": "wget",
"opensuse": "wget",
"nix": "wget",
"homebrew": "wget"
},
"unavailableReason": "wget is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "download",
"color": "#3FA75E"
}
},
{
"id": "curl",
"name": "curl",
"description": "Command-line tool for transferring data via URLs",
"category": "CLI Tools",
"targets": {
"ubuntu": "curl",
"debian": "curl",
"arch": "curl",
"fedora": "curl",
"opensuse": "curl",
"nix": "curl",
"homebrew": "curl"
},
"unavailableReason": "curl is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "curl",
"color": "#073551"
}
},
{
"id": "aria2",
"name": "aria2",
"description": "Multi-protocol, multi-source download accelerator",
"category": "CLI Tools",
"targets": {
"ubuntu": "aria2",
"debian": "aria2",
"arch": "aria2",
"fedora": "aria2",
"opensuse": "aria2",
"nix": "aria2",
"homebrew": "aria2"
},
"unavailableReason": "aria2 is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "download-multiple",
"color": "#F94144"
}
},
{
"id": "yazi",
"name": "yazi",
"description": "Blazing fast terminal file manager in Rust",
"category": "CLI Tools",
"targets": {
"arch": "yazi",
"opensuse": "yazi",
"nix": "yazi",
"homebrew": "yazi"
},
"unavailableReason": "Not in most repos. Install via [cargo](https://crates.io/crates/yazi) or download from [github.com/sxyazi/yazi](https://github.com/sxyazi/yazi/releases).",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "folder-table-outline",
"color": "#F3B329"
}
},
{
"id": "ranger",
"name": "ranger",
"description": "Vim-inspired terminal file manager with previews",
"category": "CLI Tools",
"targets": {
"ubuntu": "ranger",
"debian": "ranger",
"arch": "ranger",
"fedora": "ranger",
"opensuse": "ranger",
"nix": "ranger",
"homebrew": "ranger"
},
"unavailableReason": "ranger is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "folder-key-outline",
"color": "#FFFFFF"
}
},
{
"id": "ncdu",
"name": "ncdu",
"description": "NCurses-based disk usage analyzer",
"category": "CLI Tools",
"targets": {
"ubuntu": "ncdu",
"debian": "ncdu",
"arch": "ncdu",
"fedora": "ncdu",
"opensuse": "ncdu",
"nix": "ncdu",
"homebrew": "ncdu"
},
"unavailableReason": "ncdu is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "chart-arc",
"color": "#00ADEE"
}
},
{
"id": "fd",
"name": "fd",
"description": "Simple, fast alternative to find command",
"category": "CLI Tools",
"targets": {
"ubuntu": "fd-find",
"debian": "fd-find",
"arch": "fd",
"fedora": "fd-find",
"opensuse": "fd",
"nix": "fd",
"homebrew": "fd"
},
"unavailableReason": "fd is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "file-search-outline",
"color": "#56BE89"
}
},
{
"id": "tmux",
"name": "tmux",
"description": "Terminal session manager and multiplexer",
"category": "CLI Tools",
"targets": {
"ubuntu": "tmux",
"debian": "tmux",
"arch": "tmux",
"fedora": "tmux",
"opensuse": "tmux",
"nix": "tmux",
"homebrew": "tmux"
},
"unavailableReason": "tmux is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "tmux",
"color": "#1BB91F"
}
},
{
"id": "zellij",
"name": "Zellij",
"description": "Modern terminal multiplexer with layout system",
"category": "CLI Tools",
"targets": {
"ubuntu": "zellij",
"arch": "zellij",
"fedora": "zellij",
"opensuse": "zellij",
"nix": "zellij",
"homebrew": "zellij"
},
"unavailableReason": "Not in Debian repos. Install via `cargo install zellij` or see [zellij.dev](https://zellij.dev/documentation/installation.html).",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "view-split-vertical",
"color": "#A48CF4"
}
},
{
"id": "superfile",
"name": "Superfile",
"description": "Modern terminal file manager with TUI",
"category": "CLI Tools",
"targets": {
"arch": "superfile",
"nix": "superfile",
"homebrew": "superfile"
},
"unavailableReason": "Install via `go install` or see [superfile.dev](https://superfile.dev/getting-started/installation/).",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "folder-multiple",
"color": "#FFD93D"
}
},
{
"id": "rsync",
"name": "rsync",
"description": "Fast incremental file transfer and sync tool",
"category": "CLI Tools",
"targets": {
"ubuntu": "rsync",
"debian": "rsync",
"arch": "rsync",
"fedora": "rsync",
"opensuse": "rsync",
"nix": "rsync",
"homebrew": "rsync"
},
"unavailableReason": "rsync is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "sync",
"color": "#2ECC71"
}
}
]

View File

@@ -0,0 +1,166 @@
[
{
"id": "discord",
"name": "Discord",
"description": "Popular voice, video, and text chat platform",
"category": "Communication",
"targets": {
"arch": "discord",
"opensuse": "discord",
"nix": "discord",
"flatpak": "com.discordapp.Discord",
"snap": "discord",
"homebrew": "--cask discord"
},
"unavailableReason": "Not in official repos. Install via [Flatpak](https://flathub.org/en/apps/com.discordapp.Discord) or download from [discord.com/download](https://discord.com/download).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "discord",
"color": "#5865F2"
}
},
{
"id": "vesktop",
"name": "Vesktop",
"description": "Discord client with Vencord mods built-in",
"category": "Communication",
"targets": {
"arch": "vesktop-bin",
"nix": "vesktop",
"flatpak": "dev.vencord.Vesktop",
"homebrew": "--cask vesktop"
},
"unavailableReason": "Not available in official repos. Check it on [Flatpak](https://flathub.org/en/apps/dev.vencord.Vesktop) or Download from [vesktop.dev/install/linux](https://vesktop.dev/install/linux/).",
"icon": {
"type": "url",
"url": "https://avatars.githubusercontent.com/u/113042587?s=200&v=4"
}
},
{
"id": "telegram",
"name": "Telegram",
"description": "Fast cloud-based messaging with file sharing",
"category": "Communication",
"targets": {
"arch": "telegram-desktop",
"opensuse": "telegram-desktop",
"nix": "telegram-desktop",
"flatpak": "org.telegram.desktop",
"snap": "telegram-desktop",
"homebrew": "--cask telegram"
},
"unavailableReason": "Recommended to use [Flatpak](https://flathub.org/apps/org.telegram.desktop) for the latest version. Debian 12 (Bookworm) has an older version (4.6.5) via `sudo apt install -y telegram-desktop`. Debian 13 (Trixie) removed the package entirely. Ubuntu 24.04/25.04 repos have outdated versions — use Flatpak or Snap for current releases. Fedora requires [RPM Fusion](https://rpmfusion.org/) repos.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "telegram",
"color": "#26A5E4"
}
},
{
"id": "signal",
"name": "Signal",
"description": "Secure end-to-end encrypted messaging app",
"category": "Communication",
"targets": {
"arch": "signal-desktop",
"opensuse": "signal-desktop",
"nix": "signal-desktop",
"flatpak": "org.signal.Signal",
"snap": "signal-desktop",
"homebrew": "--cask signal"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/en/apps/org.signal.Signal)/[Snap](https://snapcraft.io/signal-desktop) or follow instructions at [signal.org/download/linux](https://signal.org/download/linux/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "signal",
"color": "#3A76F0"
}
},
{
"id": "slack",
"name": "Slack",
"description": "Team collaboration and business messaging",
"category": "Communication",
"targets": {
"arch": "slack-desktop",
"nix": "slack",
"flatpak": "com.slack.Slack",
"snap": "slack",
"homebrew": "--cask slack"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/en/apps/com.slack.Slack)/[Snap](https://snapcraft.io/slack) or download from [slack.com/downloads/linux](https://slack.com/downloads/linux).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "slack",
"color": "#4A154B"
}
},
{
"id": "zoom",
"name": "Zoom",
"description": "Popular video conferencing and meetings",
"category": "Communication",
"targets": {
"arch": "zoom",
"nix": "zoom-us",
"flatpak": "us.zoom.Zoom",
"snap": "zoom-client",
"homebrew": "--cask zoom"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/en/apps/us.zoom.Zoom)/[Snap](https://snapcraft.io/zoom-client) or download from [zoom.us/download/linux](https://zoom.us/download/linux).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "zoom",
"color": "#0B5CFF"
}
},
{
"id": "thunderbird",
"name": "Thunderbird",
"description": "Free email client by Mozilla with calendar",
"category": "Communication",
"targets": {
"ubuntu": "thunderbird",
"debian": "thunderbird",
"arch": "thunderbird",
"fedora": "thunderbird",
"opensuse": "MozillaThunderbird",
"nix": "thunderbird",
"flatpak": "org.mozilla.Thunderbird",
"snap": "thunderbird",
"homebrew": "--cask thunderbird"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "thunderbird",
"color": "#0A84FF"
}
},
{
"id": "element",
"name": "Element",
"description": "Decentralized Matrix chat client with E2E encryption",
"category": "Communication",
"targets": {
"arch": "element-desktop",
"opensuse": "element-desktop",
"nix": "element-desktop",
"flatpak": "im.riot.Riot",
"snap": "element-desktop",
"homebrew": "--cask element"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/en/apps/im.riot.Riot)/[Snap](https://snapcraft.io/element-desktop) or follow instructions at [element.io/download#linux](https://element.io/en/download#linux).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "element",
"color": "#0DBD8B"
}
}
]

256
src/lib/apps/creative.json Normal file
View File

@@ -0,0 +1,256 @@
[
{
"id": "blender",
"name": "Blender",
"description": "Industry-grade 3D creation suite",
"category": "Creative",
"targets": {
"ubuntu": "blender",
"debian": "blender",
"arch": "blender",
"fedora": "blender",
"opensuse": "blender",
"nix": "blender",
"flatpak": "org.blender.Blender",
"snap": "blender --classic",
"homebrew": "--cask blender"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "blender",
"color": "#E87D0D"
}
},
{
"id": "gimp",
"name": "GIMP",
"description": "Powerful free image editor, Photoshop alternative",
"category": "Creative",
"targets": {
"ubuntu": "gimp",
"debian": "gimp",
"arch": "gimp",
"fedora": "gimp",
"opensuse": "gimp",
"nix": "gimp",
"flatpak": "org.gimp.GIMP",
"snap": "gimp",
"homebrew": "--cask gimp"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "gimp",
"color": "#5C5543"
}
},
{
"id": "inkscape",
"name": "Inkscape",
"description": "Professional vector graphics editor",
"category": "Creative",
"targets": {
"ubuntu": "inkscape",
"debian": "inkscape",
"arch": "inkscape",
"fedora": "inkscape",
"opensuse": "inkscape",
"nix": "inkscape",
"flatpak": "org.inkscape.Inkscape",
"snap": "inkscape",
"homebrew": "--cask inkscape"
},
"icon": {
"type": "url",
"url": "https://media.inkscape.org/static/images/inkscape-logo.svg"
}
},
{
"id": "krita",
"name": "Krita",
"description": "Professional digital painting application",
"category": "Creative",
"targets": {
"ubuntu": "krita",
"debian": "krita",
"arch": "krita",
"fedora": "krita",
"opensuse": "krita",
"nix": "krita",
"flatpak": "org.kde.krita",
"snap": "krita",
"homebrew": "--cask krita"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "krita",
"color": "#337FCC"
}
},
{
"id": "darktable",
"name": "Darktable",
"description": "Professional photography workflow application",
"category": "Creative",
"targets": {
"ubuntu": "darktable",
"debian": "darktable",
"arch": "darktable",
"fedora": "darktable",
"opensuse": "darktable",
"nix": "darktable",
"flatpak": "org.darktable.Darktable",
"snap": "darktable",
"homebrew": "--cask darktable"
},
"icon": {
"type": "url",
"url": "https://upload.wikimedia.org/wikipedia/commons/7/7b/Darktable_icon.svg"
}
},
{
"id": "freecad",
"name": "FreeCAD",
"description": "Open-source parametric 3D CAD modeler",
"category": "Creative",
"targets": {
"ubuntu": "freecad",
"debian": "freecad",
"arch": "freecad",
"fedora": "freecad",
"opensuse": "freecad",
"nix": "freecad",
"flatpak": "org.freecad.FreeCAD",
"snap": "freecad",
"homebrew": "--cask freecad"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "freecad",
"color": "#CB333B"
}
},
{
"id": "kicad",
"name": "KiCad",
"description": "Professional PCB and schematic design suite",
"category": "Creative",
"targets": {
"ubuntu": "kicad",
"debian": "kicad",
"arch": "kicad",
"fedora": "kicad",
"opensuse": "kicad",
"nix": "kicad",
"flatpak": "org.kicad.KiCad",
"snap": "kicad",
"homebrew": "--cask kicad"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "kicad",
"color": "#314CB6"
}
},
{
"id": "cura",
"name": "UltiMaker Cura",
"description": "Popular 3D printer slicing application",
"category": "Creative",
"targets": {
"arch": "cura",
"fedora": "cura",
"opensuse": "cura",
"nix": "cura",
"flatpak": "com.ultimaker.cura",
"snap": "cura-slicer",
"homebrew": "--cask ultimaker-cura"
},
"unavailableReason": "Available through snap, flatpak and appimage. For Debian 13 or newer; Ubuntu 25.04 or newer it is available through `sudo apt install -y cura`.",
"icon": {
"type": "url",
"url": "https://dl.flathub.org/media/com/ultimaker/cura.desktop/9eeed6dfd5a5ec2c8e5c8917012db5ad/icons/128x128/com.ultimaker.cura.desktop.png"
}
},
{
"id": "godot",
"name": "Godot Engine",
"description": "Feature-packed, cross-platform game engine",
"category": "Creative",
"targets": {
"ubuntu": "godot",
"debian": "godot",
"arch": "godot",
"fedora": "godot",
"nix": "godot",
"flatpak": "org.godotengine.Godot",
"snap": "godot-4",
"homebrew": "--cask godot"
},
"unavailableReason": "Installs latest Godot 4. For older distros: Ubuntu 24.04 and Debian 12 (Bookworm) only have `godot3` available use `sudo apt install -y godot3` for Godot 3.x instead.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "godotengine",
"color": "#478CBF"
}
},
{
"id": "kolourpaint",
"name": "KolourPaint",
"description": "Easy-to-use paint program by KDE",
"category": "Creative",
"targets": {
"ubuntu": "kolourpaint",
"debian": "kolourpaint",
"arch": "kolourpaint",
"fedora": "kolourpaint",
"opensuse": "kolourpaint",
"nix": "kdePackages.kolourpaint",
"flatpak": "org.kde.kolourpaint",
"snap": "kolourpaint"
},
"icon": {
"type": "url",
"url": "https://dl.flathub.org/media/org/kde/kolourpaint.desktop/4b7fa92785a1338b7cb179451347a4e2/icons/128x128/org.kde.kolourpaint.desktop.png"
}
},
{
"id": "orcaslicer",
"name": "OrcaSlicer",
"description": "Advanced 3D printer slicer based on BambuStudio",
"category": "Creative",
"targets": {
"arch": "orca-slicer-bin",
"nix": "orca-slicer",
"homebrew": "--cask orcaslicer"
},
"unavailableReason": "Download the AppImage or distribution-specific package from the official [GitHub Releases](https://github.com/OrcaSlicer/OrcaSlicer/releases).",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "printer-3d-nozzle",
"color": "#00AE42"
}
},
{
"id": "davinci-resolve",
"name": "DaVinci Resolve",
"description": "Professional video editing, color grading, and VFX software",
"category": "Creative",
"targets": {
"nix": "davinci-resolve"
},
"unavailableReason": "Not in most official repos. Arch requires manually downloading installer and placing in PKGBUILD before installing `yay -S --needed --noconfirm davinci-resolve` see [wiki.archlinux.org](https://wiki.archlinux.org/title/DaVinci_Resolve) for more info. Or download from [blackmagicdesign.com](https://www.blackmagicdesign.com/products/davinciresolve).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "davinciresolve",
"color": "#E52222"
}
}
]

View File

@@ -0,0 +1,315 @@
[
{
"id": "vscode",
"name": "VS Code",
"description": "Most popular extensible code editor by Microsoft",
"category": "Dev: Editors",
"targets": {
"arch": "code",
"nix": "vscode",
"flatpak": "com.visualstudio.code",
"snap": "code --classic",
"homebrew": "--cask visual-studio-code"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/en/apps/com.visualstudio.code)/[Snap](https://snapcraft.io/code) or download from [code.visualstudio.com](https://code.visualstudio.com/Download).",
"icon": {
"type": "iconify",
"set": "logos",
"name": "visual-studio-code"
}
},
{
"id": "vscodium",
"name": "VSCodium",
"description": "Community-built VS Code without Microsoft telemetry",
"category": "Dev: Editors",
"targets": {
"arch": "vscodium-bin",
"nix": "vscodium",
"flatpak": "com.vscodium.codium",
"snap": "codium --classic",
"homebrew": "--cask vscodium"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/en/apps/com.vscodium.codium)/[Snap](https://snapcraft.io/codium) or follow instructions at [vscodium.com](https://vscodium.com/#install).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "vscodium",
"color": "#2F80ED"
}
},
{
"id": "vim",
"name": "Vim",
"description": "The classic modal text editor that started it all",
"category": "Dev: Editors",
"targets": {
"ubuntu": "vim",
"debian": "vim",
"arch": "vim",
"fedora": "vim-enhanced",
"opensuse": "vim",
"nix": "vim",
"flatpak": "org.vim.Vim",
"snap": "vim-editor",
"homebrew": "vim"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "vim",
"color": "#019733"
}
},
{
"id": "neovim",
"name": "Neovim",
"description": "Modernized Vim with better extensibility",
"category": "Dev: Editors",
"targets": {
"ubuntu": "neovim",
"debian": "neovim",
"arch": "neovim",
"fedora": "neovim",
"opensuse": "neovim",
"nix": "neovim",
"flatpak": "com.neovim.Neovim",
"snap": "nvim --classic",
"homebrew": "neovim"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "neovim",
"color": "#57A143"
}
},
{
"id": "helix",
"name": "Helix",
"description": "Modal editor with LSP and tree-sitter built-in",
"category": "Dev: Editors",
"targets": {
"arch": "helix",
"fedora": "helix",
"opensuse": "helix",
"nix": "helix",
"flatpak": "com.helix-editor.Helix",
"snap": "helix --classic",
"homebrew": "helix"
},
"unavailableReason": "Not in official Debian/Ubuntu repos. For Ubuntu, add the PPA: `sudo add-apt-repository ppa:maveonair/helix-editor && sudo apt update && sudo apt install helix`. For Debian, download .deb from [GitHub releases](https://github.com/helix-editor/helix/releases).",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "dna",
"color": "#4E2F7F"
}
},
{
"id": "micro",
"name": "Micro",
"description": "Easy-to-use terminal text editor like nano",
"category": "Dev: Editors",
"targets": {
"arch": "micro",
"ubuntu": "micro",
"debian": "micro",
"fedora": "micro",
"opensuse": "micro-editor",
"nix": "micro-editor",
"flatpak": "io.github.zyedidia.micro",
"snap": "micro --classic",
"homebrew": "micro"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "microeditor",
"color": "#2E3192"
}
},
{
"id": "zed",
"name": "Zed",
"description": "High-performance editor with real-time collaboration",
"category": "Dev: Editors",
"targets": {
"arch": "zed",
"nix": "zed-editor",
"flatpak": "dev.zed.Zed",
"homebrew": "--cask zed"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/en/apps/dev.zed.Zed) or see [zed.dev/docs/linux](https://zed.dev/docs/linux#other-ways-to-install-zed-on-linux) for other methods.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "zedindustries",
"color": "#084CCF"
}
},
{
"id": "sublime",
"name": "Sublime Text",
"description": "Lightning-fast proprietary text editor",
"category": "Dev: Editors",
"targets": {
"arch": "sublime-text-4",
"nix": "sublime",
"flatpak": "com.sublimetext.three",
"snap": "sublime-text --classic",
"homebrew": "--cask sublime-text"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/en/apps/com.sublimetext.three)/[Snap](https://snapcraft.io/sublime-text) or follow instructions at [sublimetext.com/docs/linux_repositories](https://www.sublimetext.com/docs/linux_repositories.html).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "sublimetext",
"color": "#FF9800"
}
},
{
"id": "arduino",
"name": "Arduino IDE",
"description": "IDE for Arduino microcontroller development",
"category": "Dev: Editors",
"targets": {
"ubuntu": "arduino",
"debian": "arduino",
"arch": "arduino",
"fedora": "arduino",
"nix": "arduino-ide",
"flatpak": "cc.arduino.IDE2",
"snap": "arduino",
"homebrew": "--cask arduino-ide"
},
"unavailableReason": "Arduino IDE is not in official openSUSE repos. Use [Flatpak](https://flathub.org/en/apps/cc.arduino.IDE2) or [Snap](https://snapcraft.io/arduino) instead.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "arduino",
"color": "#00878F"
}
},
{
"id": "cursor",
"name": "Cursor",
"description": "AI-powered code editor based on VS Code",
"category": "Dev: Editors",
"targets": {
"arch": "cursor-bin",
"nix": "code-cursor",
"homebrew": "--cask cursor"
},
"unavailableReason": "Only available via [AUR](https://aur.archlinux.org/packages/cursor-bin) or Nix. Download from [cursor.com/download](https://cursor.com/download).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "cursor",
"color": "#232020ff"
}
},
{
"id": "kate",
"name": "Kate",
"description": "Feature-rich text editor by KDE with syntax highlighting",
"category": "Dev: Editors",
"targets": {
"ubuntu": "kate",
"debian": "kate",
"arch": "kate",
"fedora": "kate",
"opensuse": "kate",
"nix": "kdePackages.kate",
"flatpak": "org.kde.kate",
"snap": "kate --classic",
"homebrew": "--cask kate"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "kde",
"color": "#1D99F3"
}
},
{
"id": "emacs",
"name": "Emacs",
"description": "Extensible, customizable, free/libre text editor",
"category": "Dev: Editors",
"targets": {
"ubuntu": "emacs",
"debian": "emacs",
"arch": "emacs",
"fedora": "emacs",
"opensuse": "emacs",
"nix": "emacs",
"flatpak": "org.gnu.emacs",
"snap": "emacs --classic",
"homebrew": "--cask emacs-app"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "gnuemacs",
"color": "#7F5AB6"
}
},
{
"id": "intellij-idea",
"name": "Intellij IDEA",
"description": "IDE for Java and Kotlin developers by Jetbrains",
"category": "Dev: Editors",
"targets": {
"arch": "intellij-idea-ultimate-edition",
"nix": "jetbrains.idea",
"flatpak": "com.jetbrains.IntelliJ-IDEA-Ultimate",
"homebrew": "--cask intellij-idea",
"snap": "intellij-idea --classic"
},
"unavailableReason": "Not in official repos, download from [JetBrains](https://www.jetbrains.com/idea/download/?section=linux) or use [Flatpak](https://flathub.org/en/apps/com.jetbrains.IntelliJ-IDEA-Ultimate) / [Snap](https://snapcraft.io/intellij-idea).",
"icon": {
"type": "iconify",
"set": "logos",
"name": "intellij-idea"
}
},
{
"id": "pycharm",
"name": "Pycharm",
"description": "IDE for Python developers and Data scientists by Jetbrains",
"category": "Dev: Editors",
"targets": {
"arch": "pycharm",
"flatpak": "com.jetbrains.PyCharm-Professional",
"homebrew": "--cask pycharm",
"snap": "pycharm --classic",
"nix": "jetbrains.pycharm"
},
"unavailableReason": "Not in official repos, download from [JetBrains](https://www.jetbrains.com/pycharm/download/?section=linux) or use [Flatpak](https://flathub.org/en/apps/com.jetbrains.PyCharm-Professional) / [Snap](https://snapcraft.io/pycharm).",
"icon": {
"type": "iconify",
"set": "logos",
"name": "pycharm"
}
},
{
"id": "clion",
"name": "CLion",
"description": "IDE for C and C++ developers by Jetbrains",
"category": "Dev: Editors",
"targets": {
"arch": "clion",
"flatpak": "com.jetbrains.CLion",
"homebrew": "--cask clion",
"snap": "clion --classic",
"nix": "jetbrains.clion"
},
"unavailableReason": "Not in official repos, download from [JetBrains](https://www.jetbrains.com/clion/download/?section=linux) or use [Flatpak](https://flathub.org/en/apps/com.jetbrains.CLion) / [Snap](https://snapcraft.io/clion).",
"icon": {
"type": "iconify",
"set": "logos",
"name": "clion"
}
}
]

View File

@@ -0,0 +1,274 @@
[
{
"id": "python3",
"name": "Python 3",
"description": "Popular beginner-friendly programming language",
"category": "Dev: Languages",
"targets": {
"ubuntu": "python3",
"debian": "python3",
"arch": "python",
"fedora": "python3",
"opensuse": "python3",
"nix": "python3",
"homebrew": "python@3.12"
},
"unavailableReason": "Python 3 is a system package and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "python",
"color": "#3776AB"
}
},
{
"id": "nodejs",
"name": "Node.js",
"description": "Server-side JavaScript runtime environment",
"category": "Dev: Languages",
"targets": {
"ubuntu": "nodejs",
"debian": "nodejs",
"arch": "nodejs",
"fedora": "nodejs",
"opensuse": "nodejs",
"nix": "nodejs",
"snap": "node --classic",
"homebrew": "node"
},
"unavailableReason": "Node.js is not available as a Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "nodedotjs",
"color": "#5FA04E"
}
},
{
"id": "go",
"name": "Go",
"description": "Fast compiled programming language by Google",
"category": "Dev: Languages",
"targets": {
"ubuntu": "golang",
"debian": "golang",
"arch": "go",
"fedora": "golang",
"opensuse": "go",
"nix": "go",
"snap": "go --classic",
"homebrew": "go"
},
"unavailableReason": "Go is not available as a Flatpak package.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "go",
"color": "#00ADD8"
}
},
{
"id": "rust",
"name": "Rust",
"description": "Memory-safe systems programming language",
"category": "Dev: Languages",
"targets": {
"arch": "rustup",
"fedora": "rustup",
"opensuse": "rustup",
"nix": "rustup",
"snap": "rustup --classic",
"homebrew": "rust"
},
"unavailableReason": "Install via [rustup.rs](https://rustup.rs) on Ubuntu and Debian.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "rust",
"color": "#F74C00"
}
},
{
"id": "ruby",
"name": "Ruby",
"description": "Dynamic language known for elegant syntax",
"category": "Dev: Languages",
"targets": {
"ubuntu": "ruby",
"debian": "ruby",
"arch": "ruby",
"fedora": "ruby",
"opensuse": "ruby",
"nix": "ruby",
"snap": "ruby --classic",
"homebrew": "ruby"
},
"unavailableReason": "Ruby is a system package and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "ruby",
"color": "#CC342D"
}
},
{
"id": "php",
"name": "PHP",
"description": "Popular web server-side scripting language",
"category": "Dev: Languages",
"targets": {
"ubuntu": "php",
"debian": "php",
"arch": "php",
"fedora": "php",
"opensuse": "php8",
"nix": "php",
"homebrew": "php"
},
"unavailableReason": "PHP is a system package and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "php",
"color": "#777BB4"
}
},
{
"id": "openjdk",
"name": "OpenJDK",
"description": "Open-source Java Development Kit",
"category": "Dev: Languages",
"targets": {
"ubuntu": "openjdk-21-jdk",
"debian": "openjdk-17-jdk",
"arch": "jdk-openjdk",
"fedora": "java-21-openjdk",
"opensuse": "java-21-openjdk",
"nix": "openjdk",
"homebrew": "openjdk"
},
"unavailableReason": "System package — not available via Flatpak or Snap. Debian 12 (Bookworm) only has OpenJDK 17: `sudo apt install -y openjdk-17-jdk`. Debian 13 (Trixie) has OpenJDK 21 and 25: `sudo apt install -y openjdk-21-jdk`. Ubuntu 24.04 has versions 8, 11, 17, 21, and 25 available.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "openjdk",
"color": "#437291"
}
},
{
"id": "deno",
"name": "Deno",
"description": "Secure TypeScript/JavaScript runtime by Node creator",
"category": "Dev: Languages",
"targets": {
"arch": "deno",
"opensuse": "deno",
"nix": "deno",
"homebrew": "deno"
},
"unavailableReason": "Install via `curl -fsSL https://deno.land/install.sh | sh` on other distros.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "deno",
"color": "#70FFAF"
}
},
{
"id": "bun",
"name": "Bun",
"description": "Ultra-fast JavaScript runtime and bundler",
"category": "Dev: Languages",
"targets": {
"arch": "bun",
"nix": "bun",
"homebrew": "bun"
},
"unavailableReason": "Not in most package managers. Install via official script: `curl -fsSL https://bun.sh/install | bash`. More info at [bun.sh](https://bun.sh/).",
"icon": {
"type": "iconify",
"set": "logos",
"name": "bun"
}
},
{
"id": "npm",
"name": "npm",
"description": "JavaScript package manager",
"category": "Dev: Languages",
"targets": {
"ubuntu": "npm",
"debian": "npm",
"arch": "npm",
"fedora": "nodejs-npm",
"opensuse": "npm24",
"nix": "nodejs",
"snap": "node --classic",
"homebrew": "node"
},
"unavailableReason": "Usually installed with Node.js. See [nodejs.org](https://nodejs.org/).",
"icon": {
"type": "iconify",
"set": "logos",
"name": "npm"
}
},
{
"id": "pnpm",
"name": "pnpm",
"description": "Fast, disk space efficient package manager",
"category": "Dev: Languages",
"targets": {
"arch": "pnpm",
"fedora": "pnpm",
"opensuse": "pnpm",
"nix": "pnpm",
"homebrew": "pnpm"
},
"unavailableReason": "Install via `curl -fsSL https://get.pnpm.io/install.sh | sh`. See [pnpm.io](https://pnpm.io/installation).",
"icon": {
"type": "iconify",
"set": "logos",
"name": "pnpm"
}
},
{
"id": "yarn",
"name": "yarn",
"description": "JavaScript package manager",
"category": "Dev: Languages",
"targets": {
"ubuntu": "yarnpkg",
"debian": "yarnpkg",
"arch": "yarn",
"fedora": "yarnpkg",
"opensuse": "yarn",
"nix": "yarn",
"homebrew": "yarn"
},
"unavailableReason": "Install via `npm install --global yarn`. See [yarnpkg.com](https://yarnpkg.com/getting-started/install).",
"icon": {
"type": "iconify",
"set": "logos",
"name": "yarn"
}
},
{
"id": "uv",
"name": "uv",
"description": "Fast Python package manager",
"category": "Dev: Languages",
"targets": {
"arch": "uv",
"nix": "uv",
"homebrew": "uv"
},
"unavailableReason": "Install via `curl -LsSf https://astral.sh/uv/install.sh | sh`. See [installation guide](https://docs.astral.sh/uv/getting-started/installation/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "astral",
"color": "#5C4EE5"
}
}
]

414
src/lib/apps/dev-tools.json Normal file
View File

@@ -0,0 +1,414 @@
[
{
"id": "git",
"name": "Git",
"description": "Industry-standard distributed version control",
"category": "Dev: Tools",
"targets": {
"ubuntu": "git",
"debian": "git",
"arch": "git",
"fedora": "git",
"opensuse": "git",
"nix": "git",
"homebrew": "git"
},
"unavailableReason": "Git is a system package and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "git",
"color": "#F05032"
}
},
{
"id": "gitlfs",
"name": "Git LFS",
"description": "Git extension for versioning large files",
"category": "Dev: Tools",
"targets": {
"ubuntu": "git-lfs",
"debian": "git-lfs",
"arch": "git-lfs",
"fedora": "git-lfs",
"opensuse": "git-lfs",
"nix": "git-lfs",
"homebrew": "git-lfs"
},
"unavailableReason": "Git LFS is a system package and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "git",
"color": "#F05032"
}
},
{
"id": "lazygit",
"name": "LazyGit",
"description": "Simple terminal UI for git commands",
"category": "Dev: Tools",
"targets": {
"ubuntu": "lazygit",
"debian": "lazygit",
"arch": "lazygit",
"fedora": "lazygit",
"opensuse": "lazygit",
"nix": "lazygit",
"homebrew": "lazygit"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "git",
"color": "#F05032"
}
},
{
"id": "docker",
"name": "Docker",
"description": "Most popular container platform for app deployment",
"category": "Dev: Tools",
"targets": {
"ubuntu": "docker.io",
"debian": "docker.io",
"arch": "docker",
"fedora": "docker",
"opensuse": "docker",
"nix": "docker",
"snap": "docker",
"homebrew": "docker"
},
"unavailableReason": "Docker is a system service and not available as a Flatpak.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "docker",
"color": "#2496ED"
}
},
{
"id": "podman",
"name": "Podman",
"description": "Rootless container engine, Docker alternative",
"category": "Dev: Tools",
"targets": {
"ubuntu": "podman",
"debian": "podman",
"arch": "podman",
"fedora": "podman",
"opensuse": "podman",
"nix": "podman",
"homebrew": "podman"
},
"unavailableReason": "Podman is a system package and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "podman",
"color": "#892CA0"
}
},
{
"id": "podman-desktop",
"name": "Podman Desktop",
"description": "A GUI for managing Podman",
"category": "Dev: Tools",
"targets": {
"arch": "podman-desktop",
"nix": "podman-desktop",
"flatpak": "io.podman_desktop.PodmanDesktop",
"homebrew": "--cask podman-desktop"
},
"unavailableReason": "Not in official repos. Use the [Flatpak version](https://flathub.org/en/apps/io.podman_desktop.PodmanDesktop) instead, or download from [podman-desktop.io/downloads](https://podman-desktop.io/downloads).",
"icon": {
"type": "url",
"url": "https://podman-desktop.io/img/logo.svg"
}
},
{
"id": "kubectl",
"name": "kubectl",
"description": "Command-line tool for Kubernetes clusters",
"category": "Dev: Tools",
"targets": {
"arch": "kubectl",
"fedora": "kubernetes-client",
"opensuse": "kubectl",
"nix": "kubectl",
"snap": "kubectl --classic",
"homebrew": "kubectl"
},
"unavailableReason": "kubectl is not in official Ubuntu or Debian repos. Use Snap or install via [kubernetes.io](https://kubernetes.io/docs/tasks/tools/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "kubernetes",
"color": "#326CE5"
}
},
{
"id": "vagrant",
"name": "Vagrant",
"description": "Build and manage portable dev environments",
"category": "Dev: Tools",
"targets": {
"debian": "vagrant",
"arch": "vagrant",
"fedora": "vagrant",
"opensuse": "vagrant",
"nix": "vagrant",
"homebrew": "--cask vagrant"
},
"unavailableReason": "Vagrant is a system package and not available via Flatpak or Snap. Follow instructions at [developer.hashicorp.com/vagrant/install](https://developer.hashicorp.com/vagrant/install).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "vagrant",
"color": "#1868F2"
}
},
{
"id": "virtualbox",
"name": "VirtualBox",
"description": "Free cross-platform virtual machine manager",
"category": "Dev: Tools",
"targets": {
"ubuntu": "virtualbox",
"arch": "virtualbox",
"opensuse": "virtualbox",
"nix": "virtualbox",
"homebrew": "--cask virtualbox"
},
"unavailableReason": "VirtualBox requires kernel modules and is not available via Flatpak or Snap. Debian user follow instructions at [wiki.debian.org/VirtualBox](https://wiki.debian.org/VirtualBox).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "virtualbox",
"color": "#183A61"
}
},
{
"id": "gnomeboxes",
"name": "GNOME Boxes",
"description": "Simple virtual machine app for GNOME",
"category": "Dev: Tools",
"targets": {
"ubuntu": "gnome-boxes",
"debian": "gnome-boxes",
"arch": "gnome-boxes",
"fedora": "gnome-boxes",
"opensuse": "gnome-boxes",
"nix": "gnome-boxes",
"flatpak": "org.gnome.Boxes"
},
"unavailableReason": "GNOME Boxes is not available as a Snap package.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "gnome",
"color": "#4A86CF"
}
},
{
"id": "dbeaver",
"name": "DBeaver",
"description": "Universal database management tool",
"category": "Dev: Tools",
"targets": {
"arch": "dbeaver",
"nix": "dbeaver-bin",
"flatpak": "io.dbeaver.DBeaverCommunity",
"homebrew": "--cask dbeaver-community"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/en/apps/io.dbeaver.DBeaverCommunity) or download from [dbeaver.io/download](https://dbeaver.io/download/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "dbeaver",
"color": "#382923"
}
},
{
"id": "meld",
"name": "Meld",
"description": "Visual diff and merge tool for files",
"category": "Dev: Tools",
"targets": {
"ubuntu": "meld",
"debian": "meld",
"arch": "meld",
"fedora": "meld",
"opensuse": "meld",
"nix": "meld",
"flatpak": "org.gnome.meld",
"homebrew": "--cask meld"
},
"unavailableReason": "Meld is not available as a Snap package.",
"icon": {
"type": "url",
"url": "https://meldmerge.org/images/meld.svg"
}
},
{
"id": "wireshark",
"name": "Wireshark",
"description": "Network protocol analyzer and packet capture",
"category": "Dev: Tools",
"targets": {
"ubuntu": "wireshark",
"debian": "wireshark",
"arch": "wireshark-qt",
"fedora": "wireshark",
"opensuse": "wireshark",
"nix": "wireshark",
"flatpak": "org.wireshark.Wireshark",
"homebrew": "--cask wireshark-app"
},
"unavailableReason": "Wireshark is not available as a Snap package.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "wireshark",
"color": "#1679A7"
}
},
{
"id": "postman",
"name": "Postman",
"description": "Popular API testing and development platform",
"category": "Dev: Tools",
"targets": {
"arch": "postman-bin",
"nix": "postman",
"flatpak": "com.getpostman.Postman",
"snap": "postman",
"homebrew": "--cask postman"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/en/apps/com.getpostman.Postman)/[Snap](https://snapcraft.io/postman) or download from [postman.com/downloads](https://www.postman.com/downloads/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "postman",
"color": "#FF6C37"
}
},
{
"id": "bruno",
"name": "Bruno",
"description": "Offline-first open-source API client",
"category": "Dev: Tools",
"targets": {
"arch": "bruno-bin",
"nix": "bruno",
"flatpak": "com.usebruno.Bruno",
"snap": "bruno",
"homebrew": "--cask bruno"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/apps/com.usebruno.Bruno)/[Snap](https://snapcraft.io/bruno) or download from [usebruno.com](https://www.usebruno.com/downloads).",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "api",
"color": "#F4A62A"
}
},
{
"id": "hoppscotch",
"name": "Hoppscotch",
"description": "Open-source API development ecosystem",
"category": "Dev: Tools",
"targets": {
"arch": "hoppscotch-bin",
"nix": "hoppscotch",
"homebrew": "--cask hoppscotch"
},
"unavailableReason": "Use [AUR](https://aur.archlinux.org/packages/hoppscotch-bin) or download from [hoppscotch.io](https://hoppscotch.io/download).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "hoppscotch",
"color": "#47C0A7"
}
},
{
"id": "yaak",
"name": "Yaak",
"description": "Modern desktop API client for REST and GraphQL",
"category": "Dev: Tools",
"targets": {
"arch": "yaak-bin",
"nix": "yaak",
"homebrew": "--cask yaak"
},
"unavailableReason": "Not in most official repos. Download .deb/.rpm or AppImage from [yaak.app](https://yaak.app/download).",
"icon": {
"type": "url",
"url": "https://avatars.githubusercontent.com/u/150165049?s=48&v=4"
}
},
{
"id": "virtmanager",
"name": "Virt Manager",
"description": "Desktop app for managing KVM virtual machines",
"category": "Dev: Tools",
"targets": {
"ubuntu": "virt-manager",
"debian": "virt-manager",
"arch": "virt-manager",
"fedora": "virt-manager",
"opensuse": "virt-manager",
"nix": "virt-manager",
"homebrew": "virt-manager"
},
"unavailableReason": "Virt Manager requires system access and is not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "qemu",
"color": "#FF6600"
}
},
{
"id": "imhex",
"name": "ImHex",
"description": "Feature-rich hex editor for reverse engineering",
"category": "Dev: Tools",
"targets": {
"arch": "imhex-bin",
"fedora": "imhex",
"nix": "imhex",
"flatpak": "net.werwolv.ImHex",
"homebrew": "--cask imhex"
},
"unavailableReason": "Not in most repos. Use [Flatpak](https://flathub.org/apps/net.werwolv.ImHex) or download from [imhex.werwolv.net](https://imhex.werwolv.net/).",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "hexadecimal",
"color": "#4FC1E8"
}
},
{
"id": "cmake",
"name": "CMake",
"description": "Cross-platform build system generator",
"category": "Dev: Tools",
"targets": {
"ubuntu": "cmake",
"debian": "cmake",
"arch": "cmake",
"fedora": "cmake",
"opensuse": "cmake",
"nix": "cmake",
"snap": "cmake --classic",
"homebrew": "cmake"
},
"unavailableReason": "CMake is not available as a Flatpak package.",
"icon": {
"type": "iconify",
"set": "vscode-icons",
"name": "file-type-cmake"
}
}
]

View File

@@ -0,0 +1,186 @@
[
{
"id": "syncthing",
"name": "Syncthing",
"description": "Decentralized peer-to-peer file synchronization",
"category": "File Sharing",
"targets": {
"ubuntu": "syncthing",
"debian": "syncthing",
"arch": "syncthing",
"fedora": "syncthing",
"opensuse": "syncthing",
"nix": "syncthing",
"flatpak": "me.kozec.syncthingtk",
"homebrew": "syncthing"
},
"unavailableReason": "Syncthing GTK is available on [Flatpak](https://flathub.org/apps/me.kozec.syncthingtk). Not available as Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "syncthing",
"color": "#0CB7E4"
}
},
{
"id": "qbittorrent",
"name": "qBittorrent",
"description": "Open-source BitTorrent client, uTorrent alternative",
"category": "File Sharing",
"targets": {
"ubuntu": "qbittorrent",
"debian": "qbittorrent",
"arch": "qbittorrent",
"fedora": "qbittorrent",
"opensuse": "qbittorrent",
"nix": "qbittorrent",
"flatpak": "org.qbittorrent.qBittorrent",
"snap": "qbittorrent-desktop-tak",
"homebrew": "--cask qbittorrent"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "qbittorrent",
"color": "#2F67BA"
}
},
{
"id": "transmission",
"name": "Transmission",
"description": "Lightweight BitTorrent client",
"category": "File Sharing",
"targets": {
"ubuntu": "transmission",
"debian": "transmission",
"arch": "transmission-gtk",
"fedora": "transmission",
"opensuse": "transmission",
"nix": "transmission_4-gtk",
"flatpak": "com.transmissionbt.Transmission",
"homebrew": "--cask transmission"
},
"unavailableReason": "Transmission is not available as a Snap package. Use [Flatpak](https://flathub.org/apps/com.transmissionbt.Transmission).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "transmission",
"color": "#D70000"
}
},
{
"id": "localsend",
"name": "LocalSend",
"description": "Cross-platform AirDrop alternative for local sharing",
"category": "File Sharing",
"targets": {
"arch": "localsend-bin",
"nix": "localsend",
"flatpak": "org.localsend.localsend_app",
"homebrew": "--cask localsend"
},
"unavailableReason": "Only available via [AUR](https://aur.archlinux.org/packages/localsend-bin) or [Flatpak](https://flathub.org/apps/org.localsend.localsend_app). Download from [localsend.org](https://localsend.org/download).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "localsend",
"color": "#FCA73C"
}
},
{
"id": "filezilla",
"name": "FileZilla",
"description": "Cross-platform FTP, FTPS and SFTP client",
"category": "File Sharing",
"targets": {
"ubuntu": "filezilla",
"debian": "filezilla",
"arch": "filezilla",
"fedora": "filezilla",
"opensuse": "filezilla",
"nix": "filezilla",
"flatpak": "org.filezillaproject.Filezilla"
},
"unavailableReason": "FileZilla is not available as a Snap package.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "filezilla",
"color": "#BF0000"
}
},
{
"id": "nextcloud",
"name": "Nextcloud",
"description": "Self-hosted cloud storage sync client",
"category": "File Sharing",
"targets": {
"ubuntu": "nextcloud-desktop",
"debian": "nextcloud-desktop",
"arch": "nextcloud-client",
"fedora": "nextcloud-client",
"opensuse": "nextcloud-desktop",
"nix": "nextcloud-client",
"flatpak": "com.nextcloud.desktopclient.nextcloud",
"snap": "nextcloud-desktop-client",
"homebrew": "--cask nextcloud"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "nextcloud",
"color": "#0082C9"
}
},
{
"id": "dropbox",
"name": "Dropbox",
"description": "Popular cloud file storage and sync service",
"category": "File Sharing",
"targets": {
"arch": "dropbox",
"nix": "dropbox",
"flatpak": "com.dropbox.Client",
"homebrew": "--cask dropbox"
},
"unavailableReason": "Only available via [AUR](https://aur.archlinux.org/packages/dropbox) or [Flatpak](https://flathub.org/apps/com.dropbox.Client). See [dropbox.com/install-linux](https://www.dropbox.com/install-linux) for other methods.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "dropbox",
"color": "#0061FF"
}
},
{
"id": "abdownloadmanager",
"name": "AB Download Manager",
"description": "Modern download manager with browser integration",
"category": "File Sharing",
"targets": {
"arch": "ab-download-manager-bin"
},
"unavailableReason": "Only available via [AUR](https://aur.archlinux.org/packages/ab-download-manager-bin). Download from [abdownloadmanager.com](https://abdownloadmanager.com/).",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "download-box",
"color": "#4CAF50"
}
},
{
"id": "fdm",
"name": "Free Download Manager",
"description": "Feature-rich download manager with BitTorrent",
"category": "File Sharing",
"targets": {
"arch": "freedownloadmanager-bin",
"homebrew": "--cask free-download-manager",
"flatpak": "org.freedownloadmanager.Manager"
},
"unavailableReason": "Not in official repos. Use [Flatpak version](https://flathub.org/en/apps/org.freedownloadmanager.Manager) or see [the official website](https://www.freedownloadmanager.org/) or for other methods.",
"icon": {
"type": "url",
"url": "https://hexmos.com/freedevtools/svg_icons/reader/free_download_manager.svg"
}
}
]

206
src/lib/apps/gaming.json Normal file
View File

@@ -0,0 +1,206 @@
[
{
"id": "steam",
"name": "Steam",
"description": "Largest PC gaming platform and store",
"category": "Gaming",
"targets": {
"ubuntu": "steam",
"fedora": "steam",
"opensuse": "steam",
"nix": "steam",
"flatpak": "com.valvesoftware.Steam",
"snap": "steam",
"homebrew": "--cask steam"
},
"unavailableReason": "Debian requires editing /etc/apt/sources.list adding \"contrib\" to the end of the line that starts with \"deb\" or \"deb-src\" and `sudo apt update` before installing `sudo apt install -y steam-installer`. Arch requires [multilib](https://wiki.archlinux.org/title/Official_repositories#multilib) enabled first: uncomment `[multilib]` section in `/etc/pacman.conf`, then run `sudo pacman -Syu`, then `sudo pacman -S steam`.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "steam",
"color": "#00ADEE"
}
},
{
"id": "lutris",
"name": "Lutris",
"description": "Open gaming platform for all your games",
"category": "Gaming",
"targets": {
"ubuntu": "lutris",
"arch": "lutris",
"fedora": "lutris",
"opensuse": "lutris",
"nix": "lutris",
"flatpak": "net.lutris.Lutris"
},
"unavailableReason": "Debian requires editing /etc/apt/sources.list adding \"contrib\" to the end of the line that starts with \"deb\" or \"deb-src\" and `sudo apt update` before installing `sudo apt install -y lutris`. Lutris is not available as a Snap package.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "lutris",
"color": "#FF8F00"
}
},
{
"id": "heroic",
"name": "Heroic",
"description": "Open-source Epic Games and GOG launcher",
"category": "Gaming",
"targets": {
"arch": "heroic-games-launcher-bin",
"nix": "heroic",
"flatpak": "com.heroicgameslauncher.hgl",
"homebrew": "--cask heroic"
},
"unavailableReason": "Only available via [AUR](https://aur.archlinux.org/packages/heroic-games-launcher-bin) or [Flatpak](https://flathub.org/apps/details/com.heroicgameslauncher.hgl). see [heroicgameslauncher.com](https://heroicgameslauncher.com/downloads) for more info.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "heroicgameslauncher",
"color": "#7B62E8"
}
},
{
"id": "prism",
"name": "Prism Launcher",
"description": "Open-source Minecraft launcher with mod support",
"category": "Gaming",
"targets": {
"arch": "prismlauncher",
"nix": "prismlauncher",
"flatpak": "org.prismlauncher.PrismLauncher",
"homebrew": "--cask prismlauncher"
},
"unavailableReason": "Only available via [AUR](https://aur.archlinux.org/packages/prismlauncher) or [Flatpak](https://flathub.org/apps/details/org.prismlauncher.PrismLauncher). see [prismlauncher.org](https://prismlauncher.org/download/) for more info.",
"icon": {
"type": "url",
"url": "https://raw.githubusercontent.com/PrismLauncher/PrismLauncher/develop/program_info/org.prismlauncher.PrismLauncher.logo.svg"
}
},
{
"id": "retroarch",
"name": "RetroArch",
"description": "All-in-one emulator frontend for retro gaming",
"category": "Gaming",
"targets": {
"ubuntu": "retroarch",
"debian": "retroarch",
"arch": "retroarch",
"fedora": "retroarch",
"opensuse": "retroarch",
"nix": "retroarch",
"flatpak": "org.libretro.RetroArch",
"snap": "retroarch",
"homebrew": "--cask retroarch"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "retroarch",
"color": "#A0A0A0"
}
},
{
"id": "mangohud",
"name": "MangoHud",
"description": "Vulkan/OpenGL overlay for monitoring FPS and hardware",
"category": "Gaming",
"targets": {
"ubuntu": "mangohud",
"debian": "mangohud",
"arch": "mangohud",
"fedora": "mangohud",
"opensuse": "mangohud",
"nix": "mangohud"
},
"unavailableReason": "MangoHud is a system overlay and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "gamejolt",
"color": "#FF9900"
}
},
{
"id": "gamemode",
"name": "GameMode",
"description": "Optimizes Linux system performance for gaming",
"category": "Gaming",
"targets": {
"ubuntu": "gamemode",
"debian": "gamemode",
"arch": "gamemode",
"fedora": "gamemode",
"opensuse": "gamemode",
"nix": "gamemode"
},
"unavailableReason": "GameMode is a system service and not available via Flatpak or Snap.",
"icon": {
"type": "url",
"url": "https://www.svgrepo.com/show/411187/game.svg"
}
},
{
"id": "protonup",
"name": "ProtonUp-Qt",
"description": "Install and manage Proton-GE for Steam games",
"category": "Gaming",
"targets": {
"arch": "protonup-qt-bin",
"nix": "protonup-qt",
"flatpak": "net.davidotek.pupgui2"
},
"unavailableReason": "Only available via [AUR](https://aur.archlinux.org/packages/protonup-qt-bin) or [Flatpak](https://flathub.org/apps/net.davidotek.pupgui2).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "protondb",
"color": "#8B0000"
}
},
{
"id": "antimicrox",
"name": "AntiMicroX",
"description": "Map gamepad buttons to keyboard/mouse actions",
"category": "Gaming",
"targets": {
"ubuntu": "antimicrox",
"debian": "antimicrox",
"arch": "antimicrox",
"fedora": "antimicrox",
"opensuse": "antimicrox",
"nix": "antimicrox",
"flatpak": "io.github.antimicrox.antimicrox"
},
"unavailableReason": "Not available as a Snap package.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "controller",
"color": "#007BFF"
}
},
{
"id": "goverlay",
"name": "GOverlay",
"description": "GUI for MangoHud, vkBasalt, and ReplaySorcery",
"category": "Gaming",
"targets": {
"ubuntu": "goverlay",
"debian": "goverlay",
"arch": "goverlay",
"fedora": "goverlay",
"opensuse": "goverlay",
"nix": "goverlay",
"flatpak": "io.github.benjamimgois.goverlay"
},
"unavailableReason": "Not available as a Snap package.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "dock-window",
"color": "#6366F1"
}
}
]

327
src/lib/apps/media.json Normal file
View File

@@ -0,0 +1,327 @@
[
{
"id": "vlc",
"name": "VLC",
"description": "Universal media player that plays any format",
"category": "Media",
"targets": {
"ubuntu": "vlc",
"debian": "vlc",
"arch": "vlc",
"fedora": "vlc",
"opensuse": "vlc",
"nix": "vlc",
"flatpak": "org.videolan.VLC",
"snap": "vlc",
"homebrew": "--cask vlc"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "vlcmediaplayer",
"color": "#FF8800"
}
},
{
"id": "mpv",
"name": "mpv",
"description": "Lightweight and highly configurable media player",
"category": "Media",
"targets": {
"ubuntu": "mpv",
"debian": "mpv",
"arch": "mpv",
"fedora": "mpv",
"opensuse": "mpv",
"nix": "mpv",
"flatpak": "io.mpv.Mpv",
"snap": "mpv",
"homebrew": "mpv"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "mpv",
"color": "#691F69"
}
},
{
"id": "celluloid",
"name": "Celluloid",
"description": "Simple GTK frontend for the mpv player",
"category": "Media",
"targets": {
"ubuntu": "celluloid",
"debian": "celluloid",
"arch": "celluloid",
"fedora": "celluloid",
"opensuse": "celluloid",
"nix": "celluloid",
"flatpak": "io.github.celluloid_player.Celluloid"
},
"unavailableReason": "Celluloid is not available as a Snap package.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "gnome",
"color": "#4A86CF"
}
},
{
"id": "strawberry",
"name": "Strawberry",
"description": "Music player for local audio collection",
"category": "Media",
"targets": {
"ubuntu": "strawberry",
"debian": "strawberry",
"arch": "strawberry",
"fedora": "strawberry",
"opensuse": "strawberry",
"nix": "strawberry",
"flatpak": "org.strawberrymusicplayer.strawberry"
},
"unavailableReason": "Strawberry is not available as a Snap package.",
"icon": {
"type": "url",
"url": "https://www.strawberrymusicplayer.org/pictures/strawberry64.png"
}
},
{
"id": "spotify",
"name": "Spotify",
"description": "Popular music streaming service",
"category": "Media",
"targets": {
"arch": "spotify",
"nix": "spotify",
"flatpak": "com.spotify.Client",
"snap": "spotify",
"homebrew": "--cask spotify"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/apps/details/com.spotify.Client) or [Snap](https://snapcraft.io/spotify) or follow instructions at [spotify.com/download/linux](https://www.spotify.com/download/linux/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "spotify",
"color": "#1DB954"
}
},
{
"id": "audacity",
"name": "Audacity",
"description": "Free open-source audio editor and recorder",
"category": "Media",
"targets": {
"ubuntu": "audacity",
"debian": "audacity",
"arch": "audacity",
"fedora": "audacity",
"opensuse": "audacity",
"nix": "audacity",
"flatpak": "org.audacityteam.Audacity",
"snap": "audacity",
"homebrew": "--cask audacity"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "audacity",
"color": "#0000CC"
}
},
{
"id": "kdenlive",
"name": "Kdenlive",
"description": "Powerful open-source video editor by KDE",
"category": "Media",
"targets": {
"ubuntu": "kdenlive",
"debian": "kdenlive",
"arch": "kdenlive",
"fedora": "kdenlive",
"opensuse": "kdenlive",
"nix": "kdenlive",
"flatpak": "org.kde.kdenlive",
"snap": "kdenlive",
"homebrew": "--cask kdenlive"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "kdenlive",
"color": "#527EB2"
}
},
{
"id": "obs",
"name": "OBS Studio",
"description": "Industry-standard streaming and recording software",
"category": "Media",
"targets": {
"ubuntu": "obs-studio",
"debian": "obs-studio",
"arch": "obs-studio",
"fedora": "obs-studio",
"opensuse": "obs-studio",
"nix": "obs-studio",
"flatpak": "com.obsproject.Studio",
"snap": "obs-studio",
"homebrew": "--cask obs"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "obsstudio",
"color": "#A3A3A3"
}
},
{
"id": "ffmpeg",
"name": "FFmpeg",
"description": "Swiss army knife of video/audio processing",
"category": "Media",
"targets": {
"ubuntu": "ffmpeg",
"debian": "ffmpeg",
"arch": "ffmpeg",
"fedora": "ffmpeg",
"opensuse": "ffmpeg",
"nix": "ffmpeg",
"homebrew": "ffmpeg"
},
"unavailableReason": "FFmpeg is a system library and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "ffmpeg",
"color": "#007808"
}
},
{
"id": "handbrake",
"name": "HandBrake",
"description": "Open-source video transcoder for any format",
"category": "Media",
"targets": {
"ubuntu": "handbrake",
"debian": "handbrake",
"arch": "handbrake",
"opensuse": "handbrake",
"nix": "handbrake",
"flatpak": "fr.handbrake.ghb",
"snap": "handbrake-jz",
"homebrew": "handbrake"
},
"unavailableReason": "HandBrake is not in official Fedora repos. Use [Flatpak](https://flathub.org/apps/details/fr.handbrake.ghb) or [Snap](https://snapcraft.io/handbrake-jz) instead.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "video-vintage",
"color": "#F83262"
}
},
{
"id": "stremio",
"name": "Stremio",
"description": "Modern media center with streaming addons",
"category": "Media",
"targets": {
"arch": "stremio",
"nix": "stremio",
"flatpak": "com.stremio.Stremio",
"homebrew": "--cask stremio"
},
"unavailableReason": "Only available via [AUR](https://aur.archlinux.org/packages/stremio) or [Flatpak](https://flathub.org/apps/details/com.stremio.Stremio), see [stremio.com/downloads](https://www.stremio.com/downloads) for more info.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "stremio",
"color": "#8A5AAB"
}
},
{
"id": "kodi",
"name": "Kodi",
"description": "Open-source home theater and media center",
"category": "Media",
"targets": {
"ubuntu": "kodi",
"debian": "kodi",
"arch": "kodi",
"fedora": "kodi",
"opensuse": "kodi",
"nix": "kodi",
"flatpak": "tv.kodi.Kodi",
"snap": "kodi",
"homebrew": "--cask kodi"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "kodi",
"color": "#17B2E7"
}
},
{
"id": "haruna",
"name": "Haruna",
"description": "Modern Qt/QML video player powered by mpv",
"category": "Media",
"targets": {
"ubuntu": "haruna",
"debian": "haruna",
"arch": "haruna",
"fedora": "haruna",
"opensuse": "haruna",
"nix": "haruna",
"flatpak": "org.kde.haruna",
"snap": "haruna"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "hevy",
"color": "#A3A3A3"
}
},
{
"id": "shortwave",
"name": "Shortwave",
"description": "Listen to internet radio stations worldwide",
"category": "Media",
"targets": {
"ubuntu": "shortwave",
"debian": "shortwave",
"arch": "shortwave",
"fedora": "shortwave",
"opensuse": "shortwave",
"nix": "shortwave",
"flatpak": "de.haeckerfelix.Shortwave",
"snap": "shortwave",
"homebrew": "--cask shortwave"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "playerfm",
"color": "#478ECC"
}
},
{
"id": "parabolic",
"name": "Parabolic",
"description": "Simple YouTube video and audio downloader",
"category": "Media",
"targets": {
"nix": "parabolic",
"flatpak": "org.nickvision.tubeconverter",
"snap": "tube-converter"
},
"unavailableReason": "Not in most official repos. Use [Flatpak](https://flathub.org/apps/org.nickvision.tubeconverter) or [Snap](https://snapcraft.io/tube-converter).",
"icon": {
"type": "url",
"url": "https://dl.flathub.org/media/org/nickvision/tubeconverter/fdcc995607100afabed728e47cfd5d99/icons/128x128/org.nickvision.tubeconverter.png"
}
}
]

231
src/lib/apps/office.json Normal file
View File

@@ -0,0 +1,231 @@
[
{
"id": "libreoffice",
"name": "LibreOffice",
"description": "Full-featured open-source office suite",
"category": "Office",
"targets": {
"ubuntu": "libreoffice",
"debian": "libreoffice",
"arch": "libreoffice-fresh",
"fedora": "libreoffice",
"opensuse": "libreoffice",
"nix": "libreoffice",
"flatpak": "org.libreoffice.LibreOffice",
"snap": "libreoffice",
"homebrew": "--cask libreoffice"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "libreoffice",
"color": "#0369A1"
}
},
{
"id": "onlyoffice",
"name": "OnlyOffice",
"description": "Modern office suite with MS Office compatibility",
"category": "Office",
"targets": {
"arch": "onlyoffice-bin",
"nix": "onlyoffice-bin",
"flatpak": "org.onlyoffice.desktopeditors",
"snap": "onlyoffice-desktopeditors",
"homebrew": "--cask onlyoffice"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/apps/details/org.onlyoffice.desktopeditors) or [Snap](https://snapcraft.io/onlyoffice-desktopeditors) or download from [onlyoffice.com/desktop](https://www.onlyoffice.com/desktop.aspx).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "onlyoffice",
"color": "#FF6F3D"
}
},
{
"id": "obsidian",
"name": "Obsidian",
"description": "Popular Markdown-based knowledge management app",
"category": "Office",
"targets": {
"arch": "obsidian",
"nix": "obsidian",
"flatpak": "md.obsidian.Obsidian",
"snap": "obsidian --classic",
"homebrew": "--cask obsidian"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/apps/details/md.obsidian.Obsidian) or [Snap](https://snapcraft.io/obsidian) or download from [obsidian.md/download](https://obsidian.md/download).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "obsidian",
"color": "#7C3AED"
}
},
{
"id": "logseq",
"name": "Logseq",
"description": "Open-source outliner for knowledge management",
"category": "Office",
"targets": {
"arch": "logseq-desktop-bin",
"nix": "logseq",
"flatpak": "com.logseq.Logseq",
"snap": "logseq",
"homebrew": "--cask logseq"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/apps/details/com.logseq.Logseq) or [Snap](https://snapcraft.io/logseq) or download from [logseq.com](https://logseq.com/downloads).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "logseq",
"color": "#06D5D5"
}
},
{
"id": "joplin",
"name": "Joplin",
"description": "Open-source note-taking with sync and encryption",
"category": "Office",
"targets": {
"arch": "joplin-appimage",
"nix": "joplin-desktop",
"flatpak": "net.cozic.joplin_desktop",
"snap": "joplin-desktop",
"homebrew": "--cask joplin"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/apps/details/net.cozic.joplin_desktop) or [Snap](https://snapcraft.io/joplin-desktop) or install from [joplinapp.org](https://joplinapp.org/help/install/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "joplin",
"color": "#1471B7"
}
},
{
"id": "okular",
"name": "Okular",
"description": "Universal document viewer by KDE",
"category": "Office",
"targets": {
"ubuntu": "okular",
"debian": "okular",
"arch": "okular",
"fedora": "okular",
"opensuse": "okular",
"nix": "okular",
"flatpak": "org.kde.okular",
"snap": "okular"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "kde",
"color": "#338BDB"
}
},
{
"id": "zathura",
"name": "Zathura",
"description": "Vim-style minimal PDF/document viewer",
"category": "Office",
"targets": {
"ubuntu": "zathura",
"debian": "zathura",
"arch": "zathura",
"fedora": "zathura",
"opensuse": "zathura",
"nix": "zathura"
},
"unavailableReason": "Zathura is not available via Flatpak or Snap.",
"icon": {
"type": "url",
"url": "https://raw.githubusercontent.com/TrixieUA/MoreWaita-copr-trixieua/e5bed029d63d4c14f1aba811152f3f0bf473a4bc/scalable/apps/zathura.svg"
}
},
{
"id": "calibre",
"name": "Calibre",
"description": "Complete e-book library management solution",
"category": "Office",
"targets": {
"ubuntu": "calibre",
"debian": "calibre",
"arch": "calibre",
"fedora": "calibre",
"opensuse": "calibre",
"nix": "calibre",
"flatpak": "com.calibre_ebook.calibre",
"homebrew": "--cask calibre"
},
"unavailableReason": "Calibre is not available as a Snap package.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "calibreweb",
"color": "#ECA315"
}
},
{
"id": "xournalpp",
"name": "Xournal++",
"description": "Handwriting and PDF annotation app",
"category": "Office",
"targets": {
"ubuntu": "xournalpp",
"debian": "xournalpp",
"arch": "xournalpp",
"fedora": "xournalpp",
"opensuse": "xournalpp",
"nix": "xournalpp",
"flatpak": "com.github.xournalpp.xournalpp",
"homebrew": "--cask xournal++"
},
"unavailableReason": "Xournal++ is not available as a Snap package.",
"icon": {
"type": "iconify",
"set": "vscode-icons",
"name": "file-type-pdf2"
}
},
{
"id": "zotero",
"name": "Zotero",
"description": "Research reference manager and citation tool",
"category": "Office",
"targets": {
"arch": "zotero-bin",
"opensuse": "zotero",
"nix": "zotero",
"flatpak": "org.zotero.Zotero",
"snap": "zotero-snap",
"homebrew": "--cask zotero"
},
"unavailableReason": "Not in official Ubuntu/Debian repos. Use [Flatpak](https://flathub.org/apps/org.zotero.Zotero)/[Snap](https://snapcraft.io/zotero-snap) or download from [zotero.org](https://www.zotero.org/download/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "zotero",
"color": "#CC2936"
}
},
{
"id": "trilium",
"name": "Trilium Notes",
"description": "Hierarchical note-taking app with powerful features",
"category": "Office",
"targets": {
"arch": "trilium-bin",
"nix": "trilium-desktop",
"flatpak": "com.github.zadam.trilium",
"homebrew": "--cask trilium-notes"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/apps/com.github.zadam.trilium) or download from [github.com/zadam/trilium](https://github.com/zadam/trilium/releases).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "trilium",
"color": "#51A52D"
}
}
]

140
src/lib/apps/security.json Normal file
View File

@@ -0,0 +1,140 @@
[
{
"id": "bitwarden",
"name": "Bitwarden",
"description": "Open-source password manager with cloud sync",
"category": "Security",
"targets": {
"arch": "bitwarden",
"nix": "bitwarden",
"flatpak": "com.bitwarden.desktop",
"snap": "bitwarden",
"homebrew": "--cask bitwarden"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/apps/details/com.bitwarden.desktop) or [Snap](https://snapcraft.io/bitwarden) or download from [bitwarden.com/download](https://bitwarden.com/download/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "bitwarden",
"color": "#175DDC"
}
},
{
"id": "keepassxc",
"name": "KeePassXC",
"description": "Secure offline-first password manager",
"category": "Security",
"targets": {
"ubuntu": "keepassxc",
"debian": "keepassxc",
"arch": "keepassxc",
"fedora": "keepassxc",
"opensuse": "keepassxc",
"nix": "keepassxc",
"flatpak": "org.keepassxc.KeePassXC",
"snap": "keepassxc",
"homebrew": "--cask keepassxc"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "keepassxc",
"color": "#65B726"
}
},
{
"id": "veracrypt",
"name": "VeraCrypt",
"description": "Free disk encryption based on TrueCrypt",
"category": "Security",
"targets": {
"arch": "veracrypt",
"opensuse": "veracrypt",
"nix": "veracrypt",
"homebrew": "--cask veracrypt"
},
"unavailableReason": "Not in official Debian/Ubuntu/Fedora repos. Download from [veracrypt.fr/en/Downloads](https://veracrypt.fr/en/Downloads.html).",
"icon": {
"type": "url",
"url": "https://raw.githubusercontent.com/PapirusDevelopmentTeam/papirus-icon-theme/3390a630b535d1c1ccca04881b3959e262264116/Papirus/64x64/apps/veracrypt.svg"
}
},
{
"id": "gnupg",
"name": "GnuPG",
"description": "GNU Privacy Guard for encryption and signing",
"category": "Security",
"targets": {
"ubuntu": "gnupg",
"debian": "gnupg",
"arch": "gnupg",
"fedora": "gnupg2",
"opensuse": "gnupg",
"nix": "gnupg",
"homebrew": "gnupg"
},
"unavailableReason": "GnuPG is a system package and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "gnuprivacyguard",
"color": "#0093DD"
}
},
{
"id": "firejail",
"name": "Firejail",
"description": "SUID sandbox for restricting app environments",
"category": "Security",
"targets": {
"ubuntu": "firejail",
"debian": "firejail",
"arch": "firejail",
"fedora": "firejail",
"opensuse": "firejail",
"nix": "firejail"
},
"unavailableReason": "Firejail is a system security tool and not available via Flatpak or Snap.",
"icon": {
"type": "url",
"url": "https://linux.fi/w/images/1/1f/Firejail-logo.png"
}
},
{
"id": "clamav",
"name": "ClamAV",
"description": "Open-source antivirus engine for malware detection",
"category": "Security",
"targets": {
"ubuntu": "clamav",
"debian": "clamav",
"arch": "clamav",
"fedora": "clamav",
"opensuse": "clamav",
"nix": "clamav",
"homebrew": "clamav"
},
"unavailableReason": "ClamAV is a system package and not available via Flatpak or Snap.",
"icon": {
"type": "url",
"url": "https://raw.githubusercontent.com/ivangabriele/clamav-desktop/f60bfafdd23bb455f0468abe5f877d2b76eddfba/assets/icons/icon.svg"
}
},
{
"id": "ente-auth",
"name": "Ente Auth",
"description": "Open source 2FA authenticator, with end-to-end encrypted backups",
"category": "Security",
"targets": {
"arch": "ente-auth-bin",
"nix": "ente-auth",
"flatpak": "io.ente.auth",
"homebrew": "--cask ente-auth"
},
"unavailableReason": "Not in official repos. Use [Flatpak version](https://flathub.org/en/apps/io.ente.auth) or [Unofficial Snap Version](https://snapcraft.io/ente-auth-tsugu) or visit [ente.io/auth/](https://ente.io/auth/).",
"icon": {
"type": "url",
"url": "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/ente-auth.svg"
}
}
]

366
src/lib/apps/system.json Normal file
View File

@@ -0,0 +1,366 @@
[
{
"id": "gparted",
"name": "GParted",
"description": "GNOME partition editor for disk management",
"category": "System",
"targets": {
"ubuntu": "gparted",
"debian": "gparted",
"arch": "gparted",
"fedora": "gparted",
"opensuse": "gparted",
"nix": "gparted"
},
"unavailableReason": "GParted requires root access and is not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "gnome",
"color": "#E95420"
}
},
{
"id": "kde-partition-manager",
"name": "KDE Partition Manager",
"description": "Utility for management of disk devices, partitions and file systems",
"category": "System",
"targets": {
"ubuntu": "partitionmanager",
"debian": "partitionmanager",
"arch": "partitionmanager",
"fedora": "kde-partitionmanager",
"opensuse": "partitionmanager",
"nix": "partitionmanager",
"flatpak": "org.kde.partitionmanager"
},
"unavailableReason": "Not available as a Snap package.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "kde",
"color": "#1D99F3"
}
},
{
"id": "kdeconnect",
"name": "KDE Connect",
"description": "Connect your phone to your Linux desktop",
"category": "System",
"targets": {
"ubuntu": "kdeconnect",
"debian": "kdeconnect",
"arch": "kdeconnect",
"fedora": "kdeconnectd",
"opensuse": "kdeconnect-kde",
"nix": "kdeconnect"
},
"unavailableReason": "KDE Connect is not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "kde",
"color": "#338BDB"
}
},
{
"id": "timeshift",
"name": "Timeshift",
"description": "System snapshot and restore tool like Time Machine",
"category": "System",
"targets": {
"ubuntu": "timeshift",
"debian": "timeshift",
"arch": "timeshift",
"fedora": "timeshift",
"opensuse": "timeshift",
"nix": "timeshift"
},
"unavailableReason": "Requires root filesystem access; not available as Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "backup-restore",
"color": "#D9534F"
}
},
{
"id": "bleachbit",
"name": "BleachBit",
"description": "Free disk space and maintain privacy",
"category": "System",
"targets": {
"ubuntu": "bleachbit",
"debian": "bleachbit",
"arch": "bleachbit",
"fedora": "bleachbit",
"opensuse": "bleachbit",
"nix": "bleachbit",
"flatpak": "org.bleachbit.BleachBit"
},
"unavailableReason": "BleachBit is not available as a Snap package.",
"icon": {
"type": "url",
"url": "https://raw.githubusercontent.com/chocolatey-community/chocolatey-packages/782707302851e7935c4a5a3e48e27140c774fa78/icons/bleachbit.svg"
}
},
{
"id": "flameshot",
"name": "Flameshot",
"description": "Powerful screenshot tool with annotation",
"category": "System",
"targets": {
"ubuntu": "flameshot",
"debian": "flameshot",
"arch": "flameshot",
"fedora": "flameshot",
"opensuse": "flameshot",
"nix": "flameshot",
"flatpak": "org.flameshot.Flameshot",
"homebrew": "--cask flameshot"
},
"unavailableReason": "Flameshot is not available as a Snap package.",
"icon": {
"type": "url",
"url": "https://raw.githubusercontent.com/flameshot-org/flameshot/master/data/img/app/flameshot.svg"
}
},
{
"id": "gnometweaks",
"name": "GNOME Tweaks",
"description": "Advanced settings and customization for GNOME",
"category": "System",
"targets": {
"ubuntu": "gnome-tweaks",
"debian": "gnome-tweaks",
"arch": "gnome-tweaks",
"fedora": "gnome-tweaks",
"opensuse": "gnome-tweaks",
"nix": "gnome-tweaks"
},
"unavailableReason": "GNOME Tweaks is not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "gnome",
"color": "#4A86CF"
}
},
{
"id": "dconf",
"name": "dconf Editor",
"description": "Low-level configuration editor for GNOME",
"category": "System",
"targets": {
"ubuntu": "dconf-editor",
"debian": "dconf-editor",
"arch": "dconf-editor",
"fedora": "dconf-editor",
"opensuse": "dconf-editor",
"nix": "dconf-editor"
},
"unavailableReason": "dconf Editor is not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "gnome",
"color": "#4A86CF"
}
},
{
"id": "borgbackup",
"name": "BorgBackup",
"description": "Deduplicating backup program with compression",
"category": "System",
"targets": {
"ubuntu": "borgbackup",
"debian": "borgbackup",
"arch": "borg",
"fedora": "borgbackup",
"opensuse": "borgbackup",
"nix": "borgbackup",
"homebrew": "borgbackup"
},
"unavailableReason": "BorgBackup is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "borgbackup",
"color": "#00B041"
}
},
{
"id": "restic",
"name": "Restic",
"description": "Fast, secure, efficient backup program",
"category": "System",
"targets": {
"ubuntu": "restic",
"debian": "restic",
"arch": "restic",
"fedora": "restic",
"opensuse": "restic",
"nix": "restic",
"homebrew": "restic"
},
"unavailableReason": "Restic is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "cloud-sync",
"color": "#00B4AB"
}
},
{
"id": "flatpaksupport",
"name": "Flatpak",
"description": "Universal app packaging and sandboxing framework",
"category": "System",
"targets": {
"ubuntu": "flatpak",
"debian": "flatpak",
"arch": "flatpak",
"fedora": "flatpak",
"opensuse": "flatpak",
"nix": "flatpak"
},
"unavailableReason": "Flatpak is a system package manager and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "flatpak",
"color": "#4A90D9"
}
},
{
"id": "filelight",
"name": "Filelight",
"description": "Interactive disk usage visualization by KDE",
"category": "System",
"targets": {
"ubuntu": "filelight",
"debian": "filelight",
"arch": "filelight",
"fedora": "filelight",
"opensuse": "filelight",
"nix": "filelight",
"flatpak": "org.kde.filelight",
"snap": "filelight"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "kde",
"color": "#338BDB"
}
},
{
"id": "conky",
"name": "Conky",
"description": "Highly configurable desktop system monitor",
"category": "System",
"targets": {
"ubuntu": "conky-all",
"debian": "conky-all",
"arch": "conky",
"fedora": "conky",
"opensuse": "conky",
"nix": "conky"
},
"unavailableReason": "Conky is a system tool and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "monitor-dashboard",
"color": "#FFFFFF"
}
},
{
"id": "fsearch",
"name": "FSearch",
"description": "Fast file search utility, inspired by Everything",
"category": "System",
"targets": {
"ubuntu": "fsearch",
"debian": "fsearch",
"arch": "fsearch",
"opensuse": "fsearch",
"nix": "fsearch",
"flatpak": "com.github.cboxdoerfer.FSearch"
},
"unavailableReason": "Not in Fedora official repos. Available via [COPR](https://copr.fedorainfracloud.org/coprs/cboxdoerfer/fsearch/) but may have dependency issues on Fedora 41+.",
"icon": {
"type": "url",
"url": "https://dl.flathub.org/media/io/github/cboxdoerfer.FSearch/5dfcd05a3d0147745dccd8477b238210/icons/128x128/io.github.cboxdoerfer.FSearch.png"
}
},
{
"id": "resources",
"name": "Resources",
"description": "Modern system resource monitor",
"category": "System",
"targets": {
"arch": "resources",
"nix": "resources",
"flatpak": "net.nokyan.Resources"
},
"icon": {
"type": "url",
"url": "https://dl.flathub.org/media/net/nokyan/Resources/4f0373aa103995c3e7197228fdb3d21c/icons/128x128/net.nokyan.Resources.png"
}
},
{
"id": "cpux",
"name": "CPU-X",
"description": "System profiling and monitoring (CPU-Z alternative)",
"category": "System",
"targets": {
"ubuntu": "cpu-x",
"debian": "cpu-x",
"arch": "cpu-x",
"fedora": "cpu-x",
"nix": "cpu-x",
"flatpak": "io.github.thetumultuousunicornofdarkness.cpu-x"
},
"icon": {
"type": "url",
"url": "https://dl.flathub.org/media/io/github/thetumultuousunicornofdarkness.cpu-x/80c9c5c5b9f72bd79cbe28b1c3d662da/icons/128x128/io.github.thetumultuousunicornofdarkness.cpu-x.png"
}
},
{
"id": "missioncenter",
"name": "Mission Center",
"description": "Fast, modern system monitor with GPU support",
"category": "System",
"targets": {
"arch": "mission-center",
"nix": "mission-center",
"flatpak": "io.missioncenter.MissionCenter",
"snap": "mission-center"
},
"unavailableReason": "Not in most official repos. Use [Flatpak](https://flathub.org/apps/io.github.MissionCenter.MissionCenter) or see [Mission Center](https://gitlab.com/mission-center-devs/mission-center/) for more information.",
"icon": {
"type": "url",
"url": "https://gitlab.com/mission-center-devs/mission-center/-/raw/main/data/icons/hicolor/scalable/apps/io.missioncenter.MissionCenter.svg"
}
},
{
"id": "openrgb",
"name": "OpenRGB",
"description": "Open source RGB lighting control that does not depend on manufacturer software. Supports a wide variety of RGB components, peripherals, accessories, and lights across many manufacturers.",
"category": "System",
"targets": {
"arch": "openrgb",
"fedora": "openrgb",
"opensuse": "OpenRGB",
"nix": "openrgb",
"homebrew": "--cask openrgb",
"flatpak": "org.openrgb.OpenRGB"
},
"unavailableReason": "Not in available in Snap. Use the [Flatpak version](https://flathub.org/en/apps/org.openrgb.OpenRGB) instead. Available on Debian 14/Sid and Ubuntu 25.11 or later Official repos as `openrgb`",
"icon": {
"type": "url",
"url": "https://avatars.githubusercontent.com/u/1051772?s=48&v=4"
}
}
]

207
src/lib/apps/terminal.json Normal file
View File

@@ -0,0 +1,207 @@
[
{
"id": "zsh",
"name": "Zsh",
"description": "Powerful shell with advanced completion features",
"category": "Terminal",
"targets": {
"ubuntu": "zsh",
"debian": "zsh",
"arch": "zsh",
"fedora": "zsh",
"opensuse": "zsh",
"nix": "zsh",
"homebrew": "zsh"
},
"unavailableReason": "Zsh is a system shell and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "zsh",
"color": "#F15A24"
}
},
{
"id": "ohmyzsh",
"name": "Oh My Zsh",
"description": "Zsh configuration framework with plugins/themes",
"category": "Terminal",
"targets": {
"nix": "oh-my-zsh"
},
"unavailableReason": "Install via `sh -c \"$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)\"`. See [ohmyzsh wiki](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "zsh",
"color": "#F15A24"
}
},
{
"id": "fish",
"name": "Fish",
"description": "Smart and user-friendly interactive shell",
"category": "Terminal",
"targets": {
"ubuntu": "fish",
"debian": "fish",
"arch": "fish",
"fedora": "fish",
"opensuse": "fish",
"nix": "fish",
"homebrew": "fish"
},
"unavailableReason": "Fish is a system shell and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "vscode-icons",
"name": "file-type-shell"
}
},
{
"id": "starship",
"name": "Starship",
"description": "Cross-shell customizable command prompt",
"category": "Terminal",
"targets": {
"ubuntu": "starship",
"debian": "starship",
"arch": "starship",
"opensuse": "starship",
"nix": "starship",
"homebrew": "starship"
},
"unavailableReason": "Not in Fedora repos. Install via `curl -sS https://starship.rs/install.sh | sh` or see [starship.rs](https://starship.rs/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "starship",
"color": "#DD0B78"
}
},
{
"id": "alacritty",
"name": "Alacritty",
"description": "Blazing fast GPU-accelerated terminal emulator",
"category": "Terminal",
"targets": {
"ubuntu": "alacritty",
"debian": "alacritty",
"arch": "alacritty",
"fedora": "alacritty",
"opensuse": "alacritty",
"nix": "alacritty",
"snap": "alacritty --classic",
"homebrew": "--cask alacritty"
},
"unavailableReason": "Alacritty is not available as a Flatpak package.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "alacritty",
"color": "#F46D01"
}
},
{
"id": "kitty",
"name": "Kitty",
"description": "Fast GPU-based terminal with advanced features",
"category": "Terminal",
"targets": {
"ubuntu": "kitty",
"debian": "kitty",
"arch": "kitty",
"fedora": "kitty",
"opensuse": "kitty",
"nix": "kitty",
"homebrew": "--cask kitty"
},
"unavailableReason": "Kitty is not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "cat",
"color": "#ea5e5e"
}
},
{
"id": "wezterm",
"name": "WezTerm",
"description": "GPU-accelerated terminal with Lua configuration",
"category": "Terminal",
"targets": {
"arch": "wezterm",
"opensuse": "wezterm",
"nix": "wezterm",
"flatpak": "org.wezfurlong.wezterm",
"homebrew": "--cask wezterm"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/en/apps/org.wezfurlong.wezterm) or follow instructions at [wezfurlong.org/wezterm/install](https://wezfurlong.org/wezterm/install/linux.html).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "wezterm",
"color": "#4E49EE"
}
},
{
"id": "foot",
"name": "Foot",
"description": "Lightweight Wayland-native terminal emulator",
"category": "Terminal",
"targets": {
"ubuntu": "foot",
"debian": "foot",
"arch": "foot",
"fedora": "foot",
"opensuse": "foot",
"nix": "foot",
"homebrew": "foot"
},
"unavailableReason": "Foot is a Wayland-only terminal and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "wayland",
"color": "#FFBC00"
}
},
{
"id": "ghostty",
"name": "Ghostty",
"description": "Native GPU-accelerated terminal by Mitchell Hashimoto",
"category": "Terminal",
"targets": {
"arch": "ghostty",
"nix": "ghostty",
"homebrew": "--cask ghostty"
},
"unavailableReason": "Not in most repos. See [official binaries](https://ghostty.org/docs/install/binary#linux-(official)) or build from source.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "ghost-outline",
"color": "#6E56CF"
}
},
{
"id": "ptyxis",
"name": "Ptyxis",
"description": "Modern terminal emulator optimized for containerized workflows",
"category": "Terminal",
"targets": {
"debian": "ptyxis",
"ubuntu": "ptyxis",
"arch": "ptyxis",
"fedora": "ptyxis",
"opensuse": "ptyxis",
"nix": "ptyxis",
"flatpak": "app.devsuite.Ptyxis"
},
"unavailableReason": "Not available via Snap or Homebrew. Use [Flatpak Version](https://flathub.org/en/apps/app.devsuite.Ptyxis) ",
"icon": {
"type": "url",
"url": "https://upload.wikimedia.org/wikipedia/commons/2/21/Ptyxis.svg"
}
}
]

View File

@@ -0,0 +1,166 @@
[
{
"id": "protonvpn",
"name": "Proton VPN",
"description": "Secure VPN by the makers of ProtonMail",
"category": "VPN & Network",
"targets": {
"arch": "proton-vpn-gtk-app",
"nix": "protonvpn-gui",
"flatpak": "com.protonvpn.www",
"homebrew": "--cask protonvpn"
},
"unavailableReason": "Not in official repos. Use Flatpak or follow instructions at [protonvpn.com/support/linux-vpn-setup](https://protonvpn.com/support/linux-vpn-setup/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "protonvpn",
"color": "#6D4AFF"
}
},
{
"id": "mullvad",
"name": "Mullvad VPN",
"description": "Privacy-focused VPN with no-logging policy",
"category": "VPN & Network",
"targets": {
"arch": "mullvad-vpn-bin",
"nix": "mullvad-vpn",
"homebrew": "--cask mullvad-vpn"
},
"unavailableReason": "Not in official repos. Use [AUR](https://aur.archlinux.org/packages/mullvad-vpn-bin) or see [official install guide](https://mullvad.net/en/help/install-mullvad-app-linux).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "mullvad",
"color": "#44AD4D"
}
},
{
"id": "tailscale",
"name": "Tailscale",
"description": "Zero-config mesh VPN using WireGuard",
"category": "VPN & Network",
"targets": {
"arch": "tailscale",
"fedora": "tailscale",
"opensuse": "tailscale",
"nix": "tailscale",
"homebrew": "tailscale"
},
"unavailableReason": "Not in Debian or Ubuntu repos. Follow instructions at [tailscale.com/download/linux](https://tailscale.com/download/linux).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "tailscale",
"color": "#797878"
}
},
{
"id": "wireguard",
"name": "WireGuard",
"description": "Fast, modern, secure VPN tunnel protocol",
"category": "VPN & Network",
"targets": {
"ubuntu": "wireguard",
"debian": "wireguard",
"arch": "wireguard-tools",
"fedora": "wireguard-tools",
"opensuse": "wireguard-tools",
"nix": "wireguard-tools",
"homebrew": "wireguard-tools"
},
"unavailableReason": "WireGuard is a kernel module and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "wireguard",
"color": "#88171A"
}
},
{
"id": "openvpn",
"name": "OpenVPN",
"description": "Full-featured SSL VPN solution",
"category": "VPN & Network",
"targets": {
"ubuntu": "openvpn",
"debian": "openvpn",
"arch": "openvpn",
"fedora": "openvpn",
"opensuse": "openvpn",
"nix": "openvpn",
"homebrew": "openvpn"
},
"unavailableReason": "OpenVPN is a system package and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "openvpn",
"color": "#EA7E20"
}
},
{
"id": "nmap",
"name": "Nmap",
"description": "Network discovery and security auditing tool",
"category": "VPN & Network",
"targets": {
"ubuntu": "nmap",
"debian": "nmap",
"arch": "nmap",
"fedora": "nmap",
"opensuse": "nmap",
"nix": "nmap",
"homebrew": "nmap"
},
"unavailableReason": "Nmap is a CLI tool and not available via Flatpak or Snap.",
"icon": {
"type": "url",
"url": "https://raw.githubusercontent.com/bwks/vendor-icons-svg/702f2ac88acc71759ce623bc5000a596195e9db3/nmap-logo.svg"
}
},
{
"id": "openssh",
"name": "OpenSSH",
"description": "Secure remote login and file transfer via SSH",
"category": "VPN & Network",
"targets": {
"ubuntu": "openssh-client",
"debian": "openssh-client",
"arch": "openssh",
"fedora": "openssh-clients",
"opensuse": "openssh",
"nix": "openssh",
"homebrew": "openssh"
},
"unavailableReason": "OpenSSH is a system package and not available via Flatpak or Snap.",
"icon": {
"type": "iconify",
"set": "mdi",
"name": "ssh",
"color": "#F5A623"
}
},
{
"id": "remmina",
"name": "Remmina",
"description": "Open-source remote desktop client for RDP, VNC, SSH and more",
"category": "VPN & Network",
"targets": {
"ubuntu": "remmina",
"debian": "remmina",
"arch": "remmina",
"fedora": "remmina",
"opensuse": "remmina",
"nix": "remmina",
"flatpak": "org.remmina.Remmina",
"snap": "remmina"
},
"unavailableReason": "Remmina is not available via Homebrew, use [Flatpak version](https://flathub.org/en/apps/org.remmina.Remmina) or [Snap version](https://snapcraft.io/remmina) instead.",
"icon": {
"type": "url",
"url": "https://upload.wikimedia.org/wikipedia/commons/9/96/Org.remmina.Remmina.svg"
}
}
]

View File

@@ -0,0 +1,200 @@
[
{
"id": "firefox",
"name": "Firefox",
"description": "Privacy-focused open-source browser by Mozilla",
"category": "Web Browsers",
"targets": {
"ubuntu": "firefox",
"debian": "firefox-esr",
"arch": "firefox",
"fedora": "firefox",
"opensuse": "MozillaFirefox",
"nix": "firefox",
"flatpak": "org.mozilla.firefox",
"snap": "firefox",
"homebrew": "--cask firefox"
},
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "firefox",
"color": "#FF7139"
}
},
{
"id": "chromium",
"name": "Chromium",
"description": "Open-source browser that powers Google Chrome",
"category": "Web Browsers",
"targets": {
"ubuntu": "chromium-browser",
"debian": "chromium",
"arch": "chromium",
"fedora": "chromium",
"opensuse": "chromium",
"nix": "chromium",
"flatpak": "org.chromium.Chromium",
"snap": "chromium",
"homebrew": "--cask chromium"
},
"icon": {
"type": "url",
"url": "https://upload.wikimedia.org/wikipedia/commons/2/28/Chromium_Logo.svg"
}
},
{
"id": "brave",
"name": "Brave",
"description": "Privacy browser with built-in ad/tracker blocker",
"category": "Web Browsers",
"targets": {
"arch": "brave-bin",
"opensuse": "brave-browser",
"nix": "brave",
"flatpak": "com.brave.Browser",
"snap": "brave",
"homebrew": "--cask brave-browser"
},
"unavailableReason": "Not in official repos. Use Flatpak/Snap or follow instructions at [brave.com/linux](https://brave.com/linux/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "brave",
"color": "#FB542B"
}
},
{
"id": "librewolf",
"name": "LibreWolf",
"description": "Privacy-hardened Firefox fork with telemetry removed",
"category": "Web Browsers",
"targets": {
"arch": "librewolf-bin",
"opensuse": "librewolf",
"nix": "librewolf",
"flatpak": "io.gitlab.librewolf-community",
"homebrew": "--cask librewolf"
},
"unavailableReason": "Not available in official repos. Use [Flatpak](https://flathub.org/en/apps/io.gitlab.librewolf-community) or follow instructions at [librewolf.net/installation](https://librewolf.net/installation/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "firefoxbrowser",
"color": "#0588D1"
}
},
{
"id": "tor",
"name": "Tor Browser",
"description": "Anonymous browsing via the Tor network",
"category": "Web Browsers",
"targets": {
"ubuntu": "torbrowser-launcher",
"arch": "torbrowser-launcher",
"fedora": "torbrowser-launcher",
"opensuse": "torbrowser-launcher",
"nix": "tor-browser",
"flatpak": "org.torproject.torbrowser-launcher",
"homebrew": "--cask tor-browser"
},
"unavailableReason": "Debian requires editing /etc/apt/sources.list adding \"contrib\" to the end of the line that starts with \"deb\" or \"deb-src\" and `sudo apt update` before installing `sudo apt install -y torbrowser-launcher`. Or just download from [torproject.org](https://www.torproject.org/download/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "torbrowser",
"color": "#7D4698"
}
},
{
"id": "chrome",
"name": "Google Chrome",
"description": "Most popular web browser by Google",
"category": "Web Browsers",
"targets": {
"arch": "google-chrome",
"opensuse": "google-chrome-stable",
"nix": "google-chrome",
"flatpak": "com.google.Chrome",
"homebrew": "--cask google-chrome"
},
"unavailableReason": "Not in official repos for Debian/Ubuntu due to licensing. Install via [Flatpak](https://flathub.org/apps/com.google.Chrome), or download the .deb/.rpm directly from [google.com/chrome](https://www.google.com/chrome/).",
"icon": {
"type": "iconify",
"set": "logos",
"name": "chrome"
}
},
{
"id": "zen",
"name": "Zen Browser",
"description": "Privacy-focused Firefox fork",
"category": "Web Browsers",
"targets": {
"arch": "zen-browser-bin",
"flatpak": "app.zen_browser.zen",
"homebrew": "--cask zen"
},
"unavailableReason": "Not in most official repos. Use [Flatpak](https://flathub.org/apps/app.zen_browser.zen) or download from [zen-browser.app](https://zen-browser.app).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "zenbrowser",
"color": "#FF7139"
}
},
{
"id": "helium",
"name": "Helium",
"description": "Privacy-focused ungoogled-chromium browser",
"category": "Web Browsers",
"targets": {
"arch": "helium-browser-bin",
"homebrew": "--cask helium"
},
"unavailableReason": "Only available as AppImage or via AUR. Download from [helium.computer](https://helium.computer/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "googlechrome",
"color": "#00D4FF"
}
},
{
"id": "vivaldi",
"name": "Vivaldi",
"description": "Highly customizable browser for power users",
"category": "Web Browsers",
"targets": {
"arch": "vivaldi",
"nix": "vivaldi",
"flatpak": "com.vivaldi.Vivaldi",
"snap": "vivaldi",
"homebrew": "--cask vivaldi"
},
"unavailableReason": "Not in official repos. Use [Flatpak](https://flathub.org/apps/com.vivaldi.Vivaldi)/[Snap](https://snapcraft.io/vivaldi) or download from [vivaldi.com](https://vivaldi.com/download/).",
"icon": {
"type": "iconify",
"set": "simple-icons",
"name": "vivaldi",
"color": "#EF3939"
}
},
{
"id": "ungoogled-chromium",
"name": "Ungoogled Chromium",
"description": "Privacy-focused Chromium rebuild with Google services and telemetry removed.",
"category": "Web Browsers",
"targets": {
"arch": "ungoogled-chromium-bin",
"flatpak": "io.github.ungoogled_software.ungoogled_chromium",
"homebrew": "--cask ungoogled-chromium",
"nix": "ungoogled-chromium"
},
"unavailableReason": "Not in the official repos. Use the [Flatpak version](https://flathub.org/en/apps/io.github.ungoogled_software.ungoogled_chromium) or visit [ungoogled-software.github.io](https://ungoogled-software.github.io/) for official builds and installation instructions.",
"icon": {
"type": "url",
"url": "https://imgproxy.flathub.org/insecure/dpr:1/f:avif/q:100/rs:fit:128:128/aHR0cHM6Ly9kbC5mbGF0aHViLm9yZy9tZWRpYS9pby9naXRodWIvdW5nb29nbGVkX3NvZnR3YXJlLnVuZ29vZ2xlZF9jaHJvbWl1bS9lZjYyMTVlYTliZWMxZDVjMjg0YzFlZDBkMDRkYTE4ZS9pY29ucy8xMjh4MTI4L2lvLmdpdGh1Yi51bmdvb2dsZWRfc29mdHdhcmUudW5nb29nbGVkX2Nocm9taXVtLnBuZw"
}
}
]

View File

@@ -1,4 +1,20 @@
// Types import webBrowsers from './apps/web-browsers.json';
import communication from './apps/communication.json';
import devLanguages from './apps/dev-languages.json';
import devEditors from './apps/dev-editors.json';
import devTools from './apps/dev-tools.json';
import terminal from './apps/terminal.json';
import cliTools from './apps/cli-tools.json';
import media from './apps/media.json';
import creative from './apps/creative.json';
import gaming from './apps/gaming.json';
import office from './apps/office.json';
import vpnNetwork from './apps/vpn-network.json';
import security from './apps/security.json';
import fileSharing from './apps/file-sharing.json';
import system from './apps/system.json';
export type DistroId = 'ubuntu' | 'debian' | 'arch' | 'fedora' | 'opensuse' | 'nix' | 'flatpak' | 'snap' | 'homebrew'; export type DistroId = 'ubuntu' | 'debian' | 'arch' | 'fedora' | 'opensuse' | 'nix' | 'flatpak' | 'snap' | 'homebrew';
export type Category = export type Category =
@@ -18,6 +34,10 @@ export type Category =
| 'File Sharing' | 'File Sharing'
| 'System'; | 'System';
export type IconDef =
| { type: 'iconify'; set: string; name: string; color?: string }
| { type: 'url'; url: string };
export interface Distro { export interface Distro {
id: DistroId; id: DistroId;
name: string; name: string;
@@ -31,285 +51,74 @@ export interface AppData {
name: string; name: string;
description: string; description: string;
category: Category; category: Category;
iconUrl: string; icon: IconDef;
targets: Partial<Record<DistroId, string>>; targets: Partial<Record<DistroId, string>>;
// Markdown shown when app unavailable (same for all distros)
unavailableReason?: string; unavailableReason?: string;
} }
// Icon helpers using Iconify API for comprehensive icon coverage export const getIconUrl = (icon: IconDef): string => {
// Adding ?color=hex to colorize monochrome icons if (icon.type === 'url') return icon.url;
const icon = (set: string, name: string, color?: string) => let url = `https://api.iconify.design/${icon.set}/${icon.name}.svg`;
`https://api.iconify.design/${set}/${name}.svg${color ? `?color=${encodeURIComponent(color)}` : ''}`; if (icon.color) {
const si = (name: string, color?: string) => icon('simple-icons', name, color); // Simple Icons (brands) url += `?color=${encodeURIComponent(icon.color)}`;
const lo = (name: string) => icon('logos', name); // Logos (already colorful) }
const vs = (name: string) => icon('vscode-icons', name); // VS Code Icons (colorful file types) return url;
const mdi = (name: string, color?: string) => icon('mdi', name, color); // Material Design Icons };
export const distros: Distro[] = [ export const distros: Distro[] = [
{ id: 'ubuntu', name: 'Ubuntu', iconUrl: si('ubuntu', '#E95420'), color: '#E95420', installPrefix: 'sudo apt install -y' }, { id: 'ubuntu', name: 'Ubuntu', iconUrl: 'https://api.iconify.design/simple-icons/ubuntu.svg?color=%23E95420', color: '#E95420', installPrefix: 'sudo apt install -y' },
{ id: 'debian', name: 'Debian', iconUrl: si('debian', '#A81D33'), color: '#A81D33', installPrefix: 'sudo apt install -y' }, { id: 'debian', name: 'Debian', iconUrl: 'https://api.iconify.design/simple-icons/debian.svg?color=%23A81D33', color: '#A81D33', installPrefix: 'sudo apt install -y' },
{ id: 'arch', name: 'Arch', iconUrl: si('archlinux', '#1793D1'), color: '#1793D1', installPrefix: 'sudo pacman -S --needed --noconfirm' }, { id: 'arch', name: 'Arch', iconUrl: 'https://api.iconify.design/simple-icons/archlinux.svg?color=%231793D1', color: '#1793D1', installPrefix: 'sudo pacman -S --needed --noconfirm' },
{ id: 'fedora', name: 'Fedora', iconUrl: si('fedora', '#51A2DA'), color: '#51A2DA', installPrefix: 'sudo dnf install -y' }, { id: 'fedora', name: 'Fedora', iconUrl: 'https://api.iconify.design/simple-icons/fedora.svg?color=%2351A2DA', color: '#51A2DA', installPrefix: 'sudo dnf install -y' },
{ id: 'opensuse', name: 'OpenSUSE', iconUrl: si('opensuse', '#73BA25'), color: '#73BA25', installPrefix: 'sudo zypper install -y' }, { id: 'opensuse', name: 'OpenSUSE', iconUrl: 'https://api.iconify.design/simple-icons/opensuse.svg?color=%2373BA25', color: '#73BA25', installPrefix: 'sudo zypper install -y' },
{ id: 'nix', name: 'Nix', iconUrl: si('nixos', '#5277C3'), color: '#5277C3', installPrefix: 'nix-env -iA nixpkgs.' }, { id: 'nix', name: 'Nix', iconUrl: 'https://api.iconify.design/simple-icons/nixos.svg?color=%235277C3', color: '#5277C3', installPrefix: 'nix-env -iA nixpkgs.' },
{ id: 'flatpak', name: 'Flatpak', iconUrl: si('flatpak', '#4A90D9'), color: '#4A90D9', installPrefix: 'flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo && flatpak install flathub -y' }, { id: 'flatpak', name: 'Flatpak', iconUrl: 'https://api.iconify.design/simple-icons/flatpak.svg?color=%234A90D9', color: '#4A90D9', installPrefix: 'flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo && flatpak install flathub -y' },
{ id: 'snap', name: 'Snap', iconUrl: si('snapcraft', '#82BEA0'), color: '#82BEA0', installPrefix: 'sudo snap install' }, { id: 'snap', name: 'Snap', iconUrl: 'https://api.iconify.design/simple-icons/snapcraft.svg?color=%2382BEA0', color: '#82BEA0', installPrefix: 'sudo snap install' },
{ id: 'homebrew', name: 'Homebrew', iconUrl: si('homebrew', '#FBB040'), color: '#FBB040', installPrefix: 'brew install' }, { id: 'homebrew', name: 'Homebrew', iconUrl: 'https://api.iconify.design/simple-icons/homebrew.svg?color=%23FBB040', color: '#FBB040', installPrefix: 'brew install' },
]; ];
export const apps: AppData[] = [ export const apps: AppData[] = [
// WEB BROWSERS ...(webBrowsers as AppData[]),
{ id: 'firefox', name: 'Firefox', description: 'Privacy-focused open-source browser by Mozilla', category: 'Web Browsers', iconUrl: si('firefox', '#FF7139'), targets: { ubuntu: 'firefox', debian: 'firefox-esr', arch: 'firefox', fedora: 'firefox', opensuse: 'MozillaFirefox', nix: 'firefox', flatpak: 'org.mozilla.firefox', snap: 'firefox', homebrew: '--cask firefox' } }, ...(communication as AppData[]),
{ id: 'chromium', name: 'Chromium', description: 'Open-source browser that powers Google Chrome', category: 'Web Browsers', iconUrl: 'https://upload.wikimedia.org/wikipedia/commons/2/28/Chromium_Logo.svg', targets: { ubuntu: 'chromium-browser', debian: 'chromium', arch: 'chromium', fedora: 'chromium', opensuse: 'chromium', nix: 'chromium', flatpak: 'org.chromium.Chromium', snap: 'chromium', homebrew: '--cask chromium' } }, ...(devLanguages as AppData[]),
{ id: 'brave', name: 'Brave', description: 'Privacy browser with built-in ad/tracker blocker', category: 'Web Browsers', iconUrl: si('brave', '#FB542B'), targets: { arch: 'brave-bin', opensuse: 'brave-browser', nix: 'brave', flatpak: 'com.brave.Browser', snap: 'brave', homebrew: '--cask brave-browser' }, unavailableReason: 'Not in official repos. Use Flatpak/Snap or follow instructions at [brave.com/linux](https://brave.com/linux/).' }, ...(devEditors as AppData[]),
{ id: 'librewolf', name: 'LibreWolf', description: 'Privacy-hardened Firefox fork with telemetry removed', category: 'Web Browsers', iconUrl: si('firefoxbrowser', '#0588D1'), targets: { arch: 'librewolf-bin', opensuse: 'librewolf', nix: 'librewolf', flatpak: 'io.gitlab.librewolf-community', homebrew: '--cask librewolf' }, unavailableReason: 'Not available in official repos. Use [Flatpak](https://flathub.org/en/apps/io.gitlab.librewolf-community) or follow instructions at [librewolf.net/installation](https://librewolf.net/installation/).' }, ...(devTools as AppData[]),
{ id: 'tor', name: 'Tor Browser', description: 'Anonymous browsing via the Tor network', category: 'Web Browsers', iconUrl: si('torbrowser', '#7D4698'), targets: { ubuntu: 'torbrowser-launcher', arch: 'torbrowser-launcher', fedora: 'torbrowser-launcher', opensuse: 'torbrowser-launcher', nix: 'tor-browser', flatpak: 'org.torproject.torbrowser-launcher', homebrew: '--cask tor-browser' }, unavailableReason: 'Debian requires editing /etc/apt/sources.list adding "contrib" to the end of the line that starts with "deb" or "deb-src" and `sudo apt update` before installing `sudo apt install -y torbrowser-launcher`. Or just download from [torproject.org](https://www.torproject.org/download/).' }, ...(terminal as AppData[]),
{ id: 'chrome', name: 'Google Chrome', description: 'Most popular web browser by Google', category: 'Web Browsers', iconUrl: lo('chrome'), targets: { arch: 'google-chrome', opensuse: 'google-chrome-stable', nix: 'google-chrome', flatpak: 'com.google.Chrome', homebrew: '--cask google-chrome' }, unavailableReason: 'Not in official repos for Debian/Ubuntu due to licensing. Install via [Flatpak](https://flathub.org/apps/com.google.Chrome), or download the .deb/.rpm directly from [google.com/chrome](https://www.google.com/chrome/).' }, ...(cliTools as AppData[]),
{ id: 'zen', name: 'Zen Browser', description: 'Privacy-focused Firefox fork', category: 'Web Browsers', iconUrl: si('zenbrowser', '#FF7139'), targets: { arch: 'zen-browser-bin', flatpak: 'app.zen_browser.zen', homebrew: '--cask zen' }, unavailableReason: 'Not in most official repos. Use [Flatpak](https://flathub.org/apps/app.zen_browser.zen) or download from [zen-browser.app](https://zen-browser.app).' }, ...(media as AppData[]),
{ id: 'helium', name: 'Helium', description: 'Privacy-focused ungoogled-chromium browser', category: 'Web Browsers', iconUrl: si('googlechrome', '#00D4FF'), targets: { arch: 'helium-browser-bin', homebrew: '--cask helium' }, unavailableReason: 'Only available as AppImage or via AUR. Download from [helium.computer](https://helium.computer/).' }, ...(creative as AppData[]),
{ id: 'vivaldi', name: 'Vivaldi', description: 'Highly customizable browser for power users', category: 'Web Browsers', iconUrl: si('vivaldi', '#EF3939'), targets: { arch: 'vivaldi', nix: 'vivaldi', flatpak: 'com.vivaldi.Vivaldi', snap: 'vivaldi', homebrew: '--cask vivaldi' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/apps/com.vivaldi.Vivaldi)/[Snap](https://snapcraft.io/vivaldi) or download from [vivaldi.com](https://vivaldi.com/download/).' }, ...(gaming as AppData[]),
{ id: 'ungoogled-chromium', name: 'Ungoogled Chromium', description: 'Privacy-focused Chromium rebuild with Google services and telemetry removed.', category: 'Web Browsers', iconUrl: 'https://imgproxy.flathub.org/insecure/dpr:1/f:avif/q:100/rs:fit:128:128/aHR0cHM6Ly9kbC5mbGF0aHViLm9yZy9tZWRpYS9pby9naXRodWIvdW5nb29nbGVkX3NvZnR3YXJlLnVuZ29vZ2xlZF9jaHJvbWl1bS9lZjYyMTVlYTliZWMxZDVjMjg0YzFlZDBkMDRkYTE4ZS9pY29ucy8xMjh4MTI4L2lvLmdpdGh1Yi51bmdvb2dsZWRfc29mdHdhcmUudW5nb29nbGVkX2Nocm9taXVtLnBuZw', targets: { arch: 'ungoogled-chromium-bin', flatpak: 'io.github.ungoogled_software.ungoogled_chromium', homebrew: '--cask ungoogled-chromium', nix: 'ungoogled-chromium' }, unavailableReason: 'Not in the official repos. Use the [Flatpak version](https://flathub.org/en/apps/io.github.ungoogled_software.ungoogled_chromium) or visit [ungoogled-software.github.io](https://ungoogled-software.github.io/) for official builds and installation instructions.'}, ...(office as AppData[]),
...(vpnNetwork as AppData[]),
// COMMUNICATION ...(security as AppData[]),
{ id: 'discord', name: 'Discord', description: 'Popular voice, video, and text chat platform', category: 'Communication', iconUrl: si('discord', '#5865F2'), targets: { arch: 'discord', opensuse: 'discord', nix: 'discord', flatpak: 'com.discordapp.Discord', snap: 'discord', homebrew: '--cask discord' }, unavailableReason: 'Not in official repos. Install via [Flatpak](https://flathub.org/en/apps/com.discordapp.Discord) or download from [discord.com/download](https://discord.com/download).' }, ...(fileSharing as AppData[]),
{ id: 'vesktop', name: 'Vesktop', description: 'Discord client with Vencord mods built-in', category: 'Communication', iconUrl: 'https://avatars.githubusercontent.com/u/113042587?s=200&v=4', targets: { arch: 'vesktop-bin', nix: 'vesktop', flatpak: 'dev.vencord.Vesktop', homebrew: '--cask vesktop' }, unavailableReason: 'Not available in official repos. Check it on [Flatpak](https://flathub.org/en/apps/dev.vencord.Vesktop) or Download from [vesktop.dev/install/linux](https://vesktop.dev/install/linux/).' }, ...(system as AppData[])
{ id: 'telegram', name: 'Telegram', description: 'Fast cloud-based messaging with file sharing', category: 'Communication', iconUrl: si('telegram', '#26A5E4'), targets: { arch: 'telegram-desktop', opensuse: 'telegram-desktop', nix: 'telegram-desktop', flatpak: 'org.telegram.desktop', snap: 'telegram-desktop', homebrew: '--cask telegram' }, unavailableReason: 'Recommended to use [Flatpak](https://flathub.org/apps/org.telegram.desktop) for the latest version. Debian 12 (Bookworm) has an older version (4.6.5) via `sudo apt install -y telegram-desktop`. Debian 13 (Trixie) removed the package entirely. Ubuntu 24.04/25.04 repos have outdated versions — use Flatpak or Snap for current releases. Fedora requires [RPM Fusion](https://rpmfusion.org/) repos.' },
{ id: 'signal', name: 'Signal', description: 'Secure end-to-end encrypted messaging app', category: 'Communication', iconUrl: si('signal', '#3A76F0'), targets: { arch: 'signal-desktop', opensuse: 'signal-desktop', nix: 'signal-desktop', flatpak: 'org.signal.Signal', snap: 'signal-desktop', homebrew: '--cask signal' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/en/apps/org.signal.Signal)/[Snap](https://snapcraft.io/signal-desktop) or follow instructions at [signal.org/download/linux](https://signal.org/download/linux/).' },
{ id: 'slack', name: 'Slack', description: 'Team collaboration and business messaging', category: 'Communication', iconUrl: si('slack', '#4A154B'), targets: { arch: 'slack-desktop', nix: 'slack', flatpak: 'com.slack.Slack', snap: 'slack', homebrew: '--cask slack' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/en/apps/com.slack.Slack)/[Snap](https://snapcraft.io/slack) or download from [slack.com/downloads/linux](https://slack.com/downloads/linux).' },
{ id: 'zoom', name: 'Zoom', description: 'Popular video conferencing and meetings', category: 'Communication', iconUrl: si('zoom', '#0B5CFF'), targets: { arch: 'zoom', nix: 'zoom-us', flatpak: 'us.zoom.Zoom', snap: 'zoom-client', homebrew: '--cask zoom' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/en/apps/us.zoom.Zoom)/[Snap](https://snapcraft.io/zoom-client) or download from [zoom.us/download/linux](https://zoom.us/download/linux).' },
{ id: 'thunderbird', name: 'Thunderbird', description: 'Free email client by Mozilla with calendar', category: 'Communication', iconUrl: si('thunderbird', '#0A84FF'), targets: { ubuntu: 'thunderbird', debian: 'thunderbird', arch: 'thunderbird', fedora: 'thunderbird', opensuse: 'MozillaThunderbird', nix: 'thunderbird', flatpak: 'org.mozilla.Thunderbird', snap: 'thunderbird', homebrew: '--cask thunderbird' } },
{ id: 'element', name: 'Element', description: 'Decentralized Matrix chat client with E2E encryption', category: 'Communication', iconUrl: si('element', '#0DBD8B'), targets: { arch: 'element-desktop', opensuse: 'element-desktop', nix: 'element-desktop', flatpak: 'im.riot.Riot', snap: 'element-desktop', homebrew: '--cask element' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/en/apps/im.riot.Riot)/[Snap](https://snapcraft.io/element-desktop) or follow instructions at [element.io/download#linux](https://element.io/en/download#linux).' },
// DEV LANGUAGES
{ id: 'python3', name: 'Python 3', description: 'Popular beginner-friendly programming language', category: 'Dev: Languages', iconUrl: si('python', '#3776AB'), targets: { ubuntu: 'python3', debian: 'python3', arch: 'python', fedora: 'python3', opensuse: 'python3', nix: 'python3', homebrew: 'python@3.12' }, unavailableReason: 'Python 3 is a system package and not available via Flatpak or Snap.' },
{ id: 'nodejs', name: 'Node.js', description: 'Server-side JavaScript runtime environment', category: 'Dev: Languages', iconUrl: si('nodedotjs', '#5FA04E'), targets: { ubuntu: 'nodejs', debian: 'nodejs', arch: 'nodejs', fedora: 'nodejs', opensuse: 'nodejs', nix: 'nodejs', snap: 'node --classic', homebrew: 'node' }, unavailableReason: 'Node.js is not available as a Flatpak or Snap.' },
{ id: 'go', name: 'Go', description: 'Fast compiled programming language by Google', category: 'Dev: Languages', iconUrl: si('go', '#00ADD8'), targets: { ubuntu: 'golang', debian: 'golang', arch: 'go', fedora: 'golang', opensuse: 'go', nix: 'go', snap: 'go --classic', homebrew: 'go' }, unavailableReason: 'Go is not available as a Flatpak package.' },
{ id: 'rust', name: 'Rust', description: 'Memory-safe systems programming language', category: 'Dev: Languages', iconUrl: si('rust', '#F74C00'), targets: { arch: 'rustup', fedora: 'rustup', opensuse: 'rustup', nix: 'rustup', snap: 'rustup --classic', homebrew: 'rust' }, unavailableReason: 'Install via [rustup.rs](https://rustup.rs) on Ubuntu and Debian.' },
{ id: 'ruby', name: 'Ruby', description: 'Dynamic language known for elegant syntax', category: 'Dev: Languages', iconUrl: si('ruby', '#CC342D'), targets: { ubuntu: 'ruby', debian: 'ruby', arch: 'ruby', fedora: 'ruby', opensuse: 'ruby', nix: 'ruby', snap: 'ruby --classic', homebrew: 'ruby' }, unavailableReason: 'Ruby is a system package and not available via Flatpak or Snap.' },
{ id: 'php', name: 'PHP', description: 'Popular web server-side scripting language', category: 'Dev: Languages', iconUrl: si('php', '#777BB4'), targets: { ubuntu: 'php', debian: 'php', arch: 'php', fedora: 'php', opensuse: 'php8', nix: 'php', homebrew: 'php' }, unavailableReason: 'PHP is a system package and not available via Flatpak or Snap.' },
{ id: 'openjdk', name: 'OpenJDK', description: 'Open-source Java Development Kit', category: 'Dev: Languages', iconUrl: si('openjdk', '#437291'), targets: { ubuntu: 'openjdk-21-jdk', debian: 'openjdk-17-jdk', arch: 'jdk-openjdk', fedora: 'java-21-openjdk', opensuse: 'java-21-openjdk', nix: 'openjdk', homebrew: 'openjdk' }, unavailableReason: 'System package — not available via Flatpak or Snap. Debian 12 (Bookworm) only has OpenJDK 17: `sudo apt install -y openjdk-17-jdk`. Debian 13 (Trixie) has OpenJDK 21 and 25: `sudo apt install -y openjdk-21-jdk`. Ubuntu 24.04 has versions 8, 11, 17, 21, and 25 available.' },
{ id: 'deno', name: 'Deno', description: 'Secure TypeScript/JavaScript runtime by Node creator', category: 'Dev: Languages', iconUrl: si('deno', '#70FFAF'), targets: { arch: 'deno', opensuse: 'deno', nix: 'deno', homebrew: 'deno' }, unavailableReason: 'Install via `curl -fsSL https://deno.land/install.sh | sh` on other distros.' },
{ id: 'bun', name: 'Bun', description: 'Ultra-fast JavaScript runtime and bundler', category: 'Dev: Languages', iconUrl: icon('logos', 'bun'), targets: { arch: 'bun', nix: 'bun', homebrew: 'bun' }, unavailableReason: 'Not in most package managers. Install via official script: `curl -fsSL https://bun.sh/install | bash`. More info at [bun.sh](https://bun.sh/).' },
{ id: 'npm', name: 'npm', description: 'JavaScript package manager', category: 'Dev: Languages', iconUrl: lo('npm'), targets: { ubuntu: 'npm', debian: 'npm', arch: 'npm', fedora: 'nodejs-npm', opensuse: 'npm24', nix: 'nodejs', snap: 'node --classic', homebrew: 'node' }, unavailableReason: 'Usually installed with Node.js. See [nodejs.org](https://nodejs.org/).' },
{ id: 'pnpm', name: 'pnpm', description: 'Fast, disk space efficient package manager', category: 'Dev: Languages', iconUrl: lo('pnpm'), targets: { arch: 'pnpm', fedora: 'pnpm', opensuse: 'pnpm', nix: 'pnpm', homebrew: 'pnpm' }, unavailableReason: 'Install via `curl -fsSL https://get.pnpm.io/install.sh | sh`. See [pnpm.io](https://pnpm.io/installation).' },
{ id: 'yarn', name: 'yarn', description: 'JavaScript package manager', category: 'Dev: Languages', iconUrl: lo('yarn'), targets: { ubuntu: 'yarnpkg', debian: 'yarnpkg', arch: 'yarn', fedora: 'yarnpkg', opensuse: 'yarn', nix: 'yarn', homebrew: 'yarn' }, unavailableReason: 'Install via `npm install --global yarn`. See [yarnpkg.com](https://yarnpkg.com/getting-started/install).' },
// DEV EDITORS
{ id: 'vscode', name: 'VS Code', description: 'Most popular extensible code editor by Microsoft', category: 'Dev: Editors', iconUrl: lo('visual-studio-code'), targets: { arch: 'code', nix: 'vscode', flatpak: 'com.visualstudio.code', snap: 'code --classic', homebrew: '--cask visual-studio-code' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/en/apps/com.visualstudio.code)/[Snap](https://snapcraft.io/code) or download from [code.visualstudio.com](https://code.visualstudio.com/Download).' },
{ id: 'vscodium', name: 'VSCodium', description: 'Community-built VS Code without Microsoft telemetry', category: 'Dev: Editors', iconUrl: si('vscodium', '#2F80ED'), targets: { arch: 'vscodium-bin', nix: 'vscodium', flatpak: 'com.vscodium.codium', snap: 'codium --classic', homebrew: '--cask vscodium' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/en/apps/com.vscodium.codium)/[Snap](https://snapcraft.io/codium) or follow instructions at [vscodium.com](https://vscodium.com/#install).' },
{ id: 'vim', name: 'Vim', description: 'The classic modal text editor that started it all', category: 'Dev: Editors', iconUrl: si('vim', '#019733'), targets: { ubuntu: 'vim', debian: 'vim', arch: 'vim', fedora: 'vim-enhanced', opensuse: 'vim', nix: 'vim', flatpak: 'org.vim.Vim', snap: 'vim-editor', homebrew: 'vim' } },
{ id: 'neovim', name: 'Neovim', description: 'Modernized Vim with better extensibility', category: 'Dev: Editors', iconUrl: si('neovim', '#57A143'), targets: { ubuntu: 'neovim', debian: 'neovim', arch: 'neovim', fedora: 'neovim', opensuse: 'neovim', nix: 'neovim', flatpak: 'com.neovim.Neovim', snap: 'nvim --classic', homebrew: 'neovim' } },
{ id: 'helix', name: 'Helix', description: 'Modal editor with LSP and tree-sitter built-in', category: 'Dev: Editors', iconUrl: mdi('dna', '#4E2F7F'), targets: { arch: 'helix', fedora: 'helix', opensuse: 'helix', nix: 'helix', flatpak: 'com.helix-editor.Helix', snap: 'helix --classic', homebrew: 'helix' }, unavailableReason: 'Not in official Debian/Ubuntu repos. For Ubuntu, add the PPA: `sudo add-apt-repository ppa:maveonair/helix-editor && sudo apt update && sudo apt install helix`. For Debian, download .deb from [GitHub releases](https://github.com/helix-editor/helix/releases).' },
{ id: "micro", name: "Micro", description: "Easy-to-use terminal text editor like nano", category: "Dev: Editors", iconUrl: si("microeditor", "#2E3192"), targets: { arch: "micro", ubuntu: "micro", debian: "micro", fedora: "micro", opensuse: "micro-editor", nix: "micro-editor", flatpak: "io.github.zyedidia.micro", snap: "micro --classic", homebrew: 'micro' } },
{ id: 'zed', name: 'Zed', description: 'High-performance editor with real-time collaboration', category: 'Dev: Editors', iconUrl: si('zedindustries', '#084CCF'), targets: { arch: 'zed', nix: 'zed-editor', flatpak: 'dev.zed.Zed', homebrew: '--cask zed' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/en/apps/dev.zed.Zed) or see [zed.dev/docs/linux](https://zed.dev/docs/linux#other-ways-to-install-zed-on-linux) for other methods.' },
{ id: 'sublime', name: 'Sublime Text', description: 'Lightning-fast proprietary text editor', category: 'Dev: Editors', iconUrl: si('sublimetext', '#FF9800'), targets: { arch: 'sublime-text-4', nix: 'sublime', flatpak: 'com.sublimetext.three', snap: 'sublime-text --classic', homebrew: '--cask sublime-text' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/en/apps/com.sublimetext.three)/[Snap](https://snapcraft.io/sublime-text) or follow instructions at [sublimetext.com/docs/linux_repositories](https://www.sublimetext.com/docs/linux_repositories.html).' },
{ id: 'arduino', name: 'Arduino IDE', description: 'IDE for Arduino microcontroller development', category: 'Dev: Editors', iconUrl: si('arduino', '#00878F'), targets: { ubuntu: 'arduino', debian: 'arduino', arch: 'arduino', fedora: 'arduino', nix: 'arduino-ide', flatpak: 'cc.arduino.IDE2', snap: 'arduino', homebrew: '--cask arduino-ide' }, unavailableReason: 'Arduino IDE is not in official openSUSE repos. Use [Flatpak](https://flathub.org/en/apps/cc.arduino.IDE2) or [Snap](https://snapcraft.io/arduino) instead.' },
{ id: 'cursor', name: 'Cursor', description: 'AI-powered code editor based on VS Code', category: 'Dev: Editors', iconUrl: si('cursor', '#232020ff'), targets: { arch: 'cursor-bin', nix: 'code-cursor', homebrew: '--cask cursor' }, unavailableReason: 'Only available via [AUR](https://aur.archlinux.org/packages/cursor-bin) or Nix. Download from [cursor.com/download](https://cursor.com/download).' },
{ id: 'kate', name: 'Kate', description: 'Feature-rich text editor by KDE with syntax highlighting', category: 'Dev: Editors', iconUrl: si('kde', '#1D99F3'), targets: { ubuntu: 'kate', debian: 'kate', arch: 'kate', fedora: 'kate', opensuse: 'kate', nix: 'kdePackages.kate', flatpak: 'org.kde.kate', snap: 'kate --classic', homebrew: '--cask kate' } },
{ id: 'emacs', name: 'Emacs', description: 'Extensible, customizable, free/libre text editor', category: 'Dev: Editors', iconUrl: si('gnuemacs', '#7F5AB6'), targets: { ubuntu: 'emacs', debian: 'emacs', arch: 'emacs', fedora: 'emacs', opensuse: 'emacs', nix: 'emacs', flatpak: 'org.gnu.emacs', snap: 'emacs --classic', homebrew: '--cask emacs-app' } },
{ id: 'intellij-idea', name: 'Intellij IDEA', description: 'IDE for Java and Kotlin developers by Jetbrains', category: 'Dev: Editors', iconUrl: lo('intellij-idea'), targets: { arch: 'intellij-idea-ultimate-edition', nix: 'jetbrains.idea', flatpak: 'com.jetbrains.IntelliJ-IDEA-Ultimate', homebrew: '--cask intellij-idea', snap: 'intellij-idea --classic' }, unavailableReason: 'Not in official repos, download from [JetBrains](https://www.jetbrains.com/idea/download/?section=linux) or use [Flatpak](https://flathub.org/en/apps/com.jetbrains.IntelliJ-IDEA-Ultimate) / [Snap](https://snapcraft.io/intellij-idea).' },
{ id: 'pycharm', name: 'Pycharm', description: 'IDE for Python developers and Data scientists by Jetbrains', category: 'Dev: Editors', iconUrl: lo('pycharm'), targets: { arch: 'pycharm', flatpak: 'com.jetbrains.PyCharm-Professional', homebrew: '--cask pycharm', snap: 'pycharm --classic', nix: 'jetbrains.pycharm' }, unavailableReason: 'Not in official repos, download from [JetBrains](https://www.jetbrains.com/pycharm/download/?section=linux) or use [Flatpak](https://flathub.org/en/apps/com.jetbrains.PyCharm-Professional) / [Snap](https://snapcraft.io/pycharm).' },
{ id: 'clion', name: 'CLion', description: 'IDE for C and C++ developers by Jetbrains', category: 'Dev: Editors', iconUrl: lo('clion'), targets: { arch: 'clion', flatpak: 'com.jetbrains.CLion', homebrew: '--cask clion', snap: 'clion --classic', nix: 'jetbrains.clion' }, unavailableReason: 'Not in official repos, download from [JetBrains](https://www.jetbrains.com/clion/download/?section=linux) or use [Flatpak](https://flathub.org/en/apps/com.jetbrains.CLion) / [Snap](https://snapcraft.io/clion).' },
// DEV TOOLS
{ id: 'git', name: 'Git', description: 'Industry-standard distributed version control', category: 'Dev: Tools', iconUrl: si('git', '#F05032'), targets: { ubuntu: 'git', debian: 'git', arch: 'git', fedora: 'git', opensuse: 'git', nix: 'git', homebrew: 'git' }, unavailableReason: 'Git is a system package and not available via Flatpak or Snap.' },
{ id: 'gitlfs', name: 'Git LFS', description: 'Git extension for versioning large files', category: 'Dev: Tools', iconUrl: si('git', '#F05032'), targets: { ubuntu: 'git-lfs', debian: 'git-lfs', arch: 'git-lfs', fedora: 'git-lfs', opensuse: 'git-lfs', nix: 'git-lfs', homebrew: 'git-lfs' }, unavailableReason: 'Git LFS is a system package and not available via Flatpak or Snap.' },
{ id: 'lazygit', name: 'LazyGit', description: 'Simple terminal UI for git commands', category: 'Dev: Tools', iconUrl: si('git', '#F05032'), targets: { ubuntu: 'lazygit', debian: 'lazygit', arch: 'lazygit', fedora: 'lazygit', opensuse: 'lazygit', nix: 'lazygit', homebrew: 'lazygit' } },
{ id: 'docker', name: 'Docker', description: 'Most popular container platform for app deployment', category: 'Dev: Tools', iconUrl: si('docker', '#2496ED'), targets: { ubuntu: 'docker.io', debian: 'docker.io', arch: 'docker', fedora: 'docker', opensuse: 'docker', nix: 'docker', snap: 'docker', homebrew: 'docker' }, unavailableReason: 'Docker is a system service and not available as a Flatpak.' },
{ id: 'podman', name: 'Podman', description: 'Rootless container engine, Docker alternative', category: 'Dev: Tools', iconUrl: si('podman', '#892CA0'), targets: { ubuntu: 'podman', debian: 'podman', arch: 'podman', fedora: 'podman', opensuse: 'podman', nix: 'podman', homebrew: 'podman' }, unavailableReason: 'Podman is a system package and not available via Flatpak or Snap.' },
{ id: 'podman-desktop', name: 'Podman Desktop', description: 'A GUI for managing Podman', category: 'Dev: Tools', iconUrl: 'https://podman-desktop.io/img/logo.svg', targets: { arch: 'podman-desktop', nix: 'podman-desktop', flatpak: "io.podman_desktop.PodmanDesktop", homebrew: '--cask podman-desktop' }, unavailableReason: 'Not in official repos. Use the [Flatpak version](https://flathub.org/en/apps/io.podman_desktop.PodmanDesktop) instead, or download from [podman-desktop.io/downloads](https://podman-desktop.io/downloads).' },
{ id: 'kubectl', name: 'kubectl', description: 'Command-line tool for Kubernetes clusters', category: 'Dev: Tools', iconUrl: si('kubernetes', '#326CE5'), targets: { arch: 'kubectl', fedora: 'kubernetes-client', opensuse: 'kubectl', nix: 'kubectl', snap: 'kubectl --classic', homebrew: 'kubectl' }, unavailableReason: 'kubectl is not in official Ubuntu or Debian repos. Use Snap or install via [kubernetes.io](https://kubernetes.io/docs/tasks/tools/).' },
{ id: 'vagrant', name: 'Vagrant', description: 'Build and manage portable dev environments', category: 'Dev: Tools', iconUrl: si('vagrant', '#1868F2'), targets: { debian: 'vagrant', arch: 'vagrant', fedora: 'vagrant', opensuse: 'vagrant', nix: 'vagrant', homebrew: '--cask vagrant' }, unavailableReason: 'Vagrant is a system package and not available via Flatpak or Snap. Follow instructions at [developer.hashicorp.com/vagrant/install](https://developer.hashicorp.com/vagrant/install).' },
{ id: 'virtualbox', name: 'VirtualBox', description: 'Free cross-platform virtual machine manager', category: 'Dev: Tools', iconUrl: si('virtualbox', '#183A61'), targets: { ubuntu: 'virtualbox', arch: 'virtualbox', opensuse: 'virtualbox', nix: 'virtualbox', homebrew: '--cask virtualbox' }, unavailableReason: 'VirtualBox requires kernel modules and is not available via Flatpak or Snap. Debian user follow instructions at [wiki.debian.org/VirtualBox](https://wiki.debian.org/VirtualBox).' },
{ id: 'gnomeboxes', name: 'GNOME Boxes', description: 'Simple virtual machine app for GNOME', category: 'Dev: Tools', iconUrl: si('gnome', '#4A86CF'), targets: { ubuntu: 'gnome-boxes', debian: 'gnome-boxes', arch: 'gnome-boxes', fedora: 'gnome-boxes', opensuse: 'gnome-boxes', nix: 'gnome-boxes', flatpak: 'org.gnome.Boxes' }, unavailableReason: 'GNOME Boxes is not available as a Snap package.' },
{ id: 'dbeaver', name: 'DBeaver', description: 'Universal database management tool', category: 'Dev: Tools', iconUrl: si('dbeaver', '#382923'), targets: { arch: 'dbeaver', nix: 'dbeaver-bin', flatpak: 'io.dbeaver.DBeaverCommunity', homebrew: '--cask dbeaver-community' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/en/apps/io.dbeaver.DBeaverCommunity) or download from [dbeaver.io/download](https://dbeaver.io/download/).' },
{ id: 'meld', name: 'Meld', description: 'Visual diff and merge tool for files', category: 'Dev: Tools', iconUrl: 'https://meldmerge.org/images/meld.svg', targets: { ubuntu: 'meld', debian: 'meld', arch: 'meld', fedora: 'meld', opensuse: 'meld', nix: 'meld', flatpak: 'org.gnome.meld', homebrew: '--cask meld' }, unavailableReason: 'Meld is not available as a Snap package.' },
{ id: 'wireshark', name: 'Wireshark', description: 'Network protocol analyzer and packet capture', category: 'Dev: Tools', iconUrl: si('wireshark', '#1679A7'), targets: { ubuntu: 'wireshark', debian: 'wireshark', arch: 'wireshark-qt', fedora: 'wireshark', opensuse: 'wireshark', nix: 'wireshark', flatpak: 'org.wireshark.Wireshark', homebrew: '--cask wireshark-app' }, unavailableReason: 'Wireshark is not available as a Snap package.' },
{ id: 'postman', name: 'Postman', description: 'Popular API testing and development platform', category: 'Dev: Tools', iconUrl: si('postman', '#FF6C37'), targets: { arch: 'postman-bin', nix: 'postman', flatpak: 'com.getpostman.Postman', snap: 'postman', homebrew: '--cask postman' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/en/apps/com.getpostman.Postman)/[Snap](https://snapcraft.io/postman) or download from [postman.com/downloads](https://www.postman.com/downloads/).' },
{ id: 'bruno', name: 'Bruno', description: 'Offline-first open-source API client', category: 'Dev: Tools', iconUrl: mdi('api', '#F4A62A'), targets: { arch: 'bruno-bin', nix: 'bruno', flatpak: 'com.usebruno.Bruno', snap: 'bruno', homebrew: '--cask bruno' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/apps/com.usebruno.Bruno)/[Snap](https://snapcraft.io/bruno) or download from [usebruno.com](https://www.usebruno.com/downloads).' },
{ id: 'hoppscotch', name: 'Hoppscotch', description: 'Open-source API development ecosystem', category: 'Dev: Tools', iconUrl: si('hoppscotch', '#47C0A7'), targets: { arch: 'hoppscotch-bin', nix: 'hoppscotch', homebrew: '--cask hoppscotch' }, unavailableReason: 'Use [AUR](https://aur.archlinux.org/packages/hoppscotch-bin) or download from [hoppscotch.io](https://hoppscotch.io/download).' },
{ id: 'yaak', name: 'Yaak', description: 'Modern desktop API client for REST and GraphQL', category: 'Dev: Tools', iconUrl: 'https://avatars.githubusercontent.com/u/150165049?s=48&v=4', targets: { arch: 'yaak-bin', nix: 'yaak', homebrew: '--cask yaak' }, unavailableReason: 'Not in most official repos. Download .deb/.rpm or AppImage from [yaak.app](https://yaak.app/download).' },
{ id: 'virtmanager', name: 'Virt Manager', description: 'Desktop app for managing KVM virtual machines', category: 'Dev: Tools', iconUrl: si('qemu', '#FF6600'), targets: { ubuntu: 'virt-manager', debian: 'virt-manager', arch: 'virt-manager', fedora: 'virt-manager', opensuse: 'virt-manager', nix: 'virt-manager', homebrew: 'virt-manager' }, unavailableReason: 'Virt Manager requires system access and is not available via Flatpak or Snap.' },
{ id: 'imhex', name: 'ImHex', description: 'Feature-rich hex editor for reverse engineering', category: 'Dev: Tools', iconUrl: mdi('hexadecimal', '#4FC1E8'), targets: { arch: 'imhex-bin', fedora: 'imhex', nix: 'imhex', flatpak: 'net.werwolv.ImHex', homebrew: '--cask imhex' }, unavailableReason: 'Not in most repos. Use [Flatpak](https://flathub.org/apps/net.werwolv.ImHex) or download from [imhex.werwolv.net](https://imhex.werwolv.net/).' },
{ id: 'cmake', name: 'CMake', description: 'Cross-platform build system generator', category: 'Dev: Tools', iconUrl: vs('file-type-cmake'), targets: { ubuntu: 'cmake', debian: 'cmake', arch: 'cmake', fedora: 'cmake', opensuse: 'cmake', nix: 'cmake', snap: 'cmake --classic', homebrew: 'cmake' }, unavailableReason: 'CMake is not available as a Flatpak package.' },
// TERMINAL
{ id: 'zsh', name: 'Zsh', description: 'Powerful shell with advanced completion features', category: 'Terminal', iconUrl: si('zsh', '#F15A24'), targets: { ubuntu: 'zsh', debian: 'zsh', arch: 'zsh', fedora: 'zsh', opensuse: 'zsh', nix: 'zsh', homebrew: 'zsh' }, unavailableReason: 'Zsh is a system shell and not available via Flatpak or Snap.' },
{ id: 'ohmyzsh', name: 'Oh My Zsh', description: 'Zsh configuration framework with plugins/themes', category: 'Terminal', iconUrl: si('zsh', '#F15A24'), targets: { nix: 'oh-my-zsh' }, unavailableReason: 'Install via `sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"`. See [ohmyzsh wiki](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH).' },
{ id: 'fish', name: 'Fish', description: 'Smart and user-friendly interactive shell', category: 'Terminal', iconUrl: vs('file-type-shell'), targets: { ubuntu: 'fish', debian: 'fish', arch: 'fish', fedora: 'fish', opensuse: 'fish', nix: 'fish', homebrew: 'fish' }, unavailableReason: 'Fish is a system shell and not available via Flatpak or Snap.' },
{ id: 'starship', name: 'Starship', description: 'Cross-shell customizable command prompt', category: 'Terminal', iconUrl: si('starship', '#DD0B78'), targets: { ubuntu: 'starship', debian: 'starship', arch: 'starship', opensuse: 'starship', nix: 'starship', homebrew: 'starship' }, unavailableReason: 'Not in Fedora repos. Install via `curl -sS https://starship.rs/install.sh | sh` or see [starship.rs](https://starship.rs/).' },
{ id: 'alacritty', name: 'Alacritty', description: 'Blazing fast GPU-accelerated terminal emulator', category: 'Terminal', iconUrl: si('alacritty', '#F46D01'), targets: { ubuntu: 'alacritty', debian: 'alacritty', arch: 'alacritty', fedora: 'alacritty', opensuse: 'alacritty', nix: 'alacritty', snap: 'alacritty --classic', homebrew: '--cask alacritty' }, unavailableReason: 'Alacritty is not available as a Flatpak package.' },
{ id: 'kitty', name: 'Kitty', description: 'Fast GPU-based terminal with advanced features', category: 'Terminal', iconUrl: mdi('cat', '#ea5e5e'), targets: { ubuntu: 'kitty', debian: 'kitty', arch: 'kitty', fedora: 'kitty', opensuse: 'kitty', nix: 'kitty', homebrew: '--cask kitty' }, unavailableReason: 'Kitty is not available via Flatpak or Snap.' },
{ id: 'wezterm', name: 'WezTerm', description: 'GPU-accelerated terminal with Lua configuration', category: 'Terminal', iconUrl: si('wezterm', '#4E49EE'), targets: { arch: 'wezterm', opensuse: 'wezterm', nix: 'wezterm', flatpak: 'org.wezfurlong.wezterm', homebrew: '--cask wezterm' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/en/apps/org.wezfurlong.wezterm) or follow instructions at [wezfurlong.org/wezterm/install](https://wezfurlong.org/wezterm/install/linux.html).' },
{ id: 'foot', name: 'Foot', description: 'Lightweight Wayland-native terminal emulator', category: 'Terminal', iconUrl: si('wayland', '#FFBC00'), targets: { ubuntu: 'foot', debian: 'foot', arch: 'foot', fedora: 'foot', opensuse: 'foot', nix: 'foot', homebrew: 'foot' }, unavailableReason: 'Foot is a Wayland-only terminal and not available via Flatpak or Snap.' },
{ id: 'ghostty', name: 'Ghostty', description: 'Native GPU-accelerated terminal by Mitchell Hashimoto', category: 'Terminal', iconUrl: mdi('ghost-outline', '#6E56CF'), targets: { arch: 'ghostty', nix: 'ghostty', homebrew: '--cask ghostty' }, unavailableReason: 'Not in most repos. See [official binaries](https://ghostty.org/docs/install/binary#linux-(official)) or build from source.' },
{ id: 'ptyxis', name: 'Ptyxis', description: 'Modern terminal emulator optimized for containerized workflows', category: 'Terminal', iconUrl: 'https://upload.wikimedia.org/wikipedia/commons/2/21/Ptyxis.svg', targets: {debian: 'ptyxis', ubuntu: 'ptyxis', arch: 'ptyxis', fedora: 'ptyxis', opensuse: 'ptyxis', nix: 'ptyxis', flatpak: 'app.devsuite.Ptyxis' }, unavailableReason: 'Not available via Snap or Homebrew. Use [Flatpak Version](https://flathub.org/en/apps/app.devsuite.Ptyxis) ' },
// CLI TOOLS
{ id: 'btop', name: 'btop', description: 'Beautiful terminal resource monitor with graphs', category: 'CLI Tools', iconUrl: mdi('monitor-dashboard', '#FF6B6B'), targets: { ubuntu: 'btop', debian: 'btop', arch: 'btop', fedora: 'btop', opensuse: 'btop', nix: 'btop', homebrew: 'btop' }, unavailableReason: 'btop is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'htop', name: 'htop', description: 'Interactive process viewer and system monitor', category: 'CLI Tools', iconUrl: mdi('chart-bar', '#4CE026'), targets: { ubuntu: 'htop', debian: 'htop', arch: 'htop', fedora: 'htop', opensuse: 'htop', nix: 'htop', snap: 'htop', homebrew: 'htop' }, unavailableReason: 'htop is a CLI tool and not available as a Flatpak.' },
{ id: 'fastfetch', name: 'fastfetch', description: 'Fast neofetch-like system info tool', category: 'CLI Tools', iconUrl: mdi('console', '#57F287'), targets: { ubuntu: 'fastfetch', debian: 'fastfetch', fedora: 'fastfetch', arch: 'fastfetch', opensuse: 'fastfetch', nix: 'fastfetch', homebrew: 'fastfetch' }, unavailableReason: 'CLI-only (no Flatpak/Snap).' },
{ id: 'eza', name: 'eza', description: 'Modern ls replacement with colors and icons', category: 'CLI Tools', iconUrl: mdi('format-list-bulleted', '#F9E64F'), targets: { ubuntu: 'eza', debian: 'eza', arch: 'eza', opensuse: 'eza', nix: 'eza', homebrew: 'eza' }, unavailableReason: 'Unmaintained on Fedora; removed from repos. CLI-only (no Flatpak/Snap).' },
{ id: 'bat', name: 'bat', description: 'Cat clone with syntax highlighting and git integration', category: 'CLI Tools', iconUrl: mdi('file-code-outline', '#A6E22E'), targets: { ubuntu: 'bat', debian: 'bat', arch: 'bat', fedora: 'bat', opensuse: 'bat', nix: 'bat', homebrew: 'bat' }, unavailableReason: 'bat is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'fzf', name: 'fzf', description: 'Lightning-fast command-line fuzzy finder', category: 'CLI Tools', iconUrl: mdi('magnify', '#FF0055'), targets: { ubuntu: 'fzf', debian: 'fzf', arch: 'fzf', fedora: 'fzf', opensuse: 'fzf', nix: 'fzf', homebrew: 'fzf' }, unavailableReason: 'fzf is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'ripgrep', name: 'ripgrep', description: 'Ultra-fast recursive search respecting .gitignore', category: 'CLI Tools', iconUrl: mdi('text-search', '#C0C0C0'), targets: { ubuntu: 'ripgrep', debian: 'ripgrep', arch: 'ripgrep', fedora: 'ripgrep', opensuse: 'ripgrep', nix: 'ripgrep', homebrew: 'ripgrep' }, unavailableReason: 'ripgrep is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'zoxide', name: 'zoxide', description: 'Smart cd that learns your habits', category: 'CLI Tools', iconUrl: mdi('folder-move-outline', '#FF9F43'), targets: { ubuntu: 'zoxide', debian: 'zoxide', arch: 'zoxide', fedora: 'zoxide', opensuse: 'zoxide', nix: 'zoxide', homebrew: 'zoxide' }, unavailableReason: 'zoxide is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'tldr', name: 'tldr', description: 'Simplified community-driven man pages', category: 'CLI Tools', iconUrl: mdi('book-open-page-variant-outline', '#2D9CDB'), targets: { arch: 'tldr', fedora: 'tldr', nix: 'tldr', homebrew: 'tldr' }, unavailableReason: 'tldr is a CLI tool and not available on openSUSE, Flatpak, or Snap. For Debian 12 (Bookworm) or older and Ubuntu 24.04 or older use `sudo apt install -y tldr`' },
{ id: 'wget', name: 'wget', description: 'Command-line file downloader for HTTP/FTP', category: 'CLI Tools', iconUrl: mdi('download', '#3FA75E'), targets: { ubuntu: 'wget', debian: 'wget', arch: 'wget', fedora: 'wget', opensuse: 'wget', nix: 'wget', homebrew: 'wget' }, unavailableReason: 'wget is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'curl', name: 'curl', description: 'Command-line tool for transferring data via URLs', category: 'CLI Tools', iconUrl: si('curl', '#073551'), targets: { ubuntu: 'curl', debian: 'curl', arch: 'curl', fedora: 'curl', opensuse: 'curl', nix: 'curl', homebrew: 'curl' }, unavailableReason: 'curl is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'aria2', name: 'aria2', description: 'Multi-protocol, multi-source download accelerator', category: 'CLI Tools', iconUrl: mdi('download-multiple', '#F94144'), targets: { ubuntu: 'aria2', debian: 'aria2', arch: 'aria2', fedora: 'aria2', opensuse: 'aria2', nix: 'aria2', homebrew: 'aria2' }, unavailableReason: 'aria2 is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'yazi', name: 'yazi', description: 'Blazing fast terminal file manager in Rust', category: 'CLI Tools', iconUrl: mdi('folder-table-outline', '#F3B329'), targets: { arch: 'yazi', opensuse: 'yazi', nix: 'yazi', homebrew: 'yazi' }, unavailableReason: 'Not in most repos. Install via [cargo](https://crates.io/crates/yazi) or download from [github.com/sxyazi/yazi](https://github.com/sxyazi/yazi/releases).' },
{ id: 'ranger', name: 'ranger', description: 'Vim-inspired terminal file manager with previews', category: 'CLI Tools', iconUrl: mdi('folder-key-outline', '#FFFFFF'), targets: { ubuntu: 'ranger', debian: 'ranger', arch: 'ranger', fedora: 'ranger', opensuse: 'ranger', nix: 'ranger', homebrew: 'ranger' }, unavailableReason: 'ranger is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'ncdu', name: 'ncdu', description: 'NCurses-based disk usage analyzer', category: 'CLI Tools', iconUrl: mdi('chart-arc', '#00ADEE'), targets: { ubuntu: 'ncdu', debian: 'ncdu', arch: 'ncdu', fedora: 'ncdu', opensuse: 'ncdu', nix: 'ncdu', homebrew: 'ncdu' }, unavailableReason: 'ncdu is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'fd', name: 'fd', description: 'Simple, fast alternative to find command', category: 'CLI Tools', iconUrl: mdi('file-search-outline', '#56BE89'), targets: { ubuntu: 'fd-find', debian: 'fd-find', arch: 'fd', fedora: 'fd-find', opensuse: 'fd', nix: 'fd', homebrew: 'fd' }, unavailableReason: 'fd is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'tmux', name: 'tmux', description: 'Terminal session manager and multiplexer', category: 'CLI Tools', iconUrl: si('tmux', '#1BB91F'), targets: { ubuntu: 'tmux', debian: 'tmux', arch: 'tmux', fedora: 'tmux', opensuse: 'tmux', nix: 'tmux', homebrew: 'tmux' }, unavailableReason: 'tmux is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'zellij', name: 'Zellij', description: 'Modern terminal multiplexer with layout system', category: 'CLI Tools', iconUrl: mdi('view-split-vertical', '#A48CF4'), targets: { ubuntu: 'zellij', arch: 'zellij', fedora: 'zellij', opensuse: 'zellij', nix: 'zellij', homebrew: 'zellij' }, unavailableReason: 'Not in Debian repos. Install via `cargo install zellij` or see [zellij.dev](https://zellij.dev/documentation/installation.html).' },
{ id: 'superfile', name: 'Superfile', description: 'Modern terminal file manager with TUI', category: 'CLI Tools', iconUrl: mdi('folder-multiple', '#FFD93D'), targets: { arch: 'superfile', nix: 'superfile', homebrew: 'superfile' }, unavailableReason: 'Install via `go install` or see [superfile.dev](https://superfile.dev/getting-started/installation/).' },
{ id: 'rsync', name: 'rsync', description: 'Fast incremental file transfer and sync tool', category: 'CLI Tools', iconUrl: mdi('sync', '#2ECC71'), targets: { ubuntu: 'rsync', debian: 'rsync', arch: 'rsync', fedora: 'rsync', opensuse: 'rsync', nix: 'rsync', homebrew: 'rsync' }, unavailableReason: 'rsync is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'uv', name: 'uv', description: 'Fast Python package manager', category: 'Dev: Languages', iconUrl: si('astral', '#5C4EE5'), targets: { arch: 'uv', nix: 'uv', homebrew: 'uv' }, unavailableReason: 'Install via `curl -LsSf https://astral.sh/uv/install.sh | sh`. See [installation guide](https://docs.astral.sh/uv/getting-started/installation/).' },
// MEDIA
{ id: 'vlc', name: 'VLC', description: 'Universal media player that plays any format', category: 'Media', iconUrl: si('vlcmediaplayer', '#FF8800'), targets: { ubuntu: 'vlc', debian: 'vlc', arch: 'vlc', fedora: 'vlc', opensuse: 'vlc', nix: 'vlc', flatpak: 'org.videolan.VLC', snap: 'vlc', homebrew: '--cask vlc' } },
{ id: 'mpv', name: 'mpv', description: 'Lightweight and highly configurable media player', category: 'Media', iconUrl: si('mpv', '#691F69'), targets: { ubuntu: 'mpv', debian: 'mpv', arch: 'mpv', fedora: 'mpv', opensuse: 'mpv', nix: 'mpv', flatpak: 'io.mpv.Mpv', snap: 'mpv', homebrew: 'mpv' } },
{ id: 'celluloid', name: 'Celluloid', description: 'Simple GTK frontend for the mpv player', category: 'Media', iconUrl: si('gnome', '#4A86CF'), targets: { ubuntu: 'celluloid', debian: 'celluloid', arch: 'celluloid', fedora: 'celluloid', opensuse: 'celluloid', nix: 'celluloid', flatpak: 'io.github.celluloid_player.Celluloid' }, unavailableReason: 'Celluloid is not available as a Snap package.' },
{ id: 'strawberry', name: 'Strawberry', description: 'Music player for local audio collection', category: 'Media', iconUrl: 'https://www.strawberrymusicplayer.org/pictures/strawberry64.png', targets: { ubuntu: 'strawberry', debian: 'strawberry', arch: 'strawberry', fedora: 'strawberry', opensuse: 'strawberry', nix: 'strawberry', flatpak: 'org.strawberrymusicplayer.strawberry' }, unavailableReason: 'Strawberry is not available as a Snap package.' },
{ id: 'spotify', name: 'Spotify', description: 'Popular music streaming service', category: 'Media', iconUrl: si('spotify', '#1DB954'), targets: { arch: 'spotify', nix: 'spotify', flatpak: 'com.spotify.Client', snap: 'spotify', homebrew: '--cask spotify' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/apps/details/com.spotify.Client) or [Snap](https://snapcraft.io/spotify) or follow instructions at [spotify.com/download/linux](https://www.spotify.com/download/linux/).' },
{ id: 'audacity', name: 'Audacity', description: 'Free open-source audio editor and recorder', category: 'Media', iconUrl: si('audacity', '#0000CC'), targets: { ubuntu: 'audacity', debian: 'audacity', arch: 'audacity', fedora: 'audacity', opensuse: 'audacity', nix: 'audacity', flatpak: 'org.audacityteam.Audacity', snap: 'audacity', homebrew: '--cask audacity' } },
{ id: 'kdenlive', name: 'Kdenlive', description: 'Powerful open-source video editor by KDE', category: 'Media', iconUrl: si('kdenlive', '#527EB2'), targets: { ubuntu: 'kdenlive', debian: 'kdenlive', arch: 'kdenlive', fedora: 'kdenlive', opensuse: 'kdenlive', nix: 'kdenlive', flatpak: 'org.kde.kdenlive', snap: 'kdenlive', homebrew: '--cask kdenlive' } },
{ id: 'obs', name: 'OBS Studio', description: 'Industry-standard streaming and recording software', category: 'Media', iconUrl: si('obsstudio', '#A3A3A3'), targets: { ubuntu: 'obs-studio', debian: 'obs-studio', arch: 'obs-studio', fedora: 'obs-studio', opensuse: 'obs-studio', nix: 'obs-studio', flatpak: 'com.obsproject.Studio', snap: 'obs-studio', homebrew: '--cask obs' } },
{ id: 'ffmpeg', name: 'FFmpeg', description: 'Swiss army knife of video/audio processing', category: 'Media', iconUrl: si('ffmpeg', '#007808'), targets: { ubuntu: 'ffmpeg', debian: 'ffmpeg', arch: 'ffmpeg', fedora: 'ffmpeg', opensuse: 'ffmpeg', nix: 'ffmpeg', homebrew: 'ffmpeg' }, unavailableReason: 'FFmpeg is a system library and not available via Flatpak or Snap.' },
{ id: 'handbrake', name: 'HandBrake', description: 'Open-source video transcoder for any format', category: 'Media', iconUrl: mdi('video-vintage', '#F83262'), targets: { ubuntu: 'handbrake', debian: 'handbrake', arch: 'handbrake', opensuse: 'handbrake', nix: 'handbrake', flatpak: 'fr.handbrake.ghb', snap: 'handbrake-jz', homebrew: 'handbrake' }, unavailableReason: 'HandBrake is not in official Fedora repos. Use [Flatpak](https://flathub.org/apps/details/fr.handbrake.ghb) or [Snap](https://snapcraft.io/handbrake-jz) instead.' },
{ id: 'stremio', name: 'Stremio', description: 'Modern media center with streaming addons', category: 'Media', iconUrl: si('stremio', '#8A5AAB'), targets: { arch: 'stremio', nix: 'stremio', flatpak: 'com.stremio.Stremio', homebrew: '--cask stremio' }, unavailableReason: 'Only available via [AUR](https://aur.archlinux.org/packages/stremio) or [Flatpak](https://flathub.org/apps/details/com.stremio.Stremio), see [stremio.com/downloads](https://www.stremio.com/downloads) for more info.' },
{ id: 'kodi', name: 'Kodi', description: 'Open-source home theater and media center', category: 'Media', iconUrl: si('kodi', '#17B2E7'), targets: { ubuntu: 'kodi', debian: 'kodi', arch: 'kodi', fedora: 'kodi', opensuse: 'kodi', nix: 'kodi', flatpak: 'tv.kodi.Kodi', snap: 'kodi', homebrew: '--cask kodi' } },
{ id: 'haruna', name: 'Haruna', description: 'Modern Qt/QML video player powered by mpv', category: 'Media', iconUrl: si('hevy', '#A3A3A3'), targets: { ubuntu: 'haruna', debian: 'haruna', arch: 'haruna', fedora: 'haruna', opensuse: 'haruna', nix: 'haruna', flatpak: 'org.kde.haruna', snap: 'haruna' } },
{ id: 'shortwave', name: 'Shortwave', description: 'Listen to internet radio stations worldwide', category: 'Media', iconUrl: si('playerfm', '#478ECC'), targets: { ubuntu: 'shortwave', debian: 'shortwave', arch: 'shortwave', fedora: 'shortwave', opensuse: 'shortwave', nix: 'shortwave', flatpak: 'de.haeckerfelix.Shortwave', snap: 'shortwave', homebrew: '--cask shortwave' } },
{ id: 'parabolic', name: 'Parabolic', description: 'Simple YouTube video and audio downloader', category: 'Media', iconUrl: 'https://dl.flathub.org/media/org/nickvision/tubeconverter/fdcc995607100afabed728e47cfd5d99/icons/128x128/org.nickvision.tubeconverter.png', targets: { nix: 'parabolic', flatpak: 'org.nickvision.tubeconverter', snap: 'tube-converter' }, unavailableReason: 'Not in most official repos. Use [Flatpak](https://flathub.org/apps/org.nickvision.tubeconverter) or [Snap](https://snapcraft.io/tube-converter).' },
// CREATIVE
{ id: 'blender', name: 'Blender', description: 'Industry-grade 3D creation suite', category: 'Creative', iconUrl: si('blender', '#E87D0D'), targets: { ubuntu: 'blender', debian: 'blender', arch: 'blender', fedora: 'blender', opensuse: 'blender', nix: 'blender', flatpak: 'org.blender.Blender', snap: 'blender --classic', homebrew: '--cask blender' } },
{ id: 'gimp', name: 'GIMP', description: 'Powerful free image editor, Photoshop alternative', category: 'Creative', iconUrl: si('gimp', '#5C5543'), targets: { ubuntu: 'gimp', debian: 'gimp', arch: 'gimp', fedora: 'gimp', opensuse: 'gimp', nix: 'gimp', flatpak: 'org.gimp.GIMP', snap: 'gimp', homebrew: '--cask gimp' } },
{ id: 'inkscape', name: 'Inkscape', description: 'Professional vector graphics editor', category: 'Creative', iconUrl: 'https://media.inkscape.org/static/images/inkscape-logo.svg', targets: { ubuntu: 'inkscape', debian: 'inkscape', arch: 'inkscape', fedora: 'inkscape', opensuse: 'inkscape', nix: 'inkscape', flatpak: 'org.inkscape.Inkscape', snap: 'inkscape', homebrew: '--cask inkscape' } },
{ id: 'krita', name: 'Krita', description: 'Professional digital painting application', category: 'Creative', iconUrl: si('krita', '#337FCC'), targets: { ubuntu: 'krita', debian: 'krita', arch: 'krita', fedora: 'krita', opensuse: 'krita', nix: 'krita', flatpak: 'org.kde.krita', snap: 'krita', homebrew: '--cask krita' } },
{ id: 'darktable', name: 'Darktable', description: 'Professional photography workflow application', category: 'Creative', iconUrl: 'https://www.svgrepo.com/show/378112/darktable.svg', targets: { ubuntu: 'darktable', debian: 'darktable', arch: 'darktable', fedora: 'darktable', opensuse: 'darktable', nix: 'darktable', flatpak: 'org.darktable.Darktable', snap: 'darktable', homebrew: '--cask darktable' } },
{ id: 'freecad', name: 'FreeCAD', description: 'Open-source parametric 3D CAD modeler', category: 'Creative', iconUrl: si('freecad', '#CB333B'), targets: { ubuntu: 'freecad', debian: 'freecad', arch: 'freecad', fedora: 'freecad', opensuse: 'freecad', nix: 'freecad', flatpak: 'org.freecad.FreeCAD', snap: 'freecad', homebrew: '--cask freecad' } },
{ id: 'kicad', name: 'KiCad', description: 'Professional PCB and schematic design suite', category: 'Creative', iconUrl: si('kicad', '#314CB6'), targets: { ubuntu: 'kicad', debian: 'kicad', arch: 'kicad', fedora: 'kicad', opensuse: 'kicad', nix: 'kicad', flatpak: 'org.kicad.KiCad', snap: 'kicad', homebrew: '--cask kicad' } },
{ id: 'cura', name: 'UltiMaker Cura', description: 'Popular 3D printer slicing application', category: 'Creative', iconUrl: 'https://dl.flathub.org/media/com/ultimaker/cura.desktop/9eeed6dfd5a5ec2c8e5c8917012db5ad/icons/128x128/com.ultimaker.cura.desktop.png', targets: { arch: 'cura', fedora: 'cura', opensuse: 'cura', nix: 'cura', flatpak: 'com.ultimaker.cura', snap: 'cura-slicer', homebrew: '--cask ultimaker-cura' }, unavailableReason: 'Available through snap, flatpak and appimage. For Debian 13 or newer; Ubuntu 25.04 or newer it is available through `sudo apt install -y cura`.' },
{ id: 'godot', name: 'Godot Engine', description: 'Feature-packed, cross-platform game engine', category: 'Creative', iconUrl: si('godotengine', '#478CBF'), targets: { ubuntu: 'godot', debian: 'godot', arch: 'godot', fedora: 'godot', nix: 'godot', flatpak: 'org.godotengine.Godot', snap: 'godot-4', homebrew: '--cask godot' }, unavailableReason: 'Installs latest Godot 4. For older distros: Ubuntu 24.04 and Debian 12 (Bookworm) only have `godot3` available use `sudo apt install -y godot3` for Godot 3.x instead.' },
{ id: 'kolourpaint', name: 'KolourPaint', description: 'Easy-to-use paint program by KDE', category: 'Creative', iconUrl: 'https://dl.flathub.org/media/org/kde/kolourpaint.desktop/4b7fa92785a1338b7cb179451347a4e2/icons/128x128/org.kde.kolourpaint.desktop.png', targets: { ubuntu: 'kolourpaint', debian: 'kolourpaint', arch: 'kolourpaint', fedora: 'kolourpaint', opensuse: 'kolourpaint', nix: 'kdePackages.kolourpaint', flatpak: 'org.kde.kolourpaint', snap: 'kolourpaint' } },
{ id: 'orcaslicer', name: 'OrcaSlicer', description: 'Advanced 3D printer slicer based on BambuStudio', category: 'Creative', iconUrl: mdi('printer-3d-nozzle', '#00AE42'), targets: { arch: 'orca-slicer-bin', nix: 'orca-slicer', homebrew: '--cask orcaslicer' }, unavailableReason: 'Download the AppImage or distribution-specific package from the official [GitHub Releases](https://github.com/OrcaSlicer/OrcaSlicer/releases).' },
{ id: 'davinci-resolve', name: 'DaVinci Resolve', description: 'Professional video editing, color grading, and VFX software', category: 'Creative', iconUrl: si('davinciresolve', '#E52222'), targets: { nix: 'davinci-resolve' }, unavailableReason: 'Not in most official repos. Arch requires manually downloading installer and placing in PKGBUILD before installing `yay -S --needed --noconfirm davinci-resolve` see [wiki.archlinux.org](https://wiki.archlinux.org/title/DaVinci_Resolve) for more info. Or download from [blackmagicdesign.com](https://www.blackmagicdesign.com/products/davinciresolve).' },
// GAMING
{ id: 'steam', name: 'Steam', description: 'Largest PC gaming platform and store', category: 'Gaming', iconUrl: si('steam', '#00ADEE'), targets: { ubuntu: 'steam', fedora: 'steam', opensuse: 'steam', nix: 'steam', flatpak: 'com.valvesoftware.Steam', snap: 'steam', homebrew: '--cask steam' }, unavailableReason: 'Debian requires editing /etc/apt/sources.list adding "contrib" to the end of the line that starts with "deb" or "deb-src" and `sudo apt update` before installing `sudo apt install -y steam-installer`. Arch requires [multilib](https://wiki.archlinux.org/title/Official_repositories#multilib) enabled first: uncomment `[multilib]` section in `/etc/pacman.conf`, then run `sudo pacman -Syu`, then `sudo pacman -S steam`.' },
{ id: 'lutris', name: 'Lutris', description: 'Open gaming platform for all your games', category: 'Gaming', iconUrl: si('lutris', '#FF8F00'), targets: { ubuntu: 'lutris', arch: 'lutris', fedora: 'lutris', opensuse: 'lutris', nix: 'lutris', flatpak: 'net.lutris.Lutris' }, unavailableReason: 'Debian requires editing /etc/apt/sources.list adding "contrib" to the end of the line that starts with "deb" or "deb-src" and `sudo apt update` before installing `sudo apt install -y lutris`. Lutris is not available as a Snap package.' },
{ id: 'heroic', name: 'Heroic', description: 'Open-source Epic Games and GOG launcher', category: 'Gaming', iconUrl: si('heroicgameslauncher', '#7B62E8'), targets: { arch: 'heroic-games-launcher-bin', nix: 'heroic', flatpak: 'com.heroicgameslauncher.hgl', homebrew: '--cask heroic' }, unavailableReason: 'Only available via [AUR](https://aur.archlinux.org/packages/heroic-games-launcher-bin) or [Flatpak](https://flathub.org/apps/details/com.heroicgameslauncher.hgl). see [heroicgameslauncher.com](https://heroicgameslauncher.com/downloads) for more info.' },
{ id: 'prism', name: 'Prism Launcher', description: 'Open-source Minecraft launcher with mod support', category: 'Gaming', iconUrl: 'https://raw.githubusercontent.com/PrismLauncher/PrismLauncher/develop/program_info/org.prismlauncher.PrismLauncher.logo.svg', targets: { arch: 'prismlauncher', nix: 'prismlauncher', flatpak: 'org.prismlauncher.PrismLauncher', homebrew: '--cask prismlauncher' }, unavailableReason: 'Only available via [AUR](https://aur.archlinux.org/packages/prismlauncher) or [Flatpak](https://flathub.org/apps/details/org.prismlauncher.PrismLauncher). see [prismlauncher.org](https://prismlauncher.org/download/) for more info.' },
{ id: 'retroarch', name: 'RetroArch', description: 'All-in-one emulator frontend for retro gaming', category: 'Gaming', iconUrl: si('retroarch', '#A0A0A0'), targets: { ubuntu: 'retroarch', debian: 'retroarch', arch: 'retroarch', fedora: 'retroarch', opensuse: 'retroarch', nix: 'retroarch', flatpak: 'org.libretro.RetroArch', snap: 'retroarch', homebrew: '--cask retroarch' } },
{ id: 'mangohud', name: 'MangoHud', description: 'Vulkan/OpenGL overlay for monitoring FPS and hardware', category: 'Gaming', iconUrl: si('gamejolt', '#FF9900'), targets: { ubuntu: 'mangohud', debian: 'mangohud', arch: 'mangohud', fedora: 'mangohud', opensuse: 'mangohud', nix: 'mangohud' }, unavailableReason: 'MangoHud is a system overlay and not available via Flatpak or Snap.' },
{ id: 'gamemode', name: 'GameMode', description: 'Optimizes Linux system performance for gaming', category: 'Gaming', iconUrl: 'https://www.svgrepo.com/show/411187/game.svg', targets: { ubuntu: 'gamemode', debian: 'gamemode', arch: 'gamemode', fedora: 'gamemode', opensuse: 'gamemode', nix: 'gamemode' }, unavailableReason: 'GameMode is a system service and not available via Flatpak or Snap.' },
{ id: 'protonup', name: 'ProtonUp-Qt', description: 'Install and manage Proton-GE for Steam games', category: 'Gaming', iconUrl: si('protondb', '#8B0000'), targets: { arch: 'protonup-qt-bin', nix: 'protonup-qt', flatpak: 'net.davidotek.pupgui2' }, unavailableReason: 'Only available via [AUR](https://aur.archlinux.org/packages/protonup-qt-bin) or [Flatpak](https://flathub.org/apps/net.davidotek.pupgui2).' },
{ id: 'antimicrox', name: 'AntiMicroX', description: 'Map gamepad buttons to keyboard/mouse actions', category: 'Gaming', iconUrl: mdi('controller', '#007BFF'), targets: { ubuntu: 'antimicrox', debian: 'antimicrox', arch: 'antimicrox', fedora: 'antimicrox', opensuse: 'antimicrox', nix: 'antimicrox', flatpak: 'io.github.antimicrox.antimicrox' }, unavailableReason: 'Not available as a Snap package.' },
{ id: 'goverlay', name: 'GOverlay', description: 'GUI for MangoHud, vkBasalt, and ReplaySorcery', category: 'Gaming', iconUrl: mdi('dock-window', '#6366F1'), targets: { ubuntu: 'goverlay', debian: 'goverlay', arch: 'goverlay', fedora: 'goverlay', opensuse: 'goverlay', nix: 'goverlay', flatpak: 'io.github.benjamimgois.goverlay' }, unavailableReason: 'Not available as a Snap package.' },
// OFFICE
{ id: 'libreoffice', name: 'LibreOffice', description: 'Full-featured open-source office suite', category: 'Office', iconUrl: si('libreoffice', '#0369A1'), targets: { ubuntu: 'libreoffice', debian: 'libreoffice', arch: 'libreoffice-fresh', fedora: 'libreoffice', opensuse: 'libreoffice', nix: 'libreoffice', flatpak: 'org.libreoffice.LibreOffice', snap: 'libreoffice', homebrew: '--cask libreoffice' } },
{ id: 'onlyoffice', name: 'OnlyOffice', description: 'Modern office suite with MS Office compatibility', category: 'Office', iconUrl: si('onlyoffice', '#FF6F3D'), targets: { arch: 'onlyoffice-bin', nix: 'onlyoffice-bin', flatpak: 'org.onlyoffice.desktopeditors', snap: 'onlyoffice-desktopeditors', homebrew: '--cask onlyoffice' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/apps/details/org.onlyoffice.desktopeditors) or [Snap](https://snapcraft.io/onlyoffice-desktopeditors) or download from [onlyoffice.com/desktop](https://www.onlyoffice.com/desktop.aspx).' },
{ id: 'obsidian', name: 'Obsidian', description: 'Popular Markdown-based knowledge management app', category: 'Office', iconUrl: si('obsidian', '#7C3AED'), targets: { arch: 'obsidian', nix: 'obsidian', flatpak: 'md.obsidian.Obsidian', snap: 'obsidian --classic', homebrew: '--cask obsidian' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/apps/details/md.obsidian.Obsidian) or [Snap](https://snapcraft.io/obsidian) or download from [obsidian.md/download](https://obsidian.md/download).' },
{ id: 'logseq', name: 'Logseq', description: 'Open-source outliner for knowledge management', category: 'Office', iconUrl: si('logseq', '#06D5D5'), targets: { arch: 'logseq-desktop-bin', nix: 'logseq', flatpak: 'com.logseq.Logseq', snap: 'logseq', homebrew: '--cask logseq' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/apps/details/com.logseq.Logseq) or [Snap](https://snapcraft.io/logseq) or download from [logseq.com](https://logseq.com/downloads).' },
{ id: 'joplin', name: 'Joplin', description: 'Open-source note-taking with sync and encryption', category: 'Office', iconUrl: si('joplin', '#1471B7'), targets: { arch: 'joplin-appimage', nix: 'joplin-desktop', flatpak: 'net.cozic.joplin_desktop', snap: 'joplin-desktop', homebrew: '--cask joplin' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/apps/details/net.cozic.joplin_desktop) or [Snap](https://snapcraft.io/joplin-desktop) or install from [joplinapp.org](https://joplinapp.org/help/install/).' },
{ id: 'okular', name: 'Okular', description: 'Universal document viewer by KDE', category: 'Office', iconUrl: si('kde', '#338BDB'), targets: { ubuntu: 'okular', debian: 'okular', arch: 'okular', fedora: 'okular', opensuse: 'okular', nix: 'okular', flatpak: 'org.kde.okular', snap: 'okular' } },
{ id: 'zathura', name: 'Zathura', description: 'Vim-style minimal PDF/document viewer', category: 'Office', iconUrl: 'https://raw.githubusercontent.com/TrixieUA/MoreWaita-copr-trixieua/e5bed029d63d4c14f1aba811152f3f0bf473a4bc/scalable/apps/zathura.svg', targets: { ubuntu: 'zathura', debian: 'zathura', arch: 'zathura', fedora: 'zathura', opensuse: 'zathura', nix: 'zathura' }, unavailableReason: 'Zathura is not available via Flatpak or Snap.' },
{ id: 'calibre', name: 'Calibre', description: 'Complete e-book library management solution', category: 'Office', iconUrl: si('calibreweb', '#ECA315'), targets: { ubuntu: 'calibre', debian: 'calibre', arch: 'calibre', fedora: 'calibre', opensuse: 'calibre', nix: 'calibre', flatpak: 'com.calibre_ebook.calibre', homebrew: '--cask calibre' }, unavailableReason: 'Calibre is not available as a Snap package.' },
{ id: 'xournalpp', name: 'Xournal++', description: 'Handwriting and PDF annotation app', category: 'Office', iconUrl: vs('file-type-pdf2'), targets: { ubuntu: 'xournalpp', debian: 'xournalpp', arch: 'xournalpp', fedora: 'xournalpp', opensuse: 'xournalpp', nix: 'xournalpp', flatpak: 'com.github.xournalpp.xournalpp', homebrew: '--cask xournal++' }, unavailableReason: 'Xournal++ is not available as a Snap package.' },
{ id: 'zotero', name: 'Zotero', description: 'Research reference manager and citation tool', category: 'Office', iconUrl: si('zotero', '#CC2936'), targets: { arch: 'zotero-bin', opensuse: 'zotero', nix: 'zotero', flatpak: 'org.zotero.Zotero', snap: 'zotero-snap', homebrew: '--cask zotero' }, unavailableReason: 'Not in official Ubuntu/Debian repos. Use [Flatpak](https://flathub.org/apps/org.zotero.Zotero)/[Snap](https://snapcraft.io/zotero-snap) or download from [zotero.org](https://www.zotero.org/download/).' },
{ id: 'trilium', name: 'Trilium Notes', description: 'Hierarchical note-taking app with powerful features', category: 'Office', iconUrl: si('trilium', '#51A52D'), targets: { arch: 'trilium-bin', nix: 'trilium-desktop', flatpak: 'com.github.zadam.trilium', homebrew: '--cask trilium-notes' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/apps/com.github.zadam.trilium) or download from [github.com/zadam/trilium](https://github.com/zadam/trilium/releases).' },
// VPN & NETWORK
{ id: 'protonvpn', name: 'Proton VPN', description: 'Secure VPN by the makers of ProtonMail', category: 'VPN & Network', iconUrl: si('protonvpn', '#6D4AFF'), targets: { arch: 'proton-vpn-gtk-app', nix: 'protonvpn-gui', flatpak: 'com.protonvpn.www', homebrew: '--cask protonvpn' }, unavailableReason: 'Not in official repos. Use Flatpak or follow instructions at [protonvpn.com/support/linux-vpn-setup](https://protonvpn.com/support/linux-vpn-setup/).' },
{ id: 'mullvad', name: 'Mullvad VPN', description: 'Privacy-focused VPN with no-logging policy', category: 'VPN & Network', iconUrl: si('mullvad', '#44AD4D'), targets: { arch: 'mullvad-vpn-bin', nix: 'mullvad-vpn', homebrew: '--cask mullvad-vpn' }, unavailableReason: 'Not in official repos. Use [AUR](https://aur.archlinux.org/packages/mullvad-vpn-bin) or see [official install guide](https://mullvad.net/en/help/install-mullvad-app-linux).' },
{ id: 'tailscale', name: 'Tailscale', description: 'Zero-config mesh VPN using WireGuard', category: 'VPN & Network', iconUrl: si('tailscale', '#797878'), targets: { arch: 'tailscale', fedora: 'tailscale', opensuse: 'tailscale', nix: 'tailscale', homebrew: 'tailscale' }, unavailableReason: 'Not in Debian or Ubuntu repos. Follow instructions at [tailscale.com/download/linux](https://tailscale.com/download/linux).' },
{ id: 'wireguard', name: 'WireGuard', description: 'Fast, modern, secure VPN tunnel protocol', category: 'VPN & Network', iconUrl: si('wireguard', '#88171A'), targets: { ubuntu: 'wireguard', debian: 'wireguard', arch: 'wireguard-tools', fedora: 'wireguard-tools', opensuse: 'wireguard-tools', nix: 'wireguard-tools', homebrew: 'wireguard-tools' }, unavailableReason: 'WireGuard is a kernel module and not available via Flatpak or Snap.' },
{ id: 'openvpn', name: 'OpenVPN', description: 'Full-featured SSL VPN solution', category: 'VPN & Network', iconUrl: si('openvpn', '#EA7E20'), targets: { ubuntu: 'openvpn', debian: 'openvpn', arch: 'openvpn', fedora: 'openvpn', opensuse: 'openvpn', nix: 'openvpn', homebrew: 'openvpn' }, unavailableReason: 'OpenVPN is a system package and not available via Flatpak or Snap.' },
{ id: 'nmap', name: 'Nmap', description: 'Network discovery and security auditing tool', category: 'VPN & Network', iconUrl: 'https://raw.githubusercontent.com/bwks/vendor-icons-svg/702f2ac88acc71759ce623bc5000a596195e9db3/nmap-logo.svg', targets: { ubuntu: 'nmap', debian: 'nmap', arch: 'nmap', fedora: 'nmap', opensuse: 'nmap', nix: 'nmap', homebrew: 'nmap' }, unavailableReason: 'Nmap is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'openssh', name: 'OpenSSH', description: 'Secure remote login and file transfer via SSH', category: 'VPN & Network', iconUrl: mdi('ssh', '#F5A623'), targets: { ubuntu: 'openssh-client', debian: 'openssh-client', arch: 'openssh', fedora: 'openssh-clients', opensuse: 'openssh', nix: 'openssh', homebrew: 'openssh' }, unavailableReason: 'OpenSSH is a system package and not available via Flatpak or Snap.' },
{ id: 'remmina', name: 'Remmina', description: 'Open-source remote desktop client for RDP, VNC, SSH and more', category: 'VPN & Network', iconUrl: 'https://upload.wikimedia.org/wikipedia/commons/9/96/Org.remmina.Remmina.svg', targets: { ubuntu: 'remmina', debian: 'remmina', arch: 'remmina', fedora: 'remmina', opensuse: 'remmina', nix: 'remmina', flatpak: 'org.remmina.Remmina', snap: 'remmina' }, unavailableReason: 'Remmina is not available via Homebrew, use [Flatpak version](https://flathub.org/en/apps/org.remmina.Remmina) or [Snap version](https://snapcraft.io/remmina) instead.' },
// SECURITY
{ id: 'bitwarden', name: 'Bitwarden', description: 'Open-source password manager with cloud sync', category: 'Security', iconUrl: si('bitwarden', '#175DDC'), targets: { arch: 'bitwarden', nix: 'bitwarden', flatpak: 'com.bitwarden.desktop', snap: 'bitwarden', homebrew: '--cask bitwarden' }, unavailableReason: 'Not in official repos. Use [Flatpak](https://flathub.org/apps/details/com.bitwarden.desktop) or [Snap](https://snapcraft.io/bitwarden) or download from [bitwarden.com/download](https://bitwarden.com/download/).' },
{ id: 'keepassxc', name: 'KeePassXC', description: 'Secure offline-first password manager', category: 'Security', iconUrl: si('keepassxc', '#65B726'), targets: { ubuntu: 'keepassxc', debian: 'keepassxc', arch: 'keepassxc', fedora: 'keepassxc', opensuse: 'keepassxc', nix: 'keepassxc', flatpak: 'org.keepassxc.KeePassXC', snap: 'keepassxc', homebrew: '--cask keepassxc' } },
{ id: 'veracrypt', name: 'VeraCrypt', description: 'Free disk encryption based on TrueCrypt', category: 'Security', iconUrl: 'https://raw.githubusercontent.com/PapirusDevelopmentTeam/papirus-icon-theme/3390a630b535d1c1ccca04881b3959e262264116/Papirus/64x64/apps/veracrypt.svg', targets: { arch: 'veracrypt', opensuse: 'veracrypt', nix: 'veracrypt', homebrew: '--cask veracrypt' }, unavailableReason: 'Not in official Debian/Ubuntu/Fedora repos. Download from [veracrypt.fr/en/Downloads](https://veracrypt.fr/en/Downloads.html).' },
{ id: 'gnupg', name: 'GnuPG', description: 'GNU Privacy Guard for encryption and signing', category: 'Security', iconUrl: si('gnuprivacyguard', '#0093DD'), targets: { ubuntu: 'gnupg', debian: 'gnupg', arch: 'gnupg', fedora: 'gnupg2', opensuse: 'gnupg', nix: 'gnupg', homebrew: 'gnupg' }, unavailableReason: 'GnuPG is a system package and not available via Flatpak or Snap.' },
{ id: 'firejail', name: 'Firejail', description: 'SUID sandbox for restricting app environments', category: 'Security', iconUrl: 'https://linux.fi/w/images/1/1f/Firejail-logo.png', targets: { ubuntu: 'firejail', debian: 'firejail', arch: 'firejail', fedora: 'firejail', opensuse: 'firejail', nix: 'firejail' }, unavailableReason: 'Firejail is a system security tool and not available via Flatpak or Snap.' },
{ id: 'clamav', name: 'ClamAV', description: 'Open-source antivirus engine for malware detection', category: 'Security', iconUrl: 'https://raw.githubusercontent.com/ivangabriele/clamav-desktop/f60bfafdd23bb455f0468abe5f877d2b76eddfba/assets/icons/icon.svg', targets: { ubuntu: 'clamav', debian: 'clamav', arch: 'clamav', fedora: 'clamav', opensuse: 'clamav', nix: 'clamav', homebrew: 'clamav' }, unavailableReason: 'ClamAV is a system package and not available via Flatpak or Snap.' },
{ id: 'ente-auth', name: 'Ente Auth', description: 'Open source 2FA authenticator, with end-to-end encrypted backups', category: 'Security', iconUrl: 'https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/ente-auth.svg', targets: { arch: 'ente-auth-bin', nix: 'ente-auth', flatpak: 'io.ente.auth', homebrew: '--cask ente-auth' }, unavailableReason: 'Not in official repos. Use [Flatpak version](https://flathub.org/en/apps/io.ente.auth) or [Unofficial Snap Version](https://snapcraft.io/ente-auth-tsugu) or visit [ente.io/auth/](https://ente.io/auth/).' },
// FILE SHARING
{ id: 'syncthing', name: 'Syncthing', description: 'Decentralized peer-to-peer file synchronization', category: 'File Sharing', iconUrl: si('syncthing', '#0CB7E4'), targets: { ubuntu: 'syncthing', debian: 'syncthing', arch: 'syncthing', fedora: 'syncthing', opensuse: 'syncthing', nix: 'syncthing', flatpak: 'me.kozec.syncthingtk', homebrew: 'syncthing' }, unavailableReason: 'Syncthing GTK is available on [Flatpak](https://flathub.org/apps/me.kozec.syncthingtk). Not available as Snap.' },
{ id: 'qbittorrent', name: 'qBittorrent', description: 'Open-source BitTorrent client, uTorrent alternative', category: 'File Sharing', iconUrl: si('qbittorrent', '#2F67BA'), targets: { ubuntu: 'qbittorrent', debian: 'qbittorrent', arch: 'qbittorrent', fedora: 'qbittorrent', opensuse: 'qbittorrent', nix: 'qbittorrent', flatpak: 'org.qbittorrent.qBittorrent', snap: 'qbittorrent-desktop-tak', homebrew: '--cask qbittorrent' } },
{ id: 'transmission', name: 'Transmission', description: 'Lightweight BitTorrent client', category: 'File Sharing', iconUrl: si('transmission', '#D70000'), targets: { ubuntu: 'transmission', debian: 'transmission', arch: 'transmission-gtk', fedora: 'transmission', opensuse: 'transmission', nix: 'transmission_4-gtk', flatpak: 'com.transmissionbt.Transmission', homebrew: '--cask transmission' }, unavailableReason: 'Transmission is not available as a Snap package. Use [Flatpak](https://flathub.org/apps/com.transmissionbt.Transmission).' },
{ id: 'localsend', name: 'LocalSend', description: 'Cross-platform AirDrop alternative for local sharing', category: 'File Sharing', iconUrl: si('localsend', '#FCA73C'), targets: { arch: 'localsend-bin', nix: 'localsend', flatpak: 'org.localsend.localsend_app', homebrew: '--cask localsend' }, unavailableReason: 'Only available via [AUR](https://aur.archlinux.org/packages/localsend-bin) or [Flatpak](https://flathub.org/apps/org.localsend.localsend_app). Download from [localsend.org](https://localsend.org/download).' },
{ id: 'filezilla', name: 'FileZilla', description: 'Cross-platform FTP, FTPS and SFTP client', category: 'File Sharing', iconUrl: si('filezilla', '#BF0000'), targets: { ubuntu: 'filezilla', debian: 'filezilla', arch: 'filezilla', fedora: 'filezilla', opensuse: 'filezilla', nix: 'filezilla', flatpak: 'org.filezillaproject.Filezilla' }, unavailableReason: 'FileZilla is not available as a Snap package.' },
{ id: 'nextcloud', name: 'Nextcloud', description: 'Self-hosted cloud storage sync client', category: 'File Sharing', iconUrl: si('nextcloud', '#0082C9'), targets: { ubuntu: 'nextcloud-desktop', debian: 'nextcloud-desktop', arch: 'nextcloud-client', fedora: 'nextcloud-client', opensuse: 'nextcloud-desktop', nix: 'nextcloud-client', flatpak: 'com.nextcloud.desktopclient.nextcloud', snap: 'nextcloud-desktop-client', homebrew: '--cask nextcloud' } },
{ id: 'dropbox', name: 'Dropbox', description: 'Popular cloud file storage and sync service', category: 'File Sharing', iconUrl: si('dropbox', '#0061FF'), targets: { arch: 'dropbox', nix: 'dropbox', flatpak: 'com.dropbox.Client', homebrew: '--cask dropbox' }, unavailableReason: 'Only available via [AUR](https://aur.archlinux.org/packages/dropbox) or [Flatpak](https://flathub.org/apps/com.dropbox.Client). See [dropbox.com/install-linux](https://www.dropbox.com/install-linux) for other methods.' },
{ id: 'abdownloadmanager', name: 'AB Download Manager', description: 'Modern download manager with browser integration', category: 'File Sharing', iconUrl: mdi('download-box', '#4CAF50'), targets: { arch: 'ab-download-manager-bin' }, unavailableReason: 'Only available via [AUR](https://aur.archlinux.org/packages/ab-download-manager-bin). Download from [abdownloadmanager.com](https://abdownloadmanager.com/).' },
{ id: 'fdm', name: 'Free Download Manager', description: 'Feature-rich download manager with BitTorrent', category: 'File Sharing', iconUrl: 'https://hexmos.com/freedevtools/svg_icons/reader/free_download_manager.svg', targets: { arch: 'freedownloadmanager-bin', homebrew: '--cask free-download-manager', flatpak: 'org.freedownloadmanager.Manager' }, unavailableReason: 'Not in official repos. Use [Flatpak version](https://flathub.org/en/apps/org.freedownloadmanager.Manager) or see [the official website](https://www.freedownloadmanager.org/) or for other methods.' },
// SYSTEM
{ id: 'gparted', name: 'GParted', description: 'GNOME partition editor for disk management', category: 'System', iconUrl: si('gnome', '#E95420'), targets: { ubuntu: 'gparted', debian: 'gparted', arch: 'gparted', fedora: 'gparted', opensuse: 'gparted', nix: 'gparted' }, unavailableReason: 'GParted requires root access and is not available via Flatpak or Snap.' },
{ id: 'kde-partition-manager', name: 'KDE Partition Manager', description: 'Utility for management of disk devices, partitions and file systems', category: 'System', iconUrl: si('kde', '#1D99F3'), targets: { ubuntu: 'partitionmanager', debian: 'partitionmanager', arch: 'partitionmanager', fedora: 'kde-partitionmanager', opensuse: 'partitionmanager', nix: 'partitionmanager', flatpak: 'org.kde.partitionmanager' }, unavailableReason: 'Not available as a Snap package.' },
{ id: 'kdeconnect', name: 'KDE Connect', description: 'Connect your phone to your Linux desktop', category: 'System', iconUrl: si('kde', '#338BDB'), targets: { ubuntu: 'kdeconnect', debian: 'kdeconnect', arch: 'kdeconnect', fedora: 'kdeconnectd', opensuse: 'kdeconnect-kde', nix: 'kdeconnect' }, unavailableReason: 'KDE Connect is not available via Flatpak or Snap.' },
{ id: 'timeshift', name: 'Timeshift', description: 'System snapshot and restore tool like Time Machine', category: 'System', iconUrl: mdi('backup-restore', '#D9534F'), targets: { ubuntu: 'timeshift', debian: 'timeshift', arch: 'timeshift', fedora: 'timeshift', opensuse: 'timeshift', nix: 'timeshift' }, unavailableReason: 'Requires root filesystem access; not available as Flatpak or Snap.' },
{ id: 'bleachbit', name: 'BleachBit', description: 'Free disk space and maintain privacy', category: 'System', iconUrl: 'https://raw.githubusercontent.com/chocolatey-community/chocolatey-packages/782707302851e7935c4a5a3e48e27140c774fa78/icons/bleachbit.svg', targets: { ubuntu: 'bleachbit', debian: 'bleachbit', arch: 'bleachbit', fedora: 'bleachbit', opensuse: 'bleachbit', nix: 'bleachbit', flatpak: 'org.bleachbit.BleachBit' }, unavailableReason: 'BleachBit is not available as a Snap package.' },
{ id: 'flameshot', name: 'Flameshot', description: 'Powerful screenshot tool with annotation', category: 'System', iconUrl: 'https://raw.githubusercontent.com/flameshot-org/flameshot/master/data/img/app/flameshot.svg', targets: { ubuntu: 'flameshot', debian: 'flameshot', arch: 'flameshot', fedora: 'flameshot', opensuse: 'flameshot', nix: 'flameshot', flatpak: 'org.flameshot.Flameshot', homebrew: '--cask flameshot' }, unavailableReason: 'Flameshot is not available as a Snap package.' },
{ id: 'gnometweaks', name: 'GNOME Tweaks', description: 'Advanced settings and customization for GNOME', category: 'System', iconUrl: si('gnome', '#4A86CF'), targets: { ubuntu: 'gnome-tweaks', debian: 'gnome-tweaks', arch: 'gnome-tweaks', fedora: 'gnome-tweaks', opensuse: 'gnome-tweaks', nix: 'gnome-tweaks' }, unavailableReason: 'GNOME Tweaks is not available via Flatpak or Snap.' },
{ id: 'dconf', name: 'dconf Editor', description: 'Low-level configuration editor for GNOME', category: 'System', iconUrl: si('gnome', '#4A86CF'), targets: { ubuntu: 'dconf-editor', debian: 'dconf-editor', arch: 'dconf-editor', fedora: 'dconf-editor', opensuse: 'dconf-editor', nix: 'dconf-editor' }, unavailableReason: 'dconf Editor is not available via Flatpak or Snap.' },
{ id: 'borgbackup', name: 'BorgBackup', description: 'Deduplicating backup program with compression', category: 'System', iconUrl: si('borgbackup', '#00B041'), targets: { ubuntu: 'borgbackup', debian: 'borgbackup', arch: 'borg', fedora: 'borgbackup', opensuse: 'borgbackup', nix: 'borgbackup', homebrew: 'borgbackup' }, unavailableReason: 'BorgBackup is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'restic', name: 'Restic', description: 'Fast, secure, efficient backup program', category: 'System', iconUrl: mdi('cloud-sync', '#00B4AB'), targets: { ubuntu: 'restic', debian: 'restic', arch: 'restic', fedora: 'restic', opensuse: 'restic', nix: 'restic', homebrew: 'restic' }, unavailableReason: 'Restic is a CLI tool and not available via Flatpak or Snap.' },
{ id: 'flatpaksupport', name: 'Flatpak', description: 'Universal app packaging and sandboxing framework', category: 'System', iconUrl: si('flatpak', '#4A90D9'), targets: { ubuntu: 'flatpak', debian: 'flatpak', arch: 'flatpak', fedora: 'flatpak', opensuse: 'flatpak', nix: 'flatpak' }, unavailableReason: 'Flatpak is a system package manager and not available via Flatpak or Snap.' },
{ id: 'filelight', name: 'Filelight', description: 'Interactive disk usage visualization by KDE', category: 'System', iconUrl: si('kde', '#338BDB'), targets: { ubuntu: 'filelight', debian: 'filelight', arch: 'filelight', fedora: 'filelight', opensuse: 'filelight', nix: 'filelight', flatpak: 'org.kde.filelight', snap: 'filelight' } },
{ id: 'conky', name: 'Conky', description: 'Highly configurable desktop system monitor', category: 'System', iconUrl: mdi('monitor-dashboard', '#FFFFFF'), targets: { ubuntu: 'conky-all', debian: 'conky-all', arch: 'conky', fedora: 'conky', opensuse: 'conky', nix: 'conky' }, unavailableReason: 'Conky is a system tool and not available via Flatpak or Snap.' },
{ id: 'fsearch', name: 'FSearch', description: 'Fast file search utility, inspired by Everything', category: 'System', iconUrl: 'https://dl.flathub.org/media/io/github/cboxdoerfer.FSearch/5dfcd05a3d0147745dccd8477b238210/icons/128x128/io.github.cboxdoerfer.FSearch.png', targets: { ubuntu: 'fsearch', debian: 'fsearch', arch: 'fsearch', opensuse: 'fsearch', nix: 'fsearch', flatpak: 'com.github.cboxdoerfer.FSearch' }, unavailableReason: 'Not in Fedora official repos. Available via [COPR](https://copr.fedorainfracloud.org/coprs/cboxdoerfer/fsearch/) but may have dependency issues on Fedora 41+.' },
{ id: 'resources', name: 'Resources', description: 'Modern system resource monitor', category: 'System', iconUrl: 'https://dl.flathub.org/media/net/nokyan/Resources/4f0373aa103995c3e7197228fdb3d21c/icons/128x128/net.nokyan.Resources.png', targets: { arch: 'resources', nix: 'resources', flatpak: 'net.nokyan.Resources' } },
{ id: 'cpux', name: 'CPU-X', description: 'System profiling and monitoring (CPU-Z alternative)', category: 'System', iconUrl: 'https://dl.flathub.org/media/io/github/thetumultuousunicornofdarkness.cpu-x/80c9c5c5b9f72bd79cbe28b1c3d662da/icons/128x128/io.github.thetumultuousunicornofdarkness.cpu-x.png', targets: { ubuntu: 'cpu-x', debian: 'cpu-x', arch: 'cpu-x', fedora: 'cpu-x', nix: 'cpu-x', flatpak: 'io.github.thetumultuousunicornofdarkness.cpu-x' } },
{ id: 'missioncenter', name: 'Mission Center', description: 'Fast, modern system monitor with GPU support', category: 'System', iconUrl: 'https://gitlab.com/mission-center-devs/mission-center/-/raw/main/data/icons/hicolor/scalable/apps/io.missioncenter.MissionCenter.svg', targets: { arch: 'mission-center', nix: 'mission-center', flatpak: 'io.missioncenter.MissionCenter', snap: 'mission-center' }, unavailableReason: 'Not in most official repos. Use [Flatpak](https://flathub.org/apps/io.github.MissionCenter.MissionCenter) or see [Mission Center](https://gitlab.com/mission-center-devs/mission-center/) for more information.' },
{ id: 'openrgb', name: 'OpenRGB', description: 'Open source RGB lighting control that does not depend on manufacturer software. Supports a wide variety of RGB components, peripherals, accessories, and lights across many manufacturers.', category: 'System', iconUrl: 'https://avatars.githubusercontent.com/u/1051772?s=48&v=4', targets: { arch: 'openrgb', fedora: 'openrgb', opensuse: 'OpenRGB', nix: 'openrgb', homebrew: '--cask openrgb', flatpak: 'org.openrgb.OpenRGB' }, unavailableReason: 'Not in available in Snap. Use the [Flatpak version](https://flathub.org/en/apps/org.openrgb.OpenRGB) instead. Available on Debian 14/Sid and Ubuntu 25.11 or later Official repos as `openrgb`' },
]; ];
// Categories in display order - beginner-friendly (popular first), balanced heights
// Popular/Consumer first, then Developer/Power-user categories
export const categories: Category[] = [ export const categories: Category[] = [
// Row 1: Most popular consumer categories 'Web Browsers',
'Web Browsers', // 9 - everyone needs this first 'Communication',
'Communication', // 8 - Discord, Telegram, etc. 'Media',
'Media', // 14 - VLC, Spotify, etc. 'Gaming',
'Gaming', // 10 - Steam, etc. 'Office',
'Office', // 11 - LibreOffice, etc. 'Creative',
// Row 2: Creative & System 'System',
'Creative', // 10 - Blender, GIMP, etc. 'File Sharing',
'System', // 13 - Utilities 'Security',
'File Sharing', // 9 - Syncthing, torrents 'VPN & Network',
'Security', // 6 - Passwords, VPN 'Dev: Editors',
'VPN & Network', // 7 - ProtonVPN, etc. 'Dev: Languages',
// Row 3: Developer categories (larger, go last to fill columns) 'Dev: Tools',
'Dev: Editors', // 9 - VS Code, etc. 'Terminal',
'Dev: Languages', // 10 - Python, Node, etc. 'CLI Tools',
'Dev: Tools', // 18 - Docker, Git, etc.
'Terminal', // 9 - Alacritty, etc.
'CLI Tools', // 21 - btop, fzf, etc.
]; ];
// Get apps by category
export const getAppsByCategory = (category: Category): AppData[] => { export const getAppsByCategory = (category: Category): AppData[] => {
return apps.filter(app => app.category === category); return apps.filter(app => app.category === category);
}; };
// Check if app is available for distro
export const isAppAvailable = (app: AppData, distro: DistroId): boolean => { export const isAppAvailable = (app: AppData, distro: DistroId): boolean => {
return distro in app.targets; return distro in app.targets;
}; };
// Note: For command generation, use useLinuxInit().generatedCommand or generateInstallScript()