Awesome Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:awesome [2012/08/24 15:00]
[Работа с сессиями пользователей]
wiki:awesome [2018/07/20 11:57] (текущий)
[Раскладка клавиатуры]
Строка 1: Строка 1:
 ======Awesome====== ======Awesome======
-**Awesome** -- гибкоконфигурирумый динамический тайлинговый оконный менеджер. Очень легкий и расширяемый за счет использования языка программирования Lua. Awesome нацелен на опытных пользователей,​ разработчиков и людей, желающих использовать гибкий инструмент в повседневной работе.+{{http://​awesome.naquadah.org/​images/​icons/​aw_64_shadow.png }}**Awesome** -- гибкоконфигурирумый динамический тайлинговый оконный менеджер. Очень легкий и расширяемый за счет использования языка программирования Lua. Awesome нацелен на опытных пользователей,​ разработчиков и людей, желающих использовать гибкий инструмент в повседневной работе.
  
 <​note>//​Лучший оконный менеджер тот, которого не видно//</​note>​ <​note>//​Лучший оконный менеджер тот, которого не видно//</​note>​
  
 Распространено мнение,​ что тайлинговые оконные менеджеры- для больших экранов,​ хочется заметить,​ что это не так, тайлинговый оконный менеджер отлично себя чувствует на нетбуке,​ где, чаще всего, работать приходится без мыши, а в работе с клавиатуры тайлинговым менеджерам нет равных. Естественно ни о каком толковом тайлинге окон на нэтбуке нельзя говорить,​ на всех тэгах установлена максимизация окна приложения. Распространено мнение,​ что тайлинговые оконные менеджеры- для больших экранов,​ хочется заметить,​ что это не так, тайлинговый оконный менеджер отлично себя чувствует на нетбуке,​ где, чаще всего, работать приходится без мыши, а в работе с клавиатуры тайлинговым менеджерам нет равных. Естественно ни о каком толковом тайлинге окон на нэтбуке нельзя говорить,​ на всех тэгах установлена максимизация окна приложения.
- 
 ======Установка====== ======Установка======
 <style float-left>​[[app>​awesome|AwesomeWM]]</​style>​ <style float-left>​[[app>​awesome|AwesomeWM]]</​style>​
Строка 39: Строка 38:
 mytextclock:​buttons(awful.util.table.join( ​       mytextclock:​buttons(awful.util.table.join( ​      
 awful.button({ }, 1, function () awful.button({ }, 1, function ()
-awful.util.spawn_with_shell("/​home/​pupizoid/​bin/​dairy.sh"​) end)+awful.util.spawn_with_shell("/​home/​<​имя_пользователя>​/​bin/​dairy.sh"​) end)
         ))         ))
 </​code>​ </​code>​
-Данный код будет при нажатии на виджет часов на панели awesome вызывать скрипт dairy.sh.+Данный код будет при нажатии на виджет часов на панели awesome вызывать скрипт ​/​home/<​имя_пользователя>/​bin/​dairy.sh.
 =====Раскладка клавиатуры===== =====Раскладка клавиатуры=====
 При загрузке в голый AwesomeWM (без сессии GNOME) перестает работать переключение раскладки клавиатуры((а так же все остальные вещи, настраиваемые в меню "​Параметры системы",​ все эти настройки применяются при запуске **gnome-settings-daemon** отдельно или внутри сессии GNOME(см.ниже))) При загрузке в голый AwesomeWM (без сессии GNOME) перестает работать переключение раскладки клавиатуры((а так же все остальные вещи, настраиваемые в меню "​Параметры системы",​ все эти настройки применяются при запуске **gnome-settings-daemon** отдельно или внутри сессии GNOME(см.ниже)))
Строка 48: Строка 47:
 <​code>​setxkbmap -layout '​us,​ru'​ -variant ',​winkeys,​winkeys'​ -option grp:​caps_toggle -option grp_led:​caps -option terminate:​ctrl_alt_bksp</​code>​ <​code>​setxkbmap -layout '​us,​ru'​ -variant ',​winkeys,​winkeys'​ -option grp:​caps_toggle -option grp_led:​caps -option terminate:​ctrl_alt_bksp</​code>​
 Ниже описан [[awesome#​Автозагрузка|способ]] добавления комады в автозагрузку awesome и [[awesome#​Отображение раскладки клавиатуры|способ]] отображения раскладки на панели Ниже описан [[awesome#​Автозагрузка|способ]] добавления комады в автозагрузку awesome и [[awesome#​Отображение раскладки клавиатуры|способ]] отображения раскладки на панели
 +
 +**Обновление**
 +[[https://​awesomewm.org/​doc/​api/​documentation/​89-NEWS.md.html]]
 +У Awesome теперь есть встроенная поддержка обнаружения и настройки раскладки клавиатуры. Использование setxkbmap больше не требуется. Также добавлен виджет для просмотра текущей раскладки.
 =====Тэги===== =====Тэги=====
 Отличительная особенность Awesome (и большинства тайлинговых оконных менеджеров)- система тэгов, вместо привычных виртуальных рабочих столов. Система тэгов более гибка и конфигуриуема. Например можно назначит несколько тэгов для одного приложения (клиента) или настроить отображение приложений с несколькими тэгами одновременно. Отличительная особенность Awesome (и большинства тайлинговых оконных менеджеров)- система тэгов, вместо привычных виртуальных рабочих столов. Система тэгов более гибка и конфигуриуема. Например можно назначит несколько тэгов для одного приложения (клиента) или настроить отображение приложений с несколькими тэгами одновременно.
Строка 196: Строка 199:
 <​code>​require("​blingbling"​)</​code>​ <​code>​require("​blingbling"​)</​code>​
 Описание конфигурации виджетов приведено в файле <​file>​~/​.config/​awesome/​blingbling/​README</​file>​ Описание конфигурации виджетов приведено в файле <​file>​~/​.config/​awesome/​blingbling/​README</​file>​
 +===Регулятор громкости===
 +Для добавления регулятора громкости необходимо выполнить следующие шаги:
 +  - в файл rc.lua добавляем описание виджета:​ <code lua>-- Volume widget
 +volume_label = widget ({ type = "​textbox"​ })
 +volume_label.text = "​♫"​
 +my_volume=blingbling.volume.new()
 +my_volume:​set_height(18)
 +my_volume:​set_v_margin(4)
 +my_volume:​set_width(20)
 +my_volume:​update_master()
 +my_volume:​set_master_control()
 +my_volume:​set_bar(true)
 +my_volume:​set_background_graph_color("#​444444"​)--beautiful.bg_focus)
 +my_volume:​set_graph_color(beautiful.motive)--beautiful.fg_normal)</​code>​
 +  - добавляем на wibox созданный виджет:​ <code lua> ​   mywibox[s].widgets = {
 +        {
 +            mylauncher,
 +            mytaglist[s],​
 +            mypromptbox[s],​
 +            layout = awful.widget.layout.horizontal.leftright
 +        },
 +        system_button,​ separator,
 +        mytextclock,​ separator,
 +        kbdwidget, separator,
 +        my_volume.widget,​volume_label,​separator,​ -- <<-- добавленный виджет и разделитель
 +        uptime, separator,
 +        cpuwidget, separator,
 +        cputempwidget,​ separator,
 +        memwidget,​separator,​
 +        s == 1 and mysystray or nil,
 +        mytasklist[s],​
 +        layout = awful.widget.layout.horizontal.rightleft
 +    }</​code>​
 +  - В результате,​ если крутить колесо мыши над виджетом происходит регулировка громкости,​ если нажать левой кнопкой- включение/​выключение звука, а выглядеть это будет так: {{ :​wiki:​awesomewm:​blingbling_volume.png?​nolink |}}
 +==Проблемы==
 +У меня, а как показал поиск и ещё у нескольких людей на ноутбуках HP Pavilion, наблюдается проблема- при попытке приглушить звук через команду ''​amixer Master toggle'',​ которая используется и в упомянутом выше виджете,​ звук успешно выключается,​ но после этого не включается обратно. Не знаю в чем причина такого поведения,​ но заметил,​ что если после этого в alsamixer переключать хаотично все каналы mute/​unmute- кнопкой "​M",​ то звук включится обратно,​ поэтому есть довольно тривиальное решение этой проблемы- включать\выключать приглушение звука скриптом,​ вот он (можно скачать щелкнув по имени файла):​
 +<code bash sndfx.sh>#​!/​bin/​bash
 +    if amixer -c 0 get Master | grep -q off
 +then
 +    amixer set Master unmute
 +    amixer set Speaker unmute
 +    amixer set Front unmute
 +else
 +    amixer set Master mute
 +fi</​code>​
 +<note important>​При необходимости удалите лишние строчки или поправьте название каналов,​ взяв их из ''​alsamixer''</​note>​
 +Проверяем работоспособность:​
 +<code bash>​chmod +x /​путь/​к/​скрипту/​sndfx.sh
 +/​путь/​к/​скрипту/​sndfx.sh #после этой команды звук должен отключиться
 +/​путь/​к/​скрипту/​sndfx.sh #после этой команды- включиться
 +</​code>​
 +Если все работает нормально,​ правим управляющий файл виджета volume из blingbling:
 +<​code>​ gedit ~/​.config/​awesome/​blingbling/​volume.lua</​code>​
 +ищем и исправляем следующий кусок файла:
 +<code lua>​local function set_master_control(v_graph)
 +    v_graph.widget:​buttons(awful.util.table.join(
 +    awful.button({ }, 1, function()
 +--      set_master("​toggle"​)
 +    awful.util.spawn("/​путь/​к/​скрипту/​sndfx.sh"​)
 +    end),
 +    awful.button({ }, 5, function()
 +      set_master("​5%-"​) --<<​-- здесь можно изменить шаг регулировки громкости
 +    end),
 +    awful.button({ }, 4, function()
 +      set_master("​5%+"​) --<<​-- здесь можно изменить шаг регулировки громкости
 +    end)))
 +end</​code>​
 +
 +Другой способ решения этой же проблемы. В файле ​
 +<​code>​ gedit ~/​.config/​awesome/​blingbling/​volume.lua</​code>​
 +в функции set_master исправляем
 +<code lua>​local function set_master(parameters)
 +    -- local cmd = "​amixer --quiet set Master " ..parameters
 +    local cmd = "​amixer -D pulse --quiet set Master 1+ " ..parameters
 +    local f=io.popen(cmd)
 +    f:close()
 +end</​code>​
 ====Погода==== ====Погода====
 Виджет найден [[http://​code.google.com/​p/​awesome-weather-widget|здесь]] в крайне заброшенном состоянии и реабилитирован. Виджет найден [[http://​code.google.com/​p/​awesome-weather-widget|здесь]] в крайне заброшенном состоянии и реабилитирован.
Строка 415: Строка 495:
 ====Темы==== ====Темы====
 ====Вид GTK приложений==== ====Вид GTK приложений====
 +Ниже описаны два разных способа настройки внешнего вида приложений,​ вы вправе выбрать какой вам подходит больше.
 ===lxappearance=== ===lxappearance===
 +Плюс данного способа в том, что не требуется запуск дополнительной службы и система более "​чистая"​.
 Для того, что бы настраивать темы GTK, темы иконок и т.д. можно воспользоваться легким редактором внешнего вида из проекта LXDE **lxappearance** Для того, что бы настраивать темы GTK, темы иконок и т.д. можно воспользоваться легким редактором внешнего вида из проекта LXDE **lxappearance**
 <​code>​sudo apt-get install lxappearance</​code>​ <​code>​sudo apt-get install lxappearance</​code>​
Строка 422: Строка 504:
 Единственный минус его использования- в трее появляется значок клавиатуры,​ но его можно легко [[wiki:​трей_в_unity##​убираем_индикатор_раскадки_клавиатуры|убрать]]. Единственный минус его использования- в трее появляется значок клавиатуры,​ но его можно легко [[wiki:​трей_в_unity##​убираем_индикатор_раскадки_клавиатуры|убрать]].
 ====Вид Qt приложений==== ====Вид Qt приложений====
 +Вид Qt приложений также настраивается при помощи отдельного приложения,​ для установки воспользуйтесь командой
 +<​code>​sudo apt-get install qt4-qtconfig</​code>​
 +Требуемое приложение- ''​qtconfig'',​ после его запуска откроется окно, в котором можно будет детально настроить отображение Qt приложений,​ например Skype. Не забывайте сохранять изменения,​ при помощи комбинации Ctrl+S или через меню "​Файл"​-"​Сохранить"​
 +=====Горячие клавиши,​ мультимедиа кнопки=====
 +Замечательная особенность AwesomeWM- возможность "​повесить"​ на любое ваше действие на клавиатуре/​мыши любое действие системы или запуск программы((если,​ конечно же, они распознаются на железном уровне)).
 +====Кнопки управления громкостью====
 +На большинстве современных ноутбуков имеются кнопки запуска приложений,​ управления воспроизведением музыки или просто управлением громкости. Для того чтобы их оживить,​ нужно знать их "​сканкоды"​- коды, которые генерируются при их нажатии. Для того что бы их узнать воспользуемся приложением ''​xev'',​ которое входит в состав пакета X11-utils и поставляется по умолчанию,​ после запуска в терминале команды ''​xev''​ откроется дополнительное окно, и нажмите необходимую кнопку,​ в терминале,​ если данная клавиша уже не назначена в системе и она распознается на железном уровне,​ появится подобный вывод:
 +<​code>​KeyPress event, serial 41, synthetic NO, window 0x2600001,
 +    root 0xa6, subw 0x0, time 70181008, (-301,​-183),​ root:​(378,​197),​
 +    state 0x10, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume),​ same_screen YES,
 +    XLookupString gives 0 bytes: ​
 +    XmbLookupString gives 0 bytes: ​
 +    XFilterEvent returns: False
 +
 +KeyRelease event, serial 41, synthetic NO, window 0x2600001,
 +    root 0xa6, subw 0x0, time 70181015, (-301,​-183),​ root:​(378,​197),​
 +    state 0x10, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume),​ same_screen YES,
 +    XLookupString gives 0 bytes: ​
 +    XFilterEvent returns: False</​code>​
 +Здесь нас интересует фраза "​keycode 122", 122- искомое значение.\\
 +На моём ноутбуке 121-mute, 122- уменьшение громкости и 123- увеличение. Добавляем в rc.lua следующий код:
 +<code lua>
 +        awful.key({},​ "#​121",​ function () awful.util.spawn("/​путь/​к/​скрипту/​sndfx.sh"​) end),
 +        awful.key({},​ "#​122",​ function () awful.util.spawn("​amixer set Speaker 5%-") end),
 +        awful.key({},​ "#​123",​ function () awful.util.spawn("​amixer set Speaker 5%+") end),
 +</​code>​
 +здесь вы можете увидеть,​ что на кнопку "​mute"​ установлено выполнение скрипта,​ это связано с проблемой описанной в разделе о [[wiki:​awesome#​blingbling|blingbling]],​ скрипт выложен там же.
 =====Работа с сессиями пользователей===== =====Работа с сессиями пользователей=====
-Если у вас на компьютере работает несколько пользователей,​ то вы, работая в сессии Ubuntu, вероятно оценили удобство меню, появляющееся по нажатию на имя пользователя на панели Unity легко переключаться между сессиями пользователей. Хотелось бы иметь подобное меню и в AwesomeWM.+Если у вас на компьютере работает несколько пользователей,​ то вы, работая в сессии Ubuntu, вероятно оценили удобство меню, появляющееся по нажатию на имя пользователя на панели Unity, позволяющее ​легко переключаться между сессиями пользователей. Хотелось бы иметь подобное меню и в AwesomeWM.
  
 Операцию переключения пользователя обеспечивает пакет **dm-tools**,​ подробно о его применении можно почитать в справке **man dm-tools**. Для добавления в правый верхний угол кнопки с системным меню проделаем следующее. Операцию переключения пользователя обеспечивает пакет **dm-tools**,​ подробно о его применении можно почитать в справке **man dm-tools**. Для добавления в правый верхний угол кнопки с системным меню проделаем следующее.
Строка 500: Строка 609:
 {{ wiki:​awesomewm:​gnome_awesome_main.png?​500 }} {{ wiki:​awesomewm:​gnome_awesome_main.png?​500 }}
 ====Настройка==== ====Настройка====
-При загрузке сессии можно заметить,​ что под gnome-panel отрисовывается панель awesome, для наведения порядка необходимо её отключить. Для этого в файле ''​~/​.config/​awesome/​rc.lua''​ закомментируем строки (в языке Lua комментарий начинается с символов "​--"​, относящиеся к wibox:+При загрузке сессии можно заметить,​ что под gnome-panel отрисовывается панель awesome, для наведения порядка необходимо её отключить. Для этого в файле ''​~/​.config/​awesome/​rc.lua''​ закомментируем строки((в языке Lua комментарий начинается с символа двойного дефис)), относящиеся к wibox:
 <code lua> <code lua>
 -- {{{ Wibox -- {{{ Wibox
Строка 625: Строка 734:
 </​code>​ </​code>​
 <note important>​В библиотеке **utility.lua** вы можете найти функции,​ которые так же могут показаться вам полезными.</​note>​ <note important>​В библиотеке **utility.lua** вы можете найти функции,​ которые так же могут показаться вам полезными.</​note>​
-====Присвоение приложению тэг по умолчанию====+=====Присвоение приложению тэг по умолчанию=====
 Еще одной удобной особенностью Awesome является возможность назначить приложению определенный тэг, для этого в конфигурационном файле необходимо добавить следующий код: Еще одной удобной особенностью Awesome является возможность назначить приложению определенный тэг, для этого в конфигурационном файле необходимо добавить следующий код:
 <code lua> <code lua>
Строка 745: Строка 854:
 ---- ----
  
-{{tag>​альтернативные_WM AwesomeWM ​Незаконченная_статья}}+{{tag>​альтернативные_WM AwesomeWM}}