August 5, 2010

BlankOn: Masalah menggunakan libnotify di 99-resolv.conf-nawala

Idenya adalah menambahkan DNS Nawala secara otomatis ke /etc/resolv.conf dengan menambahkan sebuah script di NetworkManager Dispatcher.

Berikut link referensinya

Setelah proses pengkoneksian melalui Network Manager selesai maka muncul sebuah notifikasi yang menyatakan bahwa anda sudah terkoneksi dengan jaringan “X”, nah yang diinginkan adalah juga menambahkan notifikasi serupa yang menyatakan bahwa “DNS Nawala telah aktif”.

Karena ini dilakukan menggunakan script, maka hal yang paling mungkin adalah menggunakan notify-send dari libnotify. Beberapa kali saya mencoba mengirimkan notifikasi dari “root” melalui terminal dan ternyata bisa. Lalu saya coba menggunakan penjadwalan cron untuk melakukannya otomatis ternyata tidak bisa, tadinya saya pikir akan berbeda jika saya yang menekan “Enter” dengan system yang melakukannya. Karena memang nantinya ini akan dijalankan otomatis oleh NetworkManager.

Di beberapa situs ada yang mengatakan bahwa untuk melakukan hal ini dibutuhkan alamat DBUS_SESSION_BUS_ADDRESS. Berikut cara mendapatkannya.

Pertama yang dibutuhkan adalah sebuah pid program yang sedang dijalankan oleh user yang ingin dicari alamat DBUS nya. Catatan: sesuaikan $user dengan username.

pgrep -u $user gnome-session

Setelah itu tangkap DBUS yang menjalankan pid tadi. Catatan: sesuaikan $pid dengan hasil dari perintah sebelumnya.

grep -z DBUS_SESSION_BUS_ADDRESS /proc/$pid/environ | sed -e ‘s/DBUS_SESSION_BUS_ADDRESS=//’

Kemudian saya ubah di penjadwalan cron saya seperti baris berikut.

*/1 * * * * root DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-EDDvG6yP99,guid=a433ab05f3e9743cd7c000914c5aa5a7 /usr/bin/notify-send “lala” “test message”

Ternyata tidak terjadi apa-apa. seperti yang saya tulis di 99-resolv.conf-nawala.

init_notify() {
all_user=”$(users | sort)”
for user in $all_user; do
if [ "$user" = "$user_last" ]; then
continue
fi

# use gnome-session :P
pids=`pgrep -u $user gnome-session`

for pid in $pids; do
# find DBUS session bus for this session

DBUS_SESSION_BUS_ADDRESS=`grep -z DBUS_SESSION_BUS_ADDRESS /proc/$pid/environ | ed -e ‘s/DBUS_SESSION_BUS_ADDRESS=//’`
# use it
export DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS
done

user_last=$user
done
}

Kemudian setelah cari dan mencari lagi ada yang langsung menggunakan file .Xauthority dari user tujuan. Seperti yang saya tulis di 99-resolv.conf-nawala.

notify() {
all_user=”$(users | sort)”

for user in $all_user; do
if [ "$user" = "$user_last" ]; then
continue
fi
su $user -c “XAUTHORITY=/home/$user/.Xauthority DISPLAY=:0 notify-send $title $text”

user_last=$user
done
}

Ternyata juga masih belum bisa, dan sepertinya fitur ini dipending saja dulu karena BlankOn Sajadah sudah kejar tayang :P

Sumber :

http://www.g-loaded.eu/2007/11/18/problems-using-libnotify-for-user-to-user-notifications/

http://krischer.org/linux/shorties/bash/desktop_notification

Comments (5)

  1. August 5, 2010
    deanet said...

    iki opo e dab ?? binung (headspin) ..
    nggo `HAL` pie ? *radonk*

  2. August 5, 2010

    @deanet : iki ora nyangkut hardware mas dab (hassle)

  3. August 6, 2010
    milisdad said...

    HAL : Kejar Tayang BlankOn
    Tapi kok ra ono nomor surat e :p

  4. August 6, 2010

    @milisdad : Ini mas Tiket nya http://dev.blankonlinux.or.id/ticket/510 :P

  5. August 9, 2010

    [...] kemarin sempat terhenti karena notifikasi ke desktop tidak bejalan dengan baik akhirnya sekarang masalah tersebut bisa teratasi. Hanya masalah kurang teliti saja, dan sedikit [...]

Leave a Reply