SPECTRWM(1)

НАЗВАНИЕ
spectrwm - Оконный менеджер для X11

ИСПОЛЬЗОВАНИЕ
spectrwm

ОПИСАНИЕ
spectrwm это минималистичный менеджер окон, ставящий своей целью не мешать вам и не занимать ценное пространство экрана. Его настройки по-умолчанию разумны и, кроме того, он не требует знания языков программирования для работы с конфигурационным файлом. Он написан хакерами для хакеров и старается быть легким, компактным и быстрым.

Когда spectrwm запускается, он читает настройки из своего конфигурационного файла, spectrwm.conf. Смотрите секцию КОНФИГУРАЦИОННЫЕ ФАЙЛЫ ниже.

На этой странице используются следующие обозначения:

M   Мета-клавиша
S   Shift
<Name>
    Имя клавиши
M1  Кнопка мыши 1
M3  Кнопка мыши 3

spectrwm должен быть понятным и очевидным. Большинство действий выполняется комбинациями клавиш. Смотрите секцию ПРИВЯЗКИ ниже, чтобы узнать о стандартных настройках.

КОНФИГУРАЦИОННЫЕ ФАЙЛЫ
spectrwm пытается прочитать файл в домашнем каталоге, ~/.spectrwm.conf. В случае, если он недоступен, происходит обращение к глобальному файлу настроек, /etc/spectrwm.conf.

Формат файла следующий: ключ = значение. Например:

    color_focus = red

Однозначное включение и выключение задается значениями 1 и 0.

Поддерживаются следующие ключевые слова:

color_focus
    Цвет рамки окна в фокусе.
color_unfocus
    Цвет рамки окон не в фокусе.
bar_enabled
    Включение статусной строки.
bar_border[x]
    Цвет рамки статусной строки x.
bar_color[x]
    Цвет статусной строки x.
bar_font_color[x]
    Цвет шрифта статусной строки x.
bar_font
    Тип шрифта статусной строки.
bar_action
    Внешний файл скрипта для статусной строки, выводящий туда информацию, например, уровень заряда батарей.
stack_enabled
    Включить отображение способа укладки окон в статусной строке.
clock_enabled
    Включить часы в статусной строке. Можно отключить, установив 0, и Вы сможете использовать собственные часы из внешнего скрипта.
dialog_ratio
    Ряд приложений имеет слишком маленькие диалоговые окна. Это значение - доля размера экрана, к которой они будут приведены. Например, значение 0.6 будет соответствовать 60% от реального размера экрана.
region
    Выделяет область экрана на Ваше усмотрение, уничтожает все перекрытые области экрана, определенные автоматически. Формат: screen[<idx>]:WIDTHxHEIGHT+X+Y, например screen[1]:1280x800+0+0.
term_width
    Установить минимальную допустимую ширину эмулятора терминала. Если это значение больше 0, spectrwm попытается отмасштабировать шрифты в терминале, чтобы ширина была больше этого значения Поодерживается только xterm(1) Также xterm(1) не может быть с setuid или setgid, хотя это так на многих системах. Возможно необходимо задать program[term] (Смотрите секцию ПРОГРАММЫ ) чтобы использовалась другая копия xterm(1) без заданного бита setgid.
title_class_enabled
    Отображать класс окна в статусной строке. Обычно выключено
title_name_enabled
    Отображать заголовок окна в статусной строке. Обычно выключено
modkey
    Назначить Мета-клавишу, клавишу-модификатор. Mod1 соответствует клавише ALT, а Mod4 соответствует клавише WIN на PC.
program[p]
    Добавить пользовательскую программу для назначения привязки p. Смотрите секцию ПРОГРАММЫ ниже.
bind[x]
    Назначить привязку на действие x. Смотрите секцию ПРИВЯЗКИ ниже.
quirk[c:n]
    Добавить костыль для окон с классом c и именем n. Смотрите секцию КОСТЫЛИ ниже.

Цвета задаются с помощью XQueryColor(3) А шрифты задаются с использованием XQueryFont(3)

ПРОГРАММЫ
spectrwm позволяет Вам добавлять Ваши собственные действия для запуска программ и делать к ним привязки как ко всем остальным действиям Смотрите секцию ПРИВЯЗКИ ниже.

Стандартные программы:

term
    xterm
screenshot_all
    screenshot.sh full
screenshot_wind
    screenshot.sh window
lock
    xlock
initscr
    initscreen.sh
menu
    dmenu_run -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_border -sf $bar_color

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

    program[<name>] = <progpath> [<arg> [... <arg>]]

<name> это любой идентификатор, не мешающийся с уже существующими, <progpath> это собственно путь к программе, <arg> это список передаваемых аргументов или оставьте пустым.

Следующие переменные можно получать из spectrwm (Смотрите секцию КОНФИГУРАЦИОННЫЕ ФАЙЛЫ выше), и их можно использовать как <arg> (в момент запуска программы будет выполнена подстановка значений):

$bar_border
$bar_color
$bar_font
$bar_font_color
$color_focus
$color_unfocus

Например:

    program[ff] = /usr/local/bin/firefox http://spectrwm.org/
    bind[ff] = Mod+f # Значит Mod+F запускает firefox

Чтобы отменить назначение:

    bind[] = Mod+f
    program[ff] =

ПРИВЯЗКИ
spectrwm предоставляет доступ к действиям с помощью клавиатурных комбинаций.

Установленные привязки для мыши:

M1  Сфокусироваться на окне
M-M1
    Переместить окно
M-M3
    Изменить размер окна
M-S-M3
    Изменить размер окна, удерживая его в центре

Стандартные клавиатурные привязки:

M-S-<Return>
    term
M-p menu
M-S-q
    quit
M-q restart spectrwm
M-<Space>
    cycle_layout
M-S-<Space>
    reset_layout
M-h master_shrink
M-l master_grow
M-, master_add
M-. master_del
M-S-,
    stack_inc
M-S-.
    stack_del
M-<Return>
    swap_main
    M-j, M-<TAB> focus_next
    M-k, M-S-<TAB> focus_prev
M-m focus_main
M-S-j
    swap_next
M-S-k
    swap_prev
M-b bar_toggle
M-x wind_del
M-S-x
    wind_kill
M-<n>
    ws_n
M-S-<n>
    mvws_n
M-<Right>
    ws_next
M-<Left>
    ws_prev
M-S-<Right>
    screen_next
M-S-<Left>
    screen_prev
M-s screenshot_all
M-S-s
    screenshot_wind
M-S-v
    version
M-t float_toggle
M-S <Delete>
    lock
M-S-i
    initscr

Описания действий перечислены ниже:

term
    Запустить эмулятор терминала (Смотрите секцию ПРОГРАММЫ выше)
menu
    Меню (Смотрите секцию ПРОГРАММЫ выше)
quit
    Выйти spectrwm
restart
    Перезапустить spectrwm
cycle_layout
    Менять укладку окон
reset_layout
    Стандартная укладка
master_shrink
    Сжать область главного окна
master_grow
    Расширить область главного окна
master_add
    Добавить окна в главную область
master_del
    Убрать окна из главной области
stack_inc
    Увеличить число столбцов или рядов в текущей укладке
stack_del
    Уменьшить число столбцов или рядов в текущей укладке
swap_main
    Отправить текущее окно в главную область, сделать главным
focus_next
    Фокусироваться на следующем окне
focus_prev
    Фокусироваться на предыдущем окне
focus_main
    Фокусироваться на главном окне
swap_next
    Поменять со следующим окном
swap_prev
    Поменять со предыдущим окном
bar_toggle
    Выключить статусную строку на всех рабочих столах
wind_del
    Закрыть фокусированное окно
wind_kill
    Грохнуть фокусированное окно
ws_n
    Переключиться на рабочий стол n, где n от 1 до 10
mvws_n
    Переместить фокусированное окно в рабочий стол n, где n от 1 до 10
ws_next
    Перейти к следующему не пустому рабочему столу
ws_prev
    Перейти к следующему не пустому рабочему столу
screen_next
    Переместить указатель в следующую область
screen_prev
    Переместить указатель в следующую область
screenshot_all
    Сделать снимок всего экрана (если возможно) (Смотрите секцию ПРОГРАММЫ выше)
screenshot_wind
    Сделать снимок окна (если возможно) (Смотрите секцию ПРОГРАММЫ выше)
version
    Показать версию в статусной строке
float_toggle
    Переключить окно в фокусе в плавающий режим, float
lock
    Заблокировать экран (Смотрите секцию ПРОГРАММЫ выше)
initscr
    Инициализировать экран еще раз (Смотрите секцию ПРОГРАММЫ выше)

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

    bind[<action>] = <keys>

<action> это действие из списка программ <keys> это не более одной клавиши-модификатора (MOD, Mod1, Shift, и.т.п.) и обычные клавиши (b, space, и.т.п.), разделенные "+". Например:

    bind[reset] = Mod4+q # назначить WIN + q на действие reset
    bind[] = Mod1+q # снять все действия с Alt + q

На одно действие можно назначить несколько комбинаций.

КОСТЫЛИ
spectrwm позволяет настроить костыли, нужные для специальной работы spectrwm с рядом приложений, который вы определяете сами. То есть, Вы можете принудительно установить способ тайлинга для какого-нибудь приложения

Список стандартных костылей:

Firefox-bin:firefox-bin
    TRANSSZ
Firefox:Dialog
    FLOAT
Gimp:gimp
    FLOAT + ANYWHERE
MPlayer:xv
    FLOAT + FULLSCREEN
OpenOffice.org 2.4:VCLSalFrame
    FLOAT
OpenOffice.org 3.1:VCLSalFrame
    FLOAT
pcb:pcb
    FLOAT
xine:Xine Window
    FLOAT + ANYWHERE
xine:xine Panel
    FLOAT + ANYWHERE
xine:xine Video Fullscreen Window
    FULLSCREEN + FLOAT
Xitk:Xitk Combo
    FLOAT + ANYWHERE
Xitk:Xine Window
    FLOAT + ANYWHERE
XTerm:xterm
    XTERM_FONTADJ

Описание:

FLOAT
    Такое окно не нужно тайлить вообще, разрешить ему float
TRANSSZ
    Тразиентое окно (Смотрите секцию КОНФИГУРАЦИОННЫЕ ФАЙЛЫ).
ANYWHERE
    Позволить окну самостоятельно выбрать местоположение
XTERM_FONTADJ
    Изменять шрифты xterm при изменении размеров окна
FULLSCREEN
    Позволить окну запускаться в полноэкранном режиме

Назначать костыли можно следующим образом:

    quirk[<class>:<name>] = <quirk> [+ <quirk> ...]

<class> и <name> определяют к какому окну будет применяться костыль, а <quirk> один из вышеперечисленных способов. Например:

    quirk[MPlayer:xv] = FLOAT + FULLSCREEN # mplayer настроен
    quirk[pcb:pcb] = NONE  # убрать существующий костыль

Вы можете узнать <class> и <name> запустив xprop и нажав в интересующее окно. Вот как будет выглядеть вывод для Firefox:

    $ xprop | grep WM_CLASS
    WM_CLASS(STRING) = "Navigator", "Firefox"

Обратите внимание, класс и имя меняются местами, правильный костыль будет выглядеть так:

    quirk[Firefox:Navigator] = FLOAT

ФАЙЛЫ
~/.spectrwm.conf
    spectrwm Личные настройки пользователя.
/etc/spectrwm.conf
    spectrwm Глобавльные настройки.

ИСТОРИЯ
spectrwm идейно основан на dwm и xmonad

АВТОРЫ
-nosplit

spectrwm написан: Marco Peereboom <marco@peereboom.us>, Ryan Thomas McBride <mcbride@countersiege.com> and Darrin Chandler <dwchandler@stilyagin.com>.

БАГИ
При вызове меню с помощью M-p, необходима корректная работа dmenu.