Skip to main content

title: CLIPIK

Latest Stable Scrutinizer License

CLIPIK - сервис для реализации общего буфера обмена по локальной сети

Быстрый старт

Тут должен быть установлен PATH=${HOME}/.local/bin:${PATH}

uv tool install 'clipik[linux]'
clipik server & clipik client

или

git clone https://gitflic.ru/project/kurilka/clipik
cd clipik
uv pip install -e '.[linux]'
clipik server & clipik client

Использование

При передаче опций, они перезаписывают данные с конфига и переменных окружения.

  • server - Запускает сервер с websocket-м на указанном порту (8765) и регестрирует сервис в mdns
  • client - Должен запускаться после иницилизации граф. оболочки, мониторит буфер обмена и отправляет его на server
  • list, first, last, paste - Читают бд и записывают данные в буфер обмена (по запросу paste)
$ clipik -h
usage: clipik [-h] [--version] [--config PATH] [--log-level LEVEL] [--log-dir PATH]
              [--size-limit BYTES] [--handshake-timeout SECONDS] [--database PATH]
              COMMAND ...

Synchronize clipboard by network

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --config PATH         Force choice config file
  --log-level LEVEL     Logging level, default [INFO]
  --log-dir PATH        Force choice log directory
  --size-limit BYTES    Max size WS-messages and stdout from wayland/x11 clipboard
  --handshake-timeout SECONDS
                        Timeout for wait to websocket handshake
  --database PATH       Force choice database file

command:
  COMMAND
    server              Run synchronization server
    client              Run synchronization client
    list                Get list clipboard history
    first               Get first clipboard element
    last                Get last clipboard element
    paste               Paste record in clipboard

Конфигурация

Сервер

По-умолчанию конфигурация находиться по пути ~/.config/clipik/server.json, если его не существует, при запуске clipik он создается автоматически, но не все параметры там будут прописаны.

Конфиг будет иметь вид:

{
    "interfaces": [],
    "port": 8765,
    "size_limit": 67108864,
    "log_dir": "~/.local/clipik",
    "log_level": "INFO",
    "handshake_timeout": 7
}

Со всеми параметрами такой:

{
    "interfaces": [],
    "port": 8765,
    "size_limit": 67108864,
    "log_dir": "~/.local/clipik",
    "log_level": "INFO",
    "handshake_timeout": 7,
    "database": "~/.local/clipik/clipik.db",
    "allowed_ips": [
        "192.164.0.1/24",
        "100.0.0.1",
        "100.0.0.2"
    ]
}

Клиент

По тому-же пути, только client.json - ~/.config/clipik/client.json, создается сам если не существует.

Имеет вид:

{
    "interfaces": [],
    "size_limit": 67108864,
    "log_dir": "~/.local/clipik",
    "log_level": "INFO",
    "handshake_timeout": 7,
}

Со всеми параметрами такой;

{
    "interfaces": [],
    "size_limit": 67108864,
    "log_dir": "~/.local/clipik",
    "log_level": "INFO",
    "handshake_timeout": 7,
    "database": "~/.local/clipik/clipik.db",
    "allowed_ips": [
        "192.164.0.1/24",
        "100.0.0.1",
        "100.0.0.2"
    ]
}

Переменные окружения

Имеются только переменные окружения, за счет которых можно менять свойства:

  • CLIPIK_LOG_LEVEL=INFO - Уровень логирования: INFO, DEBUG, ERROR, CRITICAL …
  • WAYLAND_DISPLAY - Если оно установлено, будет использовать wayland clipboard
  • CLIPIK_PORT=8765 - На каком порту поднять websocket (передача буфера)
  • CLIPIK_HANDSHAKE_TIMEOUT=7 - Сколько ждать HANDSHAKE при подключении
  • CLIPIK_SIZE_LIMIT=67108864 - Макс. размер передаваемых данных
  • CLIPIK_DATABASE=~/.local/clipik/clipik.db - Путь до sqlite3 файла c БД

База данных

Сервер работает с sqlite3 БД, вся история буфера по сети именно там, с помощью clipik list можно посмотреть записанную историю, а clipik paste <id> позволяет её вставить в буфер обмена.

Обязательные утилиты (зависимости)

Linux

Общие (всегда работает с xorg)

  • xclip
  • clipnotify

Wayland (опционально, если есть wayland)

  • wl-paste
  • wl-copy

MacOs (пока не поддерживается)

Windows (пока не поддерживается)

Android (пока не поддерживается)

TODO [4/10]

  • Возможность регистрировать сервисы для подключения к удаленным сетями
  • Регистрацию при подключении (ввод pin-кода/разрешенные хосты в конфиге)
  • Поддержка всех типов данных, в том числе при копировании из файловых менеджеров
  • Поддержка MacOS
  • Поддержка Windows
  • Поддержка Android
  • Фоновая загрузка больших файлов с ожиданием вставки (до конца загрузки)
  • Поддержка передачи данных не только через переменные окружения, но и через опции и конфиги
  • Одновременная работа на wayland и x11 без переключения
  • Переделать архитектуру, сохранять контент в промежуточную историю вместо загрузки сразу в буфер обмена

Release files for clipik 0.7.20

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for clipik 0.7.20
File Size Uploaded
clipik-0.7.20.tar.gz 20.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for clipik 0.7.20
File Interpreter ABI Platform
clipik-0.7.20-py3-none-any.whl Python 3 none any Details

Total release size: 46.5 kB

Release files / clipik-0.7.20.tar.gz

Download URL clipik-0.7.20.tar.gz
Size 20.0 kB
Tags Source
SHA-256 checksum
How to use checksums
79da4808a195ea6e3c33e28173c755cca8b2aeba55ad081b3e1ad679895edc6c
BLAKE2b-256 checksum
How to use checksums
17456d501b113f68b5b7d6efe7f4cc97ee20244efb6f56c9526e2566fbb8ec16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / clipik-0.7.20-py3-none-any.whl

Download URL clipik-0.7.20-py3-none-any.whl
Size 26.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
09af542a0da2dd2eeb5eefd81ef57c73dc0f81ff51e99f40c383ea755b36e861
BLAKE2b-256 checksum
How to use checksums
052cde71d59409a54e1be30c60c727e5b1b2817be143a65f47e42eef8746718e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.7.20 This release

2 release files

0.7.19

2 release files

0.7.18

2 release files

0.7.17

2 release files

0.7.16

2 release files

0.7.15

2 release files

0.7.14

2 release files

0.7.13

2 release files

0.7.12

2 release files

0.7.11

2 release files

0.7.10

2 release files

0.7.9

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.12

2 release files

0.5.11

2 release files

0.5.10

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page