воскресенье, 10 апреля 2011 г.

Выживание в «бездесктопной» среде. Часть III

Есть ли жизнь на Марсе или Особенности выживания в «бездесктопной» среде Linux.

Часть III.
   Добавим еще несколько удобств в нашу бездесктопную среду.
Ну, во-первых небольшой GTK-интерфейс для просмотра и выбора тем оформления и значков. Я приведу пример двух - lxappearance и gtk-theme-switch2. Первая, помимо работы с темами, умеет работать со значками. Ставятся и запускаются эти утилиты одноименными командами.
   Для тех, кто не в курсе, сообщаю, что скачанную тему нужно распаковать, чтобы получилась папка с названием темы, примерно такого содержания: файл темы index.theme и папки gtk-2.0 и metacity-1 (могут быть дополнительные файлы и папки, например для xfce). Эту папку надо положить либо в /home/ваша учетка/.themes/, тогда она будет применена только к вашей учетной записи, либо (с правами рута) в /usr/share/themes/ - в этом случае тему смогут использовать любые пользователи.

   lxappearance выглядит так:

В общем-то объяснять тут нечего, все вполне понятно. В первой закладке (Window) выбор тем, во второй (Icon) - значков. Применяются они одновременно.

   gtk-theme-switch2 попроще, как по возможностям, так и по интерфейсу. Окошко выбора:

   Окошки предпросмотра:


   Следующим шагом немного облагородим Thunar. Добавим миниатюрки для видеофайлов. Для этого понадобится установить следующие пакеты:
sudo aptitude install thunar-thumbnailers ffmpegthumbnailer

   Thunar хранит кэш миниатюр в файле ~/.cache/Thunar/thumbnailers.cache. Поэтому если старые файлы не обновились и миниатюрки не отображаются, то удалите этот файл. Сами миниатюры лежат в папке ~/.thumbnails.

   Не лишним будет слегка облегчить работу с архивами. Обзаведемся какой-нибудь единой оболочкой для разных методов сжатия, чтобы обеспечивала базовые функции распаковки и упаковки из контекстного меню того же Thunar'a. Мне для этих целей понравилась программка под названием Z. Ее нет в репозитории, но без труда можно скачать отсюда. Собирается элементарно, одной командой (перейдя предварительно в каталог с распакованным архивом):
sudo make install

Если нужно установить мануал, то еще одна команда:
sudo make install.man

   Команды ее крайне простые. Для распаковки достаточно набрать в терминале:
z имя_архива

Для создания архива понадобятся дополнительные параметры. К примеру для создания архива gzip команда будет выглядеть так:
z -gz имя_архива_или_папки

Если нужно создать архив bzip2, то -gz заменяем на -I
Для упаковки в lzip используем параметр -lz
Для архивов zip и jar параметры будут -zip, -jar соответственно
Упаковка с помощью compress потребует параметра -Z

   Дополнительно можно указать степень сжатия для архивов gzip, bzip2, lzip и zip. Делается это добавлением параметра -1 (или --fast) для быстрого сжатия с минимальной степенью и до -9 (или --best) с максимальным сжатием. По умолчанию для gzip степень сжатия -6, для bzip2 -9.

   Но пользоваться консолью для этих действий мы не будет. А создадим для них контекстные команды в Thunar'е. Для этого идем в меню Edit (Правка) -> Configure custom actions... (Настроить особые действия...). В открывшемся меню щелкаем "Добавить", задаем имя, описание и пишем для распаковки следующую команду: z %F %N
Затем переходим во вкладку Appearance conditions (Условия появления) и ставим галочку напротив "Other files (Другие файлы). Можно конечно не ставить галочки и перечислить по шаблону все расширения архивов. Тогда опция распаковки не будет появляться на всяких ненужных файлах. Формат шаблона простой и в описании он указан.
Теперь точно таким же образом создадим еще пару команд. Для упаковки архиватором gzip команда будет такая: z -gz %F %N
Для упаковки в bzip2 создадим команду z -I %F %N. И не забудьте указать условия появления этих команд для всего, что вы собираетесь архивировать.
По желанию можно присвоить значок каждой команде.

Можно пойти по другому пути и воспользоваться пакетом squeeze, который является графической оболочкой и интегрируется в контекстное меню Thunar'a. Для такого способа ставим следующее:
sudo aptitude install squeeze thunar-archive-plugin

Собственно это и есть все усилия. Теперь в контекстном меню появятся команды "Создать архив", "Распаковать сюда" и "Распаковать в...".

   С архивами более-менее разобрались, теперь сделаем OSD индикацию уровня громкости. Который будет выглядеть так:

Сначала ставим пакет aosd_cat:
sudo aptitude install aosd_cat

Затем создаем скрипт (скрипт не мой, найден в инете, я лишь прокомментирую некоторые его строки), обзываем его aosd_volume, делаем исполняемым и отправляем в /usr/bin.

Сам скрипт выглядит следующим образом:


#!/bin/bash
#================================================================================
### mixer-osd
## Modified from the work of jelloir and slapfish on the CrunchBang
## Linux Forums.
#================================================================================

# Некоторые значения, заданные пользователем
MIXERNAME="PCM" # Имя общего регулятора громкости в микшере. У меня это "Master"
GRANULARITY=32 # Приблизительное количество возможных позиций регулятора громкости
FONTSIZE=80 # Размер шрифта, который будет использован для индикации
# Размер шрифта связан с количеством позиций. Изменение одного может повлечь изменение другого

# Получаем максимальное значение регулировок в микшере
LIMIT=$(amixer get $MIXERNAME | grep "Limits" | awk '{print $5}')

# Устанавливаем шаг изменения громкости, основываясь на количестве позиций (GRANULARITY)
let VOLINC=LIMIT/GRANULARITY
let volmod=LIMIT%GRANULARITY
let threshold=GRANULARITY/2
if [ $volmod -gt $threshold ]; then
   let VOLINC=VOLINC+1
fi

# Команды управления
case $1 in

   volup) (amixer set $MIXERNAME $VOLINC+) ;;

   voldown) (amixer set $MIXERNAME $VOLINC-) ;;

   mute) (amixer set $MIXERNAME toggle) ;;

   *)
      echo "Usage: $0 { volup | voldown | mute }"
      exit
      ;;

esac

# Определяем режим приглушения звука и устанавливаем цвет OSD индикации
MUTESTATUS=$(amixer get $MIXERNAME | grep "Left:" | awk '{print $4}' | tr -d '[]')

if [ $MUTESTATUS == "off" ]; then
   OSDCOLOR=red; else
   OSDCOLOR=green
fi

# Создаем полоску индикации из символов "I", основываясь на количестве шагов регулировки в микшере
volset=$(amixer get $MIXERNAME | grep "Left:" | awk '{print $4}')

let volcounter=volset/$VOLINC
if [ $volcounter -gt $GRANULARITY ]; then
   volcounter=$GRANULARITY
fi

OSDI="" # Здесь я для себя добавила приставку "Vol: "

while [ $volcounter -gt 0 ]
do
   OSDI=`echo $OSDI"I"`
   let volcounter=volcounter-1
done

# Убиваем любые запущенные aosd_cat процессы
killall aosd_cat &> /dev/null

# Выводим полоску индикации из символов "I"
echo "$OSDI" | aosd_cat -n "Arial Black $FONTSIZE" -u 1000 -o 200 -R $OSDCOLOR -S none -f 0 -y -10

# END



   И еще некоторые комментарии вдогонку.
   В "командах управления" вам нужно указать команды вашего микшера вместо того, что я выделила жирным:
;volup) (amixer set $MIXERNAME $VOLINC+) ;;
У меня, например команда такая:
;volup) (amixer -q sset $MIXERNAME $VOLINC+) ;;

   В этой строке:
MUTESTATUS=$(amixer get $MIXERNAME | grep "Left:" | awk '{print $4}' | tr -d '[]')
мне пришлось заменить выделенное на Front Left: и print $7
Узнать нужное значение можно командой:
amixer get Master

Нас интересуют следующая строчка:
  Front Left: Playback 31 [100%] [0.00dB] [on]
Каждый подчеркнутый элемент являет собой отдельное значение. Таким образом у меня их всего 7 и нужное нам значение статуса ([on] [off]) идет 7-м по счету.

   Строки:
OSDCOLOR=red; else
OSDCOLOR=green
означают, что в обычном режиме полоска индикации зеленого цвета, в режиме приглушения звука - красного. Так же допустимо использование синего цвета: blue.

   Что же касается параметров в этой строке:
echo "$OSDI" | aosd_cat -n "Arial Black $FONTSIZE" -u 1000 -o 200 -R $OSDCOLOR -S none -f 0 -y -10
то они следующие:
-n - задает шрифт
-u - время отображения информации на экране, после полного появления
-o - время плавного исчезновения
-f - время плавного появления
-R - цвет отображаемой информации
-S - цвет тени
-y - смещение положения выводимого текста по оси Y
-x - смещение положения выводимого текста по оси X

   Осталось только прицепить этот скрипт к клавишам управления громкостью, которые мы задали ранее с помощью xbindkeys. Открываем файлик ~/.xbindkeysrc и исправляем наши команды управления громкостью на:
"aosd_volume volup" - увеличение громкости
"aosd_volume voldown" - уменьшение громкости
"aosd_volume mute" - приглушение звука

   Что еще интересного можно поставить из легких прог? У нас, кажется, до сих пор нет смотрелки для графических файлов, а без нее никуда :) Тут уж, конечно, дело вкуса, но если выбирать легкое, быстрое, удобное и простое, то я рекомендую Mirage. Про него я рассказывала в этом обзоре. Его краткое описание:
Mirage идеально подходит для пользователей, которым не нравится ставить раздутые программы, но которые хотят иметь хороший просмотрщик изображений.

   Для редактирования списка дефолтных приложений, которые будут запускаться при тех или иных действиях, воспользуемся утилитой под названием gAlternatives:
sudo aptitude install galternatives

Наиболее интересные и полезные связки находятся в конце списка в левой части окна и начинаются на x-. Справа можно выбрать к какой команде (приложению) привязать то или иное действие. К примеру, чтобы задать браузер по умолчанию (если их несколько в системе), выбираем в списке слева x-www-browser и в правом окне нужный браузер.

   Лично я нахожу для себя весьма удобным использование "липких записок". В Gnome был такой апплет под названием Sticky notes. Ему на замену меня вполне устроила прога Xpad. Есть в репозитории.
sudo aptitude install xpad

Умеет то же, что и гномовский апплет и чуть больше, выглядит не хуже и имеет неплохой набор настроек.

   Ну а чтобы записки не маячили перед глазами, когда не нужно и не заставляли кликать по трею, чтобы вызвать себя, я запихнула их на слой виджетов Компиза.

   Как я уже упоминала, вместо меню приложений я использую gmrun. Но, возможно, кому-то захочется видеть и пользоваться привычным главным меню. Что ж, никто не мешает осуществить и такое желание ;) Но сделаем так, чтобы его не было видно вообще - ни панелей, ни апплетов, ни DE в придачу. Примерно так:

   Для начала ставим пакет lxpanel:
sudo aptitude install lxpanel

   Затем запускаем одноименной командой и видим обычную панель со всякой фигней от LXDE. Все это не нужно, поэтому заходим в настройки панели, переходим во вкладку "Апплеты панели" и удаляем оттуда все, кроме Меню приложений. Идем во вкладку "Дополнительно" и снимаем галку с опции Зарезервировать место и не закрывать окнами, развернутыми на весь экран. Далее - вкладка "Размещение", выбираем позицию на экране, какая больше нравится, а также устанавливаем размер панели: Ширина 0, Высота минимальная (у меня 16 пикселей). Следующая вкладка "Внешний вид", тут просто выбираем Задать цвет (прозрачность) и ставим полную прозрачность выбранного цвета, то есть 0. На этом настройки панели закончены и можно их закрыть. С экрана исчезнет все, относящееся к панели.
   Осталось задать команду вызова главного меню. Запускаем ccsm и идем в раздел "Общие" -> плагин "Команды" (там, где мы назначали клавиши для вызова gmrun). Во вкладке "Команды" пишем следующую команду в свободной строчке: lxpanelctl menu. Затем, во вкладке "Комбинации клавиш" вешаем эту команду на какую-нибудь комбинацию (обычно в Гноме меню вызывает Alt+F1). А для пущей красоты можно назначить еще и активный край экрана во вкладке "Закрепления грани". У меня меню закреплено в левом нижнем углу, и я назначила такой же активный край для его вызова. Теперь достаточно ткнуть мышкой в угол, чтобы оттуда вылезло главное меню :) Ну, а чтобы избежать ложных срабатываний, назначьте небольшую задержку срабатывания на краях. Сделать это можно в разделе "Общие" -> плагин "Общие настройки" -> вкладка "Общие" -> опция Задержка срабатывания на краю. Только учтите, что эта задержка будет действовать на все активные края.
   Теперь добавим команду lxpanel в наш /usr/bin/autostart.sh, чтобы она запускалась автоматически и можно пользоваться этим сомнительным удобством =) А если вам захочется снова залезть в параметры панели, то просто щелкните правой кнопкой мыши в самом углу, где находится скрытая панель и появится контекстная менюшка. Но, учтите, что если назначен активный край для вызова Главного меню (совмещенный с местом появления этого самого меню), то этот трюк не пройдет, сначала отключите активный угол в Компизе. Иначе он не даст вызвать меню настроек.

Комментариев нет:

Отправить комментарий