I use these scripts every day, they might be useful to others. They might even be useful templates for how to write a decent bash script!! You can download them individually by clicking on the links or you can download this tarball to get them all. Install them somewhere on your path - I use
~/bin. All my scripts honour the -h, –help options.
These are used in my other scripts
bh-stdlib - generic functions
xwin-utils generic functions for the X11 scripts
Generally, these require jhead(1), jpgtrans(1), netpbm-progs (pnmscale(1)), libjpeg (djpeg(1), cjpeg(1))
erect-jpeg - rotate a photo so that it displays correctly by examining the Orientation Exim information in the file. Uses xargs(1) to parallelise operations to as many CPUs as it can find.
label-photos - view *.jpg files and prompts for a label for each, putting the label into the Exif comment field. It also recurses through any directories called
zoom, applying the same label to photos of the same name.
rename-jpeg-by-date - renames jpg files according to the date reported by jhead
resize-jpeg - size a jpeg so that the longest side is the required number of pixels and the other side is scaled.
shrink-jpeg - passes photos through djpeg(1) and cjpeg(1) which can result in a size reduction of about 50% without compromising much on quality. The amount of shrinkage depends on the camera, of course.
Generally, these require wmctrl(1)
binpack - a python script that optimally packs windows onto the screen - used by the tile script
fetch-app - bring an application to the front of current monitor no matter which workspace it is on; or starts it up, if necessary
half-screen - changes the window size to a proportion of the monitor size eg a half, a third, a quarter, a sixth, a ninth of the screen
xcheck - runs a command (usually X) and shows stdout and stderr in a popup window if there's an error eg xcheck – remote-x11vnc -x xdm
backup-copy - my backup script - using this, I can keep a backup at a cost of only about 2Mb/day. Uses the hard-linking power of rsync(1)
fit - fits a bunch of files/directories into CD or DVD sized subdirectories ready for burning
m - pretty display of man pages (needs 'v' and a postscript or pdf viewer) eg
m less to get a pretty man page for less(1)
mass-mv - renames and or moves files according to a regex; can also clean up filenames removing whitespace and/or weird characters
newest - recursively list files in directories in date order. If called as oldest, reverse the sort direction. If called as biggest or smallest list by file size.