forked from qtile/qtile
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
338 lines (323 loc) · 16.1 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
qtile 0.10.6, released 2016-05-24:
!!! qsh renamed to qshell !!!
This avoids name collision with other packages
* features
- Test framework changed to pytest
- Add `startup_complete` hook
* bugfixes
- Restore dynamic groups on restart
- Correct placement of transient_for windows
- Major bug fixes with floating window handling
* file path changes (XDG Base Directory specification)
- the default log file path changed from ~/.qtile.log to
~/.local/share/qtile/qtile.log
- the cache directory changed from ~/.cache to ~/.cache/qtile
- the prompt widget's history file changed from ~/.qtile_history to
~/.cache/qtile/prompt_history
qtile 0.10.5, released 2016-03-06:
!!! Python 3.2 support dropped !!!
!!! GoogleCalendar widget dropped for KhalCalendar widget !!!
!!! qtile-session script removed in favor of qtile script !!!
* features
- new Columns layout, composed of dynamic and configurable columns of
windows
- new iPython kernel for qsh, called iqsh, see docs for installing
- new qsh command `display_kb` to show current key binding
- add json interface to IPC server
- add commands for resizing MonadTall main panel
- wlan widget shows when you are disconnected and uses a configurable
format
* bugfixes
- fix path handling in PromptWidget
- fix KeyboardLayout widget cycling keyboard
- properly guard against setting screen to too large screen index
qtile 0.10.4, released 2016-01-19:
!!! Config breakage !!!
- positional arguments to Slice layout removed, now `side` and `width`
must be passed in as keyword arguments
* features
- add alt coin support to BitcoinTracker widget
* bugfixes
- don't use six.moves assignment (fix for >=setuptools-19.3)
- improved floating and fullscreen handling
- support empty or non-charging secondary battery in BatteryWidget
- fix GoogleCalendar widget crash
qtile 0.10.3, released 2015-12-25:
* features
- add wmii layout
- add BSD support to graph widgets
* bugfixes
- fix (some) fullscreen problems
- update google calendar widget to latest google api
- improve multiple keyboard layout support
- fix displaying Systray widget on secondary monitor
- fix spawn file descriptor handling in Python 3
- remove duplicate assert code in test_verticaltile.py
- allow padding_{x,y} and margin_{x,y} widget attrs to be set to 0
qtile 0.10.2, released 2015-10-19:
* features
- add qtile-top memory monitoring
- GroupBox can set visible groups
- new GroupBox highlighting, line
- allow window state to be hidden on WindowName widget
- cmd_togroup can move to current group when None sent
- added MOC playback widget
- added memory usage widget
- log truncation, max log size, and number of log backups configurable
- add a command to change to specific layout index
(lazy.to_layout_index(index))
* bugfixes
- fixed memory leak in dgroups
- margin fixes for MonalTall layout
- improved cursor warp
- remove deprecated imp for Python >= 3.3
- properly close file for NetGraph
- fix MondadTall layout grow/shrink secondary panes for Python 2
- Clock widget uses datetime.now() rather than .fromtimestamp()
- fix Python 3 compatibility of ThermalSensor widget
- various Systray fixes, including implementing XEMBED protocol
- print exception to log during loading config
- fixed xmonad layout margins between main and secondary panes
- clear last window name from group widgets when closed
- add toggleable window border to single xmonad layout
* config breakage
- layouts.VerticalTile `windows` is now `clients`
- layouts.VerticalTile focus_next/focus_previous now take a single
argument, similar to other layouts
qtile 0.10.1, released 2015-07-08:
This release fixes a problem that made the PyPI package uninstallable,
qtile will work with a pip install now
qtile 0.10.0, released 2015-07-07:
!!! Config breakage !!!
- various deprecated commands have been removed:
Screen.cmd_nextgroup: use cmd_next_group
Screen.cmd_prevgroup: use cmd_prev_group
Qtile.cmd_nextlayout: use cmd_next_layout
Qtile.cmd_prevlayout: use cmd_prev_layout
Qtile.cmd_to_next_screen: use cmd_next_screen
Qtile.cmd_to_prev_screen: use cmd_prev_screen
- Clock widget: remove fmt kwarg, use format kwarg
- GmailChecker widget: remove settings parameter
- Maildir widget: remove maildirPath, subFolders, and separator kwargs
* Dependency updates
- cffi>=1.1 is now required, along with xcffib>=0.3 and cairocffi>=0.7
(the cffi 1.0 compatible versions of each)
- Care must be taken that xcffib is installed *before* cairocffi
* features
- add support for themed cursors using xcb-cursor if available
- add CheckUpdate widget, for checking package updates, this deprecates
the Pacman widget
- add KeyboardKbdd widget, for changing keyboard layouts
- add Cmus widget, for showing song playing in cmus
- add Wallpaper widget, for showing and cycling wallpaper
- add EzConfig classes allowing shortcuts to define key bindings
- allow GroupBox urgent highlighting through text
- Bar can be placed vertically on sides of screens (widgets must be
adapted for vertical viewing)
- add recognizing brightness keys
* bugfixes
- deprecation warnings were not printing to logs, this has been fixed
- fix calculation of y property of Gap
- fix focus after closing floating windows and floating windows
- fix various Python 3 related int/float problems
- remember screen focus across restarts
- handle length 1 list passed to Drawer.set_source_rgb without raising
divide by zero error
- properly close files opened in Graph widget
- handle _NET_WM_STATE_DEMANDS_ATTENTION as setting urgency
- fix get_wm_transient_for, request WINDOW, not ATOM
qtile 0.9.1, released 2015-02-13:
This is primarily a unicode bugfix release for 0.9.0; there were several
nits related to the python2/3 unicode conversion that were simply wrong.
This release also adds license headers to each file, which is necessary for
distro maintainers to package Qtile.
* bugfixes
- fix python2's importing of gobject
- fix unicode handling in several places
qtile 0.9.0, released 2015-01-20:
* !!! Dependency Changes !!!
New dependencies will need to be installed for qtile to work
- drop xpyb for xcffib (XCB bindings)
- drop py2cairo for cairocffi (Cairo bindings)
- drop PyGTK for asyncio (event loop, pangocairo bindings managed
internally)
- qtile still depends on gobject if you want to use anything that uses
dbus (e.g. the mpris widgets or the libnotify widget)
* features
- add Python 3 and pypy support (made possible by dependency changes)
- new layout for vertical monitors
- add startup_once hook, which is called exactly once per session (i.e.
it is not called when qtile is restarted via lazy.restart()). This
eliminates the need for the execute_once() function found in lots of
user configs.
- add a command for showing/hiding the bar (lazy.hide_show_bar())
- warn when a widget's dependencies cannot be imported
- make qtile.log more useful via better warnings in general, including
deprecation and various other warnings that were previously
nonexistent
- new text-polling widget super classes, which enable easy
implementation of various widgets that need to poll things outside
the event loop.
- add man pages
- large documentation update, widget/layout documentation is now
autogenerated from the docstrings
- new ImapWidget for checking imap mailboxes
* bugfixes
- change default wmname to "LG3D" (this prevents some java apps from
not working out of the box)
- all code passes flake8
- default log level is now WARNING
- all widgets now use our config framework
- windows with the "About" role float by default
- got rid of a bunch of unnecessary bare except: clauses
qtile 0.8.0, released 2014-08-18:
* features
- massive widget/layout documentation update
- new widget debuginfo for use in qtile development
- stack has new autosplit, fair options
- matrix, ratiotile, stack, xmonad, zoomy get 'margin' option
- new launchbar widget
- support for matching WM_CLASS and pid in Match
- add support for adding dgroups rules dynamically and via ipc
- Clock supports non-system timezones
- new mpris2 widget
- volume widget can use emoji instead of numbers
- add an 'eval' function to qsh at every object level
- bar gradients support more colors
- new Clipboard widget (very handy!)
* bugfixes
- bitcoin ticker widget switched from MtGox (dead) to btc-e
- all widgets now use qtile's defaults system, so their defaults are
settable globally, etc.
- fix behavior when screens are cloned
- all widgets use a unified polling framework
- "dialog" WM_TYPEs float by default
- respect xrandr --primary
- use a consistent font size in the default config
- default config supports mouse movements and floating
- fix a bug where the bar was not redrawn correctly in some multiscreen
environments
- add travis-ci support and make tests vastly more robust
* config breakage
- libqtile.layout.Stack's `stacks` parameter is now `num_stacks`
qtile 0.7.0, released 2014-03-30:
* features
- new disk free percentage widget
- new widget to display static image
- per core CPU graphs
- add "screen affinity" in dynamic groups
- volume widget changes volume linear-ly instead of log-ly
- only draw bar when idle, vastly reducing the number of bar draws and
speeding things up
- new Gmail widget
- Tile now supports automatically managing master windows via the
`master_match` parameter.
- include support for minimum height, width, size increment hints
* bugfixes
- don't crash on any exception in main loop
- don't crash on exceptions in hooks
- fix a ZeroDivisionError in CPU graph
- remove a lot of duplicate and unused code
- Steam windows are placed more correctly
- Fixed several crashes in qsh
- performance improvements for some layouts
- keyboard layout widget behaves better with multiple keyboard
configurations
* config breakage
- Tile's shuffleMatch is renamed to resetMaster
qtile 0.6, released 2013-05-11:
!!! Config breakage !!!
This release breaks your config file in several ways:
- The Textbox widget no longer takes a ``name'' positional parameter,
since it was redundant; you can use the ``name'' kwarg to define it.
- manager.Group (now _Group) is not used to configure groups any more;
config.Group replaces it. For simple configurations (i.e.
Group("a") type configs), this should be a drop in replacement.
config.Group also provides many more options for showing and hiding
groups, assigning windows to groups by default, etc.
- The Key, Screen, Drag, and Click objects have moved from the manager
module to the config module.
- The Match object has moved from the dgroups module to the config
module.
- The addgroup hook now takes two parameters: the qtile object and the
name of the group added:
@hook.subscribe
def addgroup_hook(qtile, name):
pass
- The nextgroup and prevgroup commands are now on Screen instead of
Group.
For most people, you should be able to just:
sed -i -e 's/libqtile.manager/libqtile.config' config.py
...dgroups users will need to go to a bit more work, but hopefully
configuration will be much simpler now for new users.
* features
- New widgets: task list,
- New layout: Matrix
- Added ability to drag and drop groups on GroupBox
- added "next urgent window" command
- added font shadowing on widgets
- maildir widget supports multiple folders
- new config option log_level to set logging level (any of
logging.{DEBUG, INFO, WARNING, ERROR, CRITICAL})
- add option to battery widget to hide while level is above a certain
amount
- vastly simplify configuration of dynamic groups
- MPD widget now supports lots of metadata options
* bugfixes
- don't crash on restart when the config has errors
- save layout and selected group state on restart
- varous EWMH properties implemented correctly
- fix non-black systray icon backgrounds
- drastically reduce the number of timeout_add calls in most widgets
- restart on RandR attach events to allow for new screens
- log level defaults to ERROR
- default config options are no longer initialized when users define
their corresponding option (preventing duplicate widgets, etc.)
- don't try to load config in qsh (not used)
- fix font alignment across Textbox based widgets
qtile 0.5, released 2012-11-11:
(Note, this is not complete! Many, many changes have gone in to 0.5, by a
large number of contributors. Thanks to everyone who reported a bug or
fixed one!)
* features
- Test framework is now nose
- Documentation is now in sphinx
- Several install guides for various OSes
- New widgets: battery based icon, MPRIS1, canto, current layout, yahoo
weather, sensors, screen brightness, notifiy, pacman, windowtabs,
she, crashme, wifi.
- Several improvements to old widgets (e.g. battery widget displays low
battery in red, GroupBox now has a better indication of which screen
has focus in multi-screen setups, improvements to Prompt, etc.)
- Desktop notification service.
- More sane way to handle configuration files
- Promote dgroups to a first class entity in libqtile
- Allow layouts to be named on an instance level, so you can:
layouts = [
# a layout just for gimp
layout.Slice('left', 192, name='gimp', role='gimp-toolbox',
fallback=layout.Slice('right', 256, role='gimp-dock',
fallback=layout.Stack(stacks=1, **border_args)))
]
...
dynamic_groups = { 'gimp': {'layout': 'gimp'} }
Dgroups(..., dynamic_groups, ...)
- New Layout: Zoomy
- Add a session manager to re-exec qtile if things go south
- Support for WM_TAKE_FOCUS protocol
- Basic .desktop file for support in login managers
- Qsh reconnects after qtile is restarted from within it
- Textbox supports pango markup
- Examples moved to qtile-examples repository.
* bugfixes
- Fix several classes of X races in a more sane way
- Minor typo fixes to most widgets
- Fix several crashes when drawing systray icons too early
- Create directories for qtile socket as necessary
- PEP8 formatting updates (though we're not totally there yet)
- All unit tests pass
- Lots of bugfixes to MonadTall
- Create IPC socket directory if necessary
- Better error if two widgets have STRETCH length
- Autofloat window classes can now be overridden
- xkeysyms updated