#! perl -w # ---------------------------------------------------------------------- # File: macosx-clipboard # ---------------------------------------------------------------------- # # All portions of code are copyright by their respective author/s. # Copyright (c) 2006 Samuel Ljungkvist # 2009 Reza Jelveh # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # ---------------------------------------------------------------------- =head1 NAME macosx-clipboard and macosx-clipboard-native =head1 DESCRPTION These two modules implement an extended clipboard for Mac OS X. They are used like this: URxvt.perl-ext-common: default,macosx-clipboard URxvt.keysym.M-c: perl:macosx-clipboard:copy URxvt.keysym.M-v: perl:macosx-clipboard:paste The difference between them is that the native variant requires a perl from apple's devkit or so, and C requires the C module, works with other perls, has fewer bugs, is simpler etc. etc. =cut use Mac::Pasteboard; my $pasteboard = new Mac::Pasteboard; sub copy { my ($self) = @_; $pasteboard->clear; $pasteboard->copy ($self->selection); () } sub paste { my ($self) = @_; my $str = $pasteboard->paste; utf8::decode $str; $self->tt_write ($self->locale_encode ($str)); () } sub on_user_command { my ($self, $cmd) = @_; if ($cmd eq "macosx-clipboard:copy") { $self->copy; } if ($cmd eq "macosx-clipboard:paste") { $self->paste; } () }