Имам следния проблем - работя по няколко проекта едновременно, като разработката на всеки проект се нуждае от няколко софтуерни продукта - прим. NetBeans IDE, MysqlWorkBench, FF + FireBug, различни документации отворени в браузер. Малко досадно ми е всеки път като трябва да си приготвя обкръжението да ги отварям едно по едно, след това да отварям в тях нужните местоположения на файлове/проекти/линкове.
Дойде ми идеята за десктоп икони, които да стартират гореизброените неща и да подават нужните параметри.
Тъй като съм малко бос в десктоп областта, си реших проблема по мой си начин:
/usr/local/bin/multirun
GeSHi (Perl):
#!/usr/bin/perl
use POSIX;
sub afork (\@$&)
{
my ($data, $max, $code) = @_;
my $c = 0;
foreach my $data (@$data)
{
wait unless ++ $c <= $max;
exit $code -> ($data) unless $pid;
}
}
afork (@ARGV,10,\&run);
sub run
{
my $data = $_[0];
`$data`;
}
За всеки проект си създавам bash скрипт (може и в иконата ама е много дълго). Прим.:
GeSHi (Bash):
#!/bin/bash
/usr/local/bin/multirun \
"/usr/local/netbeans-7.0.1/bin/netbeans /www/site/site1" \
"/usr/bin/mysql-workbench /www/site/site1/site1.mwb" \
"firefox -new-window http://site1.work" \
"opera http://dev.sencha.com/deploy/ext-3.3.1/docs/"
И накрая правя икона сочеща към този скрипт.
Решението работи, но се чудех дали няма някакво по-елегантно решение с инструментите на Windows manager-a (Gnome в моя случай).