UbuntuCommonHooker

Revision 13 as of 2006-06-28 18:51:09

Clear message

Summary

[:UbuntuCommonHooker: UbuntuCommonHooker] aims to provide an interface for unknown file types and to automatically install required packages when needed.

Rationale

New users find it difficult to find programs that open particular file types when there are no installed default viewers for it.

Use cases

Eduard is a schizophrenic, however his only obession and a way to calm him down is listening to "Veronika Plays Piano, volume 1" which is encoded in MP3. Veronika is his friend who recently got a copy of Ubuntu, and tried it on Eduard's computer. However, Eduard just found out that he can't play his MP3's.

Dr. Igor uses ".rar" extension to compress his research, however, Villete decides to migrate to Ubuntu. But when Dr. Igor tries to open "Vitriol.rar, and Zedka.rar", it says "Error cannot open file!"

Okonkwo tried Ubuntu for the first time, however, when he tried to open "Wrestling with Amalinze.mpg", he is prompted that "there are no codecs available to view this file", However, Okonkwo's father Onuka had no problems opening .mpg files, but Okonkwo doesn't like using Windows like his father did.

Scope

The software will support the following file types:

File Type

Description

Open With

ZIP, RAR, ARJ, ACE

Compressed Files

File-Roller

MP3, WMA, AAC, M4A

Audio Codecs

Rhythmbox (gstreamer)

RAM, RM

Real Media Codecs

Totem (gstreamer)

MPG, MOV

Video Files

Totem (gstreamer)

CBZ, CBR

Comics Files

Comix

CHM

Compiled Help Document

xCHM

It will automatically install the necessary applications to view those particular files.

Design

The software will be linked to those particular file extensions, (e.g. Open With), and will have a gnome-settings-default-applications icon.

attachment:ubuntu-common-install-hooker-implimentation-0.1.png

Screenshots

Archives

attachment:ubuntu-common-install-hooker-rar-0.1.png attachment:ubuntu-common-install-hooker-arj-0.1.png

Music Audio Files

attachment:ubuntu-common-install-hooker-mp3-0.1.png attachment:ubuntu-common-install-hooker-aac-0.1.png

Video and Movie Files

attachment:ubuntu-common-install-hooker-mov-0.1.png attachment:ubuntu-common-install-hooker-mpg-0.1.png

Document Files

attachment:ubuntu-common-install-hooker-cbr-0.1.png attachment:ubuntu-common-install-hooker-chm-0.1.png

Implementation

The software will determine a particular file by it's file extension, expected input is not case-sensitive, that means, .ZiP, .ZIP .zIP will be automatically identified as well as .zip.

(Comment: Wouldn't it be easier and maybe less error-prone to use the magic number instead of the extension, like GNU file does?)

Code

The Code is written in Gtk+ 2.0, C, and sh as a backend script.

Source

attachment:ubuntu-common-hooker-0.1.tar.gz

Binary

attachment:ubuntu-common-hooker_0.1-1_i386.deb

Data preservation and migration

The original file will not be over written.

Outstanding issues

It will prompt the user to enable universe/multiverse repository, that will install non-free and commercial applications, a user will manually enable those repository, via software-properties.

== BoF agenda and discussion ==

  • Is this related to DesktopTeam/CommonInstallHook ? Is this intended to work from within applications? Eg If i try to play an mp3 in rhythmbox or watch flash in firefox. -- SamTygier

  • Don't forget the documentation and the '? Help...' button in the dialog! It's quite important that we don't leave users wondering if "enabling repositories" is a dangerous thing or not. In some ways it actually is -- users leave the sphere of supported packages. UlrikSverdrup

  • It is based on the DesktopTeam/CommonInstallHook idea, but more centralized way to handle the install hooks, so it's easy to add new file extensions, and to impliment new features. I think with the DesktopTeam/CommonInstallHook, each applications, namely rhythmbox, totem, gimp, file-roller will need to be patched for the idea of installing a package when needed to work, it's not impossible, and there might be a good and positive way for this. A concern will raise when a user choose to remove a currently installed package that is linking to those apps I said earlier, they must impliment a way to revert back to previous actions linking to those application. [:joelbryan: joelbryan]

  • Comment: Wouldn't it be easier to just install the applications to open these files by default? There are not many of them, I estimate just 10-15Mb of more diskspace. In the case of non-free apps which cannot be installed by default we could just provide an easy way to install them all. OTOH patching a lot of applications to default to our UbuntuCommonHooker whenever they don't know what to do with a file is a very hard work (and hard to maintain), and I fail to see the benefits would outcome the effort. Also, the user trying to open the file will not always be a sudoer, so the CommonHooker will not always be able to automatically install the software. [:grimborg: grimborg]

    • Sure, it would probably be easier to just install the few utilities needed for the limited set of file-formats listed above, however, this solution could easily be expanded to include many other formats that Ubuntu might not be able to handle by default (surely there are plenty). That is a good point, though, about having to maintain patches for many apps. At very least, this could be used to patch Nautilus. I would guess that, most of the time users will probably attempt to open a file through the file browser. [:ChrisWagner: ChrisWagner]

    • You can't install these applications by default, sometimes due to the Ubuntu "free" philosophy and sometimes due to legal problems (for example in the case of MP3 or DVD file formats). This is cleanest/only way to give people the option of playing these formats without previous knowledge of how to install the necessary packages by hand. [:Scaine:scaine]

  • Another suggestion: Things like autopackage files, that instead need the execute bit set and then run could also be detected.


CategorySpec