Print to a non-supported printer from Linux

My mother bought a Kodak ESP 7 multifunction printer a few months ago. Since then, she has started using a netbook with Ubuntu Netbook Remix on it full-time. For a while now I have been intending to find a way to print to it from the netbook.

Unfortunately, Kodak decided to be one of the few printer manufacturers providing no linux support whatsoever. Attempts to make a driver have failed repeatedly.

I came up with a way to print to this machine without ever actually finding a working driver. I use a connected windows machine (our family computer) and Dropbox.

Here are the steps to set this up:

  1. Install Dropbox on the Linux and Windows computers. Make an account, and link them both. Now, you will have a Dropbox folder on each. I’m assuming that they are in the default places – change the paths if you put them elsewhere.
  2. Make a folder named print in the Dropbox.
  3. Now, install autohotkey on the Windows computer.
  4. Make a new autohotkey script in the Dropbox print folder. I named it printer.ahk, but it doesn’t matter.

Inside the file put these lines, modifying if needed:

; AutoHotkey Version: 1.x
; Language: English
; Platform: Win9x/NT
; Author: A.N.Other
; Script Function:
; Template script (you can customize this template by editing "ShellNew\Template.ahk" in your Windows folder)
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
Loop {
Loop, %A_ScriptDir%\*.pdf, , 1
Run, print %A_LoopFileFullPath%
Sleep, 30000
FileDelete %A_LoopFileFullPath%
Sleep, 10000

Now, run the script by double-clicking on it. I recommend that you place it in the startup folder as well so that it comes on always.

If you want, this is all you have to do. You can use print to file in Ubuntu to print to a pdf in the print directory. After a few seconds it will begin to print on the Windows machine’s default printer. However, I changed a few things to make printing even easier.

These are the steps:

  1. Install cups-pdf with synaptic or sudo apt-get install cups-pdf in terminal.
  2. In a terminal, run the following: ‘sudo chmod +s /usr/lib/cups/backend/cups-pdf’
  3. Run ‘mkdir ~/PDF’ in a terminal.
  4. Now, ‘ln -s ~/PDF ~/Dropbox/print’
  5. Open Printing (System > Administration > Printing), and set the printer called PDF to default.

After doing that, you should be able to open any app, go to print, and just hit print. after 10-15 seconds adobe reader will open up on the windows computer and print the document.

It takes a bit to set up, but is worth it. As a nice side-effect, it turns any printer into a network printer from Linux.


Fix volume control in mpd on Ubuntu Jaunty 9.04

I have mpd installed on my jaunty server. It works well, except that I found the volume control in my clients never worked.

Reading around, I found a slightly cryptically mentioned solution. In your /etc/mpd.conf, uncomment the line that says mixer=software, then restart mpd (sudo /etc/init.d/mpd restart). All should be well!

Mobile development.

I saw earlier on Smashing a list of things required to make and sell an iphone application. Here it is:
Below is a list of items you’ll need (*starred items are required, the rest are nice-to-have’s):

  • join the Apple iPhone Developer Program ($99) *
  • get iPhone or iPod Touch *
  • get an Intel-based Mac computer with Mac OS X 10.5.5,
  • prepare a Non-Disclosure Agreement (here’s a sample) *
  • download and install the latest version of the iPhone SDK if you don’t already have it.
  • a spiral bound notebook*

You then develop in their IDE and distribute it with their app store.
I have correspondingly made my android app checklist:

  • A computer. Win, Mac, or Linux.
  • The SDK (free).

You then develop with any IDE, right down to nano if you want, and can distribute as easily as putting the file anywhere on the internet.


How to change desktops with a shell command or script?

Does anyone know how to change desktops (in Compiz) with a shell command or script? I have been wanting this for a while, and would be cool to integrate with my new MX Revolution.

Resuming Posting

I am bored, so I have decided to resume posting to my blog. It’s been a while. Now that I have my aforementioned Android phone, I can post from there as well. I will try.

It may end up being all rants and such, but, hey, why not. I might as well.

I have an android phone

I just got an android phone, and it is awesome. About a million times more open than iphone plus background apps = perfect.

Qwerty keyboard is nice too.

Posted this to see how it works for blogging. I may start posting more often if I can do it from my cellphone…

Why does the YouTube video player suck?

These days, flash players can do amazing things. Look at Hulu, Veoh, and 5min‘s incredible players. However, Youtube has used the same, basic, crappy flash player that they have for years. It’s big, ugly, and doesn’t even work well. It has A/V sync issues, can’t handle going to fullscreen and back, no transparency, all of the UI is visible all of the time.

Considering that the player is easily the most important part of the flash player experience, they really need to make a new player.

Not to mention the horrible video quality. Veoh and Hulu in hi-res is actually watchable full-screen, but youtube is horrible.

Gnome users, watch in Movie player! See lifehacker. Don’t forget the Hi-def plugin. much more palatable, and faster as well. another plus is lack of idiotic comments.