Kalau kamu iseng googling
“Telegram Desktop Raspberry” kamu bakal ketemu blog lama saya yaitu ahmadihamid.com.
Semenjak akhir tahun 2017 saya memang menggunakan Raspberry sebagai komputer utama saya. Dari urusan kantor, nge-blog sampai sekedar chatting gaje ya pakai komputer mini tersebut. Sampai ketika saya melakukan pembaruan sistem beberapa waktu lalu. Aplikasi perpesanan kesayangan saya yaitu Telegram enggak bisa dibuka lagi.
pi@raspberrypi:~ $ telegram-desktop
libEGL warning: DRI2: failed to authenticate
(telegram-desktop:1563): GLib-GObject-WARNING **: cannot register existing type 'GdkDisplayManager'
(telegram-desktop:1563): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed
(telegram-desktop:1563): GLib-GObject-CRITICAL **: g_object_new: assertion 'G_TYPE_IS_OBJECT (object_type)' failed
(telegram-desktop:1563): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(telegram-desktop:1563): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(telegram-desktop:1563): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(telegram-desktop:1563): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(telegram-desktop:1563): GLib-GObject-WARNING **: cannot register existing type 'GdkDisplay'
(telegram-desktop:1563): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed
(telegram-desktop:1563): GLib-GObject-CRITICAL **: g_type_register_static: assertion 'parent_type > 0' failed
(telegram-desktop:1563): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed
(telegram-desktop:1563): GLib-GObject-CRITICAL **: g_object_new: assertion 'G_TYPE_IS_OBJECT (object_type)' failed
Segmentation fault
Karena ada kata “authenticate” di pesan error, saya dengan bodohnya (jangan ditiru ya) coba jalankan Telegram menggunakan hak akses root
lewat sudo
. Dan anehnya Telegram berhasil dibuka.
Sayangnya bukan solusi bagus juga karena semua file yang diunduh jadi milik root
.
😅👊
Saya pun menyerah dan berfikir ini karena saya memakai paket aplikasi asing alias aslinya bukan untuk Raspbian.
Tapi ternyata saya salah. Galat ini juga ditemui di platform lain. Ini misalnya. Ada yang bilang ini terjadi karena Telegram gagal mengidentifikasi desktop yang kita gunakan. Jadi kita mesti menghapus variabel XDG_CURRENT_DESKTOP
.
$ unset XDG_CURRENT_DESKTOP
Aneh. Rasanya enggak mungkin sih pengembang Telegram pakai variabel mati tanpa memikirkan kemungkinan desktop tak dikenal kita gunakan. Dan ternyata benar. Ketika saya iseng ganti XDG_CURRENT_DESKTOP
ke variabel acak, Telegram berhasil dijalankan juga.
Sayangnya solusi ini juga masih punya cacat :
- Kita enggak bisa buka Telegram lewat menu aplikasi, alias harus lewat
terminal.
- Tiap kali restart atau ganti
shell
kita mesti set ulang variabelXDG_CURRENT_DESKTOP
.
Untungnya kita bisa memasukkan variabel env
di Desktop Entry
. Jadi enggak perlu repot gonta-ganti variabel. Kita tinggal buat Desktop Entry
baru di folder .local supaya tidak hilang/tertimpa ketika kita update Telegram.
pi@raspberrypi:~ $ cat .local/share/applications/Tele.desktop
[Desktop Entry]
Version=1.0
Name=Tele Etop
Comment=Bug apa ini kok ucul!1!1!
Exec=env XDG_CURRENT_DESKTOP=AhmadiHam.id telegram-desktop -- %u
Icon=telegram
Terminal=false
StartupWMClass=TelegramDesktop
Type=Application
Categories=Network;InstantMessaging;Qt;
MimeType=x-scheme-handler/tg;
Perhatikan bagian “Exec=env XDG_CURRENT_DESKTOP=AhmadiHam.id telegram-desktop – %u”
Alhamdulillah yah? Jadi masih bisa bertahan dengan workspace minimalis saya ini.
😂
Assalamualaikum.
Referensi
https://ahmadihamid.com/raspberry/telegram-untuk-raspbian/
https://github.com/telegramdesktop/tdesktop/issues/4324
https://askubuntu.com/questions/144968/set-variable-in-desktop-file