Revision [20576]

This is an old revision of AssociateFiles made by darkcity on 2012-02-10 08:06:41.

 

HomePage > ComponentHowTo Components and HowTos > HowToConfigure Configure

How to make File Associations


There are two ways to associate file-types in Puppy. The first is the by setting the 'default action' when clicking a certain file type. The second is creating an option in the File 'filename' menu when file is 'right-clicked'. The following descriptions are based on the RoxFiler and may not work with other file managers.

'Right-click' Association

MIME-Types are used to standardised file-types. The 'Right-click' options are stored in
/root/.config/rox.sourceforge.net/OpenWith

There is a directory for each mime-type in use, for example the MIME-Type directory for image/jpeg becomes .image_jpeg

A shortcut for making a 'right-click' association is in the example of a jpeg, 'right click' on a jpeg file and select
File 'filename.jpg' > Customise Menu ...
Open /usr/local/apps and copy an absolute link of the program you wish to associate

Typically the MIME-type directories are filled with links to ROX AppDirs stored at /usr/local/apps
If the application/action you want is already in this directory simply create a link in the MIME-type directory.

If not then create an AppDir. They consist of a directory containing three files-

Appinfo.xml - information about app in xml
AppRun - script to run program
.DirIcon - image file icon for directory (many apps have an icon stored in /usr/share/pixmaps which you can link)

These typically contain the following - using AbiWord as an example-

Appinfo.xml -
<?xml version="1.0"?>
<AppInfo>
  <Summary>Abiword text editor</Summary>
</AppInfo>


AppRun -
#!/bin/sh
exec abiword  "$@"


The "S@" passes the file clicked on to the application.

To pass a file to a WINE program see the follow example using Irfanview

AppRun -
#!/bin/sh
# Purpose: To convert Unix filename to DOS style to pass as an argument
# to wine when starting IrfanView from filer.
#
FileName="z:"${1//\//\\}
exec wine 'C:\\Program Files\\IrfanView\\i_view32.exe' $FileName


'Default Action' Association
To set the 'default action' of a file-type follow the following instructions (modified from this thread). Jump to Step 3 if you wish to associate with program already installed.

1. Check if your file-type has a MIME-type entry in Puppy Linux. They are stored in the text file /usr/share/mime/globs
If file-type is already associated to the correct MIME-type jump to step 2.

Add or edit your MIME-Type to file-type definition. For example, if you have a TextMaker file whose extension is .tmd and your making a non-standard MIME-type application/x-tmd append the code application/x-tmd:*.tmd to the globs file. ENSURE you end the line with a 'return' otherwise it won't work.

(The x- in the MIME-type name above is used to indicate that this type hasn't already been registered with the MIME-type authorities (www.iana.org/assignments/media-types/ media-types). i.e. It is a non-standard/private/local type, not an IANA officially registered one.)

2. Create an executable shell script in /usr/local/bin , for starting up the TextMaker program and passing the 'clicked on' file to it. In our example, .tmd files will be associated to TextMaker. We'll make a script called textmaker (though it could be anything you like):

textmaker -
#!/bin/sh
exec /usr/local/textmaker/tml "$@"


You don't need the path to the executable (in this case /usr/local/textmaker/) if the path directory your Linux PATH environment variable.

If textmaker was a WINE program then the script might be-
textmaker -
#!/bin/sh
# Purpose: To convert Unix filename to DOS style to pass as an argument
# to wine when starting IrfanView from filer.
#
FileName="z:"${1//\//\\}
exec wine 'C:\\Program Files\\TextMaker\\TextMaker.exe' $FileName



3. Finally, tell the ROX filer to run that script when you click on your file-type. To do that you create another script in /root/Choices/MIME-types named after the MIME-type. In our example the MIME type was application/x-tmd, so the file becomes application_x-tmd-

application_x-tmd
#!/bin/sh
exec textmaker "$1"


An easy way to associate a file-type with a program is (instead of step 3). is to use 'Set Run Action' i.e right click on a file of your type and enter the shell command/ or drag program on to box. In our example it would be exec textmaker "$1".

NOTE this alternative will save MIME-Type run action in /root/.config/rox.sourceforge.net/MIME-types rather than /root/Choices/MIME-types. This method will take precedence over using /root/Choices/MIME-types (i.e. ROX looks to /root/.config/rox.sourceforge.net/MIME-types first).


""AppDirs"" on ROX desktop - in Puppy AppDirs are only used for 'right-click' file associations rather than containing the whole apps

There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki