Skip to content

Repurpose SUPER + W for tab/view close now that SUPER + Q also closes windows #10525

Description

@mrosati84

Repurpose SUPER + W for tab/view close now that SUPER + Q also closes windows

Summary

On quattro, default/hypr/bindings/tiling.lua binds both SUPER + W and
SUPER + Q to "Close window" (hl.dsp.window.close()):

o.bind("SUPER + W", "Close window", hl.dsp.window.close())
o.bind("SUPER + Q", "Close window", hl.dsp.window.close())

Since SUPER + Q now covers the "quit / kill window" role (matching macOS ⌘Q
and i3/sway's SUPER + SHIFT + Q muscle memory), SUPER + W is redundant. It
could instead take the role its macOS counterpart ⌘W has: close the current
tab / view inside the focused app
.

Motivation

Omarchy has adopted the macOS mental model where SUPER is the app-level modifier
SUPER + C / V / X are mapped to universal copy/paste/cut in
bindings/clipboard.lua by forwarding the CTRL equivalent to the focused
surface. SUPER + W mapping to killactive is the odd one out: on macOS ⌘W
closes a tab/document, not the app.

This is most obvious in the browser, where closing a tab is Ctrl + W — so the
key muscle memory says "close this tab" instead kills the whole window.

Proposal

Bind SUPER + W to forward CTRL + W to the focused surface, mirroring the
SUPER + C / V / X pattern already in bindings/clipboard.lua
(send_shortcut_once, and the per-app branching in
universal_clipboard_shortcut). Ctrl + W is already "close tab / close view"
in browsers, editors, file managers, tmux, etc. SUPER + Q stays as the
window/app kill.

Trade-offs / open questions

  • Breaking change. SUPER + W = kill window is deeply ingrained; this needs
    a migration note and possibly a deprecation period.
  • Ctrl + W is not universally "close". In many GTK text entries and
    readline/emacs-style contexts it means "delete previous word". A blanket
    forward would delete a word instead of closing a tab in those apps, so this
    inherits the same per-app special-casing burden clipboard.lua already
    carries (e.g. its terminal Ctrl+Insert / Shift+Insert branch). A
    conservative alternative: only forward for a known set of tags (browser,
    editor, terminal), and leave SUPER + W unbound elsewhere.
  • Single-view GUI apps have no "close current view" concept, so SUPER + W
    would do nothing there — users fall back to SUPER + Q. Arguably expected.
  • Last tab in a browser: Ctrl + W on the final tab closes the window, so
    behaviour stays sensible at the boundary.

Fallback ask

If forwarding is deemed too fragile, simply unbind SUPER + W (keep
SUPER + Q as the sole "Close window") so the key is free for users to remap
and no longer shadows an app's own Ctrl + W expectations.

Environment

  • Branch: quattro
  • default/hypr/bindings/tiling.lua lines 1–2
  • Forwarding precedent: default/hypr/bindings/clipboard.lua

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions