Working Well With Windows Users

No Comments

I have to work with people that use windows.  There is no getting away from it. Not only that but I have to run their email systems.

One thing that really gets my goat is attaching files to an internal email when those files are available on a shared drive within the organization. I have spent years ranting on about this and in the last year I seem to be finally getting through to those I work with.

However I moved from using Windows to using Ubuntu Linux some time ago.  So now while my windows using collegues have finally grasped sending round links to files rather than attaching them I cannot reciprocate easiy.  The best I can do is copy the file path and paste it into the email. Ubuntu file paths have forward slashes / while windows has to be different and uses back slashes. My work mates therefore can only use my file locations as a guide to manually drill down the folder structure to the file rather than simply being able to click on the link.

Oh how they moan. And as I have spent years berating them for not using file links they also understandably tease a little.  So I created a method to solve this problem.

My solution is to

  • create a script  that will replace forward slashes with back slashes
  • change the beginning of my file paths from /home/damien/mount (where I mount the windows shared drives on my machine using cifs) to file:///\\server-name\volume-name\drive-name so they become clickable links in Windows
  • run the script from a right click menu on selecting the file in question 

To add a menu item to the right click I install gnome-actions:

sudo apt-get install gnome-actions

To enable me to copy the modified file path to the clipboard install xclip:

sudo apt-get install xclip

Then I create the new menu item:

System > Preferences > Nautilus Actions Configuration

Click Add

Make a label which will appear in the menu. I named it "Create Win Link"

Choose a Tooltip and icon is you wish.

Add the path to your script, which we will create in a minute. mine is /home/damien/winlink

We want to pass the path to the selected file to the script so enter %M in the Parameters field.

The menu item is done. Now for the script.

Create the file:

nano /home/damien/winlink  (in my case)

I am using {string//$match/$replacement} to replace ALL instances of match that occur in string with replacement

Note is you just want to replace the first occurance the syntax is {string/$match/$replacement} (note single forward slash after string). For more on string manipulation in bash have a look here.

I expect my code could be more concise but it does the job. To make it simpler I have only set this up for our main shared drive, it made the string substitutions easier for now.

Then copy the modified file path to the clip board using xclip:

echo ${MY_MODIFED_PATH} | xclip -selection clipboard

Here is my final script:

 

 

#! /bin/bash

match='/'

repl='\'

match2='/home/damien/mounts/Team_Drive/'

repl2='file:///\\server\volumelabel\Team%20Drive\'

match3=' '

repl3='%20'

MY_PATH="$1"

MY_PATH2=${MY_PATH//$match/$repl}

MY_PATH3=${MY_PATH//$match3/$repl3}

echo ${MY_PATH3//$match2/$repl2} | xclip -selection clipboard

I can now right click any file on the shared drive and select Copy Win Link from the menu and simply paste it into an email.

People using Windows7 with Office/Outlook 2007 see this as a link in the received email which they can click on to open the original file. Unfortunately for those using Office/Outlook 2003 it does not appear as a link, however they can still copy and paste it into their file manager and it does the same thing. I will post back here if I find a fix for this in Outlook 2003

I can now follow my own best practice!