Skip to content

feat: Tab mode for the stack#87

Open
cnvuls wants to merge 1 commit intosnowarch:mainfrom
cnvuls:main
Open

feat: Tab mode for the stack#87
cnvuls wants to merge 1 commit intosnowarch:mainfrom
cnvuls:main

Conversation

@cnvuls
Copy link

@cnvuls cnvuls commented Mar 18, 2026

Summary

  • Implemented window stacking and column management via consume-or-expel commands.
  • Added dedicated keybinds for dynamic column resizing and vertical window movement within stacks.

Motivation

This change improves workspace ergonomics by enabling a fully keyboard-driven window organization workflow. It allows the user to quickly group related windows into stacks (columns) without breaking focus or using a mouse, which is essential for deep work sessions.

Testing

Verified on Niri 25.11:

  1. Ran niri validate — no configuration errors found.
  2. Tested Mod+Comma / Mod+Period for consume-or-expel functionality across multiple columns.
  3. Verified Mod+U for tabbed-display toggle.

Checklist

  • Tested on Niri (or Hyprland if applicable)
  • Tested both ii and waffle families for UI changes
  • Tested material, aurora, and inir styles for ii changes
  • No hardcoded values (colors, fonts, durations use design tokens)
  • Config changes synced in Config.qml and defaults/config.json
  • Config access uses optional chaining: Config.options?.section?.option ?? default
  • IPC functions have explicit return types (: void, : string, etc.)
  • Shell restarted after changes: qs kill -c ii; qs -c ii
  • Logs checked for errors: qs log -c ii | tail -50
  • Lazy-loaded components tested (Settings, overlays)
  • No console errors or warnings

Related

Closes #
Fixes #

These keybinds will help you get the most out of niri
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant