Sourcing commands during login
I've not tried either
.xsession files to do this, but I have done it using a custom launcher that gets run when I login. You can access the dialog that allows you to do this a couple of ways, I usually just launch it from the command line like so.
The GUI looks like this.
From here you can create your own custom startup launchers and then point them to shell scripts that contain what ever commands you need to invoke. Here I've created my own Dropbox launcher script that gets executed when I log in.
Mapping keys to run commands
If on the other hand you're looking to create shortcut key combinations that will launch commands, I've successfully been using XBindKeys on GNOME 3.8.4 for this very purpose.
My use has been modest but I like to create keyboard shortcuts for Nautilus to launch with certain directories opened.
You'll need to first make sure the packages
xbindkeys is installed.
Then you'll need to run the following command, one time only, to create a template
xbindkeys configuration file.
$ xbindkeys --defaults > /home/saml/.xbindkeysrc
With the file created you can open it in a text editor and add a rule like this:
"nautilus --browser /home/saml/projects/path/to/some/dir"
Mod4+shift + q
With the above change made we need to kill
xbindkeys if it's already running and then restart it.
$ killall xbindkeys
Now with this running any time I type Mod+Shift+Q Nautilus will open with the corresponding folder opened.
Why isn't .xsession or .xinit getting sourced
I believe the ultimate issue lies with this post, titled: Quickly Setting up Awesome with Gnome. It discusses methods for getting GDM (GNOME's Display Manager) into loading these files, which to me implies that it doesn't by default.
My Fedora 19 system contains this file:
/usr/share/xsessions/gnome.desktop which contains these lines:
I believe gnome-session doesn't source your
.xsession file by default, and the
.xinit is meant to be sourced if you invoke GNOME using
Be sure to look through the section titled: with GDM, which shows this in more details.