I was recently prompted to publish my configuration for integrating GNOME and awesome. At the time I wrote this setup, the awesome wiki was recommending a configuration which didn’t correctly autostart applications, nor integrate well with anything expecting to find a session manager. However, it now contains instructions for a similar setup, so you should have a look at that too.
The first thing you need is an entry to tell your display manager about a new session type, so put this in /usr/share/xsessions/awesome-gnome.desktop:
[Desktop Entry] Name=awesome-gnome Comment=This session logs you into GNOME using the Awesome WM Exec=gnome-session --session=awesome-gnome TryExec=gnome-session Icon= Type=Application
Then you need to tell gnome-session about the "awesome-gnome" session. You might want to modify the notification daemon here. Put this in ~/.config/gnome-session/sessions/awesome-gnome.session:
[GNOME Session] Name=awesome-gnome RequiredComponents=gnome-settings-daemon; RequiredProviders=windowmanager; DefaultProvider-windowmanager=awesome DefaultProvider-notifications=notification-daemon FallbackSession=gnome-fallback DesktopName=GNOME
Then, GNOME expects to find a XDG application entry for "awesome", so put this in ~/.local/share/applications/awesome.desktop
[Desktop Entry] Type=Application Name=Awesome Comment=Window manager Exec=sh -c '/usr/bin/awesome &' NoDisplay=true X-GNOME-WMName=awesome X-GNOME-Autostart-Phase=WindowManager X-GNOME-Provides=windowmanager X-GNOME-Autostart-Notify=true X-GNOME-AutoRestart=false
Then you should be able to logout, and immediately see the awesome-gnome session which you can log into. Your display manager usually remembers the last session you logged into, but using this method, you can easily switch between GNOME shell, GNOME fallback and awesome-gnome.