Недавно столкнулся с совершенно неожиданной для себя проблемой — у меня установлена система Xubuntu 14.04 в которой по умолчанию стоит демон уведомлений — xfce4-notifyd. Я настроил его так, чтобы всплывающие уведомление показывались в правой верхней части экрана. И все было отлично, пока я не установил себе Cairo dock и не сделал его отображение тоже справа. Из-за этого всплывающие уведомления начали отображаться не у правого края экрана — они начали отодвигаться от него на некоторое расстояние:

Не найдя даже упоминания о проблеме сдвига уведомлений из-за cairo-dock в интернете я принял решение разобраться с проблемой самостоятельно. К сожалению поиск возможных настроек, которые провоцировали бы такого поведение ни в менеджере системы ни в cairo не было обнаружено. Но проблема эстетики просто не оставляла меня в покое, ведь это совсем не комильфо, когда уведомления отображаются репка знает где 🙂

Но я не стал отчаиваться и пошел сложным путем — скачал исходники демона уведомлений и перекопал их в поисках функции формирования позиции вывода на экран уведомления. И мои старания не пропали даром — я нашел то, что искал.

Если ты столкнулся с такой же проблемой, (которая и не проблема вовсе для многих людей) то ниже я привожу свое решение:

Для начала скачаем исходники демона:

http://archive.xfce.org/src/apps/xfce4-notifyd/0.2/xfce4-notifyd-0.2.4.tar.bz2

Разархивируем в любой удобный каталог и найдем в извлеченном следующий файл:

/xfce4-notifyd/xfce-notify-daemon.c

На строке 632 увидим конструкцию — switch-case:

    switch(xndaemon->notify_location) {
...
        case GTK_CORNER_TOP_RIGHT:
            initial.x = geom.x + geom.width — allocation->width - SPACE;
            initial.y = geom.y + SPACE;
            break;
...

Нам нужен case GTK_CORNER_TOP_RIGHT, заменим его содержимое (между «:» и break;) на следующее:

    switch(xndaemon->notify_location) {
...
        case GTK_CORNER_TOP_RIGHT:
            initial.x = geom.x + geom.width + allocation->width;
            initial.y = geom.y + SPACE;
            break;
...

Это все! Исходники готовы. Теперь откроем в терминале корень каталога с нашим извлеченным архивом с исходниками демона, в котором мы проводили манипуляци с файлом «/xfce4-notifyd/xfce-notify-daemon.c» и скомпилируем демон:

cd путь/к/каталогу
./configure
make

Обрати внимание — make install выполнять не нужно.
Если после ./configure будет ошибка — смотри в самом конце — он укажет недостающие библиотеки, обычно это имя*-dev. — sudo apt-get install *-dev.

На всякий случай сохраним резервную копию оригинального демона уведомлений — /usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd :
x86_64 — у тебя может быть другое название каталога, чтобы узнать, по какому пути находиться xfce4-notifyd выполни команду:

find /usr/lib/ | grep xfce4-notifyd

Выполним бэкап:

sudo cp /usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd /usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd.bak

Если вдруг ты допустишь ошибку с исходниками (как я вначале) и система будет намертво зависать при входе в учетку 🙂 — то сможешь легко восстановить оригинальный файл и попробовать повторить все еще раз:

При загрузке системы:
CTRL+ALT+F1
sudo rm /usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd
sudo cp /usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd.bak /usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd
CTRL+ALT+F7

Итак, после создания резервной копии оригинального файла остается просто скопировать свой, скомпилированный файл демона в каталог оригинала (Собранный файл будет находиться по пути — /xfce4-notifyd/xfce4-notifyd):

sudo cp путь/к/каталогу/xfce4-notifyd/xfce4-notifyd /usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd
sudo chmod +x /usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd

Все готово! Проверяем:

killall xfce4-notifyd
notify-send "Отлично! Все работает!"