Permalink
Commits on Sep 11, 2016
  1. update ubuntu docs

    packages are in Yakkety now!
    
    Closes #951
    tych0 committed with flacjacket Sep 9, 2016
Commits on Feb 26, 2016
  1. remove google calendar import too

    8e56045 removed google calendar, but
    forgot to remove the import, so we get a warning each time on startup.
    
    Signed-off-by: Tycho Andersen <tycho@tycho.ws>
    tych0 committed Feb 26, 2016
Commits on Jan 22, 2016
  1. docs: add FAQ entry for why Qtile

    Signed-off-by: Tycho Andersen <tycho@tycho.ws>
    
    Closes #852
    tych0 committed with flacjacket Jan 22, 2016
Commits on Jan 19, 2016
  1. update changelog for 0.10.4

    tych0 committed Jan 19, 2016
Commits on Jan 18, 2016
  1. add altcoin support to the BTC tracker

    Signed-off-by: Tycho Andersen <tycho@tycho.ws>
    
    Closes #850
    tych0 committed with flacjacket Jan 18, 2016
  2. add more logging when widgets parse method fails

    Signed-off-by: Tycho Andersen <tycho@tycho.ws>
    tych0 committed with flacjacket Jan 18, 2016
  3. widgets: log threaded polling exceptions

    Signed-off-by: Tycho Andersen <tycho@tycho.ws>
    tych0 committed Jan 6, 2016
Commits on Jan 17, 2016
  1. fix six.moves direct assignment of asyncio

    Signed-off-by: Tycho Andersen <tycho@tycho.ws>
    
    Closes #849
    tych0 committed with flacjacket Jan 17, 2016
Commits on Dec 31, 2015
  1. make: update deb building command

    For whatever reason, the debian guys got rid of the git alias for this by
    default, so now on a fresh vm you need to use the actual `gbp` binary instead.
    
    Also, let's always build the package on the current branch (which means that we
    need to remove the orig.tar.gz and friends in .. when building a new package).
    tych0 committed Dec 31, 2015
  2. debian: switch library packages to Architecture: any

    Architecture: all means that the packages will work on all architectures,
    which is not the case since libqtile now uses cffi to build C extensions;
    these must be built per-arch. However, the qtile binary package contains
    only man pages, the .desktop, and the qtile* binaries which are written in
    pure python, so it can stay Architecture: all.
    tych0 committed Dec 31, 2015
  3. debian: fix up package descriptions

    Drawing inspiration from xcffib's package descriptions, we add a specific
    one for python2 and python3 as debian suggests. We also add a custom
    qtile binary-specific package description as well.
    
    This silences:
    https://lintian.debian.org/tags/description-synopsis-might-not-be-phrased-properly.html
    https://lintian.debian.org/tags/duplicate-long-description.html
    tych0 committed Dec 31, 2015
Commits on Dec 24, 2015
  1. debian: update packaging

    * add debian WNPP bug number
    * bump versions for dependencies
    * bump version number for release (this may need to be corrected)
    * bump debian standards version (lintian)
    * get rid of separate licensing for debian/ (lintian)
    * add extra dependencies for widgets (still missing are google calendar's deps,
      iwlib, and mpd in python3 which aren't in the debian archives; if users
      install these manually they should work)
    
    Note that there is still one (set of) lintian warning(s, for all the images),
    which would require code changes to fix:
    
    W: python-qtile: image-file-in-usr-lib usr/lib/python2.7/dist-packages/libqtile/resources/battery-icons/battery-good.png
    
    I've also bumped the version number to 0.10.3, but that may not be the next
    version of qtile that is tagged. We should bump this version number to whatever
    that next version is when it is tagged. (And it would be handy to tag soon, so
    I can start the process of getting a debian upload :)
    tych0 committed Dec 24, 2015
Commits on Oct 7, 2015
  1. fix exception in xcbq.get_wm_protocls()

    Now that this can return none, let's switch it to the empty set to avoid
    crashing. (It's likely none because there was a WindowError, so this window
    will die soon; let's just return the empty set so that no extra work is
    done and we can move onto the next event gracefully.)
    
    2015-10-05 02:55:19,154 ERROR _xpoll:758 Got an exception in poll loop
    Traceback (most recent call last):
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/manager.py", line 735, in _xpoll
        r = h(e)
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/manager.py", line 1057, in handle_MapRequest
        c = self.manage(w)
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/manager.py", line 627, in manage
        self.currentScreen.group.add(c, focus=c.can_steal_focus())
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/group.py", line 273, in add
        self.focus(win, True)
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/group.py", line 227, in focus
        self.layoutAll(warp)
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/group.py", line 162, in layoutAll
        self.currentWindow.focus(warp)
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/window.py", line 511, in focus
        "WM_TAKE_FOCUS" in self.window.get_wm_protocols():
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/xcbq.py", line 497, in get_wm_protocols
        return set(self.conn.atoms.get_name(i) for i in l)
    TypeError: 'NoneType' object is not iterable
    tych0 committed Oct 7, 2015
Commits on Sep 26, 2015
  1. don't crash when loading history

    For whatever reason, my qtile history couldn't be loaded across restarts,
    which causes this code to fail, which then causes me to lose my session.
    Instead, let's just log an error (which, unfortuantely only goes to stderr
    because this likely happens in the user's config before qtile's logging is
    initialized) and continue on.
    tych0 committed with flacjacket Sep 23, 2015
  2. fix some linter errors

    It seems ubuntu wily's version of some linter (pyflakes maybe?) complains about
    these, so at some point the version we install via travis will too.
    
    ./libqtile/widget/check_updates.py:60:28: W503 line break before binary operator
    ./libqtile/widget/clock.py:66:5: E731 do not assign a lambda expression, use a def
    ./libqtile/widget/graph.py:352:9: E731 do not assign a lambda expression, use a def
    tych0 committed Sep 26, 2015
  3. As with GetProperty, catch errors from SetProperty

    This prevents layouts from crashing with stuff like this:
    
    2015-09-25 07:58:51,166 ERROR layoutAll:157 Exception in layout max
    Traceback (most recent call last):
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/group.py", line 154, in layoutAll
        self.layout.layout(normal, screen)
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/layout/base.py", line 58, in layout
        self.configure(i, screen)
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/layout/max.py", line 124, in configure
        client.unhide()
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/window.py", line 386, in unhide
        self.state = NormalState
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/window.py", line 332, in state
        self.window.set_property('WM_STATE', [val, 0])
      File "/usr/local/lib/python3.4/dist-packages/qtile-0.10.1-py3.4.egg/libqtile/xcbq.py", line 635, in set_property
        value
      File "/home/tycho/.local/lib/python3.4/site-packages/xcffib/__init__.py", line 329, in check
        self.conn.request_check(self.sequence)
      File "/home/tycho/.local/lib/python3.4/site-packages/xcffib/__init__.py", line 547, in wrapper
        return f(*args)
      File "/home/tycho/.local/lib/python3.4/site-packages/xcffib/__init__.py", line 653, in request_check
        self._process_error(err)
      File "/home/tycho/.local/lib/python3.4/site-packages/xcffib/__init__.py", line 624, in _process_error
        raise error(buf)
    xcffib.xproto.WindowError
    tych0 committed Sep 25, 2015
Commits on Sep 21, 2015
  1. rework the focus model a bit

    Several issues here:
    
    1. most layouts were passing warp=False in a lot of places, so people who
       used cursor_warp effectively couldn't use those layouts. Instead, let's
       only pass warp=False where it makes sense
    
    2. toScreen defaulted warp=True, which happened on EnterNotify, so the
       mouse would move around if you were switching screens with it, which was
       annoying.
    
    Instead, let's make warp optional, and explicitly pass False when we know
    we don't want to warp. This patch leaves max (and similar layouts) as they
    were, not ever moving the pointer on behalf of the user, since is no real
    "movement" when switching windows in these layouts.
    
    Closes #760
    tych0 committed with flacjacket Sep 20, 2015
Commits on Aug 8, 2015
  1. use the .0 soname

    On rpm and deb based distros, these libraries (symlinks) are provided by
    the -dev version of the packages, where the .0 name is provided by the
    actual library package. Let's use the .0 name instead so we don't have an
    undocumented dependency on -dev packages.
    
    Closes #734
    
    Signed-off-by: Tycho Andersen <tycho@tycho.ws>
    tych0 committed Aug 8, 2015
Commits on Jul 25, 2015
  1. update deps for debian packaging

    At some point it would be best for us to tag a point release; but let's wait
    until cairocffi 0.7 is in debian unstable, and then we can tag a point release
    and do a debian upload. For now, anyway, these are the right dependencies.
    
    Closes #724
    tych0 committed with flacjacket Jul 24, 2015
Commits on Jul 22, 2015
  1. update ubuntu docs

    cairocffi and xcffib are in debian unstable and wily, so let's have people
    install those if they can.
    tych0 committed with flacjacket Jul 22, 2015
Commits on Jul 19, 2015
  1. add the notion of finalizers

    In particular, avoid the use of __del__ as a finalizer. This has several
    problems: it isn't necessarily run at all, and if it is, it isn't necessarily
    run at a specific point in time (i.e. when the xcb connection is still open).
    
    I belive this should also fix the segfault, and prevent us from leaking the
    pixmaps drawer allocates when we exec.
    
    Possible fix for #658
    tych0 committed with flacjacket Jul 19, 2015
Commits on Jun 7, 2015
Commits on Jun 2, 2015
  1. Set max versions for cffi/xcffib

    Since cffi and xcffib made breaking changes in 1.0 and 0.3 respectively and
    qtile hasn't updated, let's require that we don't use those versions.
    tych0 committed Jun 2, 2015
  2. bump the default battery poll time to 1 minute

    It turns out this polling has a non-trivial impact on battery life, and
    probably nobody cares about up to the second battery life updates. So,
    let's not poll so often.
    tych0 committed Jun 2, 2015
Commits on May 17, 2015
  1. deprecate Pacman in favor of CheckUpdates

    per #664
    tych0 committed May 15, 2015
Commits on May 11, 2015
  1. fix race when window is newly managed

    I'm not exactly sure what's going on here, which is why I left the log in.
    Relevant bits of the xtrace are:
    
    000:<:02e5: 28: Request(18): ChangeProperty mode=Replace(0x00) window=0x00a003c8 property=0x148("_NET_WM_DESKTOP") type=0x6("CARDINAL") data=0x00000000;
    000:<:02e6:  4: Request(43): GetInputFocus
    000:>:02e5:Error 3=Window: major=18, minor=0, bad=10486728
    000:>:02e6:32: Reply to GetInputFocus: revert-to=Parent(0x02) focus=0x00a00079
    2015-05-11 16:20:00,438 ERROR _xpoll:668 Got an exception in poll loop
    Traceback (most recent call last):
      File "/usr/lib/python3.4/site-packages/libqtile/manager.py", line 657, in _xpoll
        r = h(e)
      File "/usr/lib/python3.4/site-packages/libqtile/manager.py", line 999, in handle_MapRequest
        c = self.manage(w)
      File "/usr/lib/python3.4/site-packages/libqtile/manager.py", line 549, in manage
        self.currentScreen.group.add(c, focus=c.can_steal_focus())
      File "/usr/lib/python3.4/site-packages/libqtile/group.py", line 210, in add
        win.group = self
      File "/usr/lib/python3.4/site-packages/libqtile/window.py", line 713, in group
        self.qtile.groups.index(group)
      File "/usr/lib/python3.4/site-packages/libqtile/xcbq.py", line 637, in set_property
        value
      File "/usr/lib/python3.4/site-packages/xcffib/__init__.py", line 306, in check
        self.conn.request_check(self.sequence)
      File "/usr/lib/python3.4/site-packages/xcffib/__init__.py", line 520, in wrapper
        return f(*args)
      File "/usr/lib/python3.4/site-packages/xcffib/__init__.py", line 627, in request_check
        self._process_error(err)
      File "/usr/lib/python3.4/site-packages/xcffib/__init__.py", line 598, in _process_error
        raise error(buf)
    xcffib.xproto.WindowError
    [0m[31m2015-05-11 16:20:00,438 [1m[31mqtile _xpoll:668 [0m Got an exception in poll loop
    Traceback (most recent call last):
      File "/usr/lib/python3.4/site-packages/libqtile/manager.py", line 657, in _xpoll
        r = h(e)
      File "/usr/lib/python3.4/site-packages/libqtile/manager.py", line 999, in handle_MapRequest
        c = self.manage(w)
      File "/usr/lib/python3.4/site-packages/libqtile/manager.py", line 549, in manage
        self.currentScreen.group.add(c, focus=c.can_steal_focus())
      File "/usr/lib/python3.4/site-packages/libqtile/group.py", line 210, in add
        win.group = self
      File "/usr/lib/python3.4/site-packages/libqtile/window.py", line 713, in group
        self.qtile.groups.index(group)
      File "/usr/lib/python3.4/site-packages/libqtile/xcbq.py", line 637, in set_property
        value
      File "/usr/lib/python3.4/site-packages/xcffib/__init__.py", line 306, in check
        self.conn.request_check(self.sequence)
      File "/usr/lib/python3.4/site-packages/xcffib/__init__.py", line 520, in wrapper
        return f(*args)
      File "/usr/lib/python3.4/site-packages/xcffib/__init__.py", line 627, in request_check
        self._process_error(err)
      File "/usr/lib/python3.4/site-packages/xcffib/__init__.py", line 598, in _process_error
        raise error(buf)
    xcffib.xproto.WindowError[0m
    
    So what it looks like is happening is that we're trying to set NET_WM_DESKTOP
    before the windowid is known to X, and that's causing things to be sad. Since
    NET_WM_DESKTOP isn't really all that important (it's not used by qtile for
    anything except on restart, which is reasonably rare), we can just ignore this
    failure. However, it would be nice to understand why it's happening.
    tych0 committed May 11, 2015
Commits on Apr 20, 2015
  1. use integer divison for computing floating layout offsets

    As near as I can tell, this is the only thing that could have caused #618 to
    have x and y offsets that were not floats. I don't actually have any proof of
    this, but we obviously want these to be ints, so this is still a good change.
    tych0 committed Apr 20, 2015
  2. Add some debugging for #618

    This also fixes the issue by simply casting value to an int. Hopefully someone
    will see this and give us a better stack trace that tells us where exactly
    things were turning into floats.
    tych0 committed Apr 20, 2015
Commits on Apr 19, 2015
  1. get rid of int cast deprecation warning

    2015-04-18 19:10:51,515 WARNING hex:145 /usr/local/lib/python3.4/dist-packages/qtile-0.9.1-py3.4.egg/libqtile/utils.py:145: DeprecationWarning: automatic int conversions have been deprecated
      return '#%02x%02x%02x' % (r * 255, g * 255, b * 255)
    tych0 committed Apr 19, 2015
  2. restore windows to the group they were in, not the group they match

    Instead of restoring windows to the group they match via dgroups, restore them
    to the group they were actually in at the time of a restart.
    tych0 committed Apr 19, 2015