Qtile: guard key commands when layout or focused window is unavailable #212
Open
opened 2026-09-15 14:51:52 +00:00 by nsaspy
·
0 comments
No Branch/Tag specified
master
configure/zara-shared-experts-android
gpt/zara-all-plugins-20260924
feature/emacs-skill-lab
feat/agenda-audio-topics-20260920
fleet24/292-style-expert-producer-20260920
feat/private-lyria-openrouter
feat/android-emacs-termux-doctor
feat/lish-agentic-default-shell
feat/mobile-org-food-megabrain
feat/gptel-gh-tea-devlog
feat/zara-donation-totals
agent/starintel-ui
feat/llm-log-qtile-consortium-overhaul
feat/zara-symbolic-feature-lab
feat/mara-symbolic-tools-307
feat/zara-auth-cli-20260920
feat/gptel-starintel-native-20260920
fix/zara-own-nixpkgs
fix/opencode-splitting-guard
feature/zara-curve-connectivity-pin
rage/282-dotfiles-expert-symbolic
rage/286-287-nix-bash-zara-abi
feat/292-js-ts-java-kotlin-adapter-abi
rage/292-lisp-family-brains-08
rage/292-language-adapter-abi-48
rage/292-prolog-python-nim-brains-48
rage/292-language-generation-fences
rage/292-bash-nix-expert-brains
rage/292-js-ts-java-kotlin-expert-brains
feat/zara-expert-library-20260919
feat/doom-zara-native-20260919
feat/278-opencode-emacs-workspace
agent/emacs-llm-overhaul-pr5b
agent/emacs-llm-overhaul-pr5
feat/llm-log-corpus-home-manager-20260919
agent/emacs-llm-overhaul-pr4
agent/emacs-llm-overhaul-pr3
agent/emacs-llm-overhaul-pr2
agent/emacs-llm-overhaul
agent/ci-retry
agent/ci-retry-2
fix/pivpn-ssh-alias
fix/opencode-prompt-send-bun-splitting
feat/shared-org-agent-memory-2026-09-19
feat/gpt-todos-full-notes-sync-2026-09-19
feat/ai-startup-dashboard-20260919
feat/termux-companion-family-2026-09-19
feat/zara-canonical-dotfiles-layout
feat/starintel-llm-harness
feat/opencode-gpt-todos-context
feat/zara-android-automation-template
feat/zara-desktop-control
feature/zara-remote-server-home-manager
feat/org-logseq-sync
fix/opencode-bun-1.3.13
port/native-emacs-20260912
fix/doom-default-emacs
feat/qwen-tts-ggml-desktop
fix/opencode-command-prompts
chore/update-llm-log-pin-20260914
feat/opencode-tmux-ezf-20260914
kb/zara-deployment-voice-facts
docs/opencode-worker-pipe-invariants
feature/opencode-global-commands
feat/opencode-web-desktop
fix/qwen-gpu-login-crash
fix/android-build-org-parity-20260912
fix/android-emacs-optional-gnutls
fix/android-build-checkout-orphan-gitlink
fix/android-apk-autobuild-20260912
feat/233-llm-log-qtile-quotas
feat/llm-log-quota-widgets
feat/gptel-starintel-proxy-20260912
agent/android-emacs-modern-20260911
fix/emacs-package-parity-20260912
feature/deploy-zara-qwen-vulkan
agent0/starintel-hourly-flow
fix/starintel-tunnel-20260911
feature/logseq-org-roam-bridge
feat/research-dashboard-local-checkouts
chore/zara-pin-8c32d45
fix/qtile-editable-popup-keys-20260910
feat/zara-qwen3-tts-rocm
fix/zara-pin-merged-master
fix/qtile-a0-mara-20260910
feat/global-prolog-project-kb-2026-09-10
feature/engagement-templates
fix/zara-client-default-endpoint-20260908
fix/prompt-lib-system-clipboard
feat/prompt-lib-qtile-ui
fix/qtile-focus-ai-routing
fix/zara-arch-listener
fix/zara-android-tcp
feat/vibemon-hooks
feat/209-llm-log-quant-alerts
fix/dired-dirvish-performance
inputs-09062026
gpt/zara-workflows-20260905
gpt/hunter02-modern-stack-20260904
hydra/fleet-jobs-20260904
human/fix-global-agents
feat/global-research-handoff
feat/prompt-lib-interface
feature/global-agent-cleanup-policy
feature/global-prolog-agent-policy
fix/disable-hackmode-emacs-startup
fix/variety-writable-qtile-script
feat/qtile-starintel-workflow
fix/finish-screen-capture
feat/zara-persona-pin
feat/zara-registry-plugins
feature/nyxt-star-uri
noop
feat/declarative-zara-services
feature/nyxt-starintel-quasar
chore/pin-emacs-auto-research
feature/opencode-codex-modules
feature/nix-gl-driver
rage/llm-log-expert-consumer-red
fix/codex-module-unconditional
feature/zara-amd-base-en
rage/llm-log-proxy
feature/gpt-todos-auto-sync
fix/qtile-group-highlight-regression
fix/research-dashboard-evil-normal-keys
feat/research-approval-pr-marker
fix/research-dashboard-all-repos
fix/research-dashboard-filter-mode
feat/research-dashboard-filtering
fix/research-dashboard-async
feature/opencode-ai-group-pr
feature/research-approval-v1
rage/108-emacs-ui-notifications
feat/brave-mcp-llm
fix/variety-qtile-hook
fix/variety-desktop-restore
feature/consortium-emacs
feat/nyxt-synthwave-overhaul
agent/all-unstable
feat/opencode-yolo-tmpfs
feature/opencode-ai-group
s2-underground/2026-08-24-bootstrap
fix/gpt-todos-same-file
feat/termux-remote-desktop-widgets
fix/bixby-studio-input
rage/desktop-bar-interactions
rage/desktop-bar-interactions-v2
rage/desktop-bar-interactions-work
rage/openrouter-graph-scale
rage/openrouter-direct-qtile-start
rage/openrouter-daemon
rage/openrouter-history
feat/reliable-screen-capture
rage/qtile-bar-v2-reland
rage/literate-sync
revert-118-rage-qtile-bar-v2
rage-qtile-bar-v2
rage/openrouter-observability
rage-qtile-control-plane
agent/gnome-osk-workarea
fix/logos-gnome-agent-zero-runner
pivpn-credential
feat/agent-zero-nix-persistence
feat/agent-zero-mobile-tunnel
fix/qtile-openrouter-tpm
chore/update-skills-lock
feature/opencode-skills-flake
feature/opencode-prolog-mcp
agent/add-starintel-couchdb-tunnel
fix/gpt-todos-bidirectional
fix/lightdm-arch-xdg-data-dirs
feature/home-manager-auto-updater
fix/brave-launcher-session
fix/gpt-todos-path
fix/gpt-todos-sync-bootstrap-hang
docs/org-wiki
feature/gpt-todos-sync
fix/brave-desktop-literate-sync
fix/qtile-autostart-idempotent-reload
chore/qtile-polkit-autostart
fix/termux-full-upgrade-bootstrap
agent/termux-bootstrap
agent/unifi-udmp-mcp
agent/fix-lightdm-home-manager-env
agent/fix-j4-nix-app-discovery
fix/org-babel-async-read
fix/git-sync-home-manager-command
fix/literate-git-sync-bindings-v2
fix/literate-git-sync-bindings
fix/qtile-openrouter-graph-reload
fix/qtile-openrouter-1hz
fix/qtile-openrouter-widget-visuals
feature/qtile-openrouter-telemetry
feat/chatgpt-desktop-home-manager
chore/remove-xinitrc
fix/qtile-tty-job-control
agent/resolve-pr55-20260817
feature/zara-starintel-plugin
agent/arch-qtile-autostart
agent/resolve-pr36-20260817
agent/starintel-el-client
agent/ob-prolog-async
agent/screenshot-keybindings
codex/mincraft-prism-launcher
agent/home-manager-font-fallbacks-ci-lite
agent/qtile-3-monitors
agent/android-org-reader
agent/prolog-rlm-gptel-tool
agent/gptel-tool-result-json-fix
agent/image-generation-progress
agent/chatgpt-books-loader
agent/qtile-session-environment
agent/configure-mara-gptel
fix/doom-llm-mcp-prefix
image-openrouter-seedream
docs/logos-home-manager-bootstrap
agent/fren-loader
fix-gptel-request-title-api
chat-inline-images-opus5-exacto
chat-inline-images-openrouter-sol-pro
use-gpt-image-2
llm-prompt-image-tools
agent/youtube-context-whisper-fallback
agent/youtube-whisper-fallback
agent/yt-dlp-context
fix/dslide-evil-and-effects
fix/dslide-keymap-and-api
feature/starintel-dslide
bootstrap/starintel-social-loader
agent/fix-doom-babel-bindings
agent/repair-doom-keymaps
fix-gptel-config-org-defaults
proxmox-mcp-env-file
agent/fix-useen-logos
agent/ubuntu-keyboard-icons
fix-gptel-openrouter-mcp-autoload
gptel-modern-models-mcp
agent/modernize-gptel-config
agent/fix-emacs-ai-agent-loader
revert/proxmox-mcp
feat/proxmox-mcp
agent/ubuntu-outrun-theme
agent/fix-flameshot-timeout-picom
emacs/open-to-agenda
agent/disko-installer
agent/fix-logos-installer
qtile-work
repo-cleanup
agent/starintel-emacs-bridge
qtile-features
speedy
agent/logos-nixos-refresh
expand-dunst-config
unstable
claude/session-011CUZCwjcg7TqU6F1xrtHq5
hackmode
remove-graphql-server
fix-emacs-everywhere
nix-autoupgrades
fixing-nyxt
logos-2026.07.19
Labels
Clear labels
bug
Something isn't working
documentation
Improvements or additions to documentation
duplicate
This issue or pull request already exists
enhancement
New feature or request
good first issue
Good for newcomers
help wanted
Extra attention is needed
invalid
This doesn't seem right
question
Further information is requested
wontfix
This will not be worked on
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/dotfiles#212
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Evidence
The supplied log contains runtime key-command failures:
Root cause
The same bindings are active for every group and layout:
However:
maxlayout, which does not expose every directional layout command.lazy.window.kill()resolves through the current window object and errors when the group has no focused window.Affected files:
.config/qtile/qtile.org— source of truth.config/qtile/config.py— tangled outputDocumented fix
Use layout-neutral focus commands
Use
previous()/next()for the global focus bindings so they work acrossmax, tiled, matrix, ratio, and floating layouts:If directional semantics must be retained for specific layouts, use conditional lazy commands with
.when(layout=[...])and aprevious()/next()fallback instead of calling an unsupported command globally.Guard window destruction
Replace direct
lazy.window.kill()bindings with a guarded helper:Apply the changes in
qtile.org, then tangleconfig.py.Acceptance criteria
maxgroup withoutNo such commanderrors.KB command error leftorKB command error killentries appear in the Qtile log.