Рейтинг@Mail.ru

Наши партнеры





  • невролог спб цены тут
  • odont.ru



Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Работа в консоли Linux

Легковесные программы, распространяемые по свободной лицензии. Часть 1: dwm, dmenu, vim


Автор: Владимир Царьков
Дата публикации: 11.08.2010

Легковесные (lightweight) программы привлекательны по той причине, что, как правило, предсказуемы в работе и бережно относятся к ресурсам компьютера. Исходя из этого, такое программное обеспечение применимо для быстрого решения рутинных вычислительных задач (компьютер --- это вычислитель). Отметим также, что автор этой статьи выбирает исключительно из free/libre software (свободного программного обеспечения). Подробнее о free/libre software см. [ФилософияGNU].

Сегодня опишем пару, ранее не упоминавшихся в литературе, трюков, направленных на быстрое решение рутинных вычислительных задач, средствами оконного менеджера dwm (dynamic window manager), программы для создания меню dmenu, а также текстового редактора vim.

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

dwm

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

Настройка взаимодействия с клавиатурой в dwm осуществляется через файл config.h (копия config.def.h, которую предлагается изменять пользователю).

В Интернет маловато комментариев по поводу содержания config.h, что мешает быстро разобраться с особенностями управления dwm. Оговоримся, что мы отталкиваемся от исходного кода версии 5.8.

Возьмём, к примеру, строку:

dmenu_run --- это имя сценария для командной оболочки (например, GNU BASH --- GNU is not Unix Bourne-Again Shell), лежащего в /usr/bin/ и задуманного для запуска произвольной программы, создающей меню по команде с клавиатуры от пользователя.

Таким образом, нужно самостоятельно создать сценарий, имя которого указать в config.h.

К примеру, создадим файл с именем /usr/bin/menucmd, разрешим его исполнение (chmod 0755 /usr/bin/menucmd) и запишем туда следующий код:

"`dmenu -fn -*-*-medium-*-*-*-20-*-*-*-*-*-iso10646-* < ~/menu`"

В результате, рассмотренная ранее строка из config.h притерпела изменения:

static const char *menucmd[] = { "menucmd", NULL };

Осталось организовать запуск сценария menucmd по нажатию <Alt+P>:

{ MODKEY, XK_p, spawn, {.v = menucmd} },

Отображение кириллицы в dwm можно настроить через объявление константы font[]:

static const char font[] = "-*-*-medium-*-*-*-20-*-*-*-*-*-iso10646-*";

Подразумевается, что системная локаль --- ru_RU.UTF-8.

dmenu

Задача: Построение меню.

В предыдущем разделе мы организовали запуск программы dmenu по нажатию <Alt+P>. Осталось завести в домашнем каталоге файл c именем menu, из которого и будет осуществляться чтение элементов меню. dmenu, получая со стандартного входа последовательности символов, разделённые знаками новой строки, сопоставляет их с именами файлов, хранящихся в таких каталогах, как /usr/bin. И, в случае совпадения, и наличия соответствующих прав доступа на файл, происходит исполнение файла.

Содержимое ~/menu, например, такое:
mlterm
icecat
gimp
oowriter
xine

Лишний символ пробела в строке может сделать элемент меню неработоспособным.

Обычно нет необходимости сочинять сценарии чтения имён файлов из каталога /usr/bin: есть несколько программ с графическим интерфейсом, используемых постоянно, а всё остальное может быть запущено через эмулятор терминала.

vim

Задача: Открытие текстовых файлов в разных кодировках.

В случае, если системная локаль --- ru_RU.UTF-8, а интересующий файл filename закодирован в KOI8-R, редактировать его в vim без дополнительной подготовки не получится.

Каждый раз в интерпретаторе команд вручную вводить что-то вроде vim -c "edit ++enc=koi8-r" filename --- лишняя работа. Поэтому, добавим в ~/.bashrc следующие строки (Подразумевается использование bash. Подробнее см: [gnu-bash], [Cooper].):
export o1='edit'
export o2='++enc=koi8-r'
export vc='vim -c'
export koi="$vc$o1$o2"

В результате, по команде $koi filename, в читабельном виде откроется текстовый файл в кодировке KOI8-R.

Очевидно, что похожим образом удобно задать все часто используемые кодировки символов.

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

Рекомендуемая литература

Если вам понравилась статья, поделитесь ею с друзьями: