Мне нравятся те пузыри уведомления Единицы, но одна вещь я действительно ненависть их - то, что я не могу нажать их далеко.
Я знаю, когда я толплюсь выше их, они становятся почти прозрачными и что я могу нажать через них на окно ниже, но я предпочел бы, чтобы маленькое (x) значок смогло закрыть его.
С другой стороны, это могло бы также закрыться при нажатии где угодно на него, который не имеет значения.
Действительно ли возможно настроить это на Ubuntu 15.04 с Рабочим столом Единицы? Как я сделал бы это?
Почти, что Вы попросили, и возможно что Вы могли бы любить, крошечный сценарий очень светлого фона (никакая значимая загрузка в Вашу систему вообще, если никакое уведомление не работает, он будет только ожидать/проверять одного для появления), который изменит эффект наведения мыши уведомлений от, исчезните:
для исчезновения (закройтесь):
Это только вступит в силу, если мышь будет перемещена снаружи области в область уведомлений, чтобы удостовериться, что Вы не пропустите уведомления, если Ваша мышь уже будет в области уведомлений, если сообщение запускается.
Потребности сценария xdotool
sudo apt-get install xdotool
скопируйте сценарий ниже в пустой файл, сохраните его как manage_notifications.py
Тестовый прогон сценарий командой:
python3 /path/to/manage_notifications.py
с выполнением сценария откройте окно терминала и выполните команду:
notify send 'This is a test'
теперь переместите мышь в уведомление. Вместо исчезновения это должно исчезнуть.
Если все хорошо работает, добавьте его к своим приложениям запуска: Тире> Приложения Запуска> Добавляет команду:
/bin/bash -c "sleep 15 && python3 /path/to/manage_notifications.py"
#!/usr/bin/env python3
import subprocess
import time
w = int([s.split("x")[0] for s in subprocess.check_output(
["xrandr"]).decode("utf-8").split() if "+0+0" in s][0]
)
def get_mouse():
loc = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()[:2]
return [int(n.split(":")[1]) for n in loc]
while True:
time.sleep(1)
try:
subprocess.check_output(["pgrep", "notify-osd"]).decode("utf-8")
curloc1 = get_mouse(); t = 1
while t < 10:
time.sleep(1)
curloc2 = get_mouse()
test1 = curloc1[0] > w - 400 and curloc1[1] < 400
test2 = curloc2[0] > w - 400 and curloc2[1] < 400
if all([test1 == False, test2 == True]):
subprocess.Popen(["pkill", "notify-osd"])
break
curloc1 = curloc2
t = t+1
except:
pass
xkill
с сочетанием клавиш (например, я установил мой на Высокий звук Сдвиг K )