Monday, June 25, 2012

How to change default picture viewer from Multiview to LoView on X1000

By default on the AmigaOne X1000, the default picture viewer for JPG, BMP, PNG files (amongst others) is Multiview.

Multiview is based on datatypes to view pictures, and to be honest is hardly feature rich. It displays pictures ok (like the picture of my Amiga 4000T as below), but it is limited for what I want.


LoView is a great program for viewing/saving/renaming images, works full screen or window, rotates photos, supports slideshows, thumbnails and also quickly flicking through all photos in a folder from the first photo opened in that photo - no need to open individually. This is standard fare in Windows and Mac land, but on Amiga Multiview doesn't do this. Like Multiview, LoView can also be used in the dock. LoView is free for personal use and is available on OS4Depot.net.

However, Multiview is set as default for viewing pictures in AmigaOS4. How do we change this to something like LoView?

The answer lies in the deficons. This requires some explanation to understand, but I'll try to keep it brief.

In AmigaOS, it uses deficons in order to associate file types to a program to enable double clicking that file to view the file.

These deficons are prefixed def_filetype. So for example, def_png for PNG files. They are stored in one location called ENVARC: on your system disk and are copied to ENV: in the RAM disk when the AmigaOS boots up. Then, whenever you view a folder in Workbench, if a file in that folder has a file type that is PNG for example, it looks in ENV: for the def_PNG icon to display this as it's icon in the folder.

This file type behaviour differs from Microsoft Windows for example, because Windows only looks at the file name extension to determine that the file type is (eg. .png, .jpg, etc) - if you rename the filename extension in Windows from .png to .pxz for example it can no longer open the file using the normal program when double clicking on it - AmigaOS looks at the file header, so the file can be called anything - it will still work it out..this is a nice feature in AmigaOS.

I digress, sorry. Deficons are just standard icons stored in ENVARC:, which you can modify it's tooltypes to change what program you want. It is important to review the programs documentation carefully to determine how the author has written their program to support running as a default tool, and follow their instructions carefully. Note that not all applications support launching this way cleanly.

Today I will look at changing my default image viewer to LoView. I downloaded and extracted LoView to SYS:Utilities/LoView. If you open the LoView folder and view all files (not just icons) you will see below:


The important file here is LoViewDT. We need this later. Following the instructions in LoView.txt I need to create a environment variable for LoView/LoViewPath pointing to the folder where I installed LoView, since this is not in the system path. Accordingly, I added the following lines for LoView at the bottom of my SYS:s/user-startup:



This requires a reboot before it will work but do not reboot yet. Next we need to change the deficon tooltypes to use LoView. Go to SYS:Prefs folder and then view all files (not just icons). Locate and go into the Env-Archive folder. This is the root for the ENVARC: assign I mentioned earlier. Open the Sys folder within. You will get a large number of def_filetype icons in this folder. We will start with the JPEG filetype, so find the def_jpeg icon, right click on it and select Information. In the icon information window, select the Icon tab. You should then have a screen similar to the one below (Click to expand):


So now we will modify the Default Tool field. Click the File icon next to Default Tool and navigate to SYS:Utilities/LoView and select LoViewDT and click OK. Next, click on the Start From cycle option until it says Shell, and deselect Prompt For Input. It should look like below:


Click Save. Repeat this step for def_png, def_gif, def_bmp, def_ilbm icons and any other common image file formats you want LoView to be the default for viewing.

It is also possible to access deficons directly through the Deficons program in the SYS:Prefs folder, but this requires knowing which file formats have an icon associated - these entries in Deficons program will then allow you to right click on jpeg for example, select Icon and then Information to edit as I showed above. As a classic AmigaOS user I am more used to the approach I used browsing the ENVARC: folders directly, but feel free to use whichever method suits you best.

Next, you need to copy the LoView files to c:. I discovered (contrary to the documentation) that if you don't do this step it doesn't seem to work. You get errors when launching pictures saying it can't find LoView. Actually, you could just have the LoView files in SYS:Utilities in the root folder as it is in the standard AmigaOS path, but since I put in a sub folder originally I decided to copy the files to C: as well to get it working quickly.

This is a bit messy I admit, and you should just extract to C: or SYS:Utilities folder directly to avoid this step. You can also add the LoView sub-folder to the PATH. But I didn't, the documentation said put it anywhere which was not entirely correct, and I am a bit lazy today - if you followed what I did then copy the files using the shell as below:


Now, reboot the computer and test opening a JPG file through the Workbench - it should now launch in LoView (and I can now right arrow to view all photos in the same photo) as per the below screenshot:



LoView is a great program and well recommended replacement for Multview.

As a logical extension, this deficon information change process I did can be used to change default programs for avi's, etc.

I hope this information is of help to people wanting to use a different image viewer on their X1000!

2 comments:

  1. Great read!
    With an impending jump to an X1000, it is reassuring to see how similar AmigaOS4 is to WB3.9.

    ReplyDelete
  2. I just had a look at the LoViewDT script and in fact it needs the LoView/LoViewPath variable being set to path+file, not just the path, in my case: Files:Apps/Gfx/LoView/LoView.
    You still get the which error as LoView is not in the system path, but your picture get displayed.

    ReplyDelete