{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":47476,"defaultBranch":"master","name":"qtile","ownerLogin":"qtile","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2008-08-30T00:16:40.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1424964?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716942435.0","currentOid":""},"activityList":{"items":[{"before":"4dcecefd19ef27cd6892ab0a2df99a9f3f2820bb","after":"0adf3aa4f85b22b92c0ce051b8d050922c8ad2a9","ref":"refs/heads/master","pushedAt":"2024-05-31T15:54:36.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"Add setuptools to dependencies for flake8\n\nAs of Python 3.12, setuptools is no longer installed into venvs by default: https://github.com/pypa/virtualenv/issues/2487\n\nflake8-logging-format depends on setuptools without explicitely declaring it: https://github.com/globality-corp/flake8-logging-format/issues/68\n\nAdd setuptools to additional_dependencies in pre-commit config to avoid issue when running pre-commit hooks with Python 3.12:\nFlake8 failed to load plugin \"flake8-logging-format\" due to No module named 'pkg_resources'.\n\nAlso remove workaround from \"Run pre-commit\" GHA workflow.","shortMessageHtmlLink":"Add setuptools to dependencies for flake8"}},{"before":"bc31a1f449a962a9b84c5fb68ddb698ffee10462","after":"4dcecefd19ef27cd6892ab0a2df99a9f3f2820bb","ref":"refs/heads/master","pushedAt":"2024-05-30T22:23:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"x11: don't query offline CRTCs\n\nI am getting:\n\n2024-05-26 15:20:45,432 ERROR libqtile manager.py:load_config():L116 Configuration error:\nTraceback (most recent call last):\n File \"/home/tycho/.local/lib/python3.10/site-packages/libqtile/core/manager.py\", line 113, in load_config\n self.config.load()\n File \"/home/tycho/.local/lib/python3.10/site-packages/libqtile/confreader.py\", line 134, in load\n config = importlib.import_module(name)\n File \"/usr/lib/python3.10/importlib/__init__.py\", line 126, in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n File \"\", line 1050, in _gcd_import\n File \"\", line 1027, in _find_and_load\n File \"\", line 1006, in _find_and_load_unlocked\n File \"\", line 688, in _load_unlocked\n File \"\", line 883, in exec_module\n File \"\", line 241, in _call_with_frames_removed\n File \"/home/tycho/.qtile/config.py\", line 199, in \n screens = screen_setup()\n File \"/home/tycho/.qtile/config.py\", line 196, in screen_setup\n return setup.get(current_screens(), one_screen)()\n File \"/home/tycho/.qtile/config.py\", line 24, in current_screens\n screens = len(conn.pseudoscreens)\n File \"/home/tycho/.local/lib/python3.10/site-packages/libqtile/backend/x11/xcbq.py\", line 488, in pseudoscreens\n return self.randr.query_crtcs(self.screens[0].root.wid)\n File \"/home/tycho/.local/lib/python3.10/site-packages/libqtile/backend/x11/xcbq.py\", line 412, in query_crtcs\n crtc_info = self.ext.GetCrtcInfo(output_info.crtc, xcffib.CurrentTime).reply()\n File \"/home/tycho/.local/lib/python3.10/site-packages/xcffib/__init__.py\", line 330, in reply\n data = self.conn.wait_for_reply(self.sequence)\n File \"/home/tycho/.local/lib/python3.10/site-packages/xcffib/__init__.py\", line 579, in wrapper\n return f(*args)\n File \"/home/tycho/.local/lib/python3.10/site-packages/xcffib/__init__.py\", line 666, in wait_for_reply\n self._process_error(error_p[0])\n File \"/home/tycho/.local/lib/python3.10/site-packages/xcffib/__init__.py\", line 657, in _process_error\n raise error(buf)\nxcffib.randr.BadCrtcError\n\nca7b28ef4672 (\"core: use ScreenRect everywhere we represent a screen\") has\nthe following diff:\n\n - for crtc in self.ext.GetScreenResources(root).reply().crtcs:\n - crtc_info = self.ext.GetCrtcInfo(crtc, xcffib.CurrentTime).reply()\n - crtc_dict = {\n - \"x\": crtc_info.x,\n - \"y\": crtc_info.y,\n - \"width\": crtc_info.width,\n - \"height\": crtc_info.height,\n - }\n - crtc_list.append(crtc_dict)\n - return crtc_list\n + infos = []\n + for output in self.ext.GetScreenResources(root).reply().outputs:\n + output_info = self.ext.GetOutputInfo(output, xcffib.CurrentTime).reply()\n + crtc_info = self.ext.GetCrtcInfo(output_info.crtc, xcffib.CurrentTime).reply()\n\ni.e., it switches from looking at the crtcs (all of which are online) to\nthe outputs, some of which may not be online. Let's switch back to querying\nthe crtcs.\n\nSigned-off-by: Tycho Andersen ","shortMessageHtmlLink":"x11: don't query offline CRTCs"}},{"before":"22671721a4b50b1663557de4f872e3988b85fba5","after":"bc31a1f449a962a9b84c5fb68ddb698ffee10462","ref":"refs/heads/master","pushedAt":"2024-05-30T14:13:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"Improve nixos documentation","shortMessageHtmlLink":"Improve nixos documentation"}},{"before":"7c3fbef756c451031e7d822dafed0b54eec0f2ac","after":"22671721a4b50b1663557de4f872e3988b85fba5","ref":"refs/heads/master","pushedAt":"2024-05-29T12:48:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"Fix help subcommand\n\nAdd parent_parser to the help subparser. This is required because the log_level property is later read from the options object.","shortMessageHtmlLink":"Fix help subcommand"}},{"before":"e12c342996284c3c7a07b3c25947c531008e9319","after":"7c3fbef756c451031e7d822dafed0b54eec0f2ac","ref":"refs/heads/master","pushedAt":"2024-05-29T11:52:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"elParaguayo","name":null,"path":"/elParaguayo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/946265?s=80&v=4"},"commit":{"message":"remember to finalize widgets\n\nwhen finalizing the bar, we need to explicitly finalize each widget.\n\nIn addition, we need to finalize any widgets that were part of a WidgetBox,\nwhich we did not previously do in this code path. Let's change it so that\nwe can finalize a Screen, the screen will finalize a Bar, a Bar will\nfinalize each Widget, and as part of WidgetBox's finalize(), it should\nfinalize all of its contents.\n\nmaybe part of #4821\n\nReported-by: Timothée Mazzucotelli \nSigned-off-by: Tycho Andersen ","shortMessageHtmlLink":"remember to finalize widgets"}},{"before":"6c4b5ef64809cda9e766015c9e69353dd1420080","after":null,"ref":"refs/heads/wlroots-next","pushedAt":"2024-05-29T00:27:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"}},{"before":"a7f5d1c813c413fe61fae85d89e76e64da398945","after":"e12c342996284c3c7a07b3c25947c531008e9319","ref":"refs/heads/master","pushedAt":"2024-05-27T18:52:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"Add `background` parameter to `Screen`\n\nAdds a new `background` parameter which will paint a solid colour the\nscreen.","shortMessageHtmlLink":"Add background parameter to Screen"}},{"before":"25996ac6dd09a761a67195bda95da522e2f40ce7","after":"a7f5d1c813c413fe61fae85d89e76e64da398945","ref":"refs/heads/master","pushedAt":"2024-05-26T22:07:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"bar: don't recreate the drawer on resize\n\n...instead, just resize it. If we re-create it, we'll leak the resources\nattached, and that's bad.\n\nThis is another leak that I found while looking for the source of #4821.\n\nSigned-off-by: Tycho Andersen ","shortMessageHtmlLink":"bar: don't recreate the drawer on resize"}},{"before":"b2220d27cf6e8858c2e83dad9d0c46f6c83c2349","after":"25996ac6dd09a761a67195bda95da522e2f40ce7","ref":"refs/heads/master","pushedAt":"2024-05-26T21:43:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"remember to finish all surfaces when finalizing\n\nWe need to .finalize() all surfaces when we release them, or they may keep\nresources allocated in their respective backends.\n\nSigned-off-by: Tycho Andersen ","shortMessageHtmlLink":"remember to finish all surfaces when finalizing"}},{"before":"4959e4fa7e65a77d31c13eeb76dba2e9e7a8f4e7","after":"b2220d27cf6e8858c2e83dad9d0c46f6c83c2349","ref":"refs/heads/master","pushedAt":"2024-05-26T16:38:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"Wayland {X,Xdg}Window: Remove all position checks in place\n\nPreviously I checked if border needs to change or the window needs to be repositioned,\ninstead of calling configure and setting sizes every time `place()` is called. However,\nthis has too many edge cases. Let's not do premature optimization here because it leads to issues\nsuch as #4838","shortMessageHtmlLink":"Wayland {X,Xdg}Window: Remove all position checks in place"}},{"before":"cba01d0ef5c650fa6ce4da14690a46b10b8b04fc","after":"4959e4fa7e65a77d31c13eeb76dba2e9e7a8f4e7","ref":"refs/heads/master","pushedAt":"2024-05-26T09:45:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"elParaguayo","name":null,"path":"/elParaguayo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/946265?s=80&v=4"},"commit":{"message":"Make default `Plasma` add mode dynamic","shortMessageHtmlLink":"Make default Plasma add mode dynamic"}},{"before":"5cf924fbce84bc709ad71b2ee84575091992215d","after":"cba01d0ef5c650fa6ce4da14690a46b10b8b04fc","ref":"refs/heads/master","pushedAt":"2024-05-25T04:52:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"elParaguayo","name":null,"path":"/elParaguayo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/946265?s=80&v=4"},"commit":{"message":"Fix `Plasma` layout with `ScreenSplit` by implementing `get_windows`","shortMessageHtmlLink":"Fix Plasma layout with ScreenSplit by implementing get_windows"}},{"before":"e4b4bb8b6f2c07570b049e7e9171f5ce6da0625c","after":"5cf924fbce84bc709ad71b2ee84575091992215d","ref":"refs/heads/master","pushedAt":"2024-05-23T13:59:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"bar: unify finalize() and kill_window()\n\n...by just deleting kill_window() and using finalize in the one place it\nwas called.\n\nTheir implementations are (I think?) \"the same\", although kill_window()'s\nwas much more complicated to achieve the same goal, so let's switch to\nfinalize().\n\nSigned-off-by: Tycho Andersen ","shortMessageHtmlLink":"bar: unify finalize() and kill_window()"}},{"before":"5c464918a3ff9eded914f788628df55c84045574","after":"e4b4bb8b6f2c07570b049e7e9171f5ce6da0625c","ref":"refs/heads/master","pushedAt":"2024-05-21T23:36:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"Release 0.26.0\n\nThanks to all the contributors this release:\n\nAmos Bird\nDeshdeepak\nelParaguayo\nervinpopescu\nFlorian G. Hechler\nHawli\nJeff Winget\nJeroen Wijenbergh\nMatt Colligan\nshyguyCreate\nTycho Andersen\n\nThe major highlight is support for wlroots 0.17.0, but there are several\nother new features and bugfixes as well.\n\nSigned-off-by: Tycho Andersen ","shortMessageHtmlLink":"Release 0.26.0"}},{"before":"20a4cf5ebbd073385cbce396d2eb7cbf56ce5541","after":"5c464918a3ff9eded914f788628df55c84045574","ref":"refs/heads/master","pushedAt":"2024-05-21T23:09:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jwijenbergh","name":"Jeroen Wijenbergh","path":"/jwijenbergh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46386452?s=80&v=4"},"commit":{"message":"Wayland {Xdg,X}Window: Fix position placing with multi monitors\n\nSeems like we need to do set_position more often as needs_repos\ndoesn't report if we just switched mons. Let's always do it and only\ndo the methods that we are absolutely sure do not need a change.","shortMessageHtmlLink":"Wayland {Xdg,X}Window: Fix position placing with multi monitors"}},{"before":"82ee69c7c09ef8d08fbd1e5a66820cf32347fded","after":"20a4cf5ebbd073385cbce396d2eb7cbf56ce5541","ref":"refs/heads/master","pushedAt":"2024-05-21T21:26:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jwijenbergh","name":"Jeroen Wijenbergh","path":"/jwijenbergh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46386452?s=80&v=4"},"commit":{"message":"Wayland Core: Fix no get_geometry function","shortMessageHtmlLink":"Wayland Core: Fix no get_geometry function"}},{"before":"ca7b28ef46721536d3e5b1ebf59b16d2ac93398b","after":"82ee69c7c09ef8d08fbd1e5a66820cf32347fded","ref":"refs/heads/master","pushedAt":"2024-05-21T20:03:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"Wayland: Refactor output handling\n\nOutput handling was pretty broken still. Custom modes were not working\ncorrectly and we were not handling putting output off/on. This patch\nmakes it work well enough in my testing. Unfortunately we have to add\na wlroots function in our ffi as this has not been added to pywlroots\nyet.\n\nThe biggest diff in the patch is making sure we use output state everywhere\ninstead of setting wlr_output properties.\n\nAdditionally, this also adds adaptive sync.\n\nNote: Most of the logic from this is from DWL","shortMessageHtmlLink":"Wayland: Refactor output handling"}},{"before":"d3377a5d8428b0135cb540b3befc73d079362fe7","after":"ca7b28ef46721536d3e5b1ebf59b16d2ac93398b","ref":"refs/heads/master","pushedAt":"2024-05-20T17:36:54.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"core: use ScreenRect everywhere we represent a screen\n\nWe had at least three different classes (all dataclasses without the name)\nthat represented a screen, and additionally open coded them with tuple\nunpacking in a few places as well. Let's consolidate on one class, use\ndataclass so we get free __init__ and __repr__, and use it everywhere.\n\nFor now this still just contains xywh, but it is where we will eventually\nadd the serial number for the output, and could in the future carry\ninformation about DPI, etc.\n\nI don't love the name ScreenRect for this, but this might (?) be user\nfacing, and I don't have a better name, so whatever...\n\nSigned-off-by: Tycho Andersen ","shortMessageHtmlLink":"core: use ScreenRect everywhere we represent a screen"}},{"before":"4ecc288dc3c316e8e850858d3a10fb168cadc95a","after":"d3377a5d8428b0135cb540b3befc73d079362fe7","ref":"refs/heads/master","pushedAt":"2024-05-20T16:00:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"Wayland: Configure window opacity","shortMessageHtmlLink":"Wayland: Configure window opacity"}},{"before":"bf5f820c971e29d8e2ea8ad9396a88a68f359cb5","after":"4ecc288dc3c316e8e850858d3a10fb168cadc95a","ref":"refs/heads/master","pushedAt":"2024-05-19T20:38:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"elParaguayo","name":null,"path":"/elParaguayo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/946265?s=80&v=4"},"commit":{"message":"Add Plasma widget to show `add_mode` for layout\n\nAdds a simple widget to show the status of the Plasma layout.","shortMessageHtmlLink":"Add Plasma widget to show add_mode for layout"}},{"before":"d405f46d2495629fb78d0d60380c1aebe1c587e0","after":"bf5f820c971e29d8e2ea8ad9396a88a68f359cb5","ref":"refs/heads/master","pushedAt":"2024-05-19T18:53:18.000Z","pushType":"pr_merge","commitsCount":58,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"Workflows: Do not build or test for pypy","shortMessageHtmlLink":"Workflows: Do not build or test for pypy"}},{"before":"e41fd9d0de16768def7492ed2425e7b5f23362f0","after":"d405f46d2495629fb78d0d60380c1aebe1c587e0","ref":"refs/heads/master","pushedAt":"2024-05-18T19:03:39.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jwijenbergh","name":"Jeroen Wijenbergh","path":"/jwijenbergh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46386452?s=80&v=4"},"commit":{"message":"CI: allow pypy to fail for now\n\nwe are seeing some weird issues during deps installation. see bug link in\ncomments.\n\nSigned-off-by: Tycho Andersen ","shortMessageHtmlLink":"CI: allow pypy to fail for now"}},{"before":"3c71b2117b2a7166a832fce4fb66a3cf6a6cc76b","after":"e41fd9d0de16768def7492ed2425e7b5f23362f0","ref":"refs/heads/master","pushedAt":"2024-05-15T07:51:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ramnes","name":"Guillaume Gelin","path":"/ramnes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/835072?s=80&v=4"},"commit":{"message":"Add `NotAvailable` value to Memory widget (#4814)\n\nProvides a new value, `NotAvailable`, as an alternative to `Used`. The\r\nlatter takes account of buffers and caches.","shortMessageHtmlLink":"Add NotAvailable value to Memory widget (#4814)"}},{"before":"3f3323180e572acc292f8a08024768ed74dd5359","after":"3c71b2117b2a7166a832fce4fb66a3cf6a6cc76b","ref":"refs/heads/master","pushedAt":"2024-05-12T18:26:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"Move bring_to_front to _Window","shortMessageHtmlLink":"Move bring_to_front to _Window"}},{"before":"244e8cba4fd05312762e6d0fd943fe12764824e1","after":null,"ref":"refs/heads/use-screenrect-everywhere","pushedAt":"2024-05-12T18:12:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"}},{"before":null,"after":"244e8cba4fd05312762e6d0fd943fe12764824e1","ref":"refs/heads/use-screenrect-everywhere","pushedAt":"2024-05-12T18:12:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"core: use ScreenRect everywhere we represent a screen\n\nWe had at least three different classes (all dataclasses without the name)\nthat represented a screen, and additionally open coded them with tuple\nunpacking in a few places as well. Let's consolidate on one class, use\ndataclass so we get free __init__ and __repr__, and use it everywhere.\n\nFor now this still just contains xywh, but it is where we will eventually\nadd the serial number for the output, and could in the future carry\ninformation about DPI, etc.\n\nSigned-off-by: Tycho Andersen ","shortMessageHtmlLink":"core: use ScreenRect everywhere we represent a screen"}},{"before":"a00b17470a863ce3674b2cd8c63b6695961b2a11","after":"3f3323180e572acc292f8a08024768ed74dd5359","ref":"refs/heads/master","pushedAt":"2024-05-12T13:36:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"pangocffi: don't cast to \"cairo_t *\"\n\nSimilar to d10c3bb41254 (\"don't cast before free\"), we do not actually need\nthese casts: the _pointer member of CairoContext is a cairo_t * already. I\nhave no real memory of why I thought these were needed initially and didn't\nlook through the git logs to figure it out, but I can if we want. I have\nbeen running a branch with this change for a bit and haven't seen any\nweirdness.\n\nThese are the last two casts in the tree, so hopefully this will be the\nlast version of this patch.\n\nFinally, looking at the code, there's no real reason we do this weird\nmonkey-patching of the cairo context I don't think. We could split this out\ninto separate function calls in our own object and it would work just fine.\nMaybe I'll do that if people think it's reasonable.\n\nSigned-off-by: Tycho Andersen ","shortMessageHtmlLink":"pangocffi: don't cast to \"cairo_t *\""}},{"before":"2225d4b9a6885e7da5396c8559c62806f9497d2e","after":null,"ref":"refs/heads/serial-number-ordering","pushedAt":"2024-05-11T02:55:40.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"}},{"before":"cef1bdb1e7a373abef35b4cb21d26ea1d0857b97","after":"2225d4b9a6885e7da5396c8559c62806f9497d2e","ref":"refs/heads/serial-number-ordering","pushedAt":"2024-05-11T02:55:15.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"wip","shortMessageHtmlLink":"wip"}},{"before":null,"after":"cef1bdb1e7a373abef35b4cb21d26ea1d0857b97","ref":"refs/heads/serial-number-ordering","pushedAt":"2024-05-11T02:25:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"tych0","name":"Tycho Andersen","path":"/tych0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/785111?s=80&v=4"},"commit":{"message":"wip","shortMessageHtmlLink":"wip"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEWTBIngA","startCursor":null,"endCursor":null}},"title":"Activity · qtile/qtile"}