подскажите, как создать на рабочем столе ярлык на программу через DEB-пакет.
Я создал ярлык в папке /usr/share/applications/myprog.desktop
как теперь тоже самое скопировать на рабочий стол?
А еще лучше создать ярлык для всех существующих пользователей.
И уж совсем бы хорошо если создавать его и для новых созданных пользователей.
как в DEB пакет всунуть ярлык на рабочем столе
- T-Rex
- Moderator
- Posts: 1249
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
Re: как в DEB пакет всунуть ярлык на рабочем столе
Вопрос, как бы, совсем не по wxWidgets, но
https://ubuntuforums.org/showthread.php?t=968399
И там правильно пишут, не надо так делать. Это только в богомерзкой винде за такое руки не отрывают.
UPD: https://www.debian.org/doc/manuals/main ... intscripts - в постинсталл скрипте можно сделать .desktop файлы и проставить им пермишены. Но, в целом, лучше бы только в меню добавлять, а не на рабочий стол.
https://ubuntuforums.org/showthread.php?t=968399
И там правильно пишут, не надо так делать. Это только в богомерзкой винде за такое руки не отрывают.
UPD: https://www.debian.org/doc/manuals/main ... intscripts - в постинсталл скрипте можно сделать .desktop файлы и проставить им пермишены. Но, в целом, лучше бы только в меню добавлять, а не на рабочий стол.
Re: как в DEB пакет всунуть ярлык на рабочем столе
поэтому и спрашиваю здесь, т.к. не нашел ответа в Инете.
Я пробовал вставить в postScrypt эту строку
но т.к. dpkg runs as root, то вместо /home/user/DeskTop, он пытается копировать в /root/DeskTop
вот если бы как то в скрипте узнать имя пользователя, который выполняет команду от root...?
Я пробовал вставить в postScrypt эту строку
Code: Select all
cp /usr/share/applications/myprog.desktop "$(xdg-user-dir DESKTOP)/"
вот если бы как то в скрипте узнать имя пользователя, который выполняет команду от root...?
- T-Rex
- Moderator
- Posts: 1249
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
Re: как в DEB пакет всунуть ярлык на рабочем столе
Узнать кто вызвал sudo можно через
Code: Select all
sudo who|awk '{print $1}'
Re: как в DEB пакет всунуть ярлык на рабочем столе
спасибо.
тут еще заморочки появились c именем папки рабочего стола.
Поскольку очень велика вероятность имени папки "Рабочий стол" или "Desktop", то написал такой скрипт.
Может кто поправит?
тут еще заморочки появились 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
- T-Rex
- Moderator
- Posts: 1249
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
Re: как в DEB пакет всунуть ярлык на рабочем столе
Code: Select all
echo $(xdg-user-dir DESKTOP)
Re: как в DEB пакет всунуть ярлык на рабочем столе
не катит, уже пробовал
если делать su, затем эту команду, то выдает так, как мне надо.
Но если сделать sudo su, то как видно выше выдает /root/Desktop
я вставлял этот код в postinst, там тоже пишет /root/Desktop
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#
Но если сделать sudo su, то как видно выше выдает /root/Desktop
я вставлял этот код в postinst, там тоже пишет /root/Desktop
- T-Rex
- Moderator
- Posts: 1249
- Joined: Sat Oct 23, 2004 9:58 am
- Location: Zaporizhzhya, Ukraine
- Contact:
Re: как в DEB пакет всунуть ярлык на рабочем столе
Можно внутри скрипта попробовать сделать source с файла ~/.config/user-dirs.dirs юзера, который сделал sudo. там должна быть куча XDG_* переменных