143 votes

Un utilitaire de copie et de collage du presse-papiers en ligne de commande ?

Sous Windows, j'utilisais des utilitaires de copier-coller de presse-papiers en ligne de commande...

  • pclip.exe y gclip.exe

C'étaient des ports UnixUtils pour Windows (mais ils ne géraient que le texte brut). Il y avait quelques autres indigène Utilitaires Windows permettant d'écrire/extraire n'importe quel format.

J'ai cherché quelque chose de similaire dans Synaptic Package Manager, mais je n'ai rien trouvé.

Y a-t-il quelque chose que j'ai manqué ? ... ou peut-être est-ce disponible dans le script Bash ?

Le type d'utilitaire que j'aimerais sera capable de lire/écrire via std-in/std-out ou file-in/file-out, et de gérer les formats de presse-papiers Unicode, Rich Text Format, image, etc....

NB : Je ne cherche pas un gestionnaire de presse-papiers.

1voto

xerostomus Points 705

Pour le format RTF, j'utilise cette procédure : Je copie le texte dans le presse-papiers de l'application. Si je ne suis pas sûr qu'il s'agisse de rtf ou autre, j'utilise cette commande pour vérifier :

xclip -selection clipboard -o -t TARGETS

Quand ça imprime quelque chose comme ça :

TARGETS

texte/rtf

texte/richtext

Je ne peux donc pas résister à l'envie de m'exclamer tout haut : "Mince, c'est génial ! Que Dieu bénisse linux !" Après cette prière, une chose évidente s'ensuit :

xclip  -selection clipboard -o -t text/rtf > mypreciousRTFcontent.rtf
Ensuite, je traite le tout dans libreoffice et je l'envoie à tous mes amis sous forme de spam.

-)

-1voto

Rob Gray Points 1556

Si, il y en a un. Essayez tmux qui est plus avancé que screen . Pour installer tmux, tapez ceci dans le terminal :

sudo apt-get install tmux

Essayez aussi gpm . Les commandes gpm y tmux pourrait être une bonne combinaison...

-2voto

mattruma Points 7742

Yo ya gnomers, c'est ce que vous obtenez pour utiliser la merde CORBA.
Il n'y a rien de mieux pour votre logiciel que d'utiliser des outils qui ne sont pas installés par défaut.

Si vous aviez utilisé un environnement de bureau approprié, tel que KDE-plasma, vous n'auriez pas eu ce problème, car vous auriez pu utiliser dbus depuis n'importe quel logiciel, par exemple la console :

qdbus org.kde.klipper /klipper setClipboardContents "NiHao"
qdbus org.kde.klipper /klipper getClipboardContents

Personnellement, je me connecte directement à dbus avec C#, ce qui signifie que je n'ai pas besoin de qdbus.
Cela ne vous sera probablement d'aucune utilité, puisque vous n'avez pas de klipper, mais j'ai pensé le mentionner quand même, juste pour vous embêter avec la façon dont c'est fait correctement.

PS : Ne copiez pas ce code C#, Task.Result pourrait se bloquer.

private static async System.Threading.Tasks.Task<string> GetClipboardContentsAsync()
{
    string clipboardContents = null;

    Tmds.DBus.ObjectPath objectPath = new Tmds.DBus.ObjectPath("/klipper");
    string service = "org.kde.klipper";

    using (Tmds.DBus.Connection connection = new Tmds.DBus.Connection(Tmds.DBus.Address.Session))
    {
        await connection.ConnectAsync();

        IKlipper klipper = connection.CreateProxy<IKlipper>(service, objectPath);

        clipboardContents = await klipper.getClipboardContentsAsync();
    } // End Using connection 

    return clipboardContents;
}

private static string GetClipboardContents()
{
    return GetClipboardContentsAsync().Result;
}

private static async System.Threading.Tasks.Task SetClipboardContentsAsync(string text)
{
    Tmds.DBus.ObjectPath objectPath = new Tmds.DBus.ObjectPath("/klipper");
    string service = "org.kde.klipper";

    using (Tmds.DBus.Connection connection = new Tmds.DBus.Connection(Tmds.DBus.Address.Session))
    {
        await connection.ConnectAsync();

        IKlipper klipper = connection.CreateProxy<IKlipper>(service, objectPath);

        await klipper.setClipboardContentsAsync(text);
    } // End using connection 

}

private static void SetClipboardContents(string text)
{
    SetClipboardContentsAsync(text).Wait();
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X