Difference between revisions of "Qtile"

From Funtoo Linux
Jump to: navigation, search
(Added configs)
m (Changed header sizes)
Line 1: Line 1:
== Introduction ==
+
= Introduction =  
 +
This wiki is a work in progress.
 +
 
 
"Qtile is a full-featured, hackable tiling window manager written in Python.
 
"Qtile is a full-featured, hackable tiling window manager written in Python.
  
Line 8: Line 10:
 
The Qtile community is active and growing, so there's always someone to lend a hand when you need help.
 
The Qtile community is active and growing, so there's always someone to lend a hand when you need help.
  
Qtile is free and open-source software, distributed under the permissive MIT license"<ref>[http://qtile.org Qtile]</ref>
+
Qtile is free and open-source software, distributed under the permissive MIT license"<ref>[http://qtile.org
 +
Qtile]</ref><ref>[http://docs.qtile.org/en/latest/manual/license.html License]</ref>
  
=== The Qtile Community ===
+
== The Qtile Community ==
  
==== IRC ====
+
=== IRC ===
 
<nowiki>#qtile on OFTC</nowiki>
 
<nowiki>#qtile on OFTC</nowiki>
  
==== Mailing List ====
+
=== Mailing List ===
 
qtile-dev on Google Groups
 
qtile-dev on Google Groups
  
==== Twitter ====
+
=== Twitter ===
 
@qtile on Twitter
 
@qtile on Twitter
  
=== Troubleshooting ===
+
== Troubleshooting ==
 
[https://github.com/qtile/qtile/issues Issues]
 
[https://github.com/qtile/qtile/issues Issues]
  
=== Documentation ===
+
== Documentation ==
 
[http://docs.qtile.org/en/latest/index.html# Qtile Documentation]
 
[http://docs.qtile.org/en/latest/index.html# Qtile Documentation]
  
== Installation ==
+
= Installation =
  
=== Portage ===
+
== Portage ==
 
The ebuild on portage is broken for now.
 
The ebuild on portage is broken for now.
  
=== Manual (Github) ===
+
== Manual (Github) ==
 
This section is taken from the documents from Qtile.<ref>[http://docs.qtile.org/en/latest/manual/install/gentoo.html Installation on Gentoo]</ref>
 
This section is taken from the documents from Qtile.<ref>[http://docs.qtile.org/en/latest/manual/install/gentoo.html Installation on Gentoo]</ref>
  
==== Dependencies ====
+
=== Dependencies ===
 
USE flags and keyword changes may have to be made for the packages taken from portage.  
 
USE flags and keyword changes may have to be made for the packages taken from portage.  
  
===== libxcb =====
+
==== libxcb ====
 
libxcb can be emerged from portage.
 
libxcb can be emerged from portage.
  
 
<pre style="color:green"># emerge libxcb</pre>
 
<pre style="color:green"># emerge libxcb</pre>
  
===== xpyb =====
+
==== xpyb ====
 
xpyb can be emerge from portage. Make sure that you are emerging xpyb-1.3.1
 
xpyb can be emerge from portage. Make sure that you are emerging xpyb-1.3.1
  
 
<pre style="color:green"># emerge xpyb</pre>
 
<pre style="color:green"># emerge xpyb</pre>
  
===== cairo =====
+
==== cairo ====
 
cairo can be emerged from portage.
 
cairo can be emerged from portage.
  
 
<pre style="color:green"># emerge cairo</pre>
 
<pre style="color:green"># emerge cairo</pre>
  
===== pygtk =====
+
==== pygtk ====
 
pygtk can be emerge from portage.
 
pygtk can be emerge from portage.
  
 
<pre style="color:green"># emerge pygtk</pre>
 
<pre style="color:green"># emerge pygtk</pre>
  
===== py2cairo =====
+
==== py2cairo ====
 
<pre style="color:green"># git clone git://git.cairographics.org/git/py2cairo
 
<pre style="color:green"># git clone git://git.cairographics.org/git/py2cairo
 
# cd py2cairo
 
# cd py2cairo
Line 66: Line 69:
 
# sudo make install</pre>
 
# sudo make install</pre>
  
===== qtile =====
+
==== qtile ====
 
<pre style="color:green"># git clone git://github.com/qtile/qtile
 
<pre style="color:green"># git clone git://github.com/qtile/qtile
 
# cd qtile
 
# cd qtile
 
# sudo python setup.py install --record files_uninstall.txt</pre>
 
# sudo python setup.py install --record files_uninstall.txt</pre>
  
== Setup ==
+
= Setup =
 
Copy either a config from the examples directory in the cloned qtile (including a default config), a config you have found elsewhere, or create your own config.
 
Copy either a config from the examples directory in the cloned qtile (including a default config), a config you have found elsewhere, or create your own config.
 
<pre style="color:green"># cp /path/to/cloned-qtile/examples/config/cortesi-config.py ~/.config/qtile/config.py
 
<pre style="color:green"># cp /path/to/cloned-qtile/examples/config/cortesi-config.py ~/.config/qtile/config.py
Line 84: Line 87:
 
For further information, see the Documentation section.
 
For further information, see the Documentation section.
  
=== dmenu ===
+
== dmenu ==
 
Qtile uses dmenu as the application launcher.
 
Qtile uses dmenu as the application launcher.
 
<pre style="color:green"># emerge dmenu</pre>
 
<pre style="color:green"># emerge dmenu</pre>
 
You can run dmenu from a keybind in the config.py.
 
You can run dmenu from a keybind in the config.py.
  
A few dotfiles that may give an idea how to prepare for starting qtile.
+
== xinitrc ==
=== xinitrc ===
+
 
+
 
My ~/.xinitrc
 
My ~/.xinitrc
 
<pre style="color:purple">#!/bin/zsh
 
<pre style="color:purple">#!/bin/zsh
Line 109: Line 110:
 
fi</pre>
 
fi</pre>
 
My ~/.qtile-session
 
My ~/.qtile-session
<pre style="color:purple">#!/bin/zsh
+
<pre style="color:purple">
~/.config/qtile/session-startup &
+
exec /usr/bin/qtile</pre>
+
My ~/.config/qtile/session-startup
+
<pre style="color:purple">conky -c ~/.conky/conkyrc_grey &
+
sh ~/.fehbg &
+
dropbox &</pre>
+
Remember to chmod +x the file if you use the qtile-session and startup-session as I do.
+
  
=== X and RandR ===
+
== X and RandR ==
 
'''NOTE: RandR and Xinerama do not play together.  Use one or the other.'''
 
'''NOTE: RandR and Xinerama do not play together.  Use one or the other.'''
  
 
I use an AMD HD 6870 with 3 monitors (2 DVI and 1 with an AMD validated Mini DisplayPort™ to DVI dongle).
 
I use an AMD HD 6870 with 3 monitors (2 DVI and 1 with an AMD validated Mini DisplayPort™ to DVI dongle).
 +
 +
Install xrandr:
 +
<pre style="color:green"># emerge x11-apps/xrandr</pre>
 +
and if you want a GUI with xrandr:
 +
<pre style="color:green"># emerge x11-misc/arandr</pre>
  
 
If you do not have X configured yet, follow the link on the [http://en.gentoo-wiki.com/wiki/X.Org Gentoo Wiki]
 
If you do not have X configured yet, follow the link on the [http://en.gentoo-wiki.com/wiki/X.Org Gentoo Wiki]
Line 127: Line 126:
 
My xorg.conf.d folder for example: [https://github.com/akiress/dotfiles/blob/master/etc/X11/xorg.conf.d/30-screen.conf 30-screen.conf]
 
My xorg.conf.d folder for example: [https://github.com/akiress/dotfiles/blob/master/etc/X11/xorg.conf.d/30-screen.conf 30-screen.conf]
  
I label the monitors as they are labeled in xrandr, but it doesn't matter what you use in your X configuration as long as you are consistent throught the X
+
Since the names of the monitors are already known in xrandr, I just use those names in my 30-screen.conf configuration. It doesn't matter what you use in your X configuration however.
configuration.
+
  
 
Once you have X configured however you like, start qtile with either:
 
Once you have X configured however you like, start qtile with either:
Line 135: Line 133:
 
<pre style="color:green"># xinit qtile</pre>
 
<pre style="color:green"># xinit qtile</pre>
  
== Notes ==
+
= Notes =
 
<references/>
 
<references/>
  
== Resources ==
+
= Resources =
 
[https://github.com/qtile/qtile Qtile on Github]
 
[https://github.com/qtile/qtile Qtile on Github]
  

Revision as of 14:33, 28 May 2012

Contents

Introduction

This wiki is a work in progress.

"Qtile is a full-featured, hackable tiling window manager written in Python.

Qtile is simple, small, and extensible. It's easy to write your own layouts, widgets, and built-in commands.

Qtile is written and configured entirely in Python, which means you can leverage the full power and flexibility of the language to make it fit your needs.

The Qtile community is active and growing, so there's always someone to lend a hand when you need help.

Qtile is free and open-source software, distributed under the permissive MIT license"[1][2]

The Qtile Community

IRC

#qtile on OFTC

Mailing List

qtile-dev on Google Groups

Twitter

@qtile on Twitter

Troubleshooting

Issues

Documentation

Qtile Documentation

Installation

Portage

The ebuild on portage is broken for now.

Manual (Github)

This section is taken from the documents from Qtile.[3]

Dependencies

USE flags and keyword changes may have to be made for the packages taken from portage.

libxcb

libxcb can be emerged from portage.

# emerge libxcb

xpyb

xpyb can be emerge from portage. Make sure that you are emerging xpyb-1.3.1

# emerge xpyb

cairo

cairo can be emerged from portage.

# emerge cairo

pygtk

pygtk can be emerge from portage.

# emerge pygtk

py2cairo

# git clone git://git.cairographics.org/git/py2cairo
# cd py2cairo
# ./autogen.sh –enable-xcb
# ./configure --prefix=/path/to/virtualenv
# make
# sudo make install

qtile

# git clone git://github.com/qtile/qtile
# cd qtile
# sudo python setup.py install --record files_uninstall.txt

Setup

Copy either a config from the examples directory in the cloned qtile (including a default config), a config you have found elsewhere, or create your own config.

# cp /path/to/cloned-qtile/examples/config/cortesi-config.py ~/.config/qtile/config.py
# cp /path/to/cloned-qtile/examples/config/dgroups.py ~/.config/qtile/config.py
# cp /path/to/cloned-qtile/examples/config/roger-config.py ~/.config/qtile/config.py
# cp /path/to/cloned-qtile/examples/config/tailhook-config.py ~/.config/qtile/config.py

My config is config.py

The config I have based mine off of is dmpayton's config.py

For further information, see the Documentation section.

dmenu

Qtile uses dmenu as the application launcher.

# emerge dmenu

You can run dmenu from a keybind in the config.py.

xinitrc

My ~/.xinitrc

#!/bin/zsh
xrdb -merge ~/.Xresources
xcompmgr &

if [[ $1 == "i3" ]]; then
    exec ck-launch-session dbus-launch --sh-syntax --exit-with-session i3 -V -d all > ~/.i3/i3log-$(date +'%F-%k-%M-%S') 2>&1
elif [[ $1 == "razor" ]]; then
    exec ck-launch-session dbus-launch startrazor
elif [[ $1 == "awesome" ]]; then
    exec ck-launch-session dbus-launch awesome
elif [[ $1 == "qtile" ]]; then
    exec ck-launch-session dbus-launch ~/.qtile-session
else
    echo "Choose a window manager"
fi

My ~/.qtile-session


== X and RandR ==
'''NOTE: RandR and Xinerama do not play together.  Use one or the other.'''

I use an AMD HD 6870 with 3 monitors (2 DVI and 1 with an AMD validated Mini DisplayPort™ to DVI dongle).

Install xrandr:
<pre style="color:green"># emerge x11-apps/xrandr

and if you want a GUI with xrandr:

# emerge x11-misc/arandr

If you do not have X configured yet, follow the link on the Gentoo Wiki

My xorg.conf.d folder for example: 30-screen.conf

Since the names of the monitors are already known in xrandr, I just use those names in my 30-screen.conf configuration. It doesn't matter what you use in your X configuration however.

Once you have X configured however you like, start qtile with either:

# startx

or, in a case similar to mine,

# xinit qtile

Notes

  1. [http://qtile.org Qtile]
  2. License
  3. Installation on Gentoo

Resources

Qtile on Github

Sample Configurations

Hacking Qtile

Personal tools
Namespaces

Variants
Actions
Categories
Toolbox
Stuff