The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Package:Qtile
Introduction
This wiki is a work in progress.
Python3 will cause errors. Use Python2 as default or at the very least, pass PYTHON=python2.7 to py2cairo and xpyb before configuring them.
"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
Mailing List
qtile-dev on Google Groups
@qtile on Twitter
Forum
[kobraz.org.ua/qforum]
After on people begin used this forum, we move it to qtile.org
Troubleshooting
Documentation
Installation
Portage
# emerge qtile
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.
Have USE flags set to
X glib opengl svg xcb
and then:
# 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
As an alternative to virtualenv, you can
# ./configure --prefix=/usr
But the virtualenv is the recommended option in installation.
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
Testing Qtile Installation
You can test your installation of Qtile while within another WM instance using Xephyr.
Examples:
# Xephyr :1 -screen 800x600 -a -v -noreset # DISPLAY=:1 # /path/to/qtile/qtile
or using built in code:[4]
# echo "exec qtile" > .start_qtile ; xinit .start_qtile -- :1
For further information, see the Documentation section.
Qtile uses dmenu as the application launcher.
# emerge dmenu
You can run dmenu from a keybind in the config.py.
xinitrc
An example of preparing Qtile to start with a startup-session script for autostarting apps. 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
conky -c ~/.conky/conkyrc_grey & sh ~/.fehbg & dropbox &
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:
# 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
Starting with CDM
Another good tool for starting qtile is CDM (short for Console Display Manager). To make it work, just merge cdm
# emerge -avt cdm
and add it to autostart with
# cp /usr/share/cdm/zzz-cdm-profile.sh /etc/profile.d/zzz-cdm-profile.sh
Now add to /etc/X11/cdm/cdmrc the following lines:
binlist=( "/usr/bin/xinit ${HOME}/.start_qtile --:0" "/bin/bash --login" "/bin/zsh" ) namelist=(qtile "Console bash" "Console zsh") flaglist=(C C C) consolekit=no
and check that ${HOME}/.start_qtile contains just the following
exec qtile