1

Тема: MeeGo: кнопка Refresh на рабочем столе

Я сделал кнопку рефреш на рабочем столе с вот этим десктоп файлом:

[Desktop Entry] 
Type=Application 
Terminal=false 
Name=N9 QRefresh 
Categories=System; 
Terminal=false 
Exec=/usr/bin/meego-terminal -n -e devel-su -c "sh /opt/N9QTweak/Refresh/refresh" 
Icon=/usr/share/icons/hicolor/80x80/apps/n9refresh80.png

Всё работает без проблем, но дело в том что это требует открытия терминала (открывается автоматом) и ведения рут пароля..
Кто-то знает что надо написать в строке "Exec" чтобы тоже действие рефреша происходило на прямую, без открытия терминала и введения пароля.. Это вообще возможно?
Спасибо.

Lausanne & Lyon de descente...
----------------
Schturman home page

Поделиться

2

Re: MeeGo: кнопка Refresh на рабочем столе

Перенёс сюда.

N900 - живучий тел smile.

Поделиться

3 (15.03.2012 16:10:22 отредактировано atopine >)

Re: MeeGo: кнопка Refresh на рабочем столе

Schturman сори за оффтоп..

+ открыть спойлер

этот код добавляет иконку по адресу Icon= на раб.стол и запускает то, что указано в Exec?
то есть, при смене этих параметров я могу на тот же rdesktop сделать ярлык, а не лазить каждый раз в терминал?
я прошу прощения, просто Вы походу шарите, а я не совсем smile

Alcatel OneTouch 310 -> Panasonic GD93 -> SonyEricsson k310i -> SonyEricsson k610i + Sony Ericsson Z555i -> Samsung D780 duos -> Nokia N86 8mp -> Nokia N9-00 16gb black PR1.3 (40.2012.21-3_PR_001)

Поделиться

4

Re: MeeGo: кнопка Refresh на рабочем столе

Нужно, чтобы софт запускался именно от рута?
Теоретически, да.
Но со скриптами так не получится.

A mammal should be able to hunt mice, hibernate, fly, chew its cud, echolocate, invent tools, lay eggs, burrow. Speciation is for insects.

Поделиться

5

Re: MeeGo: кнопка Refresh на рабочем столе

hxka пишет:

Но со скриптами так не получится.

Ну тогда может привинтить запуск через Desktop Command Execution Widget, там ведь можно прописать команду на запуск терминала от рута в фоне. Правда в этом случае от иконки на рабочем столе придётся отказаться.

Поделиться

6 (15.03.2012 20:28:42 отредактировано hxka)

Re: MeeGo: кнопка Refresh на рабочем столе

xalmer, речь о Harmattan.

A mammal should be able to hunt mice, hibernate, fly, chew its cud, echolocate, invent tools, lay eggs, burrow. Speciation is for insects.

Поделиться

7

Re: MeeGo: кнопка Refresh на рабочем столе

atopine > пишет:

Schturman сори за оффтоп..
этот код добавляет иконку по адресу Icon= на раб.стол и запускает то, что указано в Exec?

Да...

atopine > пишет:

то есть, при смене этих параметров я могу на тот же rdesktop сделать ярлык, а не лазить каждый раз в терминал?
я прошу прощения, просто Вы походу шарите, а я не совсем smile

Теоретически, да...
Но я так понимаю вам для Н900 надо ? Там лучше Desktop Command Execution Widget или QBW использовать...


hxka пишет:

Нужно, чтобы софт запускался именно от рута?
Теоретически, да.
Но со скриптами так не получится.

Привет
Мне без разницы, из под чего.. Я думаю даже лучше чтобы  из под юзера, мне просто надо чтобы при нажатии кнопки выполнялись две команды рефреш:

sleep 1 && /sbin/initctl restart xsession/sysuid && sleep 2 && /sbin/initctl restart xsession/mthome

На данный момент это работает, но прежде чем сработает, выскакивает окно терминала и требует пароль. Хотелось просто без этого, чтобы сразу срабатывало...
Эти команды я сделал как скрипт refresh по пути: /opt/N9QTweak/Refresh/refresh
Отсюда и команда:

Exec=/usr/bin/meego-terminal -n -e devel-su -c "sh /opt/N9QTweak/Refresh/refresh"

Короче, есть ли возможность изменить эту строку, чтобы напрямую запускала команды рефреша или скрипт без запроса пароля из терминала ?
Из вашей ссылки, я честно сказать фактически ничего не понял - знаний не достаточно hmm
Спасибо

Lausanne & Lyon de descente...
----------------
Schturman home page

Поделиться

8

Re: MeeGo: кнопка Refresh на рабочем столе

мне как раз для N9 надо smile спасибо, я уже с этим вопросом разобрался и сделал нужные ярлыки. сейчас актуален вопрос, который в личке у вас smile

Alcatel OneTouch 310 -> Panasonic GD93 -> SonyEricsson k310i -> SonyEricsson k610i + Sony Ericsson Z555i -> Samsung D780 duos -> Nokia N86 8mp -> Nokia N9-00 16gb black PR1.3 (40.2012.21-3_PR_001)

Поделиться

9 (17.03.2012 03:32:58 отредактировано hxka)

Re: MeeGo: кнопка Refresh на рабочем столе

Schturman пишет:

/sbin/initctl

Значит, от рута. Тогда со скриптами никак. Единственный способ, который я вижу: написать программу на C, которая делает то, что делает указанный скрипт, собрать её под Harmattan, дать бинарнику SUID бит (про него написано по ссылке выше), сделать его владельцем рута, и запихнуть такой в пакет. Я в C не понимаю вообще ничего, но, вроде, это будет как-то так:

+ открыть спойлер
#include <unistd.h>
#include <stdio.h>
int main(void) {
    sleep(1);
    if (fork()) {
        execl("/sbin/initctl","/sbin/initctl","restart","xsession/sysuid",NULL);
    }
    sleep(2);
    if (fork()) {
        execl("/sbin/initctl","/sbin/initctl","restart","xsession/mthome",NULL);
    }
    return 0;
}

Но есть у меня подозрение, что тут ещё aegis вмешается.

A mammal should be able to hunt mice, hibernate, fly, chew its cud, echolocate, invent tools, lay eggs, burrow. Speciation is for insects.

10

Re: MeeGo: кнопка Refresh на рабочем столе

hxka пишет:
Schturman пишет:

/sbin/initctl

Значит, от рута. Тогда со скриптами никак. Единственный способ, который я вижу: написать программу на C, которая делает то, что делает указанный скрипт, собрать её под Harmattan, дать бинарнику SUID бит (про него написано по ссылке выше), сделать его владельцем рута, и запихнуть такой в пакет. Я в C не понимаю вообще ничего, но, вроде, это будет как-то так:

+ открыть спойлер
#include <unistd.h>
#include <stdio.h>
int main(void) {
    sleep(1);
    if (fork()) {
        execl("/sbin/initctl","/sbin/initctl","restart","xsession/sysuid",NULL);
    }
    sleep(2);
    if (fork()) {
        execl("/sbin/initctl","/sbin/initctl","restart","xsession/mthome",NULL);
    }
    return 0;
}

Но есть у меня подозрение, что тут ещё aegis вмешается.

Понятно, спасибо.
К сожалению это не для моих знаний smile
Продолжу пользовать как есть, не так уж страшно... big_smile

Lausanne & Lyon de descente...
----------------
Schturman home page

Поделиться

11

Re: MeeGo: кнопка Refresh на рабочем столе

с аегис suid бит не работает, я как-то пробовал.

На то, о чем можно спросить на форуме, не отвечаю через личные сообщения, аську, почту и т.п. для общения есть jabber-конференция: maemo@conference.jabber.org.
QKit - инструментарий для быстрого кроссплатформенного создания приложений на QML.
FAQ по Nokia N9 - читаем, пополняем.
Прежде, чем задать вопрос, воспользуйтесь поиском!

12

Re: MeeGo: кнопка Refresh на рабочем столе

Да, проверил по RDA, не работает. Правильно подозревал. Надо в манифест aegis дописать

<aegis>
    <request policy="add">
    <credential name="CAP::setuid" />
    <credential name="CAP::setgid" />
    <for path="/путь/к/бинарю" />
    </request>
</aegis>

Подсмотрел в busybox-devel-su.

A mammal should be able to hunt mice, hibernate, fly, chew its cud, echolocate, invent tools, lay eggs, burrow. Speciation is for insects.

13

Re: MeeGo: кнопка Refresh на рабочем столе

А просто перезагрузить не дано зачем кнопку выносить ?

Поделиться