• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

qtile / qtile
79%

Build:
DEFAULT BRANCH: master
Repo Added 14 Sep 2014 07:27PM UTC
Files 154
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH master
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • 0.10.5
  • 5422
  • 5428
  • QiangF-scratchpad-fix
  • StateHint
  • Update-guess-terminal-ghostty
  • add-charge-control
  • add-debian-packaging
  • add-netup-widget
  • add-prompt-toolkit
  • add-udev-debug
  • add-xcb-cursor
  • async-widget
  • bar_finalize
  • bat-charge-color
  • better-udev-rules
  • bring_to_front_and_focus
  • build-config-libs
  • bump-action-versions
  • bump-timeout-for-spawn-in-group
  • cache-wayland-deps
  • cancel-once
  • check-qtile-with-uv
  • checkupdates-widget-fix-fedora
  • chore/ci/update-ruff
  • ci-314
  • close-dev-null-spawn
  • cmd_obj-json-output
  • cmd_obj_pass_kwargs
  • correct-license-specification
  • coveralls-main
  • create-task-wrapper-volume
  • current_layout
  • current_layout_merge
  • current_layout_mode
  • current_layout_orientation
  • dbus-fast-migration
  • define-hash
  • delete-finalized-gaps
  • develop
  • do-not-mkdir-default-log
  • doc-typo
  • doc_fixes
  • docs-wayc
  • dont-ignore-disconnected-monitors
  • dont-recommend-pip
  • dont-stacktrace-markup
  • drop-bin-qtile
  • drop-default-event-loop-policy
  • drop-iwlan
  • drop-mailing-list
  • drop-old-ubuntu-note
  • drop-pycairo
  • drop-pylintrc
  • drop-unused-type-ignores
  • ekollof-bsd-fixes
  • elParaguayo-issue5192-fix
  • faq-typo
  • feat/single-pixel-buffer
  • ffibuild-leftovers
  • finish-imgs
  • fix-blurry-bar
  • fix-ci
  • fix-flake-patches
  • fix-idlerpg-widget
  • fix-manifest-errors
  • fix-missing-attr
  • fix-prompt-uppercase-input
  • fix-pulsevolume-subscribe
  • fix-python-314-deprecation
  • fix-screensplit-hooks
  • fix-statusnotifier-icon-update
  • fix-wayland-builder
  • fix_bluetooth_dbus
  • fixing-packaging
  • flake-build
  • flake-inputs
  • flake-updates
  • format
  • genpollcommand-strip
  • group-add-float-setters
  • imap_widget
  • img_zero
  • img_zero_v2
  • issue-4915
  • issue-5122-statusnotifier-new-icons
  • issue-5135
  • issue-5141-text-padding
  • issue-5173
  • issue-5179
  • issue-5199
  • issue-5283
  • libdrm
  • libgirepository-2.0-dev
  • log-hook-exception
  • log-upgrades
  • make_logo
  • master
  • meson-warning
  • moar-asyncio
  • moar-terminals
  • modernize-pythons
  • more_shell_improvements
  • move-launchbar-docs
  • move-to-uv
  • multiple_batteries
  • musl-compat
  • nix_groupbox2
  • no_group_returns
  • note-tracemalloc-toggle
  • offset
  • patch-1
  • patch-2
  • pr/1134
  • pre-commit-latest
  • prepend-primary-output
  • pull/3707/head
  • pyproject-drop-wheel
  • pytype
  • qtile-extras-layout-icon
  • qtile-extras-remove
  • qtile-repl
  • qtile_develop
  • remove-extras-tests
  • remove-old-files
  • repl-fix
  • repl-fixes
  • revert-4551-hook-registries
  • screen-change-notification-fix
  • serial-number-ordering
  • set-default-background-logo
  • shell_dont_split_eval_args
  • show-hide-bar-screens
  • simple-fix
  • sni-refactor
  • spawn-in-group
  • spiral-border_on_single
  • spiral-shuffle
  • stale-action
  • swapping
  • tasklist-desktop
  • test_wlan_docs_build
  • textlayout
  • textlayoutv2
  • transient-hooks
  • type-conversions
  • udev-uv
  • update-flake-docs
  • update-sponsor
  • use-argv-0
  • use-github-mirror-seatd
  • use-local-httpbin
  • v0.10.0
  • v0.10.1
  • v0.10.2
  • v0.10.3
  • v0.10.4
  • v0.10.5
  • v0.10.6
  • v0.10.7
  • v0.11.0
  • v0.11.1
  • v0.12.0
  • v0.13.0
  • v0.15.0
  • v0.15.1
  • v0.16.0
  • v0.16.1
  • v0.19.0
  • v0.21.0
  • v0.22.0
  • v0.22.1
  • v0.23.0
  • v0.23.0-beta0
  • v0.23.0-beta2
  • v0.23.0-beta3
  • v0.24.0
  • v0.25.0
  • v0.26.0
  • v0.27.0
  • v0.28.0
  • v0.28.1
  • v0.29.0
  • v0.30.0
  • v0.31.0
  • v0.32.0
  • v0.33.0
  • v0.34.0
  • v0.9.0
  • v0.9.1
  • vertical-launchbar
  • vertical-tasklist
  • vertical-text-no-rotate
  • wayc
  • wayc-rtd2
  • wayc-update-manifest
  • wayland-contribution-docs
  • wayland-current-status
  • widget_cleanup
  • window-bar
  • wlan-ipaddr
  • wlroots-next
  • wrap-text
  • x11-pointerbarrier-screen-focus
  • xwayland-popup-fix
  • z-layer-management
  • zordsdavini-irc-actions

03 Sep 2025 11:20AM UTC coverage: 78.945% (-0.04%) from 78.987%
17431853464

push

github

tych0
widget: don't return an error when calculating length

If a widget's length calculation has a bug and raises an exception, we
silently swallow it via @property, and it shows up as an AttributeError:

    2025-09-02 20:26:46,949 ERROR libqtile loop.py:_handle_exception():L62 Exception in event loop:
    Traceback (most recent call last):
      File "/usr/lib/python3.13/asyncio/events.py", line 89, in _run
        self._context.run(self._callback, *self._args)
        ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3.13/site-packages/libqtile/core/manager.py", line 997, in f
        func(*args)
        ~~~~^^^^^^^
      File "/usr/lib/python3.13/site-packages/libqtile/bar.py", line 622, in _actual_draw
        self._resize(self._length, self.widgets)
        ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3.13/site-packages/libqtile/bar.py", line 465, in _resize
        stretchspace = length - sum(i.length for i in widgets if i.length_type != STRETCH)
                                ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3.13/site-packages/libqtile/bar.py", line 465, in <genexpr>
        stretchspace = length - sum(i.length for i in widgets if i.length_type != STRETCH)
                                    ^^^^^^^^
      File "/usr/lib/python3.13/site-packages/libqtile/command/base.py", line 283, in __getattr__
        raise AttributeError(f"{self.__class__} has no attribute {name}")
    AttributeError: <class 'libqtile.widget.groupbox.GroupBox'> has no attribute length. Did you mean: '_length'?

Let's catch these exceptions and log them, so we can try and fix these
problems.

Signed-off-by: Tycho Andersen <tycho@tycho.pizza>

2 of 5 new or added lines in 1 file covered. (40.0%)

68 existing lines in 2 files now uncovered.

17113 of 21677 relevant lines covered (78.95%)

4.21 hits per line

Relevant lines Covered
Build:
Build:
21677 RELEVANT LINES 17113 COVERED LINES
4.21 HITS PER LINE
Source Files on master
  • Tree
  • List 154
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
17431853464 master widget: don't return an error when calculating length If a widget's length calculation has a bug and raises an exception, we silently swallow it via @property, and it shows up as an AttributeError: 2025-09-02 20:26:46,949 ERROR libqtile loop... push 03 Sep 2025 11:40AM UTC tych0 github
78.95
17430937570 log-upgrades Merge 5a14878c3 into 09d4af3d2 Pull #5488 03 Sep 2025 11:00AM UTC web-flow github
78.95
17430874137 log-upgrades Merge a178c3fa4 into 09d4af3d2 Pull #5488 03 Sep 2025 10:57AM UTC web-flow github
78.96
17427452588 wayc-rtd2 Merge ca83c32c5 into 01d9e4621 Pull #5486 03 Sep 2025 08:37AM UTC web-flow github
81.36
17427226212 wayc-rtd2 Merge 5826db690 into 01d9e4621 Pull #5486 03 Sep 2025 08:29AM UTC web-flow github
81.36
17426497466 wayc Update MANIFEST.in Pull #5485 03 Sep 2025 07:57AM UTC jwijenbergh github
81.38
17425884434 fix-manifest-errors Merge 3eccd9057 into 35081a7cc Pull #5487 03 Sep 2025 07:28AM UTC web-flow github
81.38
17404233766 master Add py3.14-dev to CI push 02 Sep 2025 01:17PM UTC tych0 github
78.99
17399754688 ci-314 Merge 221dd4dc6 into 5c27b6a35 Pull #5466 02 Sep 2025 10:07AM UTC web-flow github
78.97
17399191481 ci-314 Merge 6d79d80d9 into 5c27b6a35 Pull #5466 02 Sep 2025 09:44AM UTC web-flow github
78.97
See All Builds (5058)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc