|
GNOME Clipboard Manager for GNOME 2.0 desktops
Introduction
Since GNOME Clipboard Manager is a not very known, new kind of application, I will
explain what it does exactly. (Okay, there have already been solutions for the problem
that GNOME Clipboard Manager solves -like the clipboard ring 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 mechanism 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 an argument
in order to get the selection in the format which you specified.
It is the Window that is owning that selection that 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 its 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 ones 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 and if it finds a match then it will deliver its contents to the requester.
Of course GNOME Clipboard Manager will never throw away selections unless you ask it to. So you
can go back to an older selection, keeping all its targets. For the user this means clicking
an item in a listbox to start claiming selectionownership on that specific item and its
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 available again .
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 into 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 an application that does all that.
As you can see in the wish/feature list not everything is finished yet. But all is coded in such a
way that it will be possible and finished someday. It's just .. me and time :) like every
Free Software developer I don't have much of that.
Maybe you can help me :) ? I am always interested 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 OF MONEY !!! (no, that's a joke. But if it's enough I could quit my current (.NET) job and have
more time for GNU/GNOME/Free and OpenSource development! ;-))
- Documentation. As you can see by this document : My English sucks too 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
- Check out the TO DO-list :-) and join our development mailinglist
Features
Note: "a target is a format" and "a clipboard is a selection" in the following text :
- Storing your clipboards and all their available formats. A.k.a the collecting of clipboards.
- A clipboard (a.k.a. a selection) can have multiple formats (a.k.a targets)
- GNOME Clipboard Manager will store all your previous clipboards and formats
so that you can go back to a previously saved clipboard
- A format can be
- Html : which are the HTML-tags of a HTML-selection when you copypaste
some stuff in your browser
- Image data : If you select a portion of an image and use the Copy or Cut
feature in for example OpenOffice.org
- Normal text : a.k.a. COMPOUND_TEXT which is the most common format of
clipboards
- Some other format used by a specific application that contains information
about the data. For example the clipboards of OpenOffice.org contain gzipped
formats which host XML-files that define the lay-out and information that is to
be copypasted to for example another OpenOffice.org screen.
- Once collected, a clipboard becomes an Item for GNOME Clipboard Manager
- Making a clipboard ring by setting the max. amount of collected items.
Older items will then automatically be deleted from the list of collected items.
- The autocollecting of new items
- Gcm uses GNOME Sessions and also saves your items if you log off. Next time you log on gcm
will have reloaded those saved items
- Saving and loading collected clipboards (Items) to XML-formatted files.
- The data of the items will be written to the files in UUEncoded data
to make sure that we don't write binary data in an UTF-8 orientated file format
like XML is
- Saving multiple items in one file is, of course, possible
- Editing and viewing some supported formats in a clipboard
- The editing of the COMPOUND_TEXT or normal text target is possible
- The editing (and previewing in a GtkHtml widget) of the text/html target is possible
- Manipulating formats
- Blocking specific formats that are too large to store into memory
- E.g. Blocking large binary format-types
- Copying a specified format-type to another format-type
- The possibility to write a plugin for GNOME Clipboard Manager that does the converting of
the format-data while copying it to another format-type
- Some advanced UserInterface options
- The UserInterface is, by default, hidden. So GNOME Clipboard Manager is, by default, a
clipboardcollecting daemon. You can make it show its UserInterface by using a small external
tool or by using the GNOME Clipboard Manager Applet.
- Hiding all UserInterface objects
- Making the scrollbar follow while adding new items
- Autoselect most new collected item
- Unselect-all after collecting a new item
- Support for the following selection-types
- The CLIPBOARD selection : Used when using CTRL+C and CTRL+V and the Copy and Paste
features in the menus of most applications
- The PRIMARY selection : The text that is selected in your session
- The SECONDARY selection : The text that was selected the last time in your session
- A CUSTOM atom : For those who know what they are doing
- A PanelApplet
- A PanelApplet for GNOME Clipboard Manager that can make GNOME Clipboard Manager perform
some specific tasks.
- A library for your own applications to control GNOME Clipboard Manager
- GNOME Clipboard Manager comes with libgcm which is a library that enables
your applications to control and make use of GNOME Clipboard Managers features
- The hosting of plugins
- You can write plugins for GNOME Clipboard Manager in a same fashion as you can
with applications like mediaplayers (like xmms).
Issues 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 TheGimp for example does not use the standard way of
copypasting its 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 this 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 maximum
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. Unfortunately 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 latest version in CVS and more importantly : get it compiled
- Read the HACKING file in the CVS
- Read the TO DO-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
|
|