Skip to content
Snippets Groups Projects
OCS-URL-specification.md 3.36 KiB
Newer Older
  • Learn to ignore specific revisions
  • # OCS-URL specification
    
    OCS-URL is a custom URL that represent the installation method of items served on OpenCollaborationServices (OCS).
    
    
    ## URL structure
    
        [scheme]://[command]?[query string]
    
    For example:
    
        ocs://install?url=http%3A%2F%2Fexample.com%2Ficons.tar.gz&type=icons
    
    
    ## Scheme
    
    Scheme | Description
    -------|------------
    ocs | ocs scheme
    ocss | ocs scheme for secure protocol
    
    "ocss" scheme is the same of the ocs scheme for now,
    it's a reserved name for secure protocol in the future.
    
    
    ## Command
    
    Command | Description
    --------|------------
    download | Download the file from specified URL to the installation destination of specified install-type.
    install | Make file downloading and trigger installation process.
    
    
    ## Query string
    
    OCS-URL's query string is an option of command.
    
    *All query string values should be urlencoded.*
    
    Parameter | Required | Default | Description
    ----------|----------|---------|------------
    url | Yes | - | File URL
    type | - | downloads | Install-type
    filename | - | File name from URL | Alternative file name
    
    "filename" option is useful if the file URL does not represent a file name.
    
    ### Install-type
    
    Available install-type:
    
    Install-type | Installation destination
    -------------|------------------
    bin | $HOME/.local/bin
    downloads | $HOME/Downloads
    documents | $HOME/Documents
    pictures | $HOME/Pictures
    music | $HOME/Music
    videos | $HOME/Videos
    wallpapers | $XDG_DATA_HOME/wallpapers
    fonts | $HOME/.fonts
    cursors | $HOME/.icons
    icons | $XDG_DATA_HOME/icons
    emoticons | $XDG_DATA_HOME/emoticons
    themes | $HOME/.themes
    emerald_themes | $HOME/.emerald/themes
    enlightenment_themes | $HOME/.e/e/themes
    enlightenment_backgrounds | $HOME/.e/e/backgrounds
    fluxbox_styles | $HOME/.fluxbox/styles
    pekwm_themes | $HOME/.pekwm/themes
    icewm_themes | $HOME/.icewm/themes
    plasma_plasmoids | $XDG_DATA_HOME/plasma/plasmoids
    plasma_look_and_feel | $XDG_DATA_HOME/plasma/look-and-feel
    plasma_desktopthemes | $XDG_DATA_HOME/plasma/desktoptheme
    kwin_effects | $XDG_DATA_HOME/kwin/effects
    kwin_scripts | $XDG_DATA_HOME/kwin/scripts
    kwin_tabbox | $XDG_DATA_HOME/kwin/tabbox
    aurorae_themes | $XDG_DATA_HOME/aurorae/themes
    dekorator_themes | $XDG_DATA_HOME/deKorator/themes
    qtcurve | $XDG_DATA_HOME/QtCurve
    color_schemes | $XDG_DATA_HOME/color-schemes
    gnome_shell_extensions | $XDG_DATA_HOME/gnome-shell/extensions
    cinnamon_applets | $XDG_DATA_HOME/cinnamon/applets
    cinnamon_desklets | $XDG_DATA_HOME/cinnamon/desklets
    cinnamon_extensions | $XDG_DATA_HOME/cinnamon/extensions
    nautilus_scripts | $XDG_DATA_HOME/nautilus/scripts
    amarok_scripts | $KDEHOME/share/apps/amarok/scripts
    yakuake_skins | $KDEHOME/share/apps/yakuake/skins
    cairo_clock_themes | $HOME/.cairo-clock/themes
    books | $APP_DATA/books
    comics | $APP_DATA/comics
    
    $APP_DATA is not environment variable, it's internal variable in the program and expressed to $XDG_DATA_HOME/{application ID or name}.
    
    Available alias name of the install-type:
    
    Alias | Install-type
    ------|-------------
    gnome_shell_themes | themes
    cinnamon_themes | themes
    gtk2_themes | themes
    gtk3_themes | themes
    metacity_themes | themes
    xfwm4_themes | themes
    openbox_themes | themes
    kvantum_themes | themes
    compiz_themes | emerald_themes
    beryl_themes | emerald_themes
    plasma4_plasmoids | plasma_plasmoids
    plasma5_plasmoids | plasma_plasmoids
    plasma5_look_and_feel | plasma_look_and_feel
    plasma5_desktopthemes | plasma_desktopthemes
    plasma_color_schemes | color_schemes