clipmenu — простой менеджер буфера обмена, использующий dmenu (или rofi с CM_LAUNCHER=rofi
) и xsel.
Запустите clipmenud
, затем запустите clipmenu
, чтобы выбрать что-нибудь для помещения в буфер обмена. Для пользователей systemd в состав проекта входит пользовательский сервис clipmenud
.
Для тех, кто использует модуль systemd и не использует среду рабочего стола, которая делает это автоматически, вы должны импортировать $DISPLAY
, чтобы clipmenud
знал, какой X-сервер использовать. Например, в вашем ~/.xinitrc
перед запуском clipmenud сделайте следующее:
systemctl --user import-environment DISPLAY
Возможно, вы захотите привязать ярлык в своем оконном менеджере для запуска clipmenu
.
Все аргументы, передаваемые в clipmenu, прозрачно передаются в dmenu. То есть, если вы обычно вызываете dmenu с аргументами для установки цветов и других свойств, вы можете вызвать clipmenu точно таким же способом, чтобы получить тот же эффект, например:
clipmenu -i -fn Terminus:size=8 -nb '#002b36' -nf '#839496' -sb '#073642' -sf '#93a1a1'
Полный список переменных среды, которые может принимать clipmenud, см. в разделе clipmenud --help
.
Поведение clipmenud
можно настроить с помощью переменных среды. Несмотря на то, что в клипменю всего <300 строк, оно имеет множество полезных функций, в том числе:
clipctl disable
, повторное включение с помощью clipctl enable
Проверьте clipmenud --help
, чтобы просмотреть все возможные переменные среды и то, что они делают. Если вы управляете clipmenud
с помощью systemd
, вы можете переопределить значения по умолчанию, используя systemctl --user edit clipmenud
для создания файла переопределения.
Любое приложение, совместимое с dmenu, будет работать, но вот конфигурации CM_LAUNCHER
, которые, как известно, работают:
dmenu
(по умолчанию)fzf
rofi
rofi-script
, для режима сценариев rofi Некоторые дистрибутивы, включая Arch и Nix, предоставляют clipmenu в виде официального пакета под названием clipmenu
.
Если ваш дистрибутив не предоставляет пакет, вы можете установить его вручную с помощью команды make install
(или, еще лучше, создать пакет для вашего дистрибутива!). Вам потребуются установленные xsel
и clipnotify
, а также dmenu
если вы не планируете использовать другую программу запуска.
clipmenud содержит менее 300 строк, а clipmenu — менее 100, так что, надеюсь, это должно быть достаточно понятно. Однако на самом базовом уровне:
clipmenud
использует clipnotify для ожидания новых событий буфера обмена.clipmenud
обнаруживает изменения в содержимом буфера обмена, он записывает их в каталог кэша и индекс, используя хеш в качестве имени файла. clipmenu
считывает индекс, чтобы найти все доступные клипы.dmenu
выполняется, чтобы позволить пользователю выбрать клип.