Fluxbox — пробуждение.
Истинная свобода — самоограничение . (Сценарий «АниMатрици»)

Любая оконная среда есть средство запуска софта , эффективность и качество WM (или DE ) определяется в первую очередь возможностями комфортной работы с соответствующими приложениями. Конечно, тут всё зависит от личных предпочтений, поэтому, нижеследующее есть исключительно ИМХО автора.....

1. Прежде всего позаботимся о навигации по системе и ЛВС. Ну с консолью все ясно — лучше МС (Midnight Commander) не найти . А вот с графикой... Ну не нравятся мне однопанельные менеджеры типа thunar, а из двух панельных заслуживает внимания только krusader , но как и любое KDE приложение , запуск его во fluxbox происходит неторопливо и неповоротливо. Собственно есть ещё Double Commander и BeeSoft Commander (список велик!) но их приходится долго и упорно настраивать, добиваясь приемлемого внешнего вида и функционала. А krusader умеет всё « из коробки». Решением стало пересборка krusader 2.0 из исходников с оптимизацией под конкретный процессор. Фрагмент сборочного скрипта :

SLKCFLAGS="-O3 -march=presscott -mtune=presscott"
  cmake \
  -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
  -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \

Создание пакетов в OC MOPS Linux рассматривалось в статье «Слакварное ./configure» , поверьте функционал и удобство krusader (кроме всего прочего поддерерживаются протоколы ftp: smb: lan:) вас не разочаруют! Теперь имеем существенное ускорение времени загрузки и выполнения файловых операций. К тому же — данная программа умеет запускаться в лотке и может быть настроена на запуск только одной копии приложения ( смотрите настройки!) .Из многочисленных фичей и хинтов существующих для mc и его графического собрата, приведу один — но забойный! Сколько раз видел как люди заходят в папку (~100 файлов и начинают тупо скроллить пока не найдут нужный... Расслабьтесь. Нажмите Ctrl + s (для mc) и наберите первую букву имени нужного файла, дело пойдёт веселее ! А в krusader достаточно просто зайти в папку и сразу же ввести нужную букву с клавиатуры, доки рулез!

В ~/.fluxbox/starup пишем

krusader &

чтобы избежать дублирования экземпляров программ лучше оформить так

pgrep krusader >> /dev/null || krusader &

В ~/.fluxbox/menu:

 [exec] (krusader) {krusader}

В ~/.fluxbox/keys:

 Mod4 K :Exec krusader

Получаем , krusader стартующий в трее (вместе с fluxbox) и вызываем его на рабочий стол либо мышью (через меню, а во fluxbox меню вызывается щелчком по любому месту десктопа), либо через клавиатурное сочетания , ( в нашем случае WIN + K ) Быстро, красиво, удобно!

2.Интернет и почта. Лично я использую сразу несколько браузеров . В ЛВС это firefox. Пересборка и тут даёт неплохие результаты но поскольку прога «тяжолая» (размер исходников ~ 50Mb) то это на любителя. Команда

for f in ~/.mozilla/firefox/*/*.sqlite; do sqlite3 $f 'VACUUM; REINDEX;'; done 

позволит несколько ускорить работу браузера, а если скачать расширение Firetray и стартовать в лотке, то будет совсем хорошо. Тоже самое я делаю с почтовым клиентом Thunderbird. Методика старта при загрузке и назначения клавиатурных сочетаний — аналогично. В интернет в использую оперу, исходники этой замечательной программы , увы, недоступны. Добавить огоньку можно запуская её командой - opera -nomail Если конечно вы не используете встроенный в этот браузер почтовым клиент. Дополнительно отметим, что fluxbox умеет группировать окна, а также запускать их на заданном рабочем столе, с нужными размерами и расположением. Это задаётся через ~/.fluxbox/apps:

[group]
 [app] (name=thunderbird) (class=Thunderbird)
[app] (name=opera) (class=Opera) 
[app] (name=firefox) (class=Firefox)
 [Dimensions]	{1168 994}
  [Position]	(UPPERLEFT)	{0 0}
  [Deco]	{NORMAL}
  [Close]	{yes}
  [Alpha]	{255 201}
[end]
 

Теперь оба браузера (и почтовый клиент), будут группироваться в единый таб, что достаточно удобно. Переключение между табами можно задать своё (~/.fluxbox/keys)

2.Мультимедиа . С аудио приложениями всё прекрасно, есть консольный mocp , или гламурный qmmp, на который существует огромное количество скинов. А вот с видео... Попытка посмотреть некий DVD-DL диск имеющий 93 (sic!) главы закончилась неудачей. Перепробовал всё имеющиеся в системе плееры, безрезультатно.... Изумленный я написал на форум MOPSа , где меня первым делом спросили как называется кино , (дабы не покупать его), а также высказали предположение, что причиной является именно большое кол-во глав. А чего этот же диск на этом же железе в ОС Windows нормально воспроизводится — Патрег его знает! Добро б на DVD-DL выходили бы только избранные места из переписки Клаудии Собчак и Вишнавантана Тимати, так там же и нужные вещи бывают! Стало ясно , что надо брать дело в свои руки... Решением стал vlc 0.9.8a (любимый ранее кафеин разочаровал задумчивым стартом, иные видеопроигрыватели также не глянулись (dvd-dl никто из них так и не показал .)) Вы думаете я решил не маяться с пересборкой и просто скачал готовый пакет с репы MOPSa ? Да , но скачанный от туда плеер мало что не воспроизводил звук с *.VOD , на показывал HD видео , он еще и крашился от малейшего изменения настроек. Изумленный я скачал его из реп Slaskware 12 , но лучше не стало.... Короче я его пересобрал , пришлось разобраться с дюжиной кодеков , кое что собрать с нуля, или просто пресобрать что посвежее. Зато теперь имею прогу которая показывает все что у меня есть, стартует быстро, работает качественно, fluxbox-way , что ещё скажеж...

4.Монтирование носителей. Вообще то я долго считал что hal мне не нужен, и монтировал носители, собственными скриптами. Увы прогресс не стоит на месте , мало того , что появились mp3 плееры, usb HDD и usb DVD … В обшем я наивно считал , что hal и d-bus мне помогут , ага . Во первых оказалось, что hal монтирует носители, руководствуясь не заданными мной правилами (*.fdi) а неизвестно чем , во вторых что он не умеет монтировать NTFS … Собственно проблема (добавить hal свои опции монтирования ) уже известна http://archlinux.org.ru/node/146 вот здесь предлагается и решение .. Но увы , чем то мне оно не понравилось. Недолгие поиски привели к использованию демона halevt, его особенности 1. Монтирует как и в иксах так и в консоли 2. Может быть настроен отдельно для каждого пользователя. 3.Позволяет задать опции, точки монтирования, выполняемые перед (после ,вместо) монтированием действия и много чего еще. Фрагмент конфига /usr/local/etc/halevt.xml:

<halevt:Device match="&MOUNTABLE; &amp;hal.volume.fstype=vfat">       
 <halevt:OnInit exec="halevt-mount -u $hal.udi$ -o quiet , -o flush"/>
        <halevt:Insertion exec="halevt-mount -u $hal.udi$ -o quiet , -o flush"/>
</halevt:Device>

 <halevt:Device match="&MOUNTABLE; &amp;hal.volume.fstype=ntfs-3g">
        <halevt:OnInit exec="halevt-mount -u $hal.udi$ -o quiet"/>
        <halevt:Insertion exec="halevt-mount -u $hal.udi$ -o quiet"/>
 </halevt:Device>
 

Нетрудно приделать и отображение сообщений о присоединенных устойствах :

<halevt:Device match="hal.block.device &amp; hal.block.is_volume = true &amp; hal.volume.mount_point">
  <halevt:Property name="hal.volume.is_mounted">
   <halevt:Action value="true" exec="halevt-mount -s"/>
   <halevt:Action value="true" exec="notify-send -i &quot;/usr/share/icons/oxygen/48x48/devices/media-optical-audio.png&quot; &quot;$hal.volume.fstype$ &quot;&quot;$hal.volume.fsversion$&quot;&quot; USB диск смонтирован в&quot; $hal.volume.mount_point$;"/> 
  </halevt:Property>
</halevt:Device>
 

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

  <halevt:Device match="hal.volume.disc.is_videodvd = true">
      <halevt:Insertion exec="vlc dvd:///dev/sr0"/>
  </halevt:Device> 
 

Меня напрягало , что в Windows ( да в Linux если использовать thunar) попытка отмонтировать занятое устройство вызыват сообщение « Устройство занято попробуйте позже» , но без указания конкретного приложения , занявшего девайс : Нижеследующий скрипт решает эту проблему

 #!/bin/sh
# Халевт записывает устройства ( и добавляет записи о точках монтирования в  ~/.halevt-mount/uditab ,
# поскольку (от)монтирование
# может быть выполнено не только халевт но и другими средствами 
# (например из консоли), полезно "синхронизировать базу"
halevt-mount -s
# Эта конструкция встретится дважды - оформим как функцию .
pro()
 {
grep "media" ~/.halevt-mount/uditab  | cut -d : -f 2-  > ~/.halevt-mount/ze
}
pro
# получим адрес (/dev/XXX) устройства
if [ -e ~/.halevt-mount/uditab ] ; then


   
   if [ -s ~/.halevt-mount/ze ]; then
      halevt-umount -a
      # Если устройство существует - отмонтируем - если нет - известим юзера
      sleep 1.5
      pro
          if [ -s ~/.halevt-mount/ze ]; then
     st=$(cat ~/.halevt-mount/ze  | cut -d : -f 1)
          ss=$(lsof $st  | cut -d " " -f -2)
          # Выясняем кто занял устройство
                    notify-send "Устройство занято приложением"  " <b>$ss</b> попробуйте позже "
          else
                st=$(cut -d : -f 2  ~/.halevt-mount/uditab)
             notify-send "Можно извлечь" "  <b>$st</b> из компа "
         fi
    else
    notify-send "Смнотированных дисков нет!"
    fi
else
     notify-send "Флеш диски не найдены "
fi     
      

Tеперь присоединение флешки сопровождается сообщением от том, какую фс она использует , куда она смонтирована, при этом вызывается mc ( показывая имеющиеся файлы) , при отмонтировании также выводится сообщение об успехе операции , или уведомление , что такое то приложение мешает сделать это. Лепота! Напомню что приведённый скрипт также можно повесить на горячую клавишу или приписать в меню ( для удобства вызова) . Ситуация с NTFS также решена уже , соответствующие правила hal можно взять http://wiki.archlinux.org/index.php/HAL например здесь.

5. Игры . Ну какой же русский не любит быстрой езды? Описания запуска под wine Need For Speed и GtiRasing оставим более продвинутым камрадам :-P заметим только , что наилучшая производительность и стабильность достигается при запуске игр в отдельной сессии Х-ов например так

В ~/.fluxbox/menu пишем

  [exec]   (GTI Racing) {startx /home/den/Скрипты/Script/GtiRacing -- :1}

$cat GtiRacing

cd /home/den/.wine/drive_c/'Program Files'/'GTI Racing'
wine GTIRacing.exe

Напоследок скажу - из многих WM и DE перепробованых мною fluxbox оказался самым простым и удобным. Ну не знаю почему авторы некотрых из них ( не будем тыкать пальцем) так любят интерфейс WIN 95 , мне он кажется просто неудачным. Не понимаю и моды писать конфиги в xml или ( Сохрани Создатель!) в виде win подобного реестра... Кстати в других оконных средах мне так и не удалось запускать в при старте 14 ( А я совершенно не вижу почему бы благородному дону...) разных программ , и чтоб ничего не глючило и не тормозило. А во fluxbox я еще и 2 копии ChessMaster 9000 запускаю, + почту + музыку + все что взбредёт в голову. Повторить же этот подвиг под каким нибуть awesome до сей поры не удавалась , увы. Fluxbox для меня сочетание молненосной быстроты и невообразимой мощи, кажется нечего лучшего просто нет ...

Продолжение вероятно


Личные инструменты