вторник, 18 сентября 2007 г.

fluxbox.autorun


Немного поэксперементировал с автораном в fluxbox'е. Пришел к такому виду как на картинке. Работает все очень просто. Пункты меню помеченные звездочкой - запускаются каждый раз при старте флукса, остальные - нет. При клике по пункту меню - поведение инвертируется, меню генерируется заново, уже с новыми значениями. Чтобы временно выключить/включить чего-нить не трогая при этом скрипты запуска - вполне неплохо, ИМХО.

Как это работает.
В папке ~/.fluxbox создал две новые - scripts,commands. В scripts лежат собственно скрипты автозапуска, по одному на пункт меню, соответствующий пункт меню называется именем скрипта:


diesel@beezir:~/.fluxbox$ ls -l scripts/
total 24
-rwxr-xr-x 1 diesel diesel 71 2007-09-18 08:16 feh
-rw-r--r-- 1 diesel diesel 21 2007-09-18 07:40 firefox
-rw-r--r-- 1 diesel diesel 20 2007-09-18 07:39 pidgin
-rw-r--r-- 1 diesel diesel 19 2007-09-18 07:41 torsmo
-rwxr-xr-x 1 diesel diesel 38 2007-09-18 08:15 xscreensaver
-rwxr-xr-x 1 diesel diesel 17 2007-09-18 07:40 xxkb




скрипты в моем случае в две строчки:


diesel@beezir:~/.fluxbox$ cat scripts/xxkb
#!/bin/sh
xxkb &


В commands лежат два "служебных" скрипта - один генерирует меню:

diesel@beezir:~/.fluxbox$ cat commands/generate_scripts_menu.sh
#!/bin/sh

SCRIPTDIR=$HOME/.fluxbox/scripts/;
CMDDIR=$HOME/.fluxbox/commands;
MENU=$HOME/.fluxbox/menu-autorun

echo "" > $MENU
ls "$SCRIPTDIR" | while read i; do
if [ -x "$SCRIPTDIR/$i" ]; then
echo "[exec] (*$i) { $CMDDIR/changeperm.sh $i }" >> $MENU
else
echo "[exec] ($i) { $CMDDIR/changeperm.sh $i }" >> $MENU
fi
done
echo "[exec] (autorun-gen) { $CMDDIR/generate_scripts_menu.sh }" >> $MENU


второй меняет права доступа к скриптам в scripts:


diesel@beezir:~/.fluxbox$ cat commands/changeperm.sh
#!/bin/bash

SCRIPTDIR=$HOME/.fluxbox/scripts
CMDDIR=$HOME/.fluxbox/commands

if [ -x "$SCRIPTDIR/$1" ]; then
chmod -x "$SCRIPTDIR/$1";
else
chmod +x "$SCRIPTDIR/$1";
fi

$CMDDIR/generate_scripts_menu.sh


соответствующее меню у меня лежит в MENU=$HOME/.fluxbox/menu-autorun, добавляется в "общеее" достаточно просто:

[submenu] (Autorun)
[include] (~/.fluxbox/menu-autorun)
[end]


ну и остается внести изменения в ~/.fluxbox/startup, чтобы файлы которые лежат в ~/.fluxbox/scripts, ежели они являются исполняемыми - запускались. Что-то типа такого:


diesel@beezir:~/.fluxbox$ grep -vE '^#' startup
exec /usr/bin/fluxbox &
fbpid=$!

sleep 1

{
wait $!
SCRIPTDIR=$HOME/.fluxbox/scripts
ls $SCRIPTDIR | while read i; do
if [ -x $SCRIPTDIR/$i ]; then
$SCRIPTDIR/$i &
fi
done
./generate_scripts_menu.sh &
}&

wait $fbpid

3 комментария:

loki комментирует...

Оригинально. Как говорится, просто и со вкусом. Никогда не интересовался этим аспектом, т.к. не было необходимости. Ведь автоматически запуская FF приходится дольше ждать. Разве не так?

Хотя я наверное привык к KDE, где все что не закрыто в конце сеанса, после перезагрузки открывается заново. Во fluxe видимо такого нет.

ЗЫ Красивая тема. Когда то я осваивал flux, но с темами у меня не сложилось :). Может сейчас получше?

diesel комментирует...

> Ведь автоматически запуская FF приходится дольше ждать.

ну запуск firefox,thunderbird, pidgin занимает в общей сложности секунд 30. Я их все-равно почти сразу же запущу руками, поэтому пусть лучше автоматически стартуют - меньше телодвижений. :)

> я я наверное привык к KDE, где все что не закрыто в конце сеанса, после перезагрузки открывается заново. Во fluxe видимо такого нет

да. build-in session-manager'а нет. хотя как раз эта штука в самом КДЕ меня постоянно раздражала - чаще всего начиная рабочий день я хочу видеть запущенными именно несколько определенных приложений, а не то что было запущено в прошлый раз. Восстановление сесссии чаще всего актуально только в браузере.

> Красивая тема. Когда то я осваивал flux, но с темами у меня не сложилось :). Может сейчас получше?

гм. это даже нисколько не пиленная FluxAqua (ну кроме пары параметров в оверлеях), вот отсюда:
http://www.tenr.de/styles/styles01.php?a=stylesтем:

вообще это безобразие примерно вот так выглядит:
http://muaddeep.googlepages.com/fluxbox-4.png

loki комментирует...

Спасибо за сслыки. Оказывается много приятных тем есть, присмотрел некоторые. Может когда нибудь уйду с KDE. А FluxAqua мне уже не нравится :).