Skip to content

Conversation

@munix9
Copy link
Contributor

@munix9 munix9 commented May 28, 2025

With the plugins, opi offers the option of using (almost) any source.
But there are cases where certain sources, for whatever reason, cannot or should not be included in the official opi package.
However, such plugins could be offered as a separate package (or simply as an independent file) and used in opi.
This proof-of-concept is intended to demonstrate this possibility and lists corresponding plugins as “3rd-party”, if available.
I leave this PR as a draft - maybe someone can do something with the idea and use it later for a corresponding extension.

Example output:

$ opi
usage: opi [-h] [-v] [-n] [-P] [-m] [query ...]

openSUSE Package Installer
==========================

Search and install almost all packages available for openSUSE and SLE:
  1. openSUSE Build Service
  2. Packman
  3. Popular packages for various vendors

positional arguments:
  query          can be any package name or part of it and will be searched for both at the openSUSE Build Service and Packman.
                 If multiple query arguments are provided only results matching all of them are returned.
                 Please use the -m option if you want to use the query arguments as individual package queries.

options:
  -h, --help     show this help message and exit
  -v, --version  show program's version number and exit
  -n             run in non interactive mode
  -P             don't run any plugins - only search repos, OBS and Packman
  -m             use query args as space separated package queries

Also these queries (provided by plugins) can be used to install packages from various other vendors:
  anydesk           AnyDesk remote access
  atom              Atom Text Editor
  brave             Brave web browser
  chrome            Google Chrome web browser
  codecs            Media Codecs from Packman and official repo
  collabora         Collabora desktop office
  dotnet            Microsoft .NET framework
  freeoffice        Office suite from SoftMaker (See OSS alternative libreoffice)
  jami              Jami p2p messenger
  libation          Tool for managing audible audiobooks
  maptool           Virtual Tabletop for playing roleplaying games
  megasync          Mega Desktop App
  msedge            Microsoft Edge web browser
  mullvad-browser   Mullvad web browser
  ocenaudio         Audio Editor
  orcaslicer        Slicer and controller for Bambu and other 3D printers
  plex              Plex Media Server (See OSS alternative jellyfin)
  resilio-sync      Decentralized file sync between devices using bittorrent protocol (See OSS alternative syncthing)
  skype             Microsoft Skype
  slack             Slack messenger
  spotify           Listen to music for a monthly fee
  sublime           Editor for code, markup and prose
  teams-for-linux   Unofficial Microsoft Teams for Linux client
  teamviewer        TeamViewer remote access
  vagrant           Tool for building and distributing development environments
  vivaldi           Vivaldi web browser
  vscode            Microsoft Visual Studio Code
  vscodium          Visual Studio Codium
  yandex-browser    Yandex web browser
  yandex-disk       Yandex.Disk cloud storage client
  zoom              Zoom Video Conference

These queries are provided by plugins that are not part of the opi package:
  netbeans          Development environment, tooling platform and application framework

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant