Gnome Clipboard Manager for Gnome 2.0 desktops

Introduction

Because Gnome Clipboard Manager is a not very known new kind of application, I will explain what exactly it does. (Okay, there have been solutions for the problem that Gnome Clipboard Manager solves before -like the clipboardring in Microsoft Visual Studio .NET and the clipboard of Microsoft Office- but, as far as I know, not with this set of features).

Documentation - homepage

Clipboards in X

As most people with some technical knowledge of the clipboard macanism of X know, the current clipboard (a.k.a. the selection) is owned by a Window -A Window is an object on your screen, like a Button or a moveable window or a textbox-. When you send a request for the selection then you must give a target-type to this request as argument in order to get the selection in the format which you specified.

It is the Window that is owning that selection who decides what it will give you.

There is one special target that you can ask the selectionowner and that is the TARGETS target. When requesting that target the selectionowner will deliver you all it's available targets.

Now, what is Gnome Clipboard Manager :-) ?

Gnome Clipboard Manager will send this TARGETS target to a Window when it received selectionownership. Once this is received, Gnome Clipboard Manager will start collecting those targets -the onces which where received from the Window-. Once all those are collected, Gnome Clipboard Manager will claim selectionownership. When somebody now asks for the selectionownership in a specific target, Gnome Clipboard Manager will search the list of available targets, if it found a match then it will deliver it's contents to the requester.

Of course does Gnome Clipboard Manager never throw away selections unless you ask it. So you can go back to an older selection, keeping all it's targets. For the user this means clicking an item in a listbox to start claiming selectionownership on that specific item and it's targets.

And.. that means?

That means that you can collect selections from applications like OpenOffice.org, Mozilla, any normal texteditor, any normal textprocessing application or any other (normal) application. It also means that you can get back to a previously collected selection and all targets that where set available by the original application will be again available.

The screenshots tour

Okay, maybe something like that already exists

But..
  • Can you save your received selections to an XML-file?
  • Can you send and receive your selections to another host running Gnome Clipboard Manager (unfinished) ?
  • Can you merge multiple (COMPOUND_TEXT) selections to one huge selection?
  • Can you edit/view the collected targets of the selection?
    • And can you edit COMPOUND_TEXT and TEXT targets ?
    • And can you edit text/html targets and view them in GtkHtml (unfinished) ?
    • And can you view the TARGETS that where received ?
  • Can you use it to convert selected text in your browser to formatted text in OpenOffice.org (unfinished)?
no?
Well don't worry, that is why I started trying to create such an application that does all that. As you can see in the wish/feature list not everything is finished yet. But all is coded this way that it will be possible and finished someday. It's just .. me and time :) like every Free Software developper I don't have much of that.

Maybe you can help me :) ? I am always intrested in any contribution. I am not an asshole-programmer (no really, I am a nice guy sometimes!) so it is even possible that I will help you realize an idea based on Gnome Clipboard Manager or for Gnome Clipboard Manager. Some stuff that would help me and Gnome Clipboard Manager :

  • A lot, A LOT MONEY !!! (no thats a joke. well, if it is enough I could quit my current (.NET) job and have more time for GNU/GNOME/Free and OpenSource development! ;-))
  • Documentation. As you can see on this document : My English sucks to much to write a good manual myself.
  • Translations. I don't speak Chinese and UghWandisch and ... (ps. UghWanadisch is not a real language, I made it up)
  • Code contributions
    • Checkout the TODO list :-) and join our development mailinglist

Feature and Wishlist

  • Collecting selections
    • Automagically collects all available TARGETS of the selection
    • Option to make this happen automaticly
  • Copying collected selections to new selections
  • Converting a collected selection to new selections (parses the COMPOUND_TEXT target as an XML-file)
  • Saving your received selections to an XML-file
  • Remove unnessesairy Widgets (UserInterfaceObjects) from the UserInterface
    • Remove objects like the Menu,
    • The toolbar, the statusbar
    • Reduce the information shown about one selection
    • Hide the titles in the listbox
  • Extra features
    • Beeping on collect
    • Following mode (scrollbars follows the list while selections are added)
    • Autoselect last new added item
    • Limit the max amount of received selections (removes the oldest)
    • Append selected or deselect all first when adding new selection and Autoselect is enabled
  • Sending and receiving your selections to another host running Gnome Clipboard Manager (unfinished)
  • Merge multiple (COMPOUND_TEXT) selections to one huge selection
  • Edit/view the collected targets of the selection
    • Editinf of COMPOUND_TEXT and TEXT targets
    • Editing of text/html targets and view them in GtkHtml (unfinished)
    • Viewing the TARGETS that where received
    • Creating new Targets (unfinished)
    • Converting existing to new Targets (unfinished)
      • Converting text/html to OpenOffice.org XML-format (unfinished)
  • Embed the application to a small-window-sized PanelApplet in the gnome-panel (unfinished)

Issue's that cannot be solved

  • Some applications are lame...
    They don't use the standard way for copypasting stuff. Gnome Clipboard Manager cannot and will not support these applications! If OpenOffice.org can use the standards then why can't your application? I know that the selections channel is not perfect for large binary chunks, but OpenOffice.org succesfully does it, and it works! So what is wrong? As far as I know does for example TheGimp not use the standard way of copypasting it's imagedata. That is not good GimpGuys :-(, I love TheGimp but I hate the fact that you cannot copypaste between applications and TheGimp. People love and use the copypaste feature in their WindowingSystem. Copy in TheGimp; Paste in OpenOffice.org... this will never work unless we agree on some standards. Oh well, these comments of me will not change anything.. I know :-\. And I also know that Gnome Clipboard Manager is actually not really a very standard approach for clipboards in X..for this application there is no other way I think.

  • Eating memory...
    Yes, if you copypaste a lot, then Gnome Clipboard Manager will eat your memory. I think that is normal because sometimes you are storing large chunks of data into Gnome Clipboard Managers memory space. If you delete items and/or you limit the max amount of collected items (selections) then this should reduce the problem. However, you wanking memory freaks : You have bought your memory to use it. So use it ! And yes Gnome Clipboard Manager probably has some memory leaks.. I am working on getting them fixed. Feel free to report them :-) if you can find them.

Woaaaah, your application ALMOST rocks! I want to help you coding it

GREAT ! I wish there where more people like you. Unfortunally that is not the case. There are a few things that you have to do in order to start helping me/the project :
  • Get yourself a Gnome2 development environment
  • Get yourself the latests version in CVS and more importantly : get it compiled
  • Read the HACKING file in the CVS
  • Read the TODO list in the CVS
  • Subscribe to our mailinglist
  • Spacer for navigation
    • Read the sources of Gnome Clipboard Manager (they are pretty straightforward)
    • Post on the mailinglist what you want to do, which parts you want to improve
    • Improve the parts :-)
    • Do a cvs diff -u > patch.diff
    • Post the file patch.diff on the mailinglist
  • Goto Spacer for navigation
    • Put your name in the aboutbox :-)
    • Make a new diff
    • Post it on the mailinglist
  • Goto Spacer for navigation