Как выйти из gpick color picker после выбора из сочетания клавиш?

Я назначил ярлык в Ubuntu 14.04 для gpick -p , который мгновенно вызывает gpick -p цветов. GPick настроен на сохранение выбранного цвета в буфер обмена.

Однако, как только цвет будет выбран, интерфейс gpick исчезнет, ​​а gpick -p продолжит работать в фоновом режиме, используя CPU.

Из ps ax | grep gpick ps ax | grep gpick :

 5255 ? Sl 0:00 gpick -p 

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 

Точная цель: сочетание клавиш:

  1. Поворачивает мышь в подборщик цветов (с окном лупы)
  2. Как только я нажимаю, копирует выбранный цвет в буфер обмена и
  3. уходит

Уходит , это может быть одно из следующего:

  • в идеале программа выйдет
  • работа в фоновом режиме без значительного использования ресурсов будет в порядке
  • представление кнопки для закрытия было бы раздражающим, но терпимым

Вещи, которые я пробовал:

  • Настройка «Single Instance» вкл. И выкл. Не помогла
  • Настройка «Свернуть или закрыть системный лоток» вкл. И выкл., Похоже, не помогла, и программа не появляется в лотке
  • Установка gcolor2 и kcolorchooser – у них нет автоматической команды colorpicking
  • Использование grabc | xclip -selection clipboard grabc | xclip -selection clipboard – это работает, но не предоставляет лупу

    gpick имеет следующие проблемы:

    • Он не заканчивается после выбора цвета (вы уже знаете это)
    • Если вы скопируете что-то в буфер обмена и затем убьете его, у вас будет пустой буфер обмена.

    Решение 1 (рекомендуется)

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

    Чтобы обойти проблему пустого буфера обмена, идея состоит в том, чтобы запустить gpick в подпроцессе и скопировать содержимое буфера обмена, прежде чем убить подпроцесс.

    Создайте следующий сценарий bash и используйте, если в качестве программы быстрого доступа:

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

    Это позволит сохранить данные буфера обмена.


    Решение 2 (с менеджером буфера обмена)

    Первое, что нужно сделать, это установить диспетчер буфера обмена, который будет предлагать сохранение буфера обмена , открыть терминал и ввести следующую команду:

     sudo apt-get install clipit xsel 

    Теперь перезапустите сеанс, чтобы clipit начал по умолчанию.

    Команда, которую вы можете использовать в своем ярлыке для сохранения цветового кода в буфер обмена и выйти из gpick :

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

    Это даст вам 5 gpick чтобы выбрать свой цвет, прежде чем убить gpick .

    Примечание . Для этого решения кажется, что после команды остается процесс xsel но он не потребляет CPU.