UbuntuCommonHooker
Launchpad Entry: https://launchpad.net/distros/ubuntu/+spec/ubuntu-common-hooker
Created: 2006-04-25 by Joel Bryan T. Juliano
Contributors: Joel Bryan T. Juliano
Packages affected: GTK-2.0, Software-Properties, APT
Summary
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.
Screenshots
Archives
Music Audio Files
Video and Movie Files
Document Files
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
ubuntu-common-hooker-0.1.tar.gz
Binary
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
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
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
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
- Another suggestion: Things like autopackage files, that instead need the execute bit set and then run could also be detected.
Is it neccessary to determine file types by extension? Why not by type (and if that fails, fall back to extension) Pandisv
- I completely agree, determining the type of data in a file based on it's filename should only be used on the Internet (where it would be insecure and a waste of bandwidth to download the content or header of every file merely to determine it's type). I also think that the explanations and descriptions should say what the file actually is, for example AAC is, if I remember correctly, the Advanced Audio Codec (which I think is the audio part of MPEG2), not an "iTunes Audio file", and initialisms like MPG don't make any sense (who is the Motion Picture Group?). Filenames (I hate the term "extension" which seems to justify their existance as a good thing) should not create unintelligible nonsense just to fit into the lazyness of some ancient operating system designer. The slang term MP3 seems to have become accepted into the language, so I will let that pass, but the likes of "MP4" should not be encouraged as they offer absolutely no clarification for computer users. How about just using "There is no application installed for Quicktime Movie files", etc.? It's actually LESS than what currently appears! -- Warbo
If this is proceeded with, please do complete i18n right from the beginning, so that everything necessary can be translated (including desktop items / open with... item). -- TimoJyrinki
Couldn't this be implemented by a MIME type search in gnome-app-install? Trying to add a patch for that with Nautilus right now instead of the ugly and useless error message it throws when files can't be opened. As a proof of concept it is running "gnome-app-install --mime-type=MIME_TYPE" and reopening the file later. Looks like we have the same aim, though achieved in distinctly different places. I take it that Ubuntu Common Hooker would do its thing via file type associations instead of changes to libnautilus? -- DylanMccall 2008-06-02 20:09:54
CategorySpec CategoryDesktopTeam
Back to DesktopTeam.
UbuntuCommonHooker (last edited 2008-08-06 16:31:08 by localhost)