Pigs

Pigs is a desktop notes program. I originally wrote it as a replacement for the gnome notes program goats, (which I found indispensable after I started using it) for use on a system where I can't easily get it working. Now I think it is better in a few ways:
  • In four years, pigs hasn't changed it's file format and hasn't lost my notes. Pigs is for people who DONT want to lose their notes. If anything, it creates too many backups.
  • You can store your notes in a file you specify. I consider my desktop notes to be data, not configuration - I don't want them stored in my configuration directory which I may delete or forget to back up.
  • You can import notes from goats - in fact it does this by default if you have a goats configuration and you haven't run it before - Note this was the fact when I wrote pigs many years ago but I have no idea how the goats application has moved on since then. It is possible that it will not successfully import notes from the current version of goats.
  • Each time it runs, it backs up your notes file before running (you can turn this feature off or specify your own backup path.)
  • It should NOT lose your data just from a crash for example. Goats does not lose data either, however the default gnome notes program gnotes does frequently. With pigs, each second, if you've made any changes, they will be saved.
  • It has a few more options to do with deleting notes.
    • You can have the delete function just mark the notes as deleted, like throwing them in the trash, you can restore them later, unless you have specifically told pigs to forget all marked notes.
    • You can import notes from the backup files.
    • It has an option to discard all empty notes.
  • You can easily set up your default note style by configuring one note and then selecting 'Use as default' from it's popup menu.
  • Like goats, it can run in applet mode, or with it's main window as a separate toplevel window which you can move around and resize (in which case the icon is resized to fit the window).
  • From the summary window (which shows a table of all your notes), you can double-click on a note to show or hide it.
  • The summary window is easily accessed by double-clicking on the main window (or applet), or from the popup menu from any note.
  • You can specify the icons it should use for the main window or applet.
  • You can easily shade notes using your mouse wheel.
  • You can easily run multiple instance of pigs, with totally separate sets of notes; just create a link to the script with a different name, for example pigs2. If you run pigs2, it will use ~/.pigs2/ as it's configuration directory.
  • You can change the default font, and the next time pigs is started, all notes which have not had a custom font set will use the new default font. You can turn this feature off, in which case each note will use whatever font was the default at the time the note was created. The same option exists for the note colour options.
  • The notes support dragging to move them around and they can be shaded - but they don't support resizing - you will need to use your window manager for that. This means you're probably out of luck if you are using a shitty GNOME window manager. I suggest using a window manager which allows you to bind a window resize action to a key+mouse button combination. If you really like to suffer by resizing windows using their corners, you can enable the 'show window manager decorations' mode in the settings, and then restart pigs.

Features that goats has that pigs does not have, yet:

  • Setting alarms on notes.
  • The ability to make notes sticky or floating (however you may be able to do this easily with your window manager).

I wrote most of pigs late 2002 or early 2003 and I have used it constantly since then both at work and at home, so it has had a very good workout. It's main drawback at the moment is just that over time (6 months to years), the backup files build up to a fair size, however you can just go and delete old backups.

Bugs

  • The 'undo' (Ctrl-Z from within a pig) feature is a bit dodgy and may delete the wrong text. Don't use it.

Requirements

  • It is a perl script, so you need to have perl installed.
  • The Gtk-Perl perl GTK bindings. Do a search for Gtk-Perl or perl-GTK. The gentoo ebuild goes by the name of gtk2-perl.
  • An installation of GTK (GNOME rubbish is NOT required).

Downloads

Software downloads are released under the GNU GPL. All downloads and related files are released "as is" and their use is entirely at your own risk.

Installation

If you plan on running pigs with it's own main window, just put it somewhere in your PATH, and run

 pigs-gtk2 -gui 

Alternatively pigs can be embedded by passing it a window id like so:

 pigs-gtk2 --embedded 0x123456
Generally the application which is trying to embed another app (eg pigs) knows the window id and can pass it on the command line.

You can then configure pigs to use different images in it's main gui. See above for my some pig icons.

As with many of my programs, you can run multiple instances of pigs by creating a symlink and then running that.
For example, if you do the following:

  cd ~/bin/;
  ln -s /path/to/pigs-gtk2 pigs-work
  ln -s /path/to/pigs-gtk2 pigs-home
Then you could run pigs-work and pigs-home and they would use (by default) ~/.pigs-work and ~/.pigs-work as their config dirs. I have been planning for ages to enable you to create notes with different 'categories' but I haven't gotten around to it because doing the above has been good enough for me so far.

Screenshots

I haven't done any screenshots yet, sorry.