FAQ/ru

From awesome
Jump to: navigation, search
Outdated Page
The following page has been marked as outdated, it should be updated to apply to version 3 of the awesome window manager.

Contents

О awesome

Почему "awesome"?

Название awesome пришло от английского слова awesome которое часто использовали персонажи Barney Stinson из HIMYM и Eric Cartman из South Park

Установка

Какие приложения необходимы для установки awesome?

Смотрите файл README.

Настройка

Как заблокировать экран если я отхожу от компьютера?

Воспользуйтесь внешним приложением, таким как 'xlock' или 'xscreensaver'. Я использую xlock приблизительно так:

key({ modkey }, "F12", function () awful.util.spawn('xlock') end)

для xscreensaver это будет выглядеть так:

key({ modkey }, "F12", function () awful.util.spawn('xscreensaver-command -lock') end)

Приложения с GUI Java выводятся просто серым экраном!

man awesome:

Java applications which use the XToolkit/XAWT backend may draw grey windows only. The XToolkit/XAWT backend breaks ICCCM-compliance in recent JDK 1.5 and early JDK 1.6 versions, because it assumes a reparenting window manager. As a workaround you can use JDK 1.4 (which doesn´t contain the XToolkit/XAWT backend) or you can set the following environment variable (to use the older Motif backend instead): AWT_TOOLKIT=MToolkit

A workaround for using Java applications which require JDK 1.5 or higher is to use a nested X server, such as Xephyr. For example, to use the Java OpenStreetMap application, you can use the following snippet:

   $ cat bin/josm 
   #!/bin/sh
   Xephyr :1 -screen 1280x1000 -once -br & 
   export DISPLAY=:1
   josm $1 
   killall Xephyr

Of course, this example assumes you are running only one instance of a Java program, might not look nice at resolutions other than 1280x1024, and launching a whole X server is quite a waste of resources... But you get the idea.

Perhaps the most elegant solution is to use wmname. wmname is an application that changes the name of the window manager as seen by applications. It may cause problems with other applications, though none have been found so far - please edit this and add problems if you spot any. If you add 'wmname LG3D' to your .xinitrc, or otherwise run it, Java applications should run fine. Note that this may not work if you have AWT_TOOLKIT set. This works because Java has a workaround for non-reparenting window managers, but only detects them based on the name property, which wmname sets.

This problem appears to be resolved in JDK 1.7.

Разрывы! Много разрывов! Как избавиться от разрывов верхней/нижней части экрана?

Awesome 2

В вашем .awesomerc, под разделом screens если вы не хотите чтобы они появлялись снова, добавьте нижеследующее. В вашем .awesomerc может и не быть такого раздела - тогда добавьте его.

 general
 {
     resize_hints = false
 }

Awesome 3

Поведением клиентов в данном случае управляет флаг 'honorsizehints' (или 'size_hints_honor' в новых версиях Awesome), которому по умолчанию в ловушке hook_manage присваивается значение true для всех клиентов. Измените значение на false, чтобы убрать разрывы.

Заголовки окон - это прекрасно, но как отключить их у определённых приложений?

Awesome 2

Добавьте в раздел rules файла awesomerc:

 titlebar { 
   position = off 
 }

Awesome 3

Найдите в файле rc.lua код:

   if use_titlebar then
       -- Add a titlebar
       awful.titlebar.add(c, { modkey = modkey })
   end

И добавьте условия, при которых будет (или не будет) добавляться заголовок. Например:

   if use_titlebar and c.class ~= "URxvt" then
       -- Add a titlebar
       awful.titlebar.add(c, { modkey = modkey })
   end

В этом случае у окон, имеющих класс URxvt, заголовков не будет.

Horizontal widgets on side statusbar

Left or right placement of Statusbar are cool, but vertical text hard to read. Is any way to show it horisontally? At the moment, no easy way. This feature is planned. If you're really serious about this feature, you could make multiple wiboxes that are floating and have a fixed width and stack them on the side of the screen. This is likely irritating to code into your rc.lua in Awesome 3.

Как скрыть / показать панели в Awesome 3?

Awesome 3.0

Код Lua:

 mystatusbar.screen = nil

Чтобы использовать сочетание клавиш Modkey-b для скрытия / показа панели mystatusbar (как это было по умолчанию в Awesome 2.3), добавьте в rc.lua:

 keybinding({ modkey }, "b", function () 
      if mystatusbar[mouse.screen].screen == nil then 
         mystatusbar[mouse.screen].screen = mouse.screen
     else
         mystatusbar[mouse.screen].screen = nil
     end
 end):add()

Awesome 3.3

Добавьте сочетание клавиш в таблицу globalkeys:

   awful.key({ modkey }, "b",
       function ()
           if mywibox[mouse.screen].screen == nil then
               mywibox[mouse.screen].screen = mouse.screen
           else
               mywibox[mouse.screen].screen = nil
           end
       end)

Is there a program-launcher or menu in awesome?

В Awesome 2.3 есть возможность использования меню. Достаточно создать где-нибудь файл, строки которого соответствуют пунктам меню, например:

файл ~/.awesome/menu:

 xterm
 firefox
 pidgin

Затем добавьте в Ваш .awesomerc:

 key { 
   modkey = {"Mod4"} 
   key = "p" 
   command = "spawn" 
   arg = "exec `cat ~/.awesome/menu | awesome-menu`" 
 }

Подробности смотрите в статье awesome-menu.

В качестве альтернативы можно использовать сторонние программы, такие как:

  • dmenu - утилита для запуска программ
   пример: key { modkey = {"Mod4"} key = "p" command = "spawn" arg = "exec `dmenu_path | dmenu -b`" }
  • dzen - x-меню, строка состояния и прочее...
  • 9menu - простое x-menu
   пример: 9menu - файл ~/.9menurc
  • apwal - простые значки на корневом (root) окне
  • Gmrun - меню для запуска приложений (использует GTK+)

В Awesome 3 меню есть по умолчанию, для добавления или удаления элементов отредактируйте rc.lua.

Отсутствует трей! Как мне получать уведомления от Pidgin?

Awesome понимает флаг 'URGENT', который выставляет Pidgin, и может изменить фон тега awesome. Для этого запустите Pidgin, перейдите в Tools -> Plugins и включите модуль 'Message Notification'. Далее в настройках этого модуля включите 'Set Window Manager 'URGENT' hint'.

Настройте цвета для тегов в секции 'colors' в Вашем файле ~/.awesomerc (Для awesome-2.2):

 colors {
   urgent_fg = "#ffffff"
   urgent_bg = "#D53737"
 }

Для awesome-2.3:

 styles {
    urgent
       {
           fg = "#FFFFFF"
           bg = "#D53737"
       }
 }

Выполните команду awesome -k, чтобы убедиться, что конфиг не содержит ошибок, и перезапустите awesome.

Для awesome-3 отредактируйте файл ~/.config/awesome/themes/<theme>

 bg_urgent     = #ff0000
 fg_urgent     = #ffffff

В результате, когда Вы получите сообщение в Pidgin, тег, к которому прикреплен Pidgin, должен изменить цвет на красный.

Можно ли изменить настройки awesome, когда он запущен?

Да, можно. Тем не менее необходимо будет перезапустить Awesome, чтобы применить новые настройки. Стандартное сочетание клавиш для перезапуска Awesome 3.0 - Mod4 + Ctrl + r.

Как изменить тему курсора в Awesome?

Вы можете установить желаемую тему при помощи xsetroot

 xsetroot -cursor_name THEME

Эту команду можно поместить в ~/.xinitrc

Can I pin a window to carry it between screens?

Yes, the same effect can be accomplished by adding to the window all the tags (right click a tag to add/remove it to the current window). NOTE that awesome's tags are not really "screens", but are more flexible. (Grfgguvf 04:10, 11 November 2008 (UTC))

Как узнать класс окна для использования в качестве идентификатора клиента в конфигурационном файле?

 xprop | grep -i class

Затем кликните по интересующему Вас окну и посмотрите в выводе значение WM_CLASS. Его можно будет поместить, например, в таблицу floatapps, чтобы сделать окно приложения плавающим:

 floatapps = 
 { 
   -- by class 
   ["MPlayer"] = true, 
   ["pinentry"] = true, 
   ["gimp"] = true, 
   -- by instance 
   ["mocp"] = true 
 }

В качестве альтернативы можно использовать функцию, которая будет показывать информацию о выбранном в данный момент клиенте, используя библиотеку Naughty. В Awesome 3.3 добавьте к таблице clientkeys:

   awful.key({ modkey, "Control" }, "i",
       function (c)
           naughty.notify({ text = 
               "Class: " .. c.class ..
               "\nInstance: " .. c.instance .. 
               "\nName: " .. c.name .. "\n",
               width = 400 })
       end)

Теперь при нажатии Ctrl+Modkey+i будет появляться всплывающее уведомление с информацией о клиенте.

Использование

как запустить другую X сессию

В KDE Я могу запустить другую Х сессию и переключаться между ними с помощью F7 и F8. как сделать такое же в awesome?

Переключитесь на новый виртуальный терминал (VT) используя например Ctrl+Alt+F8, залогинтесь как обычно, и запустите X-ы там, Напимер с помощью команды startx -- :2. (Grfgguvf 18:27, 30 September 2008 (UTC))

qingy хорший инструмент для проделывания подобных вещей.


Можно использовать простой скрипт xlaunch, позволяющий запустить произвольную программу в новой Х-сессии: Страница xlaunch

Как выключать / перезагружать / переводить компьютер в спящий режим

Стандартное сочетание клавиш для выхода из Awesome - Mod4+Shift+q.

Из командной строки можно выполнить shutdown -h now для выключения, shutdown -r now для перезагрузки, и так далее... (Grfgguvf 18:28, 30 September 2008 (UTC))
Также, по крайней мере в Ubuntu, можно использовать команду pmi action suspend для перехода в режим ожидания. --Dhgwilliam 21:16, 7 November 2008 (UTC)

Где буфер обмена? Как мне делать копирование и вставку?

X-сервер предоставляет возможность выделить текст мышью и вставить его куда-либо, нажав среднюю кнопку мыши или сочетание клавиш <SHIFT>-<INSERT>.

В качестве альтернативы можно установить любое приложение для управления буфером обмена, например, klipper.

Я запустил awesome, и не знаю что делать. Как управлять этой штукой?

По-умолчанию, чтобы открыть терминал, нужно нажать Mod4+Enter (где Mod4 обычно клавиша 'Windows') или правую кнопку мыши.

Затем наберите man awesome. Это весьма хорошее руководство, в нём также описаны комбинации клавиш.

I used to pipe things to be printed in stdin (like dwm) in awesome 1.x, it does not work in awesome 2.0, why?

Because we implemented a better system. You will want to use awesome-client which reads the following from stdin: #screen uicb arg

So to change the statusbar text on screen 0, simply do the following:

   echo "0 setstatustext \"Hello, awesome world\!\"" | awesome-client

If you want to view another tag on screen 1:

   echo "1 tag_view 3" | awesome-client

Note: This is only for version 2.0. For current syntax see awesome-client(1).

Разработка

Я обнаружил ошибку, что делать?

Во-первых, протестируйте версию для разработчиков, возможно, ошибку уже исправили. Если ошибка представляет собой неожиданное поведение программы, поясните, что вы ожидали вместо неё. Если это ошибка сегментации, приложите данные трассировки (например, с помощью gdb).

Всё вышеперечисленное отправляйте по этой ссылке: http://awesome.naquadah.org/bugs/

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

Вы принимаете патчи и улучшения?

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

How to keep track with awesome-branches

To clone the normal development (git) version:

 git-clone git://git.naquadah.org/awesome.git/
 cd awesome/

To get a branch like 'awesome-3':

 git-fetch origin awesome-3:awesome-3
 git-checkout awesome-3

git-branch will tell you on what branch you are. On some distributions etc you will be able to <tab> complete branches (and more) to git commands.

To stay updated with the 'awesome-3' branch, run these from inside the awesome directory:

 git-fetch origin
 git-reset --hard origin/awesome-3

Note: 'awesome-3' branch has already made the transition to XCB, and needs xcb-util. To make the lives of fellow Archers easier, I have created a temporary PKGBUILD for xcb-util here


To create a patch:

 git-clone git://git.naquadah.org/awesome.git/
 edit file
 git-commit filename
 git-format-patch origin

This yields a file name like

 0001-the-title-you-gave-it.patch
Personal tools