mirror of
https://github.com/vale981/spectrwm
synced 2025-03-04 17:31:40 -05:00

Old code called alarm() regularly and checked for input only at certain times. Now, the file descriptor for reading the text is added to the select() in the main loop, and so updates are caught immediately and efficiently. Patch submitted by Jason Woofenden <jason@jasonwoof.com> (Note: Minor modifications were made to formatting and a dummy version of the bar_delay option was added to avoid breaking old conf files.)
555 lines
18 KiB
Groff
555 lines
18 KiB
Groff
.\" Copyright (c) 2009 Marco Peereboom <marco@peereboom.us>
|
||
.\" Copyright (c) 2009 Darrin Chandler <dwchandler@stilyagin.com>
|
||
.\"
|
||
.\" Permission to use, copy, modify, and distribute this software for any
|
||
.\" purpose with or without fee is hereby granted, provided that the above
|
||
.\" copyright notice and this permission notice appear in all copies.
|
||
.\"
|
||
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||
.\"
|
||
.Dd $Mdocdate$
|
||
.Dt SPECTRWM 1
|
||
.Os
|
||
.Sh НАЗВАНИЕ
|
||
.Nm spectrwm
|
||
.Nd Оконный менеджер для X11
|
||
.Sh ИСПОЛЬЗОВАНИЕ
|
||
.Nm spectrwm
|
||
.Sh ОПИСАНИЕ
|
||
.Nm
|
||
это минималистичный менеджер окон, ставящий своей целью не мешать вам и не
|
||
занимать ценное пространство экрана. Его настройки по-умолчанию разумны и,
|
||
кроме того, он не требует знания языков программирования для работы с
|
||
конфигурационным файлом. Он написан хакерами для хакеров и старается быть
|
||
легким, компактным и быстрым.
|
||
.Pp
|
||
Когда
|
||
.Nm
|
||
запускается, он читает настройки из своего конфигурационного файла,
|
||
.Pa spectrwm.conf .
|
||
Смотрите секцию
|
||
.Sx КОНФИГУРАЦИОННЫЕ ФАЙЛЫ
|
||
ниже.
|
||
.Pp
|
||
На этой странице используются следующие обозначения:
|
||
.Pp
|
||
.Bl -tag -width Ds -offset indent -compact
|
||
.It Cm M
|
||
Мета-клавиша
|
||
.It Cm S
|
||
Shift
|
||
.It Aq Cm Name
|
||
Имя клавиши
|
||
.It Cm M1
|
||
Кнопка мыши 1
|
||
.It Cm M3
|
||
Кнопка мыши 3
|
||
.El
|
||
.Pp
|
||
.Nm
|
||
должен быть понятным и очевидным.
|
||
Большинство действий выполняется комбинациями клавиш.
|
||
Смотрите секцию
|
||
.Sx ПРИВЯЗКИ
|
||
ниже, чтобы узнать о стандартных настройках.
|
||
.Sh КОНФИГУРАЦИОННЫЕ ФАЙЛЫ
|
||
.Nm
|
||
пытается прочитать файл в домашнем каталоге,
|
||
.Pa ~/.spectrwm.conf .
|
||
В случае, если он недоступен,
|
||
происходит обращение к глобальному файлу настроек,
|
||
.Pa /etc/spectrwm.conf .
|
||
.Pp
|
||
Формат файла следующий: \*(Ltключ\*(Gt = \*(Ltзначение\*(Gt.
|
||
Например:
|
||
.Pp
|
||
.Dl color_focus = red
|
||
.Pp
|
||
Однозначное включение и выключение задается значениями 1 и 0.
|
||
.Pp
|
||
Поддерживаются следующие ключевые слова:
|
||
.Pp
|
||
.Bl -tag -width "title_class_enabledXXX" -offset indent -compact
|
||
.It Cm color_focus
|
||
Цвет рамки окна в фокусе.
|
||
.It Cm color_unfocus
|
||
Цвет рамки окон не в фокусе.
|
||
.It Cm bar_enabled
|
||
Включение статусной строки.
|
||
.It Cm bar_border Ns Bq Ar x
|
||
Цвет рамки статусной строки
|
||
.Ar x .
|
||
.It Cm bar_color Ns Bq Ar x
|
||
Цвет статусной строки
|
||
.Ar x .
|
||
.It Cm bar_font_color Ns Bq Ar x
|
||
Цвет шрифта статусной строки
|
||
.Ar x .
|
||
.It Cm bar_font
|
||
Тип шрифта статусной строки.
|
||
.It Cm bar_action
|
||
Внешний файл скрипта для статусной строки, выводящий туда информацию,
|
||
например, уровень заряда батарей.
|
||
.It Cm stack_enabled
|
||
Включить отображение способа укладки окон в статусной строке.
|
||
.It Cm clock_enabled
|
||
Включить часы в статусной строке.
|
||
Можно отключить, установив 0, и Вы сможете использовать
|
||
собственные часы из внешнего скрипта.
|
||
.It Cm dialog_ratio
|
||
Ряд приложений имеет слишком маленькие диалоговые окна.
|
||
Это значение - доля размера экрана, к которой они будут приведены.
|
||
Например, значение 0.6 будет соответствовать 60% от реального размера экрана.
|
||
.It Cm region
|
||
Выделяет область экрана на Ваше усмотрение, уничтожает все перекрытые области
|
||
экрана, определенные автоматически.
|
||
Формат: screen[<idx>]:WIDTHxHEIGHT+X+Y,
|
||
например\& screen[1]:1280x800+0+0.
|
||
.It Cm term_width
|
||
Установить минимальную допустимую ширину эмулятора терминала.
|
||
Если это значение больше 0,
|
||
.Nm
|
||
попытается отмасштабировать шрифты в терминале, чтобы ширина
|
||
была больше этого значения
|
||
.
|
||
Поодерживается только
|
||
.Xr xterm 1
|
||
.
|
||
Также
|
||
.Xr xterm 1
|
||
не может быть с setuid или setgid, хотя это так на многих системах.
|
||
Возможно необходимо задать program[term] (Смотрите секцию
|
||
.Sx ПРОГРАММЫ
|
||
) чтобы использовалась другая копия
|
||
.Xr xterm 1
|
||
без заданного бита setgid.
|
||
.It Cm title_class_enabled
|
||
Отображать класс окна в статусной строке.
|
||
Обычно выключено
|
||
.It Cm title_name_enabled
|
||
Отображать заголовок окна в статусной строке.
|
||
Обычно выключено
|
||
.It Cm modkey
|
||
Назначить Мета-клавишу, клавишу-модификатор.
|
||
Mod1 соответствует клавише ALT, а Mod4 соответствует клавише WIN на PC.
|
||
.It Cm program Ns Bq Ar p
|
||
Добавить пользовательскую программу для назначения привязки
|
||
.Ar p .
|
||
Смотрите секцию
|
||
.Sx ПРОГРАММЫ
|
||
ниже.
|
||
.It Cm bind Ns Bq Ar x
|
||
Назначить привязку на действие
|
||
.Ar x .
|
||
Смотрите секцию
|
||
.Sx ПРИВЯЗКИ
|
||
ниже.
|
||
.It Cm quirk Ns Bq Ar c:n
|
||
Добавить костыль для окон с классом
|
||
.Ar c
|
||
и именем
|
||
.Ar n .
|
||
Смотрите секцию
|
||
.Sx КОСТЫЛИ
|
||
ниже.
|
||
.El
|
||
.Pp
|
||
Цвета задаются с помощью
|
||
.Xr XQueryColor 3
|
||
А шрифты задаются с использованием
|
||
.Xr XQueryFont 3
|
||
.
|
||
.Sh ПРОГРАММЫ
|
||
.Nm
|
||
позволяет Вам добавлять Ваши собственные действия для запуска
|
||
программ и делать к ним привязки как ко всем остальным действиям
|
||
Смотрите секцию
|
||
.Sx ПРИВЯЗКИ
|
||
ниже.
|
||
.Pp
|
||
Стандартные программы:
|
||
.Pp
|
||
.Bl -tag -width "screenshot_wind" -offset indent -compact
|
||
.It Cm term
|
||
xterm
|
||
.It Cm screenshot_all
|
||
screenshot.sh full
|
||
.It Cm screenshot_wind
|
||
screenshot.sh window
|
||
.It Cm lock
|
||
xlock
|
||
.It Cm initscr
|
||
initscreen.sh
|
||
.It Cm menu
|
||
dmenu_run \-fn $bar_font \-nb $bar_color \-nf $bar_font_color \-sb $bar_border \-sf $bar_color
|
||
.El
|
||
.Pp
|
||
Ваши собственные программы задаются следующим образом:
|
||
.Pp
|
||
.Dl program[<name>] = <progpath> [<arg> [... <arg>]]
|
||
.Pp
|
||
.Aq name
|
||
это любой идентификатор, не мешающийся с уже существующими,
|
||
.Aq progpath
|
||
это собственно путь к программе,
|
||
.Aq arg
|
||
это список передаваемых аргументов или оставьте пустым.
|
||
.Pp
|
||
Следующие переменные можно получать из
|
||
.Nm
|
||
(Смотрите секцию
|
||
.Sx КОНФИГУРАЦИОННЫЕ ФАЙЛЫ
|
||
выше),
|
||
и их можно использовать как
|
||
.Aq arg
|
||
(в момент запуска программы будет выполнена подстановка значений):
|
||
.Pp
|
||
.Bl -tag -width "$bar_font_color" -offset indent -compact
|
||
.It Cm $bar_border
|
||
.It Cm $bar_color
|
||
.It Cm $bar_font
|
||
.It Cm $bar_font_color
|
||
.It Cm $color_focus
|
||
.It Cm $color_unfocus
|
||
.El
|
||
.Pp
|
||
Например:
|
||
.Bd -literal -offset indent
|
||
program[ff] = /usr/local/bin/firefox http://spectrwm.org/
|
||
bind[ff] = Mod+f # Значит Mod+F запускает firefox
|
||
.Ed
|
||
.Pp
|
||
Чтобы отменить назначение:
|
||
.Bd -literal -offset indent
|
||
bind[] = Mod+f
|
||
program[ff] =
|
||
.Ed
|
||
.Pp
|
||
.Sh ПРИВЯЗКИ
|
||
.Nm
|
||
предоставляет доступ к действиям с помощью клавиатурных комбинаций.
|
||
.Pp
|
||
Установленные привязки для мыши:
|
||
.Pp
|
||
.Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
|
||
.It Cm M1
|
||
Сфокусироваться на окне
|
||
.It Cm M-M1
|
||
Переместить окно
|
||
.It Cm M-M3
|
||
Изменить размер окна
|
||
.It Cm M-S-M3
|
||
Изменить размер окна, удерживая его в центре
|
||
.El
|
||
.Pp
|
||
Стандартные клавиатурные привязки:
|
||
.Pp
|
||
.Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
|
||
.It Cm M-S- Ns Aq Cm Return
|
||
term
|
||
.It Cm M-p
|
||
menu
|
||
.It Cm M-S-q
|
||
quit
|
||
.It Cm M-q
|
||
restart
|
||
.Nm
|
||
.It Cm M- Ns Aq Cm Space
|
||
cycle_layout
|
||
.It Cm M-S- Ns Aq Cm Space
|
||
reset_layout
|
||
.It Cm M-h
|
||
master_shrink
|
||
.It Cm M-l
|
||
master_grow
|
||
.It Cm M-,
|
||
master_add
|
||
.It Cm M-.
|
||
master_del
|
||
.It Cm M-S-,
|
||
stack_inc
|
||
.It Cm M-S-.
|
||
stack_del
|
||
.It Cm M- Ns Aq Cm Return
|
||
swap_main
|
||
.It Xo
|
||
.Cm M-j ,
|
||
.Cm M- Ns Aq Cm TAB
|
||
.Xc
|
||
focus_next
|
||
.It Xo
|
||
.Cm M-k ,
|
||
.Cm M-S- Ns Aq Cm TAB
|
||
.Xc
|
||
focus_prev
|
||
.It Cm M-m
|
||
focus_main
|
||
.It Cm M-S-j
|
||
swap_next
|
||
.It Cm M-S-k
|
||
swap_prev
|
||
.It Cm M-b
|
||
bar_toggle
|
||
.It Cm M-x
|
||
wind_del
|
||
.It Cm M-S-x
|
||
wind_kill
|
||
.It Cm M- Ns Aq Ar n
|
||
.Ns ws_ Ns Ar n
|
||
.It Cm M-S- Ns Aq Ar n
|
||
.Ns mvws_ Ns Ar n
|
||
.It Cm M- Ns Aq Cm Right
|
||
ws_next
|
||
.It Cm M- Ns Aq Cm Left
|
||
ws_prev
|
||
.It Cm M-S- Ns Aq Cm Right
|
||
screen_next
|
||
.It Cm M-S- Ns Aq Cm Left
|
||
screen_prev
|
||
.It Cm M-s
|
||
screenshot_all
|
||
.It Cm M-S-s
|
||
screenshot_wind
|
||
.It Cm M-S-v
|
||
version
|
||
.It Cm M-t
|
||
float_toggle
|
||
.It Cm M-S Aq Cm Delete
|
||
lock
|
||
.It Cm M-S-i
|
||
initscr
|
||
.El
|
||
.Pp
|
||
Описания действий перечислены ниже:
|
||
.Pp
|
||
.Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
|
||
.It Cm term
|
||
Запустить эмулятор терминала
|
||
(Смотрите секцию
|
||
.Sx ПРОГРАММЫ
|
||
выше)
|
||
.It Cm menu
|
||
Меню
|
||
(Смотрите секцию
|
||
.Sx ПРОГРАММЫ
|
||
выше)
|
||
.It Cm quit
|
||
Выйти
|
||
.Nm
|
||
.It Cm restart
|
||
Перезапустить
|
||
.Nm
|
||
.It Cm cycle_layout
|
||
Менять укладку окон
|
||
.It Cm reset_layout
|
||
Стандартная укладка
|
||
.It Cm master_shrink
|
||
Сжать область главного окна
|
||
.It Cm master_grow
|
||
Расширить область главного окна
|
||
.It Cm master_add
|
||
Добавить окна в главную область
|
||
.It Cm master_del
|
||
Убрать окна из главной области
|
||
.It Cm stack_inc
|
||
Увеличить число столбцов или рядов в текущей укладке
|
||
.It Cm stack_del
|
||
Уменьшить число столбцов или рядов в текущей укладке
|
||
.It Cm swap_main
|
||
Отправить текущее окно в главную область, сделать главным
|
||
.It Cm focus_next
|
||
Фокусироваться на следующем окне
|
||
.It Cm focus_prev
|
||
Фокусироваться на предыдущем окне
|
||
.It Cm focus_main
|
||
Фокусироваться на главном окне
|
||
.It Cm swap_next
|
||
Поменять со следующим окном
|
||
.It Cm swap_prev
|
||
Поменять со предыдущим окном
|
||
.It Cm bar_toggle
|
||
Выключить статусную строку на всех рабочих столах
|
||
.It Cm wind_del
|
||
Закрыть фокусированное окно
|
||
.It Cm wind_kill
|
||
Грохнуть фокусированное окно
|
||
.It Cm ws_ Ns Ar n
|
||
Переключиться на рабочий стол
|
||
.Ar n ,
|
||
где
|
||
.Ar n
|
||
от 1 до 10
|
||
.It Cm mvws_ Ns Ar n
|
||
Переместить фокусированное окно в рабочий стол
|
||
.Ar n ,
|
||
где
|
||
.Ar n
|
||
от 1 до 10
|
||
.It Cm ws_next
|
||
Перейти к следующему не пустому рабочему столу
|
||
.It Cm ws_prev
|
||
Перейти к следующему не пустому рабочему столу
|
||
.It Cm screen_next
|
||
Переместить указатель в следующую область
|
||
.It Cm screen_prev
|
||
Переместить указатель в следующую область
|
||
.It Cm screenshot_all
|
||
Сделать снимок всего экрана (если возможно)
|
||
(Смотрите секцию
|
||
.Sx ПРОГРАММЫ
|
||
выше)
|
||
.It Cm screenshot_wind
|
||
Сделать снимок окна (если возможно)
|
||
(Смотрите секцию
|
||
.Sx ПРОГРАММЫ
|
||
выше)
|
||
.It Cm version
|
||
Показать версию в статусной строке
|
||
.It Cm float_toggle
|
||
Переключить окно в фокусе в плавающий режим, float
|
||
.It Cm lock
|
||
Заблокировать экран
|
||
(Смотрите секцию
|
||
.Sx ПРОГРАММЫ
|
||
выше)
|
||
.It Cm initscr
|
||
Инициализировать экран еще раз
|
||
(Смотрите секцию
|
||
.Sx ПРОГРАММЫ
|
||
выше)
|
||
.El
|
||
.Pp
|
||
Собственные привязки назначаются следующим образом:
|
||
.Pp
|
||
.Dl bind[<action>] = <keys>
|
||
.Pp
|
||
.Aq action
|
||
это действие из списка программ
|
||
.Aq keys
|
||
это не более одной клавиши-модификатора
|
||
(MOD, Mod1, Shift, и.т.п.) и обычные клавиши
|
||
(b, space, и.т.п.), разделенные "+".
|
||
Например:
|
||
.Bd -literal -offset indent
|
||
bind[reset] = Mod4+q # назначить WIN + q на действие reset
|
||
bind[] = Mod1+q # снять все действия с Alt + q
|
||
.Ed
|
||
.Pp
|
||
На одно действие можно назначить несколько комбинаций.
|
||
.Sh КОСТЫЛИ
|
||
.Nm
|
||
позволяет настроить костыли, нужные для специальной работы spectrwm
|
||
с рядом приложений, который вы определяете сами. То есть, Вы можете
|
||
принудительно установить способ тайлинга для какого-нибудь приложения
|
||
.Pp
|
||
Список стандартных костылей:
|
||
.Pp
|
||
.Bl -tag -width "OpenOffice.org N.M:VCLSalFrame<TAB>XXX" -offset indent -compact
|
||
.It Firefox\-bin:firefox\-bin
|
||
TRANSSZ
|
||
.It Firefox:Dialog
|
||
FLOAT
|
||
.It Gimp:gimp
|
||
FLOAT + ANYWHERE
|
||
.It MPlayer:xv
|
||
FLOAT + FULLSCREEN
|
||
.It OpenOffice.org 2.4:VCLSalFrame
|
||
FLOAT
|
||
.It OpenOffice.org 3.1:VCLSalFrame
|
||
FLOAT
|
||
.It pcb:pcb
|
||
FLOAT
|
||
.It xine:Xine Window
|
||
FLOAT + ANYWHERE
|
||
.It xine:xine Panel
|
||
FLOAT + ANYWHERE
|
||
.It xine:xine Video Fullscreen Window
|
||
FULLSCREEN + FLOAT
|
||
.It Xitk:Xitk Combo
|
||
FLOAT + ANYWHERE
|
||
.It Xitk:Xine Window
|
||
FLOAT + ANYWHERE
|
||
.It XTerm:xterm
|
||
XTERM_FONTADJ
|
||
.El
|
||
.Pp
|
||
Описание:
|
||
.Pp
|
||
.Bl -tag -width "XTERM_FONTADJ<TAB>XXX" -offset indent -compact
|
||
.It FLOAT
|
||
Такое окно не нужно тайлить вообще, разрешить ему float
|
||
.It TRANSSZ
|
||
Тразиентое окно
|
||
(Смотрите секцию
|
||
.Sx КОНФИГУРАЦИОННЫЕ ФАЙЛЫ) .
|
||
.It ANYWHERE
|
||
Позволить окну самостоятельно выбрать местоположение
|
||
.It XTERM_FONTADJ
|
||
Изменять шрифты xterm при изменении размеров окна
|
||
.It FULLSCREEN
|
||
Позволить окну запускаться в полноэкранном режиме
|
||
.El
|
||
.Pp
|
||
Назначать костыли можно следующим образом:
|
||
.Pp
|
||
.Dl quirk[<class>:<name>] = <quirk> [ + <quirk> ... ]
|
||
.Pp
|
||
.Aq class
|
||
и
|
||
.Aq name
|
||
определяют к какому окну будет применяться костыль, а
|
||
.Aq quirk
|
||
один из вышеперечисленных способов.
|
||
Например:
|
||
.Bd -literal -offset indent
|
||
quirk[MPlayer:xv] = FLOAT + FULLSCREEN # mplayer настроен
|
||
quirk[pcb:pcb] = NONE # убрать существующий костыль
|
||
.Ed
|
||
.Pp
|
||
Вы можете узнать
|
||
.Aq class
|
||
и
|
||
.Aq name
|
||
запустив xprop и нажав в интересующее окно.
|
||
Вот как будет выглядеть вывод для Firefox:
|
||
.Bd -literal -offset indent
|
||
$ xprop | grep WM_CLASS
|
||
WM_CLASS(STRING) = "Navigator", "Firefox"
|
||
.Ed
|
||
.Pp
|
||
Обратите внимание, класс и имя меняются местами,
|
||
правильный костыль будет выглядеть так:
|
||
.Bd -literal -offset indent
|
||
quirk[Firefox:Navigator] = FLOAT
|
||
.Ed
|
||
.Sh ФАЙЛЫ
|
||
.Bl -tag -width "/etc/spectrwm.confXXX" -compact
|
||
.It Pa ~/.spectrwm.conf
|
||
.Nm
|
||
Личные настройки пользователя.
|
||
.It Pa /etc/spectrwm.conf
|
||
.Nm
|
||
Глобавльные настройки.
|
||
.El
|
||
.Sh ИСТОРИЯ
|
||
.Nm
|
||
идейно основан на dwm и xmonad
|
||
.Sh АВТОРЫ
|
||
.An -nosplit
|
||
.Pp
|
||
.Nm
|
||
написан:
|
||
.An Marco Peereboom Aq marco@peereboom.us ,
|
||
.An Ryan Thomas McBride Aq mcbride@countersiege.com
|
||
and
|
||
.An Darrin Chandler Aq dwchandler@stilyagin.com .
|
||
.Sh БАГИ
|
||
При вызове меню с помощью
|
||
.Cm M-p ,
|
||
необходима корректная работа dmenu.
|