Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
wiki:awesome [2012/08/24 14:26] |
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> | ||
| ===gnome-settings-daemon=== | ===gnome-settings-daemon=== | ||
| - | Оптимальным решением будет добавление в [[awesome#Автозагрузка|автозагрузку]] awesome службы **gnome-settings-daemon**, данная служба будет применять все настройки **gnome-control-center** включая управление питанием, автомонтирование, назначением горячих клавиш, переключением раскладки и т.д. | + | Оптимальным решением будет добавление в [[awesome#Автозагрузка|автозагрузку]] awesome службы **gnome-settings-daemon**, данная служба будет применять все настройки **gnome-control-center** включая управление питанием, назначением горячих клавиш, переключением раскладки и т.д. |
| - | Единственный минус его использования- в трее появляется значок клавиатуры, но его можно легко [[wiki:как_убрать_индикатор_раскладки_клавиатуры|убрать]]. | + | Единственный минус его использования- в трее появляется значок клавиатуры, но его можно легко [[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. | ||
| + | |||
| + | Операцию переключения пользователя обеспечивает пакет **dm-tools**, подробно о его применении можно почитать в справке **man dm-tools**. Для добавления в правый верхний угол кнопки с системным меню проделаем следующее. | ||
| + | - Добавляем в rc.lua конфигурацию меню:<code lua>system_menu = awful.menu({ items = { | ||
| + | { "Переключить пользователя", "dm-tool switch-to-greeter" }, | ||
| + | { "Гость", "dm-tool switch-to-guest" }, | ||
| + | { "Пользователь N", "dm-tool switch-to-user системное_имя_пользователя_N" }, | ||
| + | { "Выйти", awesome.quit }, | ||
| + | { "=====Awesome=====" }, | ||
| + | { "Руководство", terminal .. "-e man awesome" }, | ||
| + | { "Настройка", editor_cmd .. " " .. awesome.conffile }, | ||
| + | { "Перезапуск", awesome.restart }, | ||
| + | { "=====Система=====" }, | ||
| + | { "Параметры системы", "gnome-control-center" }, | ||
| + | { "Спящий режим", "sudo pm-hibernate" }, | ||
| + | { "Перезагрузка", "sudo reboot" }, | ||
| + | { "Выключение", "sudo shutdown" }, | ||
| + | },width = 250, | ||
| + | })</code> В данном меню предусмотрены команды управления питанием, для того, что бы эти пункты меню работали, необходимо [[wiki:суперпользователь_в_ubuntu#Разрешение пользователю выполнять команду без ввода пароля|сконфигурировать]] sudoers на выполнение данных команд без запроса пароля. | ||
| + | - Добавляем в файл **~/.config/awesome/themes/theme.lua** иконку создаваемой кнопки меню(пример для AwOken):<code lua>theme.system_icon = "/usr/share/icons/AwOken/clear/24x24/categories/applications-system.png"</code> | ||
| + | - Создаем в rc.lua виджет типа "launcher" для вызова меню:<code lua>system_button = awful.widget.launcher({ image = image(beautiful.system_icon), | ||
| + | menu = system_menu })</code> | ||
| + | - Добавляем созданный виджет в крайнее правое положение панели(файл rc.lua):<code lua> mywibox[s].widgets = { | ||
| + | { | ||
| + | mylauncher, | ||
| + | mytaglist[s], | ||
| + | mypromptbox[s], | ||
| + | layout = awful.widget.layout.horizontal.leftright | ||
| + | }, | ||
| + | system_button, | ||
| + | mytextclock, | ||
| + | s == 1 and mysystray or nil, | ||
| + | mytasklist[s], | ||
| + | layout = awful.widget.layout.horizontal.rightleft | ||
| + | }</code> | ||
| + | |||
| + | <note tip>Для того, что бы при переключении пользователя можно было слышать звуки "фоновых" пользователей, воспользуйтесь [[pulseaudio#воспроизведение_звука_от_двух_пользователей_одновременно|данным]] руководством</note> | ||
| + | =====Автомонтирование внешних накопителей===== | ||
| + | Используя программу из рабочего окружения Unity можно настроить автомонтирование внешних носителей при подключении. Для этого необходимо добавить в [[awesome#Автозагрузка|автозагрузку]] демон **/usr/lib/gnome-settings-daemon/gnome-fallback-mount-helper**, настройки на его действия задаются в //gnome-control-center//("Параметры системы" в Unity), но в сессии, отличной от Unity, пункт конфигурации этого демона убирается, поэтому для его настройки необходимо зайти в сессию Unity. | ||
| ======Использование с рабочим окружением (Desktop Environment)====== | ======Использование с рабочим окружением (Desktop Environment)====== | ||
| Так как Awesome является всего лишь оконным менеджером, то после запуска сессии Awesome не будет запущено никаких служб и сервисов, что с одной стороны хорошо, с точки зрения быстродействия и легкости, а с другой стороны- не очень, с точки зрения удобства использования. В данном разделе будет рассмотрена возможность запуска сессии основных рабочих окружений с Awesome в качестве оконного менеджера. | Так как Awesome является всего лишь оконным менеджером, то после запуска сессии Awesome не будет запущено никаких служб и сервисов, что с одной стороны хорошо, с точки зрения быстродействия и легкости, а с другой стороны- не очень, с точки зрения удобства использования. В данном разделе будет рассмотрена возможность запуска сессии основных рабочих окружений с Awesome в качестве оконного менеджера. | ||
| Строка 461: | Строка 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 | ||
| Строка 586: | Строка 734: | ||
| </code> | </code> | ||
| <note important>В библиотеке **utility.lua** вы можете найти функции, которые так же могут показаться вам полезными.</note> | <note important>В библиотеке **utility.lua** вы можете найти функции, которые так же могут показаться вам полезными.</note> | ||
| - | ====Присвоение приложению тэг по умолчанию==== | + | =====Присвоение приложению тэг по умолчанию===== |
| Еще одной удобной особенностью Awesome является возможность назначить приложению определенный тэг, для этого в конфигурационном файле необходимо добавить следующий код: | Еще одной удобной особенностью Awesome является возможность назначить приложению определенный тэг, для этого в конфигурационном файле необходимо добавить следующий код: | ||
| <code lua> | <code lua> | ||
| Строка 706: | Строка 854: | ||
| ---- | ---- | ||
| - | {{tag>альтернативные_WM AwesomeWM Незаконченная_статья}} | + | {{tag>альтернативные_WM AwesomeWM}} |