web-dev-qa-db-fra.com

Comment quitter le sélecteur de couleurs gpick après avoir sélectionné un raccourci clavier?

J'ai assigné un raccourci dans Ubuntu 14.04 à gpick -p, qui ouvre instantanément le sélecteur de couleur. GPick est configuré pour enregistrer la couleur sélectionnée dans le presse-papiers.

Cependant, une fois la couleur sélectionnée, l'interface gpick disparaît et gpick -p continue de fonctionner en arrière-plan, à l'aide de la CPU.

De ps ax | grep gpick:

5255 ?        Sl     0:00 gpick -p

De top -p 5255:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 5255 oleg      20   0  702448  18096  12744 S   1.7  0.2   0:01.67 gpick

objectif exact: Un raccourci clavier qui:

  1. Transforme ma souris en sélecteur de couleur (avec une fenêtre de loupe)
  2. Une fois que je clique, copie la couleur sélectionnée dans le presse-papiers et
  3. s'en va

Par disparaît , cela pourrait être l’un des suivants:

  • idéalement, le programme sortirait
  • fonctionner en arrière-plan sans utilisation significative des ressources serait OK
  • présenter un bouton pour fermer serait ennuyeux mais tolérable

Ce que j'ai essayé:

  • Configurer "Single Instance" sur et en dehors - n'a pas semblé aider
  • La configuration de l'activation et de la désactivation de "Réduire/Fermer la barre d'état système" - ne semblait pas aider, et le programme n'apparaît pas dans la barre d'état
  • Installer gcolor2 et kcolorchooser - ceux-ci n’ont pas de commandes de sélection automatique des couleurs
  • Utiliser grabc | xclip -selection clipboard - cela fonctionne, mais ne fournit pas de loupe
4
Oleg

gpick présente les problèmes suivants:

  • Il ne se termine pas après le choix d'une couleur (vous le savez déjà)
  • Si vous copiez quelque chose dans le presse-papiers puis le tuez, vous aurez un presse-papiers vide.

Solution 1 (recommandé)

(gpick -p &); pid=$(pidof gpick); sleep 5; xclip -se c -o | xclip -i -se c -l 1; kill $pid

Pour contourner le problème du presse-papiers vide, l’idée est de lancer gpick dans un sous-processus et de copier le contenu du presse-papiers avant de supprimer le sous-processus.

Créez le script bash suivant et utilisez if comme programme de raccourci:

#!/bin/bash

(gpick -p &);
pid=$(pidof gpick)
sleep 5
xclip -se c -o | xclip -i -se c -l 1
kill $pid

Cela permettra la persistance des données du presse-papier.


Solution 2 (avec un gestionnaire de presse-papiers)

La première chose à faire est d’installer un gestionnaire de presse-papiers qui offrira Persistance du presse-papiers , d’ouvrir un terminal et de taper la commande suivante:

Sudo apt-get install clipit xsel

Maintenant, redémarrez votre session pour que clipit soit démarré par défaut.

La commande que vous pouvez utiliser dans votre raccourci pour enregistrer le code de couleur dans le presse-papiers et quitter gpick est la suivante:

timeout -k 5 5 gpick -p ; clipit -c | xsel -b

Cela vous donnera 5 secondes pour sélectionner votre couleur avant de tuer gpick.

Remarque : Pour cette solution, il semble qu'il reste un processus xsel après la commande, mais il ne consomme pas de ressources processeur.

4
Sylvain Pineau