Quickly Setting up Awesome with Gnome/ru

Эта страница поможет настроить Gnome на использование Awesome в качестве оконного менеджера, что позволит Вам постепенно привыкнуть к Awesome. Настройка Awesome как оконного менеджера Gnome даст вам преимущества использования из обоих миров: Конечно увеличивается время запуска, так как вам нужно запустить Gnome, но для кого то это может облегчить жизнь и переход на Awesome.
 * Динамическое управление окнами;
 * Легко настраиваемый рабочий стол;
 * Качественный автозапуск;
 * Использование тем GTK без проблем.

Как именно вы можете произвести такую настройку, во многом зависит от версии Gnome, но в целом многое идентично.

gnome < 2.12
Приведённые ниже команды внесут некоторые изменения в настройки gconf, чтобы сделать Awesome оконным менеджером по умолчанию и запретить Nautilus управлять рабочим столом. Это должно сработать для версий Gnome старше 2.12.

gconftool-2 --type bool --set /apps/nautilus/preferences/show_desktop False # Запрет Nautilus управлять рабочим столом gconftool-2 --type string --set /desktop/gnome/applications/window_manager/current /usr/bin/awesome # Установка Awesome в качестве оконного менеджера -- учтите, что если вы компилировали Awesome вручную, возможно, понадобится указать путь /usr/local/bin/awesome

Обычная
В более новых версиях Gnome попробуйте gconftool-2 --type bool --set /apps/nautilus/preferences/show_desktop False # Отключение управления рабочим столом для Nautilus gconftool-2 --type string --set /desktop/gnome/session/required_components/windowmanager awesome # Установка Awesome в качестве оконного менеджера

Очевидно, если вы предпочитаете графический интерфейс (в чем я сомневаюсь, ведь вы используете Awesome!) вы можете воспользоваться gconf-editor.

Если ваш дистрибутив не содержит /usr/share/applications/awesome.desktop, то вам также необходимо добавить в ~/.local/share/applications/awesome.desktop [Desktop Entry] Version=1.0 Type=Application Name=Awesome Comment=The awesome launcher! TryExec=awesome Exec=awesome

Без использования gdm
Попробуйте запустиь Awesome вне Gnome. Сохраните введенные строки gconftool, но удалите то что внесли в ~/.config/autostart/awesome.desktop, и вместо этого исползуйте ~/.xinitrc: #!/bin/sh awesome & exec ck-launch-session gnome-session # ck-launch-session is advised for the dbus stuff to work fine.

Не забудьте сделать скрипт исполнимым: chmod +x ~/.xinitrc

Запускайте все это после startx.

С использованием gdm
В дополнение, если вы исопльзуете GDM, укажите ему, что нужно запускать стандартную сессию системы. Последние версии могут не позволить вам это сделать, поэтому добавьте в файл /usr/share/xsessions/xsession.desktop следующие строки: [Desktop Entry] Name=Xsession Comment=This runs ~/.xsession Exec=/etc/X11/Xsession

Добавьте этот файл и выберите для запуска Xsession, затем сделайте ссылку ~/.xsession на .xinitrc ln -s ~/.xsession ~/.xinitrc

Настройка: 3.0 <= gnome < 3.4
Перейдите в System Settings -> System Info -> Graphics -> Forced Fallback Mode ON. Это отключит Gnome 3 Shell, который несовместим с экзотическими оконными менеджерами.

Теперь, самым простым будет создать файл с названием .gnomerc в вашем каталоге $HOME со следующим содержимым:

export WINDOW_MANAGER=/usr/local/bin/awesome-wm

Затем вы можете создать скрипт находящийся в /usr/local/bin/awesome-wm со следующим содержанием:

awesome &
 * 1) !/bin/sh

Сессия gnome-session
Вы также можете рассказать "gnome-session" об awesome через файл сессий. Сохраните следующий код как /usr/share/gnome-session/sessions/awesome.session или ~/.config/gnome-session/sessions/awesome.session: [GNOME Session] Name=Awesome session RequiredComponents=gnome-settings-daemon; RequiredProviders=windowmanager;notifications; DefaultProvider-windowmanager=awesome DefaultProvider-notifications=notification-daemon Обратите внимание, что это отключит gnome-panel. Если вы хотите использовать ее, добавьте "gnome-panel;" в строку RequiredComponents: RequiredComponents=gnome-settings-daemon;gnome-panel; Затем укажите gnome-session использовать новую сессию по уполчанию, запустив следующую команду: gsettings set org.gnome.desktop.session session-name awesome

Обратите внимание, что здесь используется новый фреймворк gsettings, а не старый gconf.

Сделав это, вы определите, что выбирая "Gnome" в вашем display manager теперь будет запускаться Awesome.

Сессия Display manager
Вместо изменения "Gnome" xsession в вашем менеджере диплеев, вы можете создать новый xsession. Это позволит вам выбирать между обычным Gnome и Gnome+Awesome через login prompt.

Сохраните файл awesome.session как написано в предыдущем разделе.

Сохраните следующий код как /usr/share/applications/awesome.desktop (возможно ваш дистрибутив уже создал этот файл для вас, например Debian делает это): [Desktop Entry] Version=1.0 Type=Application Name=Awesome Comment=The awesome launcher! TryExec=awesome Exec=awesome

Сохраните следующий код как /usr/share/xsessions/gnome-awesome.desktop: [Desktop Entry] Name=Awesome GNOME Comment=Dynamic window manager TryExec=/usr/bin/gnome-session Exec=gnome-session --session awesome Type=XSession

Теперь при входе, выберите сессию "Awesome GNOME". Переименуйте ее по вашему желанию (вот некоторые варианты: "GNOME tiling", "GNawesome", может быть "Erdgeist").

Arch Linux
Установите пакет awesome-gnome через AUR.

Debian
Note: Приведенный выше gnome-awesome.desktop кажется не работает в Debian. Кажется, что в Debian gdm3 передает строку Exec из файла gnome-awesome.desktop как есть в /etc/X11/Xsession, а этот скрипт поддерживает только одну команду без аргументов. Создайте файл gnome-awesome.desktop по образцу резервного файла сессий, который вызывает скрипт оболочки, работающий в обход этой проблемы.

Сохраните следующий код как /usr/share/xsessions/gnome-awesome.desktop: [Desktop Entry] Name=Awesome GNOME Comment=Dynamic window manager TryExec=gnome-session Exec=gnome-session-awesome Type=XSession

Сохраните следующий код как /usr/bin/gnome-session-awesome exec gnome-session --session awesome "$@"
 * 1) !/bin/bash

Файл awesome.session приведен выше.

Gentoo Linux
Для использования Gnome используйте флаг для пакета x11-wm/awesome

Ubuntu 11.10
Сохраните следующий код как /usr/share/gnome-session/sessions/awesome.session: [GNOME Session] Name=Awesome session RequiredComponents=gnome-settings-daemon;gnome-panel; RequiredProviders=windowmanager; DefaultProvider-windowmanager=awesome DefaultProvider-notifications=notification-osd DesktopName=GNOME

Сохраните следующий код в файл /usr/share/applications/awesome.desktop: [Desktop Entry] Version=1.0 Type=Application Name=Awesome Comment=The awesome launcher! TryExec=awesome Exec=awesome

Сохраните следующий код в файл /usr/share/xsessions/gnome-awesome.desktop: [Desktop Entry] Name=Awesome GNOME Comment=Dynamic window manager TryExec=/usr/bin/gnome-session Exec=gnome-session --session=awesome Type=XSession

Gnome 3.9 / Ubuntu 13.10
Сохраните следующий код в файл /usr/share/gnome-session/sessions/awesome.session или /usr/local/share/gnome-session/sessions/awesome.session: [GNOME Session] Name=Awesome session RequiredComponents=awesome;gnome-settings-daemon; DesktopName=Awesome

Сохраните следующий код в файл /usr/share/applications/awesome.desktop (к сожалению файл /usr/local/share/applications не сработает): [Desktop Entry] Version=1.0 Type=Application Name=Awesome Comment=The awesome launcher! TryExec=awesome Exec=awesome

Сохраните следующий код в файл /usr/share/xsessions/awesome-gnome.desktop: [Desktop Entry] Name=Awesome GNOME Comment=Dynamic window manager Exec=gnome-session --session=awesome TryExec=awesome Type=Application X-LightDM-DesktopName=Awesome GNOME X-Ubuntu-Gettext-Domain=gnome-session-3.0

Теперь вам нужно изменить как минимум /etc/xdg/autostart/gnome-settings-daemon.desktop, чтобы добавить Awesome в ключ OnlyShowIn, результат должен выглядеть следующим образом: [Desktop Entry] Type=Application Name=GNOME Settings Daemon Exec=/usr/lib/gnome-settings-daemon/gnome-settings-daemon-localeexec OnlyShowIn=GNOME;Unity;Awesome; NoDisplay=true X-GNOME-Autostart-Phase=Initialization X-GNOME-Autostart-Notify=true X-GNOME-AutoRestart=true X-Ubuntu-Gettext-Domain=gnome-settings-daemon Вы можете также проверить другие файлы в этом каталоге и изменить ключ OnlyShowIn, там могут быть привязки gnome и скринсейвера amon и другие варианты для этого ключа.

В завершение не забудьте заменить выход из Awesome, на использование gnome-session-quit как описано ниже.

Если курсор мыши невидим, вам может потребоваться установить cursor - active в значение false. Вы можете сделать это, выполнив: dconf write /org/gnome/settings-daemon/plugins/cursor/active false

Если в gnome-control-center отсутствуют некоторые пункты меню, проверьте все файлв /usr/share/applications/gnome*panel*. Добавьте Awesome в ключ OnlyShowIn снова сделает их видимыми и доступными.

В завершение
Выйдите из Gnome и войдите снова, Вы должны увидеть, что теперь в качестве оконного менеджера используется Awesome. Также Вы заметите, что gnome-panel и все остальные приложения Gnome всё еще запущены.

Дальнейшая настройка
Вероятно, Вы захотите использовать в качестве панели gnome-panel или основную панель Awesome (wibox). Если понадобится отключить wibox, уберите код, отвечающий за его запуск, из файла rc.lua. Самый простой способ отключения gnome-panel - перестать использовать gnome-session и запускать сессию традиционным способом, подразумевающим использование файла .xinitrc или .Xsession. Этот файл обычно представляет собой shell-скрипт, запускаемый менеджером входа в систему или непосредственно X-сервером. Завершение выполнения скрипта приводит к завершению сессии. Вот образец файла .Xsession / .xinitrc. (Учтите, что в некоторых дистрибутивах он называется .Xsession, а в некоторых - .xinitrc. Если Вы не знаете, какой из них используется Вашим дистрибутивом, создайте любой и сделайте символьную ссылку при помощи ln -s.)

gnome-settings-daemon & # этот демон управляет темами и запускает gnome-screensaver. # Вы можете использовать gconf, чтобы запретить ему устанавливать # фоновый рисунок. nm-applet &            # предполагается, что Вы пользуетесь Network Manager pidgin &               # если у вас нет Pidgin, поместите сюда любые другие программы gnome-power-manager &  # полезно для ноутбуков gnome-volume-manager & # для монтирования CD, USB, и прочих сменных носителей eval `gnome-keyring-daemon` #агент SSH/GPG exec awesome           # awesome получает идентификатор процесса xinit; # когда он завершит работу, X-сервер будет остановлен

Если Вы всё еще используете GDM, то можете выбрать что-то наподобие "X client script" при выборе сессии на экране входа в систему.

Примечание: для тем вместо gnome-settings-daemon Вы можете использовать утилиту gtk-chtheme, которая находится в репозитории. Ее преимущество в том, что она не меняет обои рабочего стола и потребляет меньше памяти.

Примечание: gnome-volume-manager был переименован (в некоторых версиях) и был перемещен в /usr/lib/gnome-settings-daemon/gnome-fallback-mount-helper по крайней мере в Ubuntu 13.10. Также и gnome-power-manager тоже был переименован.

Проблемы

 * Если у Вас возникли проблемы с "awsetbg", т.е. он не устанавливает фоновый рисунок и выдаёт ошибку, установите программу "feh".

eval `dbus-launch --sh-syntax --exit-with-session`
 * Если nautilus не желает открывать gvfs ссылки (такие как sshfs:// или computer://), проверьте путь к gnome-settings-daemon. В некоторых дистрибутивах он устанавливается в /usr/libexec. Если решить проблему не удается, попробуйте предложение с сайта https://bbs.archlinux.org/viewtopic.php?pid=660605. Добавьте

в начало файла ~/.xinitrc


 * Если вы запускаете gnome-settings-daemon, но не хотите чтобы он устанавливать фоновое изображение, то запустите команду приведенную ниже. Однако помните, что простая установка значения /desktop/gnome/background/draw_background = false не помешает gnome-settings-daemon устанавливать фоновое изображение.

gconftool-2 --type bool --set /apps/gnome_settings_daemon/plugins/background/active False


 * Если вы используете метод запуска на основе gnome-session, выход из Awesome может сработать, оставив вас в зависшем сотоянии. Для того чтобы исправить эту ситуацию, разместите следующий код в начале вашего rc.lua:

-- Переопределяем awesome.quit при использовании GNOME _awesome_quit = awesome.quit awesome.quit = function if os.getenv("DESKTOP_SESSION") == "awesome-gnome" then os.execute("/usr/bin/gnome-session-quit") else _awesome_quit end end

Здесь предполагается, что вы скопировали файл "gnome" xsession и создали новую сессию "awesome-gnome". Если вы модифицировали существующий gnome.session, замените "awesome-gnome" описанный выше на "gnome".

Апплет GNOME Awesome
Для пользователей которые хотят использовать GNOME как можно больше (например GNOME panel, область уведомлений, диалог запуска, и т.д.), но все еще используют Awesome как оконный менеджер, Апплет GNOME Awesome может быть очень удобен. Апплет GNOME Awesome это стандартный апплет панели GNOME panel который контролирует Awesome (например показывает текущую схему, как это делает wibox) и позволяет взаимодействовать с ним (например Lua prompt, GNOME Run Dialog, и т.д.).