awesome (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
awesome
. Дата последней синхронизации: 2024-08-19. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Ссылки по теме
Оконный менеджер
Сравнение тайловых оконных менеджеров
Среда рабочего стола
Экранный менеджер
Функциональность файлового менеджера
Меню Xdg
С
официального сайта
:
awesome
— это полностью настраиваемый современный
оконный менеджер
для
Xorg
. Он очень быстрый и расширяемый. Ориентирован на опытных пользователей, разработчиков, людей, занимающихся вычислениями и на тех, кто желает иметь полный контроль над графической средой.
Установка
Установите
пакет
awesome
. Разрабатываемая версия доступна в пакете
awesome-git
AUR
, считается нестабильной и может иметь отличия в API настроек.
Запуск
Запустите
awesome
с помощью
xinit
. Для того, чтобы использовать входящий в комплект файл
xsession
, смотрите статью
Экранный менеджер
.
GNOME
Вы можете настроить
GNOME
использовать awesome как визуальный интерфейс, но держать GNOME работющем в фоновом режиме. Смотрите
awesome-gnome
AUR
.
XFCE
Смотрите
Xfce (Русский)#Использовать сторонний оконный менеджер
.
Настройка
Файл конфигурации на основе языка программирования lua находится в
~/.config/awesome/rc.lua
.
Создание файла настроек
Во-первых, создайте новый каталог, необходимый в следующем шаге:
$ mkdir -p ~/.config/awesome/
Awesome попытается использовать настройки, которые содержится в файле ~/.config/awesome/rc.lua. Он не создается автоматически, поэтому скопируйте шаблон:
$ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/
Синтаксис файла настроек часто изменяется при обновлении awesome. Поэтому повторите эту команду, если с awesome произошло что-то непонятное или же вы хотите изменить настройки.
Дополнительная информация о настройке доступна в
разделе Configuration в документации awesome
.
Примеры
Примечание
Синтаксис конфигурации awesome регулярно меняется, поэтому Вам скорее всего придется изменить файл, который Вы скачаете.
Отличные примеры файлов rc.lua можно найти по следующим ссылкам:
Тема со скриншотами Awesome
Настройки Awesome от Setkeh
User configuration that supports different themes, including a status bar
Awesome configuration with two modern themes
Расширения
Несколько расширений, доступных для awesome:
Расширение
Функциональность
Версия
Revelation
Поверхностный просмотр всех открытых клиентов
Awesome 3.5+
Shifty
Динамические тэги
Awesome 3.5
Naughty
Всплывающие уведомления
Awesome 3.5+
Vicious
Obvious
Bashets
Дополнительные
виджеты
Awesome 3.5
Автозапуск программ
Для использования
XDG Autostart
установите
xorg-xrdb
и
dex
и добавьте следующие строки в файл
~/.config/awesome/rc.lua
:
~/.config/awesome/rc.lua
awful.spawn.with_shell(
    'if (xrdb -query | grep -q "^awesome\\.started:\\s*true$"); then exit; fi;' ..
    'xrdb -merge <<< "awesome.started:true";' ..
    -- list each of your autostart commands, followed by ; inside single quotes, followed by ..
    'dex --environment Awesome --autostart --search-paths "${XDG_CONFIG_HOME:-$HOME/.config}/autostart:${XDG_CONFIG_DIRS:-/etc/xdg}/autostart";'
    )
Для демонов без трея можно
использовать systemd-юниты с целью autostart.target
, что более функционально, так как они могут быть настроены так, чтобы продолжали работать даже после непредвиденной остановки.
Наконец, возможно
создать
скрипт
autorun.sh
со следующим содержимым:
~/.config/awesome/autorun.sh
#!/bin/sh

run() {
  if ! pgrep -f "$1" ;
  then
    "$@"&
  fi
}
Не забудьте сделать его
исполняемым
.
Для добавления программ автозапуск просто добавляйте строки вида
run "программа [аргументы]"
в файл
autorun.sh
. Функция
run
ищет указанную программу среди запущенных процессов и запускает её, только если ничего не нашлось. Проверьте корректность файла, попробовав запустить его напрямую:
$ ~/.config/awesome/autorun.sh
И, если всё хорошо, пропишите его в файле настроек:
~/.config/awesome/rc.lua
awful.spawn.with_shell("~/.config/awesome/autorun.sh")
Выбор раскладки клавиатуры
Есть несколько способов изменения раскладки клавиатуры.
С помощью setxkbmap
В стандартных настройках awesome уже активирован виджет раскладки.
Чтобы временно добавить несколько доступных раскладок, выполните
$ setxkbmap -layout "us,ru"
Клик по виджету будет переключать раскладку. Если вы хотите переключать раскладки с помощью клавиатуры, к команде можно добавить, например,
-option "grp:alt_shift_toggle"
для переключения с помощью
Shift+Alt
. То есть полная команда будет выглядеть так:
$ setxkbmap -layout "us,ru" -option "grp:alt_shift_toggle"
Пример для добавления фонетической русской раскладки:
$ setxkbmap -model pc105 -option "grp:shifts_toggle,compose:sclk" "us,ru(phonetic_YAZHERTY)"
где
в качестве клавиши Compose используется Scroll Lock, а переключение раскладки настроено на Left Shift + Right Shift;
используется клавиатура со 105 клавишами.
Чтобы сделать изменения постоянными, добавьте команду в автозапуск. Например, если вы используете
LightDM
, можно добавить команду в файл
.xprofile
.
С помощью rc.lua
Начиная с версии 4, в awesome можно настроить переключение раскладок. Для переключения раскладки с помощью
Shift+Alt
добавьте следующие две строки в
globalkeys
:
~/.config/awesome/rc.lua
-- {{{ Key bindings
globalkeys = gears.table.join(
    -- ...
    awful.key({ "Shift" }, "Alt_L", function () mykeyboardlayout.next_layout(); end),
    awful.key({ "Mod1" }, "Shift_L", function () mykeyboardlayout.next_layout(); end)
)
Необходимо заранее настроить несколько раскладок, например, с помощью setxkbmap или в файлах настроек X.
Команду для добавления раскладок можно добавить в
#Автозапуск программ
.
С помощью Xorg
Смотрите статью
Конфигурация клавиатуры в Xorg
.
Темы оформления
Beautiful
— это библиотека Lua, которая позволяет вам задавать темы оформления для awesome из внешних файлов. С её помощью весьма легко изменить «на лету» цвета или обои awesome без внесения изменений в файл
rc.lua
.
Тема по-умолчанию содержится в
/usr/share/awesome/themes/default
.  Скопируйте её
~/.config/awesome/themes/default
и измените
theme_path
в
rc.lua
.
-- beautiful.init(gears.filesystem.get_configuration_dir() .. "/themes/default/theme.lua")
local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), "default")
beautiful.init(theme_path)
Можно скопировать другие темы и заменить «default» на, например, «sky», «gtk», «zenburn» и т.д. — локальные копии тем легко изучать, изменять и тестировать. Смотрите
[1]
для информации о дополнительных параметрах тем. Например, чтобы добавить промежуток между окнами, добавьте
beautiful.useless_gap = 5
в файл
rc.lua
.
Обои рабочего стола
Beautiful может обрабатывать ваши обои, поэтому вам не нужно устанавливать их в ваших файлах
.xinitrc
или
.xsession
. Это позволяет иметь конкретные обои для каждой темы.
Есть два способа установить обои:
в вашей копии файла
theme.lua
:
-- абсолютный путь
theme.wallpaper = "/путь/к/фону.png"

-- относительно вашего каталога themes
theme.wallpaper = theme_path .. "путь/к/фону.png"
или в файле настроек
rc.lua
, где-нибудь между
beautiful.init
и
local function set_wallpaper
:
-- абсолютный путь
beautiful.wallpaper = "/путь/к/фону.png"

-- относительно каталога настроек
beautiful.wallpaper = awful.util.get_configuration_dir() .. "путь/к/фону.png"
Можно выбирать случайные обои с помощью такого скрипта:
[2]
— добавьте его в
rc.lua
, обновив настройки под ваши нужды. Модификация скрипта, которая умеет сама считывать список файлов из указанного каталога:
[3]
.
Советы и рекомендации
Скрыть / показать wibox
Чтобы привязать комбинацию Modkey + b для показа/скрытия строки состояния на активном рабочем столе (как в awesome 2.3),  добавьте в ваш
globalkeys
в rc.lua:
awful.key({ modkey }, "b",
          function ()
              myscreen = awful.screen.focused()
              myscreen.mywibox.visible = not myscreen.mywibox.visible
          end,
          {description = "toggle statusbar"}
),
Показывать wibox (или выполнять другие действия) только при нажатой Mod-клавише невозможно из awesome, но есть python-скрипт для этого:
autohidewibox
.
Скриншот (снимок экрана)
Смотрите статью
Keyboard input (Русский)
для правильного назначения кнопки
PrtSc
. Затем установите какую-нибудь
программу для создания скриншотов
например
scrot
.
Добавьте в массив
globalkeys
:
awful.key({ }, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/screenshots/ 2>/dev/null'", false) end),
Эта функция сохраняет скриншоты внутри
~/screenshots/
,  измените путь/папку при необходимости.
Удаление пробелов окна
Начиная с версии awesome 3.4, можно удалить небольшие зазоры между окнами; в
awful.rules.rules
таблице есть раздел
properties
,  добавьте к нему
size_hints_honor = false
Прозрачность
Смотрите
Xorg (Русский)#Композит
.
В 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)
wibox'ы
В awesome есть встроенная поддержка псевдо-прозрачности. Чтобы задействовать её, добавьте 2 шестнадцатеричные цифры к цветам в вашем файле темы (например,
~/.config/awesome/themes/default/theme.lua
, который, как правило, копия
/usr/share/awesome/themes/default/theme.lua
) как показано здесь:
theme.bg_normal = "#000000AA"
где "AA" это значение прозрачности.
Чтобы менять прозрачность текущего окна, нажатием
Modkey + PgUp/PgDown
, можно установить
transset-df
AUR
и внести следующие изменения в вашем
rc.lua
:
globalkeys = gears.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),
    -- Другое ваше сочетание клавиш
    [...]
)
Промежуток между виджетами
Стандартный файл
rc.lua
размещает в wibox'е виджеты, в том числе значок раскладки клавиатуры и часы, с очень маленьким промежутком между ними. Его можно увеличить с помощью свойства
spacing
:
{ -- Right widgets
       layout = wibox.layout.fixed.horizontal,
       spacing = 10,
       mykeyboardlayout,
       ...
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/Other#Application launchers
. Не забудьте добавить:
properties = { floating = true } },
    { rule = { instance = "$ваше_запускаемое_приложение" },
в ваш
rc.lua
.
Каталоги приложений в строке меню
awesome
содержит
menubar
. По умолчанию при нажатии
Mod
+p
откроется похожее на dmenu меню приложений в верхней части экрана. Оно ищет файлы
.desktop
в каталогах
$XDG_DATA_DIRS/applications/
и
$XDG_DATA_HOME/applications/
.
Чтобы добавить или заменить эти каталоги, можно изменить
menubar.menu_gen.all_menu_dirs
:
~/.config/awesome/rc.lua
table.insert(menubar.menu_gen.all_menu_dirs, "/path/to/custom/applications/")
Стоит отметить, что файлы
.desktop
перечитываются каждый раз при запуске awesome, тем самым замедляя запуск. Если вы запускаете программы другим способом, то меню можно отключить в
rc.lua
путём удаления
local menubar = require("menubar")
и других упоминаний переменной
menubar
.
Всплывающие меню
Существует простое меню в awesome 3, - упрощённое пользовательское меню.
[4]
Если вы хотите меню freedesktop.org, смотрите тут
awesome-freedesktop
.
Если вы предпочитаете видеть более традиционное меню приложений, когда вы щёлкаете по иконке Awesome или делаете щелчок правой кнопкой мышки по пустому участку рабочего стола, вы можете воспользоваться инструкциями, приведёнными в статье
Xdg-menu (Русский)#Awesome
. Однако это меню не обновляется при добавлении или удалении программ. Поэтому не забывайте выполнять команду для обновления вашего меню. Она может выглядеть примерно так:
xdg_menu --format awesome --root-menu /etc/xdg/menus/arch-applications.menu >~/.config/awesome/archmenu.lua
Заголовки окон
Включить заголовки окон в awesome легко, просто установите в файле настроек переменную titlebars_enabled в true (в разделе
Rules
):
{ rule_any = {type = { "normal", "dialog" }
     }, properties = { titlebars_enabled = true }
   },
Тем не менее, вы можете захотеть иметь возможность включения или отключения заголовков окон. Для этого вы можете добавить сочетание клавиш в clientkeys:
-- working toggle titlebar
   awful.key({ modkey, "Control" }, "t", function (c) awful.titlebar.toggle(c)         end,
             {description = "Show/Hide Titlebars", group="client"}),
Если вы хотите по умолчанию скрыть заголовки окон, выполните эту функцию сразу после создания заголовка окна (в обработчике сигнала
"manage"
):
awful.titlebar.hide(c)
Уведомление о состоянии батареи
Этот пост в блоге
содержит пример скрипта для
rc.lua
, показывающего простое уведомление о состоянии батареи. Заметьте, что для него требуется модуль
naughty
для уведомлений (установлен по умолчанию в версии 3.5). Ещё примеры есть на
сайте awesome
.
Мультимедийные клавиши
Можно управлять громкостью и статусом воспроизведения с клавиатуры с помощью amixer (пакет
alsa-utils
) и
playerctl
. Назначьте выполнение этих команд на соответствующие мультимедийные клавиши:
-- Volume Keys
   awful.key({}, "XF86AudioLowerVolume", function ()
     awful.util.spawn("amixer -q -D pulse sset Master 5%-", false) end),
   awful.key({}, "XF86AudioRaiseVolume", function ()
     awful.util.spawn("amixer -q -D pulse sset Master 5%+", false) end),
   awful.key({}, "XF86AudioMute", function ()
     awful.util.spawn("amixer -D pulse set Master 1+ toggle", false) end),
   -- Media Keys
   awful.key({}, "XF86AudioPlay", function()
     awful.util.spawn("playerctl play-pause", false) end),
   awful.key({}, "XF86AudioNext", function()
     awful.util.spawn("playerctl next", false) end),
   awful.key({}, "XF86AudioPrev", function()
     awful.util.spawn("playerctl previous", false) end),
Экранная клавиатура Steam
Экранная клавиатура Steam, активируемая с помощью
Steam Controller
, может зависнуть после попытки ввести один символ. Это происходит потому, что окно, которое должно получить ввод, должно иметь фокус, и клавиатура будет ждать, пока этот ввод не будет успешно отправлен. Ручное переключение фокуса на другое окно отправит ввод на него, и клавиатура отвиснет до следующей попытки ввода символа.
Хитрость заключается в том, чтобы предотвратить получение фокуса клавиатурой. Добавьте следующий сигнал в вашу конфигурацию (или объедините с существующим сигналом focus):
client.connect_signal("focus", function(c)
    if awful.rules.match(c, { name = "^Steam Keyboard$" }) then
        awful.client.focus.history.previous()
    end
end)
Это будет возвращать фокус предыдущему окну каждый раз, когда фокус переходит на клавиатуру. Поскольку ввод на клавиатуре обрабатывается клиентом
Steam
и потому не требует фокуса, ввод текста теперь будет работать правильно.
Решение проблем
Отладка 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.
Автоматический перезапуск
В дополнение к вышеописанному, вы можете использовать
inotify-tools
для автоматического перезапуска сеанса Awesome, находящегося внутри
Xephyr
при изменении любого файла настроек в директории
~/.config/awesome
:
#!/usr/bin/env bash

Xephyr :1 -ac -br -noreset -screen 1920x1080 -dpi 96 &
sleep 1
DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new &
instance=$!

while inotifywait -r -e close_write ~/.config/awesome; do
	kill -s SIGHUP $instance
done
awmtt
awmtt
AUR
(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
aawmtt
aawmtt
AUR
(Another Awesome WM Testing Tool — Другая утилита для тестирования Awesome WM) — ещё одна реализация
awmtt
AUR
с перезапуском на лету по умолчанию.
Она такая же
awmtt-ng
, но включает в себя несколько исправлений для механизма поиска дисплеев в Xorg, который не работает на некоторых машинах в случае с awmtt-ng.
В отличие от awmtt, эта реализация не пытается сначала запустить тестируемый файл, а запускает файл настроек по умолчанию.
Чтобы открыть окно Xephyr с загруженным Awesome, просто запустите команду:
$ aawmtt
Теперь вывод из Awesome будет происходить в ваш терминал, и после изменения любых файлов в папке настроек, Awesome wm будет перезапущен.
В случае если вы хотите поменять директорию, где будет отслеживаться изменение файлов, или путь к файлу настроек, запустите команду:
$ aawmtt --config "location_of_config_file" --watch "directory_to_watch_for_changes"
По умолчанию директория, в которой отслеживаются изменения, это родительская директория к вашему файлу настроек, то есть
~/.config/awesome
.
Файл журналов
Если вы используете
LightDM
, awesome будет записывать ошибки в `$HOME/.xsession-errors`. Если вы используете
.xinitrc
для запуска awesome, смотрите вопрос «Where are logs, error messages or something?» на
странице FAQ
.
Клавиша Mod4
Awesome рекомендует переназначить
mod4
, которой по умолчанию является клавиша
Super
(«Windows»). Если по какой-то причине она не распознаётся как
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
Исправление для Java приложений (серый интерфейс)
Смотрите
Java (Русский)#Ошибки отрисовки приложений Java
и
[5]
.
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"
Netbeans: автозавершение кода отображается на неправильном экране
Если у вас два дисплея и вы используете автозавершение кода (Ctrl + Space) в Netbeans, оно может отображаться на неправильном экране.
Может помочь это:
.config/awesome/rc.lua
awful.rules.rules = {
        ...
	{
		rule_matches = { -- Исправление Netbeans
			class = {
				"sun-awt-X11-XWindowPeer", "NetBeans IDE 8.2"
			},
			name = {
				"win1"
			}
		}, properties = { screen = 1 } -- даже если здесь экран 1, это всё равно работает и на втором экране (непонятно почему).
	},
        ...

}
scrot: не получается сделать скриншот с выделением мышью с помощью сочетаний клавиш
При использовании
scrot
могут возникнуть проблемы с назначением сочетания клавиш для создания снимка области экрана с выделением мышью (
scrot -s
). Чтобы решить эту проблему, добавьте следующую строку в ваш
rc.lua
:
awful.key( { modkey,	 },
клавиша
, nil, function () awful.spawn("scrot -s") end)
Обратите внимание, что в функцию
awful.key
в аргумент
press
передаётся
nil
. Вместо этого функция-обработчик, которая запускает scrot, передаётся в аргумент
release
.
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 } },
Смотрите
[6]
.
Запретить колесу прокрутки мыши менять теги
В вашем
rc.lua
измените раздел Mouse Bindings на следующий:
-- {{{ Mouse bindings
root.buttons(gears.table.join(
    awful.button({ }, 3, function () mymainmenu:toggle() end)
))
-- }}}
Xdg-menu генерирует дублирующиеся пункты меню
Xdg-menu будет генерировать дубликаты пунктов меню, если вы копируете файлы
.desktop
из
/usr/share/applications
в
~/.local/share/applications
, даже если предпочтительнее просто использовать пользовательские файлы вместо оригинальных, чтобы, например, задать другую тему для конкретного приложения. Одним из решений является фильтрация сгенерированного вывода через
awk
для удаления пунктов с именем, идентичным предыдущему пункту.
xdg_menu --format awesome --root-menu /etc/xdg/menus/arch-applications.menu | awk -F, '{if (a!=$1) print $a; a=$1}' >~/.config/awesome/archmenu.lua
Некоторые сочетания клавиш не работают в Xfce4
Возможно, есть пересечения в используемых сочетаниях клавиш между Xfce4 и awesome. Откройте настройки:
$ xfce4-keyboard-settings
и посмотрите, нет ли там пересечений с сочетаниями клавиш awesome, в частности с mod-клавишей (обычно Super_L).
Утечки памяти
Некоторые пользователи сталкиваются с
утечкой памяти
даже при отсутствии активности. При использовании большого количества виджетов утечка может происходить со скоростью до 5 МБ/мин. Чтобы уменьшить потребление памяти, можно выполнять более частую сборку мусора, добавив следующее в
~/.config/awesome/rc.lua
:
-- Регулярный запуск сборщика мусора для предотвращения утечки памяти
gears.timer {
       timeout = 30,
       autostart = true,
       callback = function() collectgarbage() end
}
Смотрите также
https://archlinux.org.ru/forum/topic/11748/
- Анатомия awesome
https://archlinux.org.ru/forum/topic/15184/
- Установка Awesome 3.5.6 и доведение его до рабочего состояния
https://awesomewm.org/apidoc/documentation/90-FAQ.md.html
- ЧаВо
https://www.lua.org/pil/
- Программирование на Lua
https://awesomewm.org/
- Официальный сайт awesome
https://bbs.archlinux.org/viewtopic.php?id=88926
- поделитесь своим awesome!
https://help.ubuntu.ru/wiki/awesome
- Отличная русскоязычная документация