Программа не работает на Linux

# cc.py (change case) меняет раскрадку с ENG на РУС(и наоборот) посредством буфера обмена.
import pyperclip

eng_chars = "~!@#$%^&qwertyuiop[]asdfghjkl;'zxcvbnm,./QWERTYUIOP{}ASDFGHJKL:\"|ZXCVBNM<>? 1234567890"
rus_chars = "ё!\"№;%:?йцукенгшщзхъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭ/ЯЧСМИТЬБЮ, 1234567890"


def change(s1, s2, s_main):
    s_finish = []
    for i in range(len(s_main)):
        index = s1.index(s_main[i])
        s_finish.append(s2[index])
    return ''.join(s_finish)

s = pyperclip.paste()

if s.isascii():
    print('ascii')
    s = change(eng_chars, rus_chars, s)
else:
    print('not ascii')
    s = change(rus_chars, eng_chars, s)

pyperclip.copy(s)

На винде все работает четко. Под линуксом(манжароГном) не работает. Что-то не так именно с работой с буфером обмена. Не получается у неё вставить полученый результат обратно. Суть проги в том, что если случайно написал текст не на той раскладке, копируешь этот текст в буфер обмена, запускаешь программу и вставляешь из буфера уже нормальный текст.


Ответы (1 шт):

Автор решения: eri

В документации пишут:

On Linux, this module makes use of the xclip or xsel commands, which should come with the os. Otherwise run “sudo apt-get install xclip” or “sudo apt-get install xsel” (Note: xsel does not always seem to work.)

Otherwise on Linux, you will need the gtk or PyQt4 modules installed.

xclip у Вас установленна?

→ Ссылка