xsel и DISPLAY переменная

Запилил скрипт на пайтон который переводит текст из буфера. Скрипт работает из терминала , но не хочет работать по горячим клавишам =(....
часть кода:

import subprocess
import notify2
import pyperclip
import urllib.parse
import requests
import json

def sendmessage(raw_text, message):
    notify2.init("translate:")
    n = notify2.Notification(message)
    n.show()
    return

Попробовал запустить скрипт из терминала с sudo - выдал ошибку которая решилась таким башем:

USERNAME=********
USERID=1000

export XAUTHORITY=/home/$USERNAME/.Xauthority
export DISPLAY=:0
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$USERID/bus

if [ "$(/usr/bin/id -u)" != "$USERID" ] ; then
    sudo -u $USERNAME XAUTHORITY=/home/$USERNAME/.Xauthority DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$USERID/bus /home/USERNAME/python_scripts/translate "$@"
else
    /home/USERNAME/python_scripts/translate "$@"
fi

но по горячим такая же картина.

Подскажите как сделать что б работало
yay -S python-dbus-common python-notify2
ну тот код что ты привел работает и не надо запускать под root-ом.

translate.py
#!/usr/bin/env python
import notify2
def sendmessage(message):
    notify2.init("translate:")
    n = notify2.Notification(message)
    n.show()
sendmessage('Test')
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
yay -S python-dbus-common python-notify2
ну тот код что ты привел работает и не надо запускать под root-ом.

translate.py
#!/usr/bin/env python
import notify2
def sendmessage(message):
    notify2.init("translate:")
    n = notify2.Notification(message)
    n.show()
sendmessage('Test')

я определяю комбинацию горячих клавишь на скрипт и у меня оно так не работает почему то

СОРЯЯЯЯЯН
это действительно работает!!! почему тогда полный скрипт не работает

#!/usr/bin/env python3

import subprocess
import notify2
import pyperclip
import urllib.parse
import requests
import json

def sendmessage(raw_text, message):
    notify2.init("translate:")
    n = notify2.Notification(message)
    n.show()
    return

url = 'https://translate.yandex.net/api/v1.5/tr.json/translate'
key = #########
lang = 'ru'
print("test")
raw_text = subprocess.check_output(['xsel', '-o', '*.txt'], shell=True, universal_newlines=True)
urlencode_text = urllib.parse.quote(raw_text)
payload = {'key' : key, 'text': raw_text, 'lang' : lang}
response = requests.get(url, params=payload)
json = json.loads(response.content)
print(raw_text)
sendmessage(raw_text, json['text'][0])
p00st0ta
это действительно работает!!! почему тогда полный скрипт не работает
а какие ошибки?
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
p00st0ta
это действительно работает!!! почему тогда полный скрипт не работает
а какие ошибки?

научи плиз как получить ошибки при запуске по горячим клавишам
да, никаких скрипт отрабатывает верно.
проблема где-то в переменных окружения, версия python при запуске...
p00st0ta
как получить ошибки
python script.py 2> log.txt
ну и в логах xorg должно быть, да и в journal возможно...
Ошибки в тексте-неповторимый стиль автора©
indeviral
да, никаких скрипт отрабатывает верно.
проблема где-то в переменных окружения, версия python при запуске…
p00st0ta
как получить ошибки
python script.py 2> log.txt
ну и в логах xorg должно быть, да и в journal возможно…

вывод &> log.txt дает пустой файл =(
в логах journal и xorg не разобрался ничего не нашел
в ubunta у меня такой скрипт работал .....
так, а как вы назначаете и что на горячую клавишу?
Ошибки в тексте-неповторимый стиль автора©
indeviral
так, а как вы назначаете и что на горячую клавишу?

System settings -> Shortcuts -> Custom shortcuts -> edit -> new -> Global shortcut -> Command/URL -> Action [ python /home/user/python_scripts/translate ]
кидал в /usr/bin - такая же петрушка (через bash скрипт тоже)
 
Зарегистрироваться или войдите чтобы оставить сообщение.