diff --git a/README.md b/README.md index 3feb0d6..27ca781 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,8 @@ src/ │ ├── useTooltip.ts │ └── useDelayedTooltip.ts ├── lib/ -│ ├── data.ts # Apps, distros, icons +│ ├── apps/ # JSON application files by category +│ ├── data.ts # Categories, distros, and app unifier │ ├── aur.ts # AUR package detection │ ├── analytics.ts # Umami tracking │ ├── utils.ts # Utility functions diff --git a/scripts/extract-categories.ts b/scripts/extract-categories.ts new file mode 100644 index 0000000..f2d9efb --- /dev/null +++ b/scripts/extract-categories.ts @@ -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 = {}; +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}`); +} diff --git a/src/lib/apps/cli-tools.json b/src/lib/apps/cli-tools.json new file mode 100644 index 0000000..a09d180 --- /dev/null +++ b/src/lib/apps/cli-tools.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/communication.json b/src/lib/apps/communication.json new file mode 100644 index 0000000..e95d753 --- /dev/null +++ b/src/lib/apps/communication.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/creative.json b/src/lib/apps/creative.json new file mode 100644 index 0000000..fbaddea --- /dev/null +++ b/src/lib/apps/creative.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/dev-editors.json b/src/lib/apps/dev-editors.json new file mode 100644 index 0000000..b2f6d72 --- /dev/null +++ b/src/lib/apps/dev-editors.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/dev-languages.json b/src/lib/apps/dev-languages.json new file mode 100644 index 0000000..807b292 --- /dev/null +++ b/src/lib/apps/dev-languages.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/dev-tools.json b/src/lib/apps/dev-tools.json new file mode 100644 index 0000000..0898110 --- /dev/null +++ b/src/lib/apps/dev-tools.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/file-sharing.json b/src/lib/apps/file-sharing.json new file mode 100644 index 0000000..91d7848 --- /dev/null +++ b/src/lib/apps/file-sharing.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/gaming.json b/src/lib/apps/gaming.json new file mode 100644 index 0000000..4ec8bac --- /dev/null +++ b/src/lib/apps/gaming.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/media.json b/src/lib/apps/media.json new file mode 100644 index 0000000..3360808 --- /dev/null +++ b/src/lib/apps/media.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/office.json b/src/lib/apps/office.json new file mode 100644 index 0000000..8b22c95 --- /dev/null +++ b/src/lib/apps/office.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/security.json b/src/lib/apps/security.json new file mode 100644 index 0000000..c625cf3 --- /dev/null +++ b/src/lib/apps/security.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/system.json b/src/lib/apps/system.json new file mode 100644 index 0000000..519d946 --- /dev/null +++ b/src/lib/apps/system.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/terminal.json b/src/lib/apps/terminal.json new file mode 100644 index 0000000..827f691 --- /dev/null +++ b/src/lib/apps/terminal.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/vpn-network.json b/src/lib/apps/vpn-network.json new file mode 100644 index 0000000..048fcb8 --- /dev/null +++ b/src/lib/apps/vpn-network.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/apps/web-browsers.json b/src/lib/apps/web-browsers.json new file mode 100644 index 0000000..5777f5e --- /dev/null +++ b/src/lib/apps/web-browsers.json @@ -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" + } + } +] \ No newline at end of file diff --git a/src/lib/data.ts b/src/lib/data.ts index c075503..2b1bd10 100644 --- a/src/lib/data.ts +++ b/src/lib/data.ts @@ -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 Category = @@ -18,6 +34,10 @@ export type Category = | 'File Sharing' | 'System'; +export type IconDef = + | { type: 'iconify'; set: string; name: string; color?: string } + | { type: 'url'; url: string }; + export interface Distro { id: DistroId; name: string; @@ -31,285 +51,74 @@ export interface AppData { name: string; description: string; category: Category; - iconUrl: string; + icon: IconDef; targets: Partial>; - // Markdown shown when app unavailable (same for all distros) unavailableReason?: string; } -// Icon helpers using Iconify API for comprehensive icon coverage -// Adding ?color=hex to colorize monochrome icons -const icon = (set: string, name: string, color?: string) => - `https://api.iconify.design/${set}/${name}.svg${color ? `?color=${encodeURIComponent(color)}` : ''}`; -const si = (name: string, color?: string) => icon('simple-icons', name, color); // Simple Icons (brands) -const lo = (name: string) => icon('logos', name); // Logos (already colorful) -const vs = (name: string) => icon('vscode-icons', name); // VS Code Icons (colorful file types) -const mdi = (name: string, color?: string) => icon('mdi', name, color); // Material Design Icons +export const getIconUrl = (icon: IconDef): string => { + if (icon.type === 'url') return icon.url; + let url = `https://api.iconify.design/${icon.set}/${icon.name}.svg`; + if (icon.color) { + url += `?color=${encodeURIComponent(icon.color)}`; + } + return url; +}; + + export const distros: Distro[] = [ - { id: 'ubuntu', name: 'Ubuntu', iconUrl: si('ubuntu', '#E95420'), color: '#E95420', installPrefix: 'sudo apt install -y' }, - { id: 'debian', name: 'Debian', iconUrl: si('debian', '#A81D33'), color: '#A81D33', installPrefix: 'sudo apt install -y' }, - { id: 'arch', name: 'Arch', iconUrl: si('archlinux', '#1793D1'), color: '#1793D1', installPrefix: 'sudo pacman -S --needed --noconfirm' }, - { id: 'fedora', name: 'Fedora', iconUrl: si('fedora', '#51A2DA'), color: '#51A2DA', installPrefix: 'sudo dnf install -y' }, - { id: 'opensuse', name: 'OpenSUSE', iconUrl: si('opensuse', '#73BA25'), color: '#73BA25', installPrefix: 'sudo zypper install -y' }, - { id: 'nix', name: 'Nix', iconUrl: si('nixos', '#5277C3'), 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: 'snap', name: 'Snap', iconUrl: si('snapcraft', '#82BEA0'), color: '#82BEA0', installPrefix: 'sudo snap install' }, - { id: 'homebrew', name: 'Homebrew', iconUrl: si('homebrew', '#FBB040'), color: '#FBB040', installPrefix: 'brew install' }, + { 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: 'https://api.iconify.design/simple-icons/debian.svg?color=%23A81D33', color: '#A81D33', installPrefix: 'sudo apt install -y' }, + { 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: 'https://api.iconify.design/simple-icons/fedora.svg?color=%2351A2DA', color: '#51A2DA', installPrefix: 'sudo dnf 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: 'https://api.iconify.design/simple-icons/nixos.svg?color=%235277C3', color: '#5277C3', installPrefix: 'nix-env -iA nixpkgs.' }, + { 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: 'https://api.iconify.design/simple-icons/snapcraft.svg?color=%2382BEA0', color: '#82BEA0', installPrefix: 'sudo snap 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[] = [ - // WEB BROWSERS - { 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' } }, - { 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' } }, - { 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/).' }, - { 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/).' }, - { 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/).' }, - { 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/).' }, - { 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).' }, - { 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/).' }, - { 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/).' }, - { 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.'}, - - // COMMUNICATION - { 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).' }, - { 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/).' }, - { 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`' }, - + ...(webBrowsers as AppData[]), + ...(communication as AppData[]), + ...(devLanguages as AppData[]), + ...(devEditors as AppData[]), + ...(devTools as AppData[]), + ...(terminal as AppData[]), + ...(cliTools as AppData[]), + ...(media as AppData[]), + ...(creative as AppData[]), + ...(gaming as AppData[]), + ...(office as AppData[]), + ...(vpnNetwork as AppData[]), + ...(security as AppData[]), + ...(fileSharing as AppData[]), + ...(system as AppData[]) ]; -// Categories in display order - beginner-friendly (popular first), balanced heights -// Popular/Consumer first, then Developer/Power-user categories export const categories: Category[] = [ - // Row 1: Most popular consumer categories - 'Web Browsers', // 9 - everyone needs this first - 'Communication', // 8 - Discord, Telegram, etc. - 'Media', // 14 - VLC, Spotify, etc. - 'Gaming', // 10 - Steam, etc. - 'Office', // 11 - LibreOffice, etc. - // Row 2: Creative & System - 'Creative', // 10 - Blender, GIMP, etc. - 'System', // 13 - Utilities - 'File Sharing', // 9 - Syncthing, torrents - 'Security', // 6 - Passwords, VPN - 'VPN & Network', // 7 - ProtonVPN, etc. - // Row 3: Developer categories (larger, go last to fill columns) - 'Dev: Editors', // 9 - VS Code, etc. - 'Dev: Languages', // 10 - Python, Node, etc. - 'Dev: Tools', // 18 - Docker, Git, etc. - 'Terminal', // 9 - Alacritty, etc. - 'CLI Tools', // 21 - btop, fzf, etc. + 'Web Browsers', + 'Communication', + 'Media', + 'Gaming', + 'Office', + 'Creative', + 'System', + 'File Sharing', + 'Security', + 'VPN & Network', + 'Dev: Editors', + 'Dev: Languages', + 'Dev: Tools', + 'Terminal', + 'CLI Tools', ]; -// Get apps by category export const getAppsByCategory = (category: Category): AppData[] => { return apps.filter(app => app.category === category); }; -// Check if app is available for distro export const isAppAvailable = (app: AppData, distro: DistroId): boolean => { return distro in app.targets; }; - -// Note: For command generation, use useLinuxInit().generatedCommand or generateInstallScript()