Archive for the ‘Linux’ Category

OpenSource Enthusiasts Need a Better Clipboard Tool

Dear LazyWeb,

From time to time, I am required to use third party tools in my job where I may have to copy a bunch of information (separate fields of data) and paste them one at a time into a web form.  Years ago, while working at a small web design firm, I was introduced to a tool for Windows called ClipMate.  At that point in time, ClipMate proved to be a huge time-saver when copying customer data from our Access database and then pasting it into an online account setup form for a third party web-stats tracking service that we used on client websites.  What sets ClipMate apart from other clipboard tools is that it not only stores a list of your clips (either text or images), but it will allow you to select a clip from where you would like to start pasting from, and then continue pasting down the list, one clip at a time.  In the example that I stated previously, can you imagine going to the database, copying the client’s name, then pasting the name in the web form, then going back to the database to copy the next required chunk of information, and so forth…?  Wouldn’t it be nice to be able to go to the database and copy, copy, copy, copy, copy…, then go to the web form and paste, paste, paste, paste….?  ClipMate allows you to do this.

There are a handful of clipboard managers/organizers in the world of open source, but I have yet to find one that will do as I have described above.  It has been some years now since I’ve used ClipMate, but recently, because of some repetitive copying and pasting that I’ve been doing in my job, I purchased a new license and am again happily plodding along with my friend ClipMate.  However, this requires that I am using a Windows machine.  Fortunately in my job, I have two separate production machines – on Linux and one Windows, so I am able to pick and choose the tools that work best for the task that I am trying to accomplish.  Below are some screenshots of ClipMate in action:

I would like to have a Linux-friendly clipboard tool that will do as I have described – pasting successively from the list of clipboard elements.  Seeing as how the clipboard tools that I’ve seen will allow you to select an item from the clipboard list and paste that item, it doesn’t seem like it would be all that difficult to implement a feature that would allow you to successively paste one item at a time from the list.  I’m not sure that my programming skills are sharp enough to accomplish this at the moment, nor do I have the time to invest in trying to figure out how to implement such a feature, so I am hoping that some skilled individual will read my plea and decide to do what Open Sourcers do… grab some fine piece of software that already exists, make it better, and re-release it to the world.

Incidentally, I’ve tried running ClipMate under Crossover and Wine, and although the software did run, it somehow did not seem to be able to connect with my clipboard and so it was useless to me.

Maybe what I am looking for already exists and I just am not aware of it.  Please feel free to comment and let me know if you have found a tool that will work as I have described, or if you have created something that will perform the desired task.  Thank you!

Adding exFat Filesystem Support to Debian Squeeze and Ubuntu 10.04 or Newer

[EDIT] The exfat source is now located on a different server; follow the instructions located here for installation: https://github.com/relan/exfat

If you’re like me, you store a lot of files that you use on a daily basis on a USB flash drive.  I’ve been making due with a 16 GB flash drive for some time now, but even that seems to constantly be full.  An opportunity came up a while back to purchase a 128 GB flash drive for really cheap, so I jumped on it.  Although it worked fine at first on various Linux machines as well as on Windows7, something soon broke and the drive was no longer accessible (not visible at all) on any of my Linux machines.  I was able to reformat the drive using the Windows7 Disk Management utility, but exFat was the only filesystem that it would allow me to choose when formatting the drive.  Although I was not able to find any information on the subject at the time, now it seems that exFat functionality and support has become widely available to Linux users around the globe.   🙂

The method that I am about to describe is really not very difficult, but you should be aware that it does not allow you the plug-and-play convenience that you experience now with an average smaller flash drive (although it was not all that long ago when we had to mount flash drives manually anyway….).  I had considered adding a reference in /etc/fstab that pointed to the drive, but if I were to already have another USB device plugged into the machine prior to attempting to auto mount the large flash drive, the /dev reference would likely have changed from what I would have listed it as in /etc/fstab.  Instead, I use a simple Bash script to mount the device for me, and if it turns out that the /dev reference has changed, it’s easy to edit the file on the fly before executing it.

Instructions are listed below, and are also located in the script (which you can download from here).  These instructions work for Debian Squeeze as well as for Ubuntu 10.04 or greater.

Instructions for enabling exFat support in Ubuntu 10.04 and newer and on Debian Squeeze:

$ sudo add-apt-repository ppa:relan/exfat   [FOR UBUNTU - DON'T DO THIS FOR DEBIAN SQUEEZE]
$ sudo apt-get update
$ sudo apt-get install subversion scons libfuse-dev gcc
$ svn co http://exfat.googlecode.com/svn/trunk/ exfat-read-only
$ cd exfat-read-only
$ scons
$ sudo scons install
$ cd ..
$ rm –rf exfat-read-only    (OPTIONAL - ONLY IF YOU WANT TO REMOVE THIS DIRECTORY)
$ sudo mkdir /media/whatever [creating mountpoint - example: sudo mkdir /media/exfat]
$ sudo mount –t exfat-fuse [device_path] [mountpoint]

Sources/References:

For The Love Of………. ASCII Fish???

“Asciiquarium is an aquarium/sea animation in ASCII art.”

Being a lover of ASCII art, I was quite thrilled to have stumbled upon this wonderful little program (Asciiquarium) back in 2006/2007 or so.  At the time, after performing a very custom Gentoo build with a KDE front-end, I discovered that Asciiquarium was built into the system as a KDE screensaver.  Not being a huge fan of KDE at the time and after experimenting with other Window/Desktop managers, I found that in order to enjoy the colorful ASCII fishies, I would need to build the software from source.  At the time, there were occasional issues with installation on various systems, but now installation has become much easier…

Near the beginning of 2008, I asked if anyone knew how to port Asciiquarium to Gnome as a screensaver, but got no love in return.  I’d still like to know how to port this to Gnome, but I’d also like to make it work as a screensaver for OpenBox too, since that’s what I primarily run on my personal machines.  I always figured that if I could ever find the time that I’d start exploring how to do this on my own, as I’m sure that it would be a fun learning experience.  Still have not found or made the time for this project so I’m open to your ideas and sharing of knowledge.  For now, when I want to see my fishy friends, I simply launch them from my favorite terminal emulator with a simple command: asciiquarium

Reading the Asciiquarium-related comments in Kmandla’s post about Random Screensavers for the Console, it occurred to me that others may not know about and might benefit from the DEB packages that Dave created to make the installation a bit easier on Debian & Ubuntu systems.

For fear that one day, the things that other people have created (the things that I love most…) might disappear without warning, I sometimes tend to create archives of those things… so for our future enjoyment (yours and mine…), I have packaged Dave’s DEB files along with a README file that fills in any gaps and hopefully explains any details that you may wish to know.

When running Asciiquarium, there are no command line arguments. The, options are:

q    quit
r    redraw (will recreate all entities)
p    toggle pause

Download the tarball: http://www.hilltopyodeler.com/scripts/asciiquarium-deb.tar.gz

Open your terminal, navigate to the location where you stored the file, and extract the files by typing:

tar -xvzf asciiquarium-deb.tar.gz

First install the libterm-animation module and then install the asciiquarium module. You can open your file manager and right-click on the DEB files and select “Open with GDebi Package Installer”, or type in the following commands:

sudo gdebi libterm-animation-perl_2.4~inx3_all.deb
sudo gdebi asciiquarium_1.0~inx2_all.deb

Although I’ve been successful with installing Asciiquarium from source on a number of different Linux distributions, using the DEBs contained within this .tar archive, I have successfully installed this on the following OS’s:

  • CrunchBang Linux 9.04
  • CrunchBang Linux Statler 10, Alpha 1, 2, 20101205, 20110105, and 20110207
  • Linux Mint LMDE 201009 & 201101
  • Ubuntu Jaunty Jackalope 9.04
  • Ubuntu Lucid Lynx 10.04

Thanks goes out to Kirk Baucom for creating such a wonderful little application, to Joan Stark for creating much of the artwork, and to Dave (mystery man with no last name…) for packaging Asciiquarium for Ubuntu and Debian systems.

Using Screen & DVTM

Many have already written about using Screen / DVTM so I won’t try to duplicate too much here.  This article is mostly for my own use and reference, and perhaps it may benefit you as well.

Ever since it first became available, I’ve been a huge fan of the Terminator terminal emulator, developed by Chris Jones.  My favorite feature is that it allows you to split your terminal screen into multiple screens, so that multiple processes can be running at the same time under one window. Terminator also supports opacity for those who like to see their background image through their terminal session.

Example of Terminator in action:

Example of Terminator Terminal Emulator in use

However, with Terminator, if you wish to ssh into a server and you want to have multiple screens up within the same window using applications/processes that are all tied to your ssh session, you really can’t do it with Terminator, or any other terminal emulator that I’m aware of.  You’d have to create multiple unique ssh sessions using different screens/windows within Terminator.  This is not exactly ideal.  A better method is to use Screen with DVTM (Dynamic Virtual Terminal Manager).

Taken from Wikipedia:

GNU Screen is a free virtual terminal multiplexer that allows a user to access multiple separate terminal sessions inside a single terminal window or remote terminal session. It is useful for dealing with multiple programs from the command line, and for separating programs from the shell that started the program.

However, one elegant function of Screen is that it allows you to disconnect from an SSH session but keep applications running in the background, and then log back in and access everything right where you left off. Screen also allows you to have multiple windows open, in a way similar to how your desktop manager supports multiple desktop windows — each screen is only visible when you choose to view that screen.  It is DVTM that actually allows you to tile multiple screens within a single window or a single “page” view.  Without DVTM (or some other similar tool), Screen by itself is sort of like paging through a book, where each screen is only visible when you have paged to that screen.

Using Screen:

Login to your server or remote machine using SSH.  To launch a new Screen session, simply type “screen”.

$ screen

If there are any Screen sessions that are running in the background, you can list them with the -ls flag.

$ screen -ls

To access and activate an existing Screen session:

$ screen -r screenSessionName

Screen – Useful Commands:

CTRL+a c (create new screen window)
CTRL+a n (navigate to next window)
CTRL+a p (navigate to previous window)
CTRL+a 0-9 (navigate to window #0 - #9)
CTRL+a d (detach from a screen session and leave apps running in background)
CTRL+a k (or 'exit' or CTRL+d) (kill or exit from the screen window that you have open)

Tile Your Screens Using DVTM

DVTM is a tool that will allow you to tile your shell so that you can have multiple shell instances within one workspace; it works well to run dvtm within Screen when using SSH.  From within your Screen session, launch DVTM:

$ dvtm

DVTM – Useful Commands:

CTRL+g c (create new window)
CTRL+g i (select window in counter-clockwise fashion)
CTRL+g u (select window in clockwise fashion)
CTRL+g b (Bottom Stack Tiling)
CTRL+g t (Vertical (top) Stack Tiling)
CTRL+g g (Grid Stack Tiling)
CTRL+g m (Full Screen Mode; use b, t, or g to bring view back to tiled mode)

These two tools are incredibly useful if you administer any systems remotely.

Resources – Read what others have to say about using Screen & DVTM:

Bulk Rename File Extensions Recursively

Much of the information on the Web that I found related to bulk renaming files did not work recursively for me; most of it seemed to only rename files within the current working directory.  As I am in the process of redesigning a rather large website and will be implementing the new site in PHP, I wanted to quickly be able to rename all of the .html files so that they would have .php file extensions.  Some files are as much as five levels deep so it is important to me to be able to recursively rename all of the .html file extensions.  I’ve put together a simple script that will perform this task.  You’ll want to save the script to the directory from where you wish to start renaming files, and make sure that it’s executable.  In the script, I have specified that any .html files will be renamed with a .php file extension.  You’ll want to edit the code to suit your own needs.  Here’s the meat of it:

find . -name "*.html" | while read i;
  do
	mv "$i" "${i%.html}.php";
  done

Although it took me a little while to figure out, this little script saved me a huge amount of time.  Hopefully this might make life easier for someone else too!

Open Terminal, Execute a Command, and Keep Terminal Open

A while back, someone asked me if I knew of a way to launch a terminal session from the Gnome panel, execute a command, and keep the terminal open.  The example that I will use is launching the nmap help feature.  Surely there are multiple ways to do this.  Of course you could always put the ‘&’ character after your command, but what if you wish to launch a command followed by a flag or by its own argument, such as with “nmap –help“?  Try executing the following command from your panel or menu and see if it works; it does NOT work for me.

xterm -e nmap --help &

I’ve created a very simple script called helperScript.sh.  Download it and save it to your home directory, or some other location of your choosing; rename it so that you loose the “.txt” file extension and then make the file executable (chmod 755 helperScript.sh).  In this example, I will assume that you have saved the file to your home directory.  Like I said… the script is pretty simple:

#! /bin/bash
$@
/bin/bash

This script should be called from your panel/menu launcher using a command structure that will launch your terminal emulator, then call on this shell script, and then provide an argument that is taken in by this script (“$1” or $@); this argument tells the script which command to run (for instance: nmap –help).

SYNTAX: [command] [path/to/helperScript.sh] [argument]

When launching the script from your panel or menu, please note that:
– The word “USER” should be changed to your own username
– Change “nmap –help” to whatever is specific to your needs
– Make sure that helperScript.sh is executable (chmod 755 helperScript.sh)

The command you should use in your panel/menu launcher is as follows.

Launch with gnome-terminal:

gnome-terminal -x /home/USER/helperScript.sh nmap --help

Launch with xterm:

xterm -e /home/USER/helperScript.sh nmap --help

Launch with Terminator:

terminator -x /home/USER/helperScript.sh nmap --help

Note: [-x] and [-e] are the flags for “execute”, depending on which terminal you are using.  For some reason, “terminator -x” will launch some things properly using Terminator, but not others; I’m not sure why at this time.

At the bottom of the script, the reference to /bin/bash tells the terminal to keep a bash shell open and running.

Credit is due to 13u11fr09 for coming up with the basic concept for this script; read his/her thread at http://ubuntuforums.org/archive/index.php/t-296628.html.

Dark Themes for OpenBox

Funny how time seems to just fly by.  Below is a list of themes for OpenBox that I created nearly a year ago and I’ve been meaning to post them on Box-Look.org all this time.  The one called “Studio-2” is the theme that I primarily use on a daily basis, and “Sage” comes in as my second favorite.  The other themes are not ones that I use much (if ever…), but perhaps someone might like them.

Beamin:

Download Here: http://box-look.org/content/show.php?content=133313

Coder:

Download Here: http://box-look.org/content/show.php?content=133314

Sage:

Download Here: http://box-look.org/content/show.php?content=133315

Slip:

Download Here: http://box-look.org/content/show.php?content=133316

Studio-1:

Download Here: http://box-look.org/content/show.php?content=133318

Studio-2:

Download Here: http://box-look.org/content/show.php?content=133319

Studio-3:

Download Here: http://box-look.org/content/show.php?content=133321

Image Downloader v.2 – Download Linked Images Quickly and Easily From a Webpage

A request has been made to make a more simplified version of the imageDownloader.  This has prompted the release of imageDownloader-v.2.

Version 1:

Version 1 provided various options: (1) print a list of hyperlinks contained within a web page and dump them into a text file; (2) download images that a web page is linking to; (3) prompt the user to create a new directory (which is where it would save the files to) for either of the two previously mentioned options so that the user could better control where files were being saved to if running through the program numerous times before exiting.

Version 2:

Some folks, myself included, would like to bypass the majority of the choices and just download images to the current working directory.  The idea being that you navigate to where you want to go in your directory tree, create a new directory if desired, cd to that directory, and execute imageDownloader from there.  Once the images have finished downloading, the program exits and the user is returned to a command prompt.  Simple.  Easy.  Fast.

If you use figlet, you can uncomment lines 19 and 57 and either delete or comment out lines 20 and 58 to give you a finishing output that looks like this:

Downloads:

v.2 imageDownloader
v.1 imageDownloader

As stated in the previous post, you’ll want to make sure that the file is executable, and you may also wish to make this globally executable by copying an executable version of the file to your /usr/bin/ directory; this will allow you to call the program from any directory within your file tree.

Script for Downloading Images and Links From a Web Page

There are occasions when an individual might wish to download any or all of the images that may be linked from a web page, such as when there is a thumbnail image that is linked to a larger version of the same image (view an example of one such page).  Perhaps too, an individual might wish to obtain a list of all hyperlinks that are referenced in a web page.  After running across Guillermo Garron’s article where he provides some creative commands that will allow you to perform the two tasks listed above, I decided that it would be fun to write a script that executes all of this for you.  My Bash script is called “imageDownloader“, although in addition to downloading images, it will also create a text file containing all of the hyperlinks that are referenced from an html page.  Please note that the images that are downloaded are not the actual images that are displayed on the web page, but are the images that the page links to.

Upon executing the script, the user is welcomed with a short message that explains what the program does, and gives the user a series of choices:

This program will allow you to do one of the following:
(1) List all hyperlinks referenced in a web page and store the list in a text file
(2) Download all images that are hyperlinked from a web page,
    such as when you would click on a thumbnail image
    in order to view a larger version of the same image.

*************************************************************************************************
This script relies on the program called "lynx", so if you don't already have it installed,
you may want to quit (q) now and install "lynx".
*************************************************************************************************

What would you like to do?
Enter "1" to download a list of hyperlinks, "2" to download images that this page links to, or "q" to QUIT:

So, as requested, enter the appropriate choice that most suits your needs, and make sure that you already have “lynx” installed.  Entering either option 1 or 2 will prompt you to enter the desired URL.  It is helpful if you are using a terminal emulator that allows for copy/paste editing; my personal favorite is Terminator, which incidentally allows you to split your terminal screen into multiple panes.  You will then be asked to enter a directory name where you wish to either save your text file containing a list of hyperlinks or the location for your images that will be downloaded and saved, and then it begins working its magic.  You’ll have the option to start over or quit the program at the end.

Note: This was a fun learning opportunity for me and although the concepts used here are not overly difficult, it was still a fun learning experience.  For those who are more experienced coders, if you see that there are places where I could improve my coding practices, please feel free to send me your suggestions and upgrades for this little program.

You can download or view imageDownloader script here, or follow the process outlined below.  You might save it without the “.txt” file extension if you like, as I added this to make it viewable from the comfort of your web browser.  Remember to make the file executable before running it.

$ wget http://www.hilltopyodeler.com/scripts/imageDownloader.txt
$ mv imageDownloader.txt imageDownloader
$ chmod 777 imageDownloader
$ ./imageDownloader

When prompted to enter a URL, you might like to try using the example page that I used above for downloading images (copy/paste): http://ubuntustudio.org/screenshots

Happy downloading!

Installing Amazon’s MP3 Downloader on Ubuntu 10.04 and Debian Squeeze

Because Amazon.com sells music that is DRM-free, and because they offer such a large variety of music, it’s no wonder their music service appeals to so many.  Another thing that might draw people in is that their MP3 Downloader software is not only available for Windows users, but also for Mac and Linux users.  Often times companies who offer various types of electronic services do not offer a Linux version, which can be very frustrating.  The fact that Amazon.com has not forgotten about its Linux users makes me (and most likely others…) quite pleased.

However, at the time of this writing, their current Linux installers are for Ubuntu 9.04, Debian 5, Fedora 11, and OpenSuse 11.1.  For most, if not all of these Linux distributions, their current versions are beyond the version numbers listed above, and (although I can only speak for Ubuntu and Debian at this time) when you go to install the Amazon.com MP3 Downloader software that is associated with your Linux distro, you are likely to run into dependency issues, assuming that your Linux distribution is newer than the version numbers listed above.

In the case of both Ubuntu 10.04 and the current Debian “Squeeze”, when installing the Amazon software, instead of using current libraries for libboost v.1.40.0, dependency issues were flagged as errors, and libboost v.1.34.1 library files needed to be installed.  It turns out that there are seven of them.

Download the dependencies

Although the 7 dependencies that I have herded together came from the packages.ubuntu.com/karmic/ website, I tested them successfully on both Ubuntu 10.04 and Debian Squeeze.  Download the dependencies here. Please note that all of these dependencies are for x86 systems.  Incidentally, Amazon.com’s MP3 Downloader software is only packaged for 32 bit systems at this time.

Installation Procedure

Open a terminal session, navigate to the tarball  that you downloaded from the link above, and unpack the file:

$ tar -xvzf AmazonMP3-InstallerForUbuntuNewerThan-9.04.tar.gz

Using your file manager, open up the new directory called AmazonMP3-InstallerForUbuntuNewerThan-9.04.  Inside, you will find a README.txt file that contains a bit of helpful information.  I would imagine that there is a way that all of these .deb files could be packaged into one installable .deb file (so that you would not have to walk through seven different installations), but I’m not quite sure how that works yet (although I’d love to learn).  If anyone has any advice on this, please feel free to contact me or post in the comments for everyone’s benefit.

The .deb files are listed in order, starting with #01 and ending with #07.  Right click on the first one in the list, select “Open with GDebi Package Installer” and walk through the installation process.  Repeat this process until you’ve installed all seven of the dependencies.

Download / Install Amazon MP3 Downloader

To install the Amazon.com MP3 Downloader software, go to the link below and download either the Ubuntu or Debian versions, depending on which system you are running.
http://www.amazon.com/gp/dmusic/help/amd.html/ref=sv_dmusic_5
Save the file to your hard drive (perhaps in the same location where all of the .deb files are that you have just installed…).  Then navigate to this file and install it using the GDebi installation procedure described in the paragraph above.

How to Use the MP3 Downloader Software

To use the MP3 Downloader software, navigate to Amazon.com’s website, login to your Amazon account, locate digital music that you wish to download, then select either the “Buy MP3” button to download one song, or the “Buy MP3 album with 1-Click” button to download the album.

Assuming that your credit card information is already stored in your personal Amazon account, you’ll be able to walk through this procedure fairly easily.  Once you have clicked one of the Buy buttons, you will be given a chance to either cancel or proceed with the purchase.

Click Cancel to cancel the purchase, or to continue, click the Continue button.  Assuming that you continue with the purchase, you will will be prompted to either download or open the .amz file.  Select Open With Amazon MP3 Downloader.

Your Amazon MP3 Downloader should then open up and display the download progress.

Once the download has completed, you will be notified.  Notice in the above screenshot image that there is a button to “View Download Directory”.  In Ubuntu 10.04, his will take you to your ~/Music/Amazon MP3 directory.  In the latest CrunchBang Statler10 Alpha2 version (Debian Squeeze with Openbox), your files will be stored under ~/Amazon MP3.

Here’s the screenshot from CrunchBang Statler10 Alpha2:

In Conclusion

As an individual who likes to support local businesses as much as possible, my intent in this article is not to endorse a monster media conglomerate such as Amazon.com, but when it comes to downloading DRM-free music from a Linux-friendly source that offers a wide selection of music that I like, I’ve been highly pleased with Amazon’s MP3 Downloader service.

Hopefully, Amazon.com will soon come out with newer versions of the MP3 Downloader software for Linux (so that we don’t have to jump through all of the hoops listed above…), and hopefully they will also continue to link to old versions of the software for those who choose to run older Linux distributions.

Return top

-==[ Hilltop_Yodeler ]==-

Welcome to HilltopYodeler, a place where we'll do some hollerin' about Linux, OSS/FOSS, CSS/XHTML, pickin', paddlin', tinkering, snow, rock, bicycles, and other stuff that we're freaky for. Much of what will be discussed here will be related to Ubuntu Linux, Debian Linux, Crunchbang (#!) Linux, Damn Small Linux, OpenBox, PekWM, and Gnome. Grab your coffee... pick up your piolet... tuck in your whiskey nipper... have paddle in hand... grease your boards... bend some wires... plug into your lappie, mow down some sushi... and get your fool-freak yodel on!