Автоматизация подключения SFS и запуска программ
Автор: bicyclist56
Опубликовано: 4396 дней назад (12 апреля 2012)
Рубрика: Жизнь с Иванной продолжается!
Редактировалось: 5 раз — последний 24 мая 2012
|
+1↑ Голосов: 1 |
Cкрипт (для каждого SFS свой) подключает SFS, и сразу запускается главная программа из этого пакета. После работы с программой вновь жмем на этот же скрипт (или на его ярлык), программа закрывается, а SFS отключается. Для скрипта можно сделать ярлык, кому где удобно, хоть в панели, хоть на раб.столе. Меньше телодвижений в результате
Заботиться о сохранении результатов работы с программой нужно самому пользователю заранее, перед отключением.
В начало скриптов вынесены переменные, чтобы не искать, что менять, во всем тексте:
PATH_SFS - путь к SFS (может быть и один для всех)
SFS - название SFS (без .sfs, так было проще копировать из названия)
START - запускаемый файл программы с полным путем (смотрим в соответствующем файле в /usr/share/applications/, можно просто в распакованном SFS)
SERVICE - главный процесс (который приходится искать в терминале, давая команду ps, напрягая зрение и немного мозги, при подключенном обычным образом SFS)
Надеюсь, асы скриптописания (я если и ас, то только метода тыка) помогут доработать это дело. Может быть, стоит добавить по ИЛИ условие подключенности SFS (наличие папки /mnt/.name.sfs? - что-то у меня не получилось), тогда и при закрытой программе, при запуске скрипта, SFS отключался бы. А так, при щелчке по ярлыку вновь запускается закрытая программа.
У меня все SFS поключаются из левой панели, и ярлыкам там назначены иконки, которые появляются в системе только при подключенном SFS. Поэтому я вижу, что у меня подключено, а что нет, весьма удобно. Займусь, пожалуй, всеобщим переводом запуска своих многочисленных SFS на новые рельсы. Возможно, что-то не пожелает подчиняться моим законам...
Несколько примеров (из которых ясно, что нечто универсальное сделать затруднительно).
Gimp-Full-2.6.10-Lucid_528
#!/bin/bash
PATH_SFS='/mnt/home/SFS'
SFS='Gimp-Full-2.6.10-Lucid_528'
START='/usr/bin/gimp-2.6'
SERVICE='gimp-2.6'
if ps -r | pgrep $SERVICE > /dev/null
then
killall $SERVICE
sleep 1
umount -l /mnt/.$SFS
sleep 2
rm -r /mnt/.$SFS
fixmenus
else
mkdir /mnt/.$SFS
mount -o loop $PATH_SFS/$SFS.sfs /mnt/.$SFS
mount -o remount,append:/mnt/.$SFS /
sleep 3
fixmenus
$START &
fi
Google_Earth-6.0.3.2197-lucid_528
PATH_SFS='/mnt/home/SFS'
SFS='Google_Earth-6.0.3.2197-lucid_528'
START='/usr/bin/googleearth'
SERVICE='googleearth-bin'
...
bt-sendfile_528
PATH_SFS='/mnt/home/SFS'
SFS='bt-sendfile_528'
START='/usr/lib/bt-manager/launcher.sh'
SERVICE='wish'
...
Аналогично можно делать скрипты-триггеры (и ярлыки) для запуска/закрытия программ.
conky_toggle:
Код:
#!/bin/bash
SERVICE='conky'
if ps -r | pgrep $SERVICE > /dev/null
then
killall $SERVICE
else
$SERVICE
fi
Заботиться о сохранении результатов работы с программой нужно самому пользователю заранее, перед отключением.
В начало скриптов вынесены переменные, чтобы не искать, что менять, во всем тексте:
PATH_SFS - путь к SFS (может быть и один для всех)
SFS - название SFS (без .sfs, так было проще копировать из названия)
START - запускаемый файл программы с полным путем (смотрим в соответствующем файле в /usr/share/applications/, можно просто в распакованном SFS)
SERVICE - главный процесс (который приходится искать в терминале, давая команду ps, напрягая зрение и немного мозги, при подключенном обычным образом SFS)
Надеюсь, асы скриптописания (я если и ас, то только метода тыка) помогут доработать это дело. Может быть, стоит добавить по ИЛИ условие подключенности SFS (наличие папки /mnt/.name.sfs? - что-то у меня не получилось), тогда и при закрытой программе, при запуске скрипта, SFS отключался бы. А так, при щелчке по ярлыку вновь запускается закрытая программа.
У меня все SFS поключаются из левой панели, и ярлыкам там назначены иконки, которые появляются в системе только при подключенном SFS. Поэтому я вижу, что у меня подключено, а что нет, весьма удобно. Займусь, пожалуй, всеобщим переводом запуска своих многочисленных SFS на новые рельсы. Возможно, что-то не пожелает подчиняться моим законам...
Несколько примеров (из которых ясно, что нечто универсальное сделать затруднительно).
Gimp-Full-2.6.10-Lucid_528
#!/bin/bash
PATH_SFS='/mnt/home/SFS'
SFS='Gimp-Full-2.6.10-Lucid_528'
START='/usr/bin/gimp-2.6'
SERVICE='gimp-2.6'
if ps -r | pgrep $SERVICE > /dev/null
then
killall $SERVICE
sleep 1
umount -l /mnt/.$SFS
sleep 2
rm -r /mnt/.$SFS
fixmenus
else
mkdir /mnt/.$SFS
mount -o loop $PATH_SFS/$SFS.sfs /mnt/.$SFS
mount -o remount,append:/mnt/.$SFS /
sleep 3
fixmenus
$START &
fi
Google_Earth-6.0.3.2197-lucid_528
PATH_SFS='/mnt/home/SFS'
SFS='Google_Earth-6.0.3.2197-lucid_528'
START='/usr/bin/googleearth'
SERVICE='googleearth-bin'
...
bt-sendfile_528
PATH_SFS='/mnt/home/SFS'
SFS='bt-sendfile_528'
START='/usr/lib/bt-manager/launcher.sh'
SERVICE='wish'
...
Аналогично можно делать скрипты-триггеры (и ярлыки) для запуска/закрытия программ.
conky_toggle:
Код:
#!/bin/bash
SERVICE='conky'
if ps -r | pgrep $SERVICE > /dev/null
then
killall $SERVICE
else
$SERVICE
fi