awesome (Русский)

From ArchWiki

Состояние перевода: На этой странице представлен перевод статьи Awesome. Дата последней синхронизации: 17 марта 2016. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Tango-preferences-desktop-locale.pngЭта статья или раздел нуждается в переводеTango-preferences-desktop-locale.png

Примечания: Оригинал статьи и в следствии перевод нуждается в исправлении. (обсуждение: Talk:Awesome (Русский)#)

С официального сайта:

"awesome - это полностью настраиваемый современный оконный менеджер для X. Он очень быстрый, расширяемый и распространяется под GNU GPLv2 лицензией.

Ориентирован на опытных пользователей, разработчиков, людей, занимающихся вычислениями и на тех, кто желает иметь полный контроль над графической средой."

Установка

Установите awesome. Разрабатываемая версия awesome-gitAUR, считается нестабильной и может иметь различные настройки API.

Для запуска awesome из Xinitrc, добавьте exec awesome в ~/.xinitrc. Для того, чтобы использовать входящий в комплект файл xsession, смотрите Экранный менеджер.

KDM

Создайте от суперпользователя:

/usr/share/apps/kdm/sessions/awesome.desktop
[Desktop Entry]
Name=Awesome
Comment=Tiling Window Manager
Type=Application
Exec=/usr/bin/awesome
TryExec=/usr/bin/awesome

GNOME

Вы можете настроить GNOME использовать awesome как визуальный интерфейс, но держать GNOME работющем в фоновом режиме. Для подробностей смотрите awesome wiki.

Настройка

Основанный на языке программирования lua, файл настроек находится в ~/.config/awesome/rc.lua.

Создание файла настроек

Во-первых, создайте новый каталог, необходимый в следующем шаге:

$ mkdir -p ~/.config/awesome/

Awesome попытается использовать настройки, которые содержится в файле ~/.config/awesome/rc.lua. Он не создается автоматически, поэтому скопируйте шаблон:

$ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/

Синтаксис файла настроек часто изменяется при обновлении awesome. Поэтому повторите эту команду, если с awesome произошло что-то непонятное или же вы хотите изменить настройки.

Чтобы получить дополнительную информацию о настройке awesome, посмотрите Awesome 3 configuration wiki

Примеры

Примечание: Синтаксис конфигурации awesome регулярно меняется, поэтому Вам скорее всего придется изменить файл, который Вы скачаете.

Отличные примеры файлов rc.lua можно найти по следующим ссылкам:

Расширения

Несколько расширений доступных для awesome (3.5+):

Расширение Функционал
Поверхностный просмотр всех открытых клиентов
Динамические тэги
Всплывающие уведомления
Дополнительные виджеты
Запустит программу если она не запущена, иначе перейдёт на неё

Автозапуск программ

Смотрите [1] и Автозапуск.

Выбор раскладки клавиатуры

Смотрите awesome wiki и Keyboard configuration in Xorg.

Темы оформления

Beautiful библиотека lua, которая позволяет Вам задавать темы оформления для awesome из внешних файлов. С ее помощью весьма легко изменить «на лету» цвета или обои awesome без внесения изменений в файл rc.lua.

Тема по-умолчанию содержится в /usr/share/awesome/themes/default. Скопируйте её ~/.config/awesome/themes/default и измените theme_path в rc.lua.

beautiful.init(awful.util.getdir("config") .. "/themes/default/theme.lua")

Смотрите также [2] и [3].

Обои рабочего стола

Beautiful может обрабатывать ваши обои, поэтому вам не нужно устанавливать их в ваших файлах .xinitrc или .xsession. Это позволяет иметь конкретные обои для каждой темы.

Начиная с версии Awesome 3.5 больше не поддерживает команду awsetbg, вместо этого он имеет модуль gears. Вы можете установить обои внутри theme.lua при помощи

theme.wallpaper = "~/.config/awesome/themes/awesome-wallpaper.png" 

Чтобы загрузить обои, убедитесь, что ваш rc.lua содержит

beautiful.init("~/.config/awesome/themes/default/theme.lua")
for s = 1, screen.count() do
	gears.wallpaper.maximized(beautiful.wallpaper, s, true)
end

Для случаных обоев, добавьте [4] в rc.lua (v3.5+). Вместо этого, для автоматического извлечения изображений из данного контекста каталога [5].

Советы и рекомендации

Скрыть / показать wibox

Чтобы привязать комбинацию Modkey + b для показа/скрытия строки состояния на активном рабочем столе (как в awesome 2.3), добавьте в ваш globalkeys в rc.lua:

awful.key({ modkey }, "b", function ()
    mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible
end),

Скриншот (снимок экрана)

Смотрите Дополнительные клавиши для правильного назначения кнопки PrtSc. Затем установите программу создания скриншота например scrot

Добавьте в массив globalkeys:

 awful.key({ }, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/screenshots/ 2>/dev/null'") end),

Эта функция сохраняет скриншоты внутри ~/screenshots/, измените путь/папку при необходимости.

Удаление пробелов окна

Начиная с версии awesome 3.4, можно удалить небольшие зазоры между окнами; в awful.rules.rules таблице есть раздел properties, добавьте к нему

 size_hints_honor = false

Прозрачность

Смотрите composite manager.

В awesome 3.5, прозрачность окна можно установить динамически с помощью сигналов . Например, rc.lua будет содержать следующее:

client.connect_signal("focus", function(c)
                              c.border_color = beautiful.border_focus
                              c.opacity = 1
                           end)
client.connect_signal("unfocus", function(c)
                                c.border_color = beautiful.border_normal
                                c.opacity = 0.7
                             end)

Conky

If using conky, you must set it to create its own window instead of using the desktop. To do so, edit ~/.conkyrc to contain

own_window yes
own_window_transparent yes
own_window_type desktop

Otherwise strange behavior may be observed, such as all windows becoming fully transparent. Note also that since conky will be creating a transparent window on your desktop, any actions defined in awesome's rc.lua for the desktop will not work where conky is.

wibox'ы

Начиная с версии Awesome 3.1, есть встроенная поддержка псевдо-прозрачности. Чтобы задействовать её, добавьте 2 шестнадцатеричные цифры к цветам в вашем файле темы (~/.config/awesome/themes/default, который, как правило, копия /usr/share/awesome/themes/default), как показано здесь:

bg_normal = #000000AA

где "AA" это значение прозрачности.

Чтобы изменить прозрачность для фактического выбранного окна, нажмите Modkey + PgUp/PgDownвы также можете использовать transset-dfAUR и следующие изменения в вашем rc.lua:

globalkeys = awful.util.table.join(
    -- Ваше сочетание клавиш
    [...]
    awful.key({ modkey }, "Next", function (c)
        awful.util.spawn("transset-df --actual --inc 0.1")
    end),
    awful.key({ modkey }, "Prior", function (c)
        awful.util.spawn("transset-df --actual --dec 0.1")
    end),
    -- Другое ваше сочетание клавиш
    [...]
)

ImageMagick

You may have problems if you set your wallpaper with imagemagick's display command. It does not work well with xcompmgr. Please note that awsetbg may be using display if it does not have any other options. Installing habak, feh, hsetroot or whatever should fix the problem (grep -A 1 wpsetters /usr/bin/awsetbg to see your options).

Передача информации виджетам при помощи awesome-client

Вы можете легко передать текст виджету. Для этого создайте новый виджет:

mywidget = widget({ type = "textbox", name = "mywidget" })
mywidget.text = "initial text"

Для обновления текста из внешнего источника, используйте awesome-client:

echo -e 'mywidget.text = "new text"' | awesome-client

Не забудьте добавить виджет в раздел wibox Вашего файла настроек.

Использование другой панели с awesome

Если вам нравится в awesome все, кроме того, как выглядит стандартная панель, то пришло время установить другую, например xfce4-panel. Конечно, другие панели тоже подойдут. Затем добавьте его в секцию autorun вашего rc.lua. Вы можете также закомментировать секцию, которая создает wibox'ы для каждого экрана (начиная с mywibox[s] = awful.wibox({ position = "top", screen = s })) но это не так необходимо. Не забудьте проверить ваш rc.lua на наличие ошибок, введя:

$ awesome -k rc.lua

Вы должны также изменить modkey+R данное сочетание клавиш, чтобы запустить другое приложение запуска вместо встроенного в awesome. Для примеров смотрите List of applications#Application launchers. Не забудьте добавить:

      properties = { floating = true } },
    { rule = { instance = "$ваше_запускаемое_приложение" },

в ваш rc.lua.

Каталоги приложений в строке меню

awesome содержит menubar. По умолчанию, нажав Mod+p откроется меню приложений, подобно dmenu в верхней части экрана. Тем не менее, это меню только ищет файлы .desktop в /usr/share/applications и /usr/local/share/applications.

Чтобы изменить это, добавьте следующую строку в rc.lua, в идеале, в разделе Menubar configuration:

app_folders = { "/usr/share/applications/", "~/.local/share/applications/" }

Следует заметить что файлы .desktop перечитываются каждый раз, при запуске awesome, тем самым замедляя запуск. IЕсли вы предпочитаете другие средства запуска программ, то строка меню может быть отключена в rc.lua путём удаления local menubar = require("menubar") и дургих ссылок на переменную menubar.

Всплывающие меню

Существует простое меню в awesome 3, - упрощённое пользовательское меню. [6] Если вы хотите меню freedesktop.org, смотрите тут awesome-freedesktop. Смотрите примеры для awesome3 [7].

Меню приложений

Если вы предпочитаете видеть более традиционное меню приложений, когда вы щёлкаете по иконке Awesome, или делаете щелчёк правой кнопкой мышки по пустому участку рабочего стола, вы можете воспользоваться инструкциями приведёнными в Xdg-menu#Awesome. Однако это меню не обновляется при добавлении или удалении программ. Поэтому не забывайте выполнять команду для обновления вашего меню. Она может выглядеть примерно так:

 xdg_menu --format awesome --root-menu /etc/xdg/menus/arch-applications.menu >~/.config/awesome/archmenu.lua

Заголовки окон (titlebars )

Включить заголовки окон в awesome легко, просто установите в файле настроек переменную titlebars_enabled в true. Тем не менее, вы можете захотеть иметь возможность включения или отключения заголовков окон. Для этого вы можете назначить горячие клавиши:

awful.key({ modkey, "Control" }, "t",
   function (c)
       -- toggle titlebar
       awful.titlebar.toggle(c)
   end)

Сначала скройте строки заголовков. Для этого добавьте сразу после создания строки заголовка:

awful.titlebar.hide(c)

Уведомление состояния батареи

Смотрите [8] простое уведомление о состоянии батареи в rc.lua. Заметьте что этому способу нужны возможности для уведомлений (установленные по умолчанию в версии3.5). Другой пример доступен в wiki awesome

Решение проблем

Нахождение и устранение ошибок rc.lua

Xephyr позволяет запускать X вложенный в окно клиента другого Х. Это позволяет отлаживать rc.lua не нарушая текущего рабочего стола. Начните с копирования rc.lua в новый файл (например rc.lua.new), и изменяйте его по мере необходимости. Затем запустите новый экземпляр awesome в Xephyr, подставляя файл настроек rc.lua.new как тут:

$ Xephyr :1 -ac -br -noreset -screen 1152x720 &
$ DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new

Преимущество такого способа заключается в том, что вы не нарушите работу текущего рабочего стола awesome, избежите потенциальный сбой приложений X и потерю работоспособности. После того, как вы удовлетворены новыми настройками, скопируйте rc.lua.new в rc.lua и перезапустите awesome.

awmtt

awmttAUR (Awesome WM Testing Tool - Утилита тестирования Awesome WM) представляет собой простую оболочку скрипта Xephyr. По умолчанию, он будет использовать ~/.config/awesome/rc.lua.test. Если он не может найти тестовый файл,он будет использовать ваш фактический rc.lua. Вы также можете указать местоположение файла настроек, который вы хотите проверить:

$ awmtt start -C ~/.config/awesome/rc.lua.new

Когда вы закончите тестирование, закройте окно:

$ awmtt stop

Или сразу смотрите изменения, которые вы делаете в файл настроек с помощью следующей команды:

$ awmtt restart

Файл журналов

Если вы используете LightDM, awesome будет записывать ошибки в `$HOME/.xsession-errors`. Если вы используете .xinitrc для запуска awesome, эта запись FAQ будет полезной.

Клавиша Mod4

Awesome рекомендует переназначить mod4, которой по умолчанию является Win key. Если по какой-то причине она не распознаётся как mod4, используйте xmodmap чтобы узнать её. Для того чтобы изменить назначение, воспользуйтесь xev, чтобы найти код клавиши и имя клавиши для сопоставления. Затем добавьте нечто похожее в ~/.xinitrc

xmodmap -e "keycode 115 = Super_L" -e "add mod4 = Super_L"
exec awesome

В этом случае проблемой является то, что иногда xorg распознаёт код клавиши 115 неправильно, как клавишу 'Select'. Приведенная выше команда явно перераспределяет код ключа 115 на корректную клавишу 'Super_L'.

Для того, чтобы переназначить mod4 с помощью setxkbmap (конфликтует с xmodmap) смотрите:

tail -50 /usr/share/X11/xkb/rules/evdev

Для установки клавиши caps lock как mod4 добавьте следующую строку в ~/.xinitrc:

setxkbmap -option caps:hyper

Клавиша Mod4 против пользователей IBM ThinkPad

IBM ThinkPad не поставлялись с кнопкой Win (хотя компания Lenovo уже изменила этой традиции). Кнопка Alt по-умолчанию не используется в комбинациях, описанных в rc.lua. Это позволит Вам заменить ею кнопку Win. Чтобы сделать это, необходимо отредактировать rc.lua, заменив:

modkey = "Mod4"

на:

modkey = "Mod1"
Примечание: В awesome используются несколько сочетаний клавиш типа Mod4 + буква на клавиатуре. Изменив Mod4 на Alt, Вы можете получить наложение некоторых сочетаний. Эти сочетания придется также перебросить на другие кнопки.

Если Вы не хотите менять стандартные сочетания для awesome, Вы можете использовать другую кнопку. Например, Caps Lock используется нечасто, поэтому можно использовать ее в качестве Mod4. Измените ~/.Xmodmap:

clear lock 
add mod4 = Caps_Lock

и (пере)загрузите файл. Это действие изменит Caps Lock на кнопку Mod4 и Вы сможете воспользоваться стандартными настройками awesome. Вдобавок, это позволит использовать Caps Lock как Mod4 и в других X-приложениях.

Recent updates of xorg related packages break mentioned remapping the second line can be replaced by (tested on a DasKeyboard and IBM Model M and xorg-server 1.14.5-2):

keysym Caps_Lock = Super_L Caps_Lock

Исправление для Java приложений (серый интерфейс)

Смотрите awesome wiki и [9].

Eclipse: невозможно изменить размер/переместить главное окно

Если главное окно "прилипло" и вы не можете переместить его или изменить размер (используя mod4 + левую/правую клавишу мыши) отредактируйте workbench.xml и установите fullscreen/maximized в значение false (если оно установлено), уменьшите цифру ширины и высоты на меньшую, чем размер одного вашего экрана рабочего стола.

workbench.xml можно найти в eclipse_workspace/.metadata/.plugins/org.eclipse.ui.workbench/. Отредактируйте строку:

<window height="xx" maximized="true" width="xx" x="xx" y="xx"

YouTube: полноэкранный режим показывает как в фоновом режиме

Если видео с YouTube появляется под вашим браузером в полноэкранном режиме, или скрывается под панелью управления, то добавьте в rc.lua

{ rule = { instance = "plugin-container" },
  properties = { floating = true } },

Для Chromium

{ rule = { instance = "exe" },
  properties = { floating = true } },

или:

{ rule = { role = "_NET_WM_STATE_FULLSCREEN" },
  properties = { floating = true } },

Смотрите [10].

Запретить колесу прокрутки мыши менять теги

В вашем rc.lua, измените раздел Mouse Bindings на следующий;

-- {{{ Mouse bindings
root.buttons(awful.util.table.join(
    awful.button({ }, 3, function () mymainmenu:toggle() end)))
-- }}}

Запуск консольных клиентов на определённом теге

Это не работает, когда консольное приложение запускается из терминала GTK (например LXTerminal). URxvt как известно работает.

Не работает мышка в не латинской раскладке клавиатуры

Сразу после установки Awesome, или после обновления системы, вы вероятно сталкивались с такой проблемой. Мышка не работает в не латинской раскладке клавиатуры (например при Русской раскладки клавиатуры, щелчки мышью по тэгам не обрабатываются, также вы не можете вызвать меню Awesome). Смотрите подробно об этой ошибке (Англ.). Для решения этой проблемы, отредактируйте файл /usr/share/X11/xkb/compat/basic, и закомментируйте (при помощи //) в нём эти строки, как указано ниже:

//group 2 = AltGr;
//group 3 = AltGr;
//group 4 = AltGr;

Смотрите также