как в DEB пакет всунуть ярлык на рабочем столе

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
User avatar
cutecode
I live to help wx-kind
I live to help wx-kind
Posts: 181
Joined: Fri Dec 09, 2016 7:28 am
Contact:

как в DEB пакет всунуть ярлык на рабочем столе

Postby cutecode » Sat Sep 08, 2018 3:49 pm

подскажите, как создать на рабочем столе ярлык на программу через DEB-пакет.
Я создал ярлык в папке /usr/share/applications/myprog.desktop

как теперь тоже самое скопировать на рабочий стол?

А еще лучше создать ярлык для всех существующих пользователей.

И уж совсем бы хорошо если создавать его и для новых созданных пользователей.
regards,
Alexander Saprykin
www.wxwidgets.ru

User avatar
T-Rex
Moderator
Moderator
Posts: 1166
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Re: как в DEB пакет всунуть ярлык на рабочем столе

Postby T-Rex » Tue Sep 11, 2018 11:56 am

Вопрос, как бы, совсем не по wxWidgets, но

https://ubuntuforums.org/showthread.php?t=968399

И там правильно пишут, не надо так делать. Это только в богомерзкой винде за такое руки не отрывают.

UPD: https://www.debian.org/doc/manuals/main ... intscripts - в постинсталл скрипте можно сделать .desktop файлы и проставить им пермишены. Но, в целом, лучше бы только в меню добавлять, а не на рабочий стол.

User avatar
cutecode
I live to help wx-kind
I live to help wx-kind
Posts: 181
Joined: Fri Dec 09, 2016 7:28 am
Contact:

Re: как в DEB пакет всунуть ярлык на рабочем столе

Postby cutecode » Tue Sep 11, 2018 12:25 pm

поэтому и спрашиваю здесь, т.к. не нашел ответа в Инете.
Я пробовал вставить в postScrypt эту строку

Code: Select all

cp /usr/share/applications/myprog.desktop "$(xdg-user-dir DESKTOP)/"


но т.к. dpkg runs as root, то вместо /home/user/DeskTop, он пытается копировать в /root/DeskTop

вот если бы как то в скрипте узнать имя пользователя, который выполняет команду от root...?
regards,
Alexander Saprykin
www.wxwidgets.ru

User avatar
T-Rex
Moderator
Moderator
Posts: 1166
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Re: как в DEB пакет всунуть ярлык на рабочем столе

Postby T-Rex » Tue Sep 11, 2018 12:34 pm

Узнать кто вызвал sudo можно через

Code: Select all

sudo who|awk '{print $1}'

User avatar
cutecode
I live to help wx-kind
I live to help wx-kind
Posts: 181
Joined: Fri Dec 09, 2016 7:28 am
Contact:

Re: как в DEB пакет всунуть ярлык на рабочем столе

Postby cutecode » Thu Sep 13, 2018 6:57 am

спасибо.

тут еще заморочки появились c именем папки рабочего стола.
Поскольку очень велика вероятность имени папки "Рабочий стол" или "Desktop", то написал такой скрипт.
Может кто поправит?

Code: Select all

#имя файла ярлыка нашей программы
MYFILE=dental-soft.desktop

#создаем временный файл
mytmp=$(mktemp)

#загоняем имя текущего пользователя в этот временный файл
who|awk '{print $1}'>$mytmp

#читаем первую строку из временного файла
read LINE < $mytmp;
#теперь переменная $LINE содержит имя текущего пользователя

#удаляем временный файл
rm "$mytmp"

#будем надеятся что папка рабочего стола называется "Рабочий стол"
#и находится в папке /home/$USER
MYDESKTOP="/home/"$LINE"/Рабочий стол/"

#копируем наш ярлык в предпологаемый рабочий стол
cp /usr/share/applications/$MYFILE "$MYDESKTOP"

#даем всем права на удаление файла ярлыка
chmod 777 "$MYDESKTOP$MYFILE"

#если ни "Рабочий стол", то может быть Desktop?
#повторяем тоже самое
MYDESKTOP="/home/"$LINE"/Desktop/"
cp /usr/share/applications/$MYFILE "$MYDESKTOP"
chmod 777 "$MYDESKTOP$MYFILE"

#говорим dpkg, что всё прошло удачно
exit 0
regards,
Alexander Saprykin
www.wxwidgets.ru

User avatar
T-Rex
Moderator
Moderator
Posts: 1166
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Re: как в DEB пакет всунуть ярлык на рабочем столе

Postby T-Rex » Thu Sep 13, 2018 10:37 am

Code: Select all

echo $(xdg-user-dir DESKTOP)

?

User avatar
cutecode
I live to help wx-kind
I live to help wx-kind
Posts: 181
Joined: Fri Dec 09, 2016 7:28 am
Contact:

Re: как в DEB пакет всунуть ярлык на рабочем столе

Postby cutecode » Thu Sep 13, 2018 9:31 pm

не катит, уже пробовал

Code: Select all

alexander@debian:~$ sudo echo $(xdg-user-dir DESKTOP)
[sudo] пароль для alexander:
/home/alexander/Рабочий стол
alexander@debian:~$ sudo su
root@debian:/home/alexander# echo $(xdg-user-dir DESKTOP)
/root/Desktop
root@debian:/home/alexander#


если делать su, затем эту команду, то выдает так, как мне надо.
Но если сделать sudo su, то как видно выше выдает /root/Desktop

я вставлял этот код в postinst, там тоже пишет /root/Desktop
regards,
Alexander Saprykin
www.wxwidgets.ru

User avatar
T-Rex
Moderator
Moderator
Posts: 1166
Joined: Sat Oct 23, 2004 9:58 am
Location: Zaporizhzhya, Ukraine
Contact:

Re: как в DEB пакет всунуть ярлык на рабочем столе

Postby T-Rex » Fri Sep 14, 2018 10:44 am

Можно внутри скрипта попробовать сделать source с файла ~/.config/user-dirs.dirs юзера, который сделал sudo. там должна быть куча XDG_* переменных


Return to “wxWidgets Development (Russian)”

Who is online

Users browsing this forum: No registered users and 4 guests