I have installed Visio 2000 on wine 0.9.26 on Ubuntu 6.10. I have created the menu for it in the Applications–>Office. This menu shortcut works to launch Visio 2000, but I want more. I want to automatically launch Visio to open a visio diagram when I double click a visio document, and I want the document to have the same icon as Visio document in windows.

This howto is explaining how to achieve the last.

1. Add new mime types and information

$ sudo gedit /etc/mime.types

Or if you want the new mime types only applies to your current user then you can edit ~/.mime.types

insert this entry
application/vnd.ms-visio vsd

$ sudo gedit /usr/share/mime/packages/freedesktop.org.xml

insert the entry below

<mime-type type=”application/vnd.ms-visio”>
<comment>Visio diagram</comment>
<comment xml:lang=”az”>Visio cədvəli</comment>
<comment xml:lang=”bg”>Диаграма, формат Visio</comment>
<comment xml:lang=”cs”>Graf Visio</comment>
<comment xml:lang=”cy”>Siart Visio</comment>
<comment xml:lang=”da”>Visio-diagram</comment>
<comment xml:lang=”de”>Visio-Diagramm</comment>
<comment xml:lang=”el”>γράφημα Visio</comment>
<comment xml:lang=”eo”>Visio-diagramo</comment>
<comment xml:lang=”es”>Gráfica de Visio</comment>
<comment xml:lang=”eu”>Visio diagrama</comment>
<comment xml:lang=”fi”>Visio-kaavio</comment>
<comment xml:lang=”fr”>graphique Visio</comment>
<comment xml:lang=”hu”>Visio-grafikon</comment>
<comment xml:lang=”it”>Grafico Visio</comment>
<comment xml:lang=”ja”>Visio チャート</comment>
<comment xml:lang=”ko”>Visio 표</comment>
<comment xml:lang=”lt”>Visio diagrama</comment>
<comment xml:lang=”ms”>Carta Visio</comment>
<comment xml:lang=”nb”>Visio graf</comment>
<comment xml:lang=”nl”>Visio-kaart</comment>
<comment xml:lang=”nn”>Visio-graf</comment>
<comment xml:lang=”pl”>Wykres Visio</comment>
<comment xml:lang=”pt”>gráfico do Visio</comment>
<comment xml:lang=”pt_BR”>Gráfico Visio</comment>
<comment xml:lang=”sq”>Grafik Visio</comment>
<comment xml:lang=”sr”>Visio графикон</comment>
<comment xml:lang=”sv”>Visio-diagram</comment>
<comment xml:lang=”uk”>Діаграма Visio</comment>
<comment xml:lang=”vi”>Đồ thị Visio</comment>
<comment xml:lang=”zh_CN”>Visio 图表</comment>
<comment xml:lang=”zh_TW”>Visio 圖表</comment>
<glob pattern=”*.vsd”/>
</mime-type>

$ sudo update-mime-database /usr/share/mime

2. Now that we have add a new mime type for visio document, we need to associate it with an icon. I have extracted icon for visio document and save it in png format :

gnome-mime-application-vndms-visio.png

The icon above is for 48×48 size. You can use gimp or other graphic editor to resize it to 32×32 and 24×24.
Copy various sizes of the png icon for the new mimetype into these directories :

/usr/share/icons/gnome/48×48/mimetypes
/usr/share/icons/gnome/32×32/mimetypes
/usr/share/icons/gnome/24×24/mimetypes

Since the mime type we just added is application/vnd.ms-visio, to work properly, the icon files should be named : gnome-mime-application-vnd.ms-visio.png

Most icon theme inherit gnome icon theme, so whatever icon theme you are using the new mimetype icon for visio will be inherited.

3. Update icon cache of gnome icon theme to make the addition realized by the systems

$ cd /usr/share/icons
$ sudo gtk-update-icon-cache –force gnome

Note : there are two dash before “force” in the command above. It might appear like just one dash

Now every vsd document should use the above icon in nautilus.

This howto is based on my installed Ubuntu Edgy Eft (6.10), it might work for other versions also.
There are three steps needed here :

1. Make sure smbfs package is installed. By default Ubuntu edgy do not install smbfs package. If it is not installed yet you can install it using this command

$ sudo apt-get install smbfs

After making sure that smbfs is installed, set file permission of smbmnt and smbumount

$ sudo chmod u+s /usr/bin/smbmnt
$ sudo chmod u+s /usr/bin/smbumount

Update : I have update to 7.04 and it is not needed anymore to do chmod for smbumount.

2. Create entry in the /etc/fstab and credential file for username and password

entry in /etc/fstab will look like this :

//asterix/pub /mnt/pub smbfs noauto,rw,users,credentials
=/etc/credentials

Create credential file with the command :

$ sudo gedit /etc/credentials

The credential file content should look like this :

username=adrianus
password=mypassword

After saving the file dont forget to make it secure as it contains your password

$ sudo chmod 600 /etc/credentials

The purpose of creating the entry in fstab is to make the shortcut appear in the desktop after we mount the share, and the purpose of creating credential file is to avoid the need for typing in smb password each time we want to mount the share.

Change the italic part above with your username and password for accessing smb share.
Don’t forget to create the directory for mount point if it is not available yet.

3. Create nautilus script file in $HOME/.gnome2/nautilus-scripts/ directory

My nautilus script file name is “mount pub” the content is something like this :

#!/bin/sh
# Script to mount //asterix/pub
smbmount //asterix/pub /mnt/pub -o credentials=/etc/credentials,uid=adrianus,gid
=adrianus

Don’t forget to make the script file executable using chmod +x yourscriptfilename

4. Last but not least, chown and chgrp the directory you will be using as mount point to be owned by your username.

Now to mount the shares all I have to do is right click mouse over my desktop and choose “mount pub” from the “Scripts” menu and the shortcut icon for the drive will pop up on my desktop 🙂
To unmount I just right click my mouse over the “pub” icon on the desktop and choose “Unmount Volume”

For polishing the look, I browse the mount pub script using nautilus and assign custom icon to it so now it has harddisk icon in the right click menu.

I happen to visit yahoo messenger website

http://messenger.yahoo.com/hiddenemoticons.php

several weeks ago and notice that there are some new emoticons that are not available on the bundled emoticon in gaim. The newest addition is showing a puppy face by typing :o3

If you type those in your IM windows and do not see a puppy face then you don’t have the complete yahoo emoticon set yet.

I have download before “updated and corrected yahoo” theme by Kshitij Bhardwaj but it still lack the new puppy smilie and miss the american flag smilie, so I add the file yahoo_puppy.gif and edit the theme file accordingly.

First grab the puppy gif file from the link above. Just right click when your mouse is over the puppy icon and select “save image as”. I name the file yahoo_puppy.gif and save it in my home directory

Second you have to find where is your smiley directory. For me it is /usr/share/pixmaps/gaim/smileys

I used updated-and-corrected yahoo theme so I go inside that directory and copy the yahoo_puppy.gif file into that directory

Last but not least edit the theme file to include this entry :

yahoo_puppy.gif :o3

I put the entry after the yahoo_pumpkin entry to keep it sorted.

I have the zipped theme files but I haven’t find out how to attach it to this blog. So for the time being the instruction above have to do.

I have just recently experience a very annoying problem about locked screensaver, and fortunately after spending sometime I have been able to resolve the problem.

Here’s the issue : I have fall asleep with my notebook still on running JDS 3 Linux, and the screensaver kicks into action. When I am awake later, I found out that I cannot type anything into the password box. In the past I have encounter similar problem, and I type Ctrl+Shift+Tab to get the cursor back into the password box, but it doesn’t work this time. Maybe when I was asleep some other key got pressed accidentaly that complicate the problem. Because it is already late, I decided just to push the power button and fortunately the power management daemon recognize the event and shutdown the OS properly.

I was hopping that when I boot up the OS again the problem will be resolved on its own. When I boot up the OS again everything look normal, at least I can login into the OS using my user.

Later I found out, that although I can login into my gnome desktop, I cannot type anything. The mouse is still working, but everytime I try to type something into terminal or gaim password box, nothings come out and I can only hear the speaker beeps.

I decided to try to logout using the menu, and login again using root account. The root account works normally, both mouse and keyboard is working. So there is some setting wrong in my account, but I do not know where.

To investigate which setting is the culprit, I create a new home directory from the root user account, and edit the /etc/passwd file so my ordinary user would use that new home directory.

After using the new home directory I can login again into my account, but all my settings are gone (the wallpaper, gaim setting, panel, custom shortcut and nautilus scripts). I know there are some hidden directory under the home directory of each user in which gnome store its settings and configuration.

One by one I tested copying the hidden directories from my old home dir to my new home dir. I found out that when I copy the hidden directory .gconf to the new home dir, then the keyboard is locked. Under the .gconf there are some directories, one of them must contain the file that locks my keyboard, and to make a long story short it is the file inside the folder $HOME/.gconf/desktop/gnome/accesibility/keyboard

The content can also be edited using GConf configuration editor, all I have to do is just untick the checkbox enable and my keyboard works again. I notice that the new created account don’t have this accessibility folder so I decided to just remove the accesibility folder from my $HOME/.gconf/desktop/gnome folder. I guess that returns it to default setting for accesibility portion.

After finding this out I can edit again the /etc/passwd file to point my user to its former home directory.

Hope this information is usefull to anyone encountering the same problem as I did.

Later I will share how I update the yahoo emoticon in gaim to the latest available emoticon from yahoo.

If you have already use Nevada or Solaris 10 x86 you might ask this question :

Why go through the trouble of compiling gaim for Solaris x86 ? Didn’t Solaris 10 and Solaris Nevada already have gaim included as part of JDS ?

Yes, snv_45 already has gaim 2.0beta2 included, but since I really use gaim, I soon notice that the included gaim is compiled with no audio support. To be honest I wonder why it hasn’t been noticed all this time. This is a small thing, not so important, on the other hand I don’t think the effort to compile gaim with audio support is too big, and it annoyed my “sense of completion”. What is missing is that gaim requires libao installed.

Apparently the latest libao available for Solaris x86 I can get is in Solaris x86 Companion CD for Solaris 9.

Below are the steps to compile gaim on Solaris snv_45. These steps also applies to Solaris 10.

Install libao from Solaris 10 x86 Companion CD

# exec bash
# cp gaim-2.0.0beta3.tar.gz /installer
# gunzip gaim-2.0.0beta3.tar.gz
# tar xvf gaim-2.0.0beta3.tar
# export PATH=/usr/sbin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ccs/bin:/usr/sfw/bin:/opt/sfw/bin
# cd gaim-2.0.0beta3
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sfw/lib
# ./configure –disable-perl –with-tclconfig=/usr/sfw/lib –with-tkconfig=/usr/sfw/lib –with-ao=/opt/sfw –with-ao-libraries=/opt/sfw/lib –with-ao-includes=/opt/sfw/include –prefix=/usr/sfw
# make
# make install
After installing finish goto /usr/share/applications and edit gaim.desktop to point to /usr/sfw/bin/gaim

The second topic is libxine-1.1.2 and totem. Totem can use either gstreamer and libxine as backend. Unfortunately gstreamer is not as ready as totem in term of DVD support. So Solaris 10 and Nevada comes with Totem-gstreamer. Bad choice, I know gstreamer is the future, but currently to me it is not as ready as xine, and I wonder why they didn’t just include totem-xine while continue evaluating gstreamer, and only include gstreamer when it is at least as good as xine. Totem included in JDS3 Solaris cannot play DVD or VCD and it only says that the plugin is not available. It is like showing a candy to a kid but then forbid them to eat it.

Unfortunately the effort to compile totem-xine is not as easy as compiling gaim with audio support. Somehow libxine must be compiled with gnu as, gnu ld and gmake, where as totem must be compiled with sun as, sun ld and sun make, and before I find that out I must search the internet to find out why the compilation produce errors.

There is an easy way out, using blastwave, but with all respect to blastwave maintainer and contributors, I personally do not like to have duplicate gnome stacks, one from JDS and the second one from blastwave. I assume that blastwave create their own gnome stacks because they have done it before Sun have JDS/Gnome stacks included in Solaris. But currently there is no other package maintainer that I know of that utilize the included JDS/Gnome stack in Solaris to build other packages, so I left with the challenge to compile them myself.

After stumbling on a few errors, reading some information from the internet, I have manage to finish compiling both libxine-1.1.2 and the latest totem I can get (2.16.1)

Below are the steps documented so others can easily compile libxine and totem on Solaris if they wish to do so.
# export PATH=/sbin:/usr/sbin:/usr/bin:/usr/X11/bin:/usr/openwin/bin:/usr/dt/bin:/usr/sfw/bin:/opt/sfw/bin:/usr/sfw/i386-sun-solaris2.11/bin:/usr/ccs/bin:/usr/ucb

use gnu-as in /usr/ccs/bin
# cd /usr/ccs/bin
# mv as sun-as
# ln -s /usr/sfw/bin/gas as

use gnu-ld in /usr/ccs/bin
# cd /usr/ccs/bin
# mv ld sun-ld
# ln -s /usr/sfw/bin/gld ld

# cd xine-lib-1.1.2
# ./configure –prefix=/usr/sfw –x-includes=/usr/X11/include
# /usr/sfw/bin/gmake

change -mt to -pthreads in Makefiles if encounter error

As of snv_45 the compiling process will stop with error regarding “sysi86”

# cd src/libw32dll/wine
# vi ldt_keeper.c
find the line “int sysi86(int, void*);” and delete the line

continue compile after editing
# cd ../../..
# /usr/sfw/bin/gmake
# /usr/sfw/bin/gmake install

After finish compiling and installing libxine 1.1.2, the next step is to compile and install totem to use xine backend

Use sun-as and sun-ld
# cd /usr/ccs/bin
# mv sun-as as
# mv sun-ld ld

# export PATH=/sbin:/usr/sbin:/usr/bin:/usr/X11/bin:/usr/openwin/bin:/usr/dt/bin:/usr/sfw/bin:/opt/sfw/bin:/usr/sfw/i386-sun-solaris2.11/bin:/usr/ccs/bin:/usr/ucb

# export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/sfw/lib/pkgconfig

# ./configure –prefix=/usr/sfw –x-includes=/usr/X11/include –disable-gstreamer
# make
# make install

The last step is to redirect the shortcut menu to run this totem instead of the totem included from Solaris.

Go to /usr/share/applications and edit totem.desktop to point to /usr/sfw/bin/totem.

Finish ! Apparently even without the notorious libdvdcss, I can already try to play some DVD on my Solaris 🙂

A couple of days ago I have just finished installing Solaris Nevada build 45 on the company Acer Travelmate 4151LCi. Just want to share what I went through. I was trying to see if this release can be use as daily desktop with a bit of effort.

1. Install Solaris Nevada build 45 (snv_45) on Acer Travelmate 4151LCi
There are two important thing when installing snv_45 on Acer Travelmate 415iLCi :
– We need to set acpi-user-options parameter in the grub entry. If we do not set this parameter then snv_45 will hang showing some warning about EHCI0 controller is unusable. Later after we finish installing we need to edit the menu.lst file in /boot/grub directory to apply the same parameter each time the notebook is booted.

Boot option: -B boot-media=cdrom,acpi-user-options=0x8

To edit, just press ‘e’ at the boot screen OS selection, select the entry you want to edit and press ‘e’ again.

The fact that I have to use legacy mode for ACPI settings, makes me unable to use the wifi adapter comes builtin with Acer Travelmate 4151LCi, I believe this is a regression bug, since on earlier nevada version (snv_22) I have been able to install and boot without disabling the ACPI mode on the exact same notebook.

– Graphical settings. On Acer Travelmate 4151LCi snv_45 autodetect the graphic adapter to use XFree Intel i915 GM, however those auto detected setting doesn’t work. We have to change the settings to use VESA version of the XFree Intel i915 GM.
Don’t forget to select the correct monitor size and the 1024×768 with 24 bit color.

Monitor : XVGA LCD Panel
Size : 15″
Driver : XFree VESA Intel i915GM
Resolution : 1024×768@1.6M colors

After the two settings above, the rest is easy, just choosing the hostname, root password, date, GMT, and partition in which you want to install Solaris. There is a setting to preserve the other partition contents. Choose this setting if you are installing snv_45 on a laptop multiboot with other OSes.

2. Installing network driver bfe-2.3.0 The installer will reboot after the installation is finished. And since the bfe driver (for integrated Broadcomm ethernet in the travelmate 4151LCi is not bundled, I downloaded it from :
http://homepage2.nifty.com/mrym3/taiyodo/bfe-2.3.0a.tar.gz.
Just uncompress the file and follow the directions in the README.txt and you should be fine. This driver previously called the bfc driver. It is renamed to bfe in the newer release for the sake of consistency.
3. Update Firefox and change the short-cut firefox icon.
Solaris Nevada build 45 comes bundled with Firefox 1.5.0.2, I wonder why the icons didn’t show the fox, only the globe so I decide to upgrade it to the latest firefox available for Solaris 10 x86 by the time I wrote this notes.
I downloaded the pkg version of firefox 1.5.0.5 from
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/1.5/contrib/solaris_pkgadd/firefox-1.5.en-US.solaris2.10-i386-pkg.tar.bz2
I decided not to uninstall the bundled firefox, because it is needed for some other package dependency. The newer firefox will be installed in different directory anyway.

To update the icon, I login as root, rename firefox-icon.png in /usr/share/pixmaps to firefox-icon.ori.png then I go to /usr/sfw/firefox/icons, open the mozicon50.xpm with GIMP and saved it as /usr/share/pixmaps/firefox-icon.png

To edit the shortcut I go to /usr/share/applications and edit firefox.desktop using vi to point to /usr/sfw/firefox/bin/firefox

5. Personalize login screen
I want to be able to personalize the login screen, and gdm is much more easy to personalize with many GDM themes available from http://art.gnome.org or http://www.gnome-look.org
If you want to use GDM themes especially made for Solaris you can download from Chandan’s blog
http://blogs.sun.com/chandan/category/Art
Before you can use gdm, you must first disable Solaris default login manager which is dtlogin.
To disable dtlogin just type this command as root
# /usr/dt/bin/dtconfig -d
The second step is to enable gdm. An SMF xml manifest is already available located in
/var/svc/manifest/application/graphical-login
Import the xml manifest to create gdm services that can be managed by SMF using this commands
# cd /var/svc/manifest/application/graphical-login
# svccfg import ./gdm.xml
After gdm is registered as a service, we can enable it using this command :
# svcadm enable gdm
If you are root, you can choose GDM themes by calling gdmsetup
# gdmsetup
From the GUI, you can choose from the available GDM themes or add new themes from the gdm theme files that you can download from either art.gnome.org or http://www.gnome-look.org or chandan’s blogs.
I have modified a GDM theme from Chandan, the original one has Acer Ferrari as the background, whereas mine only has Acer Travelmate 4150i in it.
The theme has a picture of Sunray smart card/ID card in which you can put your personal photo in using GIMP.

Travelmate-4150 GDM theme scrshoot

Note: on snv_22 and Solaris 10, you don’t need to import the xml SMF manifest for gdm. You just have to enable it with this command :

# svcadm enable gdm2-login

6. Enable shutdown and reboot menu from login screen.
By default, when we enable gdm login in Solaris, the shutdown and reboot menu is disabled. Since this laptop is not a server and I want to be able to shutdown or reboot without login first as root. Here are the steps if any of you also have the same need:
First we copy the gdm factory default to /etc/X11/gdm
# cp /usr/share/gdm/factory-defaults.conf /etc/X11/gdm/gdm.conf
Second, using vi or gedit, edit the /etc/X11/gdm/gdm.conf
Search for the lines that contains “SystemMenu”
edit it to
SystemMenu=true
Next, search for the lines contain “RebootCommand”
Edit it to
RebootCommand=/usr/sbin/reboot
Next, search for the lines contain “HaltCommand”
Edit it to
HaltCommand=/usr/sbin/init 0
Now from the login screen I can click “Option” button and choose Shutdown or Restart.

7. Personalize boot (GRUB) screen
Beside GDM login, Chandan’s website also contains some nice GRUB themes for Solaris, I particularly like the RetroExpress theme with the train pictures on it.
I download sx-boot.xpm.gz and put it in /boot/grub directory.
Edit the /boot/grub/menu.lst with either vi or gedit
Find the lines “splashimage /boot/grub/splash.xpm.gz” and put a hash ‘#’ in the beginning of that line to remark that line.
Add these three lines below:
splashimage /boot/grub/sx-boot.xpm.gz
foreground = ffffff
background = 444444

Because I multiboot the laptop with Windows XP and JDS Linux v3, there are some entries added to the menu.lst
For Windows XP which is located on the first partition, I add this entry

title Windows
rootnoverify (hd0,0)
chainloader +1

And for JDS linux which is located

title Java Desktop System
kernel (hd0,5)/boot/vmlinuz root=/dev/hdc6 vga=0x317 idebus=66 lapic pci=noacpi pci=usepirqmask selinux=0 splash=silent resume=/dev/hdc5 elevator=cfq showopts

I copied this entry in JDS/Linux /boot/grub/menu.lst
When I install Solaris, Solaris will write GRUB on MBR, so before that I have copied the menu.lst from Linux grub and just copy the entry to Solaris grub.

8. Edit vfstab to mount FAT32 partitions
I want to be able to mount my drive D: which is formatted using FAT32.
First I create the mount point
# mkdir /windows
# cd /windows
# mkdir D

Second step : just add this entry to /etc/vfstab
/dev/dsk/c0d0p2 – /windows/D pcfs – yes –

I really wish the next Nevada builds can run in my Travelmate 4151LCi with ACPI mode, that way I will be able to use wifi using the updated iwi driver which can work with DHCP.