Using Gnome 3 with i3 window manager

gnome-session-i3

My dual monitor setup using gnome-session + i3.

i3 is a tiling window manager, completely written from scratch. The target platforms are GNU/Linux and BSD operating systems, our code is Free and Open Source Software (FOSS) under the BSD license. i3 is primarily targeted at advanced users and developers.

fragment from i3wm.org

This post has been updated to work with Ubuntu 13.10

I started using i3 as my window manager eight months ago, since then I’ve been using i3 alone, at first it was a pain, all things I was used to in a traditional desktop environment no longer worked as I expected, usb automounting, sound indicator with media controls, wallpaper, screen-saver… all gone. You can have some of those things back, but you have to install and configure them individually,  they work pretty well but they are still replacements and not everything works as you are used to from  another desktops.

A friend of mine who recently started working on the place where I work, showed me his desktop setup using xmonad over a gnome 3 session, replacing its own window manager with a tiling window manager, but keeping all the goodies from gnome. Xmonad installs by default a gnome session using xmonad as window manager in addition to a just xmonad session. So I decided to replicate it for i3, which was dead easy.

If you are using Ubuntu with unity, you will need to install gnome 3 and i3. Do it by running

$ sudo apt-get install gnome-session gnome-settings-daemon gnome-panel i3

then create the file /usr/share/xsessions/gnome-i3.desktop and put this inside

[Desktop Entry]
Name=GNOME with i3
Comment=A GNOME fallback mode session using i3 as the window manager.
Exec=gnome-session --session=i3
TryExec=gnome-session
Icon=
Type=Application

finally create another file in /usr/share/gnome-session/sessions/i3.session containing the following

[GNOME Session]
Name=gnome-i3
RequiredComponents=gnome-settings-daemon;gnome-panel;i3;

Now restart your session manager and select “Gnome with i3” as your session.

$ sudo service lightdm restart

If you don’t like having the Gnome desktop as a window inside your i3 you can disable it with the following command:

$ gsettings set org.gnome.desktop.background show-desktop-icons false

You can also restore the setting repeating the command but changing false to true.

Comments

  1. We can be heroes XD

    Li pegaré una estirada, malgrat que la veritat és que xmonad+xfce4 és genial.

    Comment by paurullan -
  2. Hi,

    This is a very nice tutorial bro, very usefull for me.

    But i have one question, when swap on second destop with magic key + 2 , i can’t right click on desktop .

    But in desktop 1 i can .

    Did u have an idea of the problem ?

    WIl

    Comment by wil -
  3. Thanks for the guide. Just adding if you want to keep everything in your home folder you can put gnome-i3.session in ~/.config/gnome-session/sessions/ and use the user-defined session option and a ~/.xsession that looks like:

    #! /usr/bin/env bash
    exec gnome-session --session=gnome-i3

    Comment by Anntoin -
  4. what file manager do you use? i’m seriously considering doing this (when i can afford to build a new machine)

    Comment by drake -
  5. @drake, I’m using nautilus.

    Comment by Hugo Chinchilla -
  6. I cannot for the life of me get this working, I’ve tried it on arch linux and now debian, every time lightdm or gdm3 complains that it can’t find the gnome-session –session=gnome-i3 and falls back to default (in debian) or in arch I would just get a flicker of a black screen and back to the login prompt….sigh

    Comment by Davo -
    • Try this known issue listed here:

      https://help.gnome.org/admin/system-admin-guide/stable/session-custom.html.en

      On a Debian or Debian-based system, the following error may occur:
      Xsession: unable to launch “”
      Xsession — “” not found; falling back to default
      session.
      Should this happen to you, follow these steps to change the /etc/X11/Xsession.d/20×11-common_process-args file:
      Change STARTUP_FULL_PATH=$(/usr/bin/which “$1″|| true) to STARTUP_FULL_PATH=$(/usr/bin/which $1 || true)
      Change STARTUP=”$1” to STARTUP=$1

      Comment by Rick -
  7. Hugo,

    I recently switched to i3 and like you, desired a painless way to have a status bar and d-bus support.
    Your customizations worked perfectly on my Ubuntu 12.04 system.
    Running i3 over Gnome is a bit slower than plan i3, but works great.

    Thanks for your post!

    Comment by Jerry Mindek -
  8. Hello,
    thank you for your tutorial. It worked, but i recently updated the whole system to Ubuntu 13.10. And it is not working anymore. I also tried to set it up as awesome and gnome on Ubuntu 13.10 but then it works like standart i3. Can you help me?
    Thanks

    Comment by Peto -
  9. Thanks for this, it worked great for me. The only minor problem is the top gnome panel doesn’t extend the full width of the window on my external display.

    Can I ask, what is it you’re using in your terminal to show the Git branch and those icons to the left of your prompt?

    Comment by David North -
    • @David North, it is zsh with oh-my-zsh installed, you have tons of layouts to start with and tweak to your taste.

      Sorry for the delay, I just noticed emails notifications on the blog are not working properly.

      Comment by Hugo Chinchilla -
  10. Hello Hugo, Thanks for this awesome post. I’m using i3 in this way but i have problem with dual monitoring situation. Wrong monitors combination. and sadly, gnome-control-center won’t work in this situation. Any Idea?

    Comment by bersam -
  11. Hi, I have debian 7. I did everething like in tutorial, but i have this message” Xsession: unable to launch “gnome-session=i3″X session —“gnome-session –session=i3″ not found; falling back to default session.” can you help me fix this problem?

    Comment by Aristarkh -
  12. How did you get spotify in your gnome-panel like that? Is that a unity specific thing? (I am setting this up on Debian)

    Comment by Hunter -
  13. Works beautifully on Ubuntu 14.04. The last step of disabling desktop icons is crucial for me with dual screen setup.
    Thanks for sharing this.

    Comment by Biocbyerman -
  14. Doesn’t work anymore with Ubuntu 15.04 🙁

    Comment by Nico -
  15. This was working for me (or a variant, I know I used this site when setting myself up) — then maybe in April there was an update that included some Gnome stuff and now it doesn’t work. I would love someone to tell me how to fix it!!!

    Currently, if I log in to my i3+gnome, the gnome takes a while to fully load (it was always this way for me). After the delay for the loading time, it borks, and promptly logs me out again. i3 works fine by itself still.

    Comment by Lil -
  16. Nice tip! For Ubuntu 12.04 I had to modify the i3.session a little bit, in order to make it work a little bit better:


    [GNOME Session]
    Name=i3
    RequiredComponents=gnome-settings-daemon;
    RequiredProviders=windowmanager;
    DefaultProvider-windowmanager=i3

    If you want to have the GNOME Panel too, it can be also altered to:


    [GNOME Session]
    Name=i3
    RequiredComponents=gnome-settings-daemon;
    RequiredProviders=windowmanager;panel;
    DefaultProvider-windowmanager=i3
    DefaultProvider-panel=gnome-panel

    Another issue I ran into was the thirty second delay, right after starting i3, before the applets started showing up. The solution was to manually register i3 into gnome-session. Just add the following line to the end of your ~/.config/i3/config file:


    exec --no-startup-id dbus-send --session --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.RegisterClient string:i3.desktop string:''

    Comment by C2H5OH -

Leave a Reply

Your email address will not be published. Required fields are marked *