LINUX.ORG.RU

[SSH] Вывести сообщение на экран в обход X11

 


0

3

Здравствуйте, уважаемые ЛОРовцы, у меня снова возник к вам вопрос. Есть телефон Nokia e72 на котором установлен PuTTY. Есть компьютер с Ubuntu 10.10 к которому я подключаюсь с этого телефона. Так вот, перерыл сотню страниц в гугле на тему «как вывести сообщение на экран компьютера через ssh», но везде для этого требуется совершать манипуляции, требующие иксов на устройстве, с которого всё это осуществляется, а хотелось бы выполнить задачу без этого. Потому что на Symbian их нет и если запускать что-то графическое, то пишется «Не удалось открыть дисплей». Может кто-нибудь подскажет способ? Ну, кроме «создать в vim текстовый документ на рабочем столе с нужной фразой в названии».

Ответ на: комментарий от BlackSecondHand

этот пример требует kde (точнее, kdebindings) 4.5.0+. до 4.5.0 qt4-биндингов для перла не было (рабочих и поддерживаемых, во всяком случае), а руби я не настолько хорошо знаю, чтобы писать на нём однострочники ;)

arsi ★★★★★
()
Ответ на: комментарий от arsi

Да, я догадался :) К счастью, у меня скоро будет машина, на которой буде дистрибутив с KDE, так что эта команда мне еще пригодится.

BlackSecondHand
() автор топика
Ответ на: комментарий от Eddy_Em

Хм. Оказалось, что gdialog - просто удобная обертка для zenity...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от BlackSecondHand

О! Еще веселее (правда, для этого требуется, чтобы в какой-то момент рабочий стол был открыт): сгенерировать из текста изображение при помощи ImageMagic и поместить его на «рабочий стол» в качестве заставки.

Хотя, можно его тем же ImageMagicom и открыть :)

Eddy_Em ☆☆☆☆☆
()

Python. DBUS.

import dbus

bus = dbus.SessionBus()
proxy = bus.get_object('org.freedesktop.Notifications',
            '/org/freedesktop/Notifications',
            'org.freedesktop.Notifications')
actions = dbus.Array('s')
hints = dbus.Dictionary({}, signature=dbus.Signature('sv'))
proxy.Notify(
        "dbus python example", 
        (dbus.UInt32)(0),
        '', # icon-name
        'Example Notification', 
        'This is an example notification via dbus with Python.',
	actions, hints, 0)

Deleted
()

и да, забыл... если хочешь сообщение в области уведомлений, тогда вот так

import sys
import pynotify

if __name__ == "__main__":
	if not pynotify.init("icon-summary-body"):
		sys.exit(1)

	n = pynotify.Notification(
	    "Burhan Uddin",
	    "What is life? Full of of care? We have no time to stand or stare!",
	    "notification-message-im")
	n.show()
Deleted
()
Ответ на: комментарий от Deleted

> Python. DBUS.

Perl. DBUS. ;)

$ perl -MNet::DBus -e '$_=$s="org.freedesktop.Notifications";s:^|\.:/:g;Net::DBus->session->get_service($s)->get_object($_,$a)->Notify("hello", 0, "", "Hello", "Hello, World!", [], {}, 0)'

длинный однострочник, да :(

arsi ★★★★★
()
Ответ на: комментарий от Deleted

спасибо за подсказку ;)

$ perl -MDesktop::Notify -e 'Desktop::Notify->new->create(summary=>"Hello",body=>"Hello, World!")->show'

этот однострочник покороче будет, да ;)

arsi ★★★★★
()
Ответ на: комментарий от arsi

именно из-за фаршеобразности кода мне перестал нравится перл. хотя раньше на нем весьма неплохо писал...но это было где-то 10 лет назад.

и да, под фаршеобразностью я подразумеваю часто встечающееся форматирование перлового кода. кто как хочет, так и форматирует. а питон мне дюже понравился за «отступы». это ограничение действительно дает свои плоды и код всегда читабелен, ну или сильно чаще, чем перловый. энивей, язык - дело вкуса и конкретной задачи.

Deleted
()
Ответ на: комментарий от Deleted

ну, на перле можно написать достаточно красивый код, было бы желание. а вот однострочник на питоне… ;)

arsi ★★★★★
()
Ответ на: комментарий от arsi

не спорю, на любом можно писать красиво, но много ли владеют самодисциплиной? :)

про однострочник уже отписал :)

Deleted
()
Ответ на: комментарий от Deleted

хотя даже сократить можно :). третий параметр не указывать :) все равно как None будет.

Deleted
()
Ответ на: комментарий от Deleted

> питоновая однострочка :)

рррр~~ поцарапаю :) я ещё возьму реванш!.. как-нибудь ;)

arsi ★★★★★
()
Ответ на: комментарий от BlackSecondHand

ему нужен type

-> zenity --title «Hello» --text 'Hello, world!'
You must specify a dialog type. See 'zenity --help' for details
-> zenity --text-info --title «Hello» --text 'Hello, world!'
в данном улчае Вы указали type=warning

mumpster ★★★★★
()

notify-send

Сообщения будут всплывать в области уведомлений. Можно задать время показа и т.д.

keiner
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.