Advertisement
egor230

Буфер обмена

Jul 15th, 2024 (edited)
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.45 KB | Source Code | 0 0
  1. import time, subprocess
  2. script = f'''#!/bin/bash
  3. first_item=$(copyq read 0)
  4. copyq copy "$first_item"
  5. '''
  6. subprocess.call(['bash', '-c', script, '_'])
  7. script1 = '''#!/bin/bash
  8. # Получить текущее содержимое буфера обмена
  9. clipboard_content=$(copyq clipboard)
  10.  
  11. # Проверить, пуст ли буфер обмена
  12. if [ -z "$clipboard_content" ]; then
  13.    echo "Буфер обмена пуст"
  14.    exit 0
  15. else
  16.    echo "Буфер обмена содержит: $clipboard_content"
  17.    exit 1
  18. fi
  19. '''
  20. result = str(subprocess.run(['bash'], input=script1, stdout=subprocess.PIPE, text=True).stdout)
  21. def check_clipboard():
  22.  while 1:
  23.   try:
  24.     time.sleep(0.5)    # Получить текст из буфера обмена
  25.     res = str(subprocess.run(['bash'], input=script1, stdout=subprocess.PIPE, text=True).stdout)
  26.     if "Буфер обмена пуст" in res:
  27.       # print("Буфер обмена обновлен")
  28.       subprocess.call(['bash', '-c', script, '_'])
  29.   except :
  30.     continue
  31.     # print("Ошибка при получении содержимого буфера обмена")
  32.  
  33.  
  34. check_clipboard()
  35.  
  36. В Linux управление буфером обмена может отличаться от того, что мы наблюдаем в Windows, где операции с буфером традиционно более интуитивные и универсальные. В большинстве дистрибутивов Linux используется несколько типов буферов обмена, что может вызывать путаницу у пользователей, привыкших к единой системе в Windows. Однако, существует возможность унифицировать эти функции с помощью специального скрипта.
  37.  
  38.  
  39. Этот скрипт предназначен для упрощения операций с буфером обмена, позволяя пользователю копировать и вставлять текст и изображения так же легко, как в Windows. Он использует copyq и скрипт sh.
  40.  
  41. ```
  42. copyq eval 'execute("/mnt/807EB5FA7EB5E954/python_linux/Сохранить скриншот из буферa обмена.sh")'
  43. ```
  44.  
  45. ```
  46. #!/bin/bash
  47. #gnome-terminal -- bash -c '
  48.  
  49. current_text=$(xclip -o -selection primary)
  50. if ! [ $(copyq read 3) == "$current_text" ] && ! [[ $(copyq read 4) == "$current_text" ]]; then
  51.  copyq insert 4 "$current_text"
  52. fi
  53.  
  54. image_url=$(copyq read 0)    # Получаем  из буфера обмена  
  55. if [ ! -f "$(copyq clipboard)" ] && [[ -z "$(copyq clipboard)" ]]; then    # Он пуст  
  56.  copyq select 0  
  57.  exit 0
  58. fi
  59. if xclip -selection clipboard -t image/png -o > /dev/null;  then # Есть изображение    #echo "no ima"
  60.  sleep 0.3
  61.  copyq write image/png - < "$image_url" #copyq select 0
  62.  sleep 2.1
  63.  copyq select 0
  64.  exit 0
  65. fi
  66.  
  67. if echo "$image_url" | grep -q "http" && [[ ! "$image_url" =~ "vk.com" ]]; then  # Проверяем, есть ли в буфере обмена URL изображения
  68.  now=$(date +"%F %T")   # Получить текущую дату/время
  69.  current_date=$(date +"%F")
  70.  hours=$(date +"%H") # Разбить на отдельные элементы
  71.  minutes=$(date +"%M")
  72.  seconds=$(date +"%S")  # Сформировать имя файла
  73.  filename="/mnt/807EB5FA7EB5E954/софт/виртуальная машина/linux must have/python_linux/Project/Screenshots/${hours} ${minutes} ${seconds} ${current_date}.png"
  74.  curl -L -o "$filename" "$image_url" --retry 3 --retry-delay 1 --fail -k  # Скачиваем изображение
  75.  copyq write image/png - < "$filename"
  76.  sleep 2.1
  77.  copyq select 0
  78.  exit 0
  79. fi
  80. image_extensions=("jpg" "jpeg" "png" "gif" "bmp") # Проверяем, существует ли файл
  81. extension="${image_url##*.}"
  82. if [ -f "$image_url" ] && [[ " ${image_extensions[*]} " == *" $extension "* ]]; then
  83.  name=$(basename "$image_url")  #  echo "$image_url"
  84.  
  85.  if echo "$name" | grep -q "[а-яА-Я]"; then
  86.    cd "/mnt/807EB5FA7EB5E954/софт/виртуальная машина/linux must have/python_linux/Project";
  87.    source myenv/bin/activate && python "inage to buffer.py";
  88.    exit 0  
  89.  else
  90.    copyq write image/png - < "$image_url"
  91.    exit 0  
  92.  fi
  93. fi
  94.  
  95. exit;
  96. #exec bash'
  97.  
  98. ```
  99.  
  100.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement