Skip to content

niri: scroll columns with mouse side buttons, fuller sizing; Zed replaces VS Code - #203

Merged
VictorGSchneider merged 3 commits into
mainfrom
claude/tender-dirac-0bc2zn
Oct 21, 2026
Merged

VictorGSchneider merged 3 commits into
mainfrom
claude/tender-dirac-0bc2zn

Conversation

@VictorGSchneider

@VictorGSchneider VictorGSchneider commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Two changes: the niri work in one commit, and Zed replacing VS Code in two.

1. niri: mouse side buttons and sizing (86c53f8)

Better sizing controls for the niri session, and scrolling between windows with the mouse side buttons.

Mouse (config/niri/config.kdl)

  • MouseBack / MouseForward: focus the column to the left / right.
  • Super+MouseBack/Forward: move the focused column left / right.
  • Super+Shift+Wheel scrolls columns, Super+Ctrl+Wheel moves the column, tilt wheel (Super+WheelScrollLeft/Right) scrolls columns.
  • ⚠️ Because the side buttons are bound bare, apps no longer receive them, so browser back/forward via those buttons stops working (Alt+Left/Right still works). Prefix the two binds with Mod+ to give them back.

Sizing

  • Super+Shift+R cycles window height presets (new preset-window-heights).
  • Super+Shift+Minus/Equal change window height by ±10%.
  • Super+Ctrl+H/L/J/K change column width / window height by 5% (stands in for Hyprland's Super+R resize mode).
  • Super+X expands the column to the free width, Super+Ctrl+C centres the column, Super+Shift+F resets the window height.
  • Super+[/], Super+Comma/Period pull windows into a column or push them out; Super+T switches the column to tabbed display.
  • Width presets are now 25/33/50/67/75%.
  • center-focused-column "on-overflow" and always-center-single-column, so wide or lone windows are no longer pushed against a screen edge.

The niri cheatsheet (Super+/, scripts/stoa-keybinds-bar.sh) and the README table now list the new binds. The Hyprland cheatsheet is unchanged.

2. Zed replaces VS Code (a5a7949, 34142b9)

  • Install: zed comes from the official extra repo (binary zeditor, desktop file dev.zed.Zed.desktop). It is added to the pacman package list in post-install.sh and to the archinstall profile. The visual-studio-code-bin AUR installs in post-install.sh and arch-install.sh are removed.
  • Existing zed.dev install: when Zed was already installed with its own installer (curl -f https://zed.dev/install.sh | sh, which puts it in ~/.local/zed.app), post-install.sh skips the pacman package instead of installing a second copy. That install uses the same dev.zed.Zed.desktop and ~/.config/zed, so the Stoa settings, theme and MIME defaults apply to it unchanged.
  • Config: new config/zed/settings.json (JetBrains Mono, telemetry off, Stoa theme) is linked to ~/.config/zed/settings.json.
  • Theme: theme/zed/stoa.json is the Stoa theme family, ported colour for colour from the VS Code theme. It is linked into ~/.config/zed/themes/.
  • Default app: source and text MIME types now open in dev.zed.Zed.desktop. For an existing mimeapps.list (both ~/.local/share/applications and ~/.config), install.sh repoints only the exact code.desktop entries.
  • Cleanup: install.sh removes the stale Stoa symlinks under ~/.vscode/extensions/stoa-theme and ~/.config/Code/User/settings.json. It only removes links that point into the Stoa checkout; files VS Code wrote itself are kept.
  • Removed from the repo: theme/vscode/ and config/Code/.
  • Docs and DFM: README and sync.list are updated, and the DFM scanner now recognises ~/.config/zed.
  • VS Code itself is not uninstalled from machines that already have it.

Verification

  • niri: built a small validator on niri's own niri-config crate. It accepts the old config, rejects a config with a typo planted on purpose, and accepts the new config. Checked in niri's source that a MouseBack bind with no modifier is consumed by the compositor.
  • Zed theme: validated against Zed's published theme schema (v0.2.0), with no unknown style keys; the validator rejects a deliberately bad value. Every settings key exists in Zed's own assets/settings/default.json.
  • Read zed.dev's install.sh to confirm where it installs and which .desktop name it uses. Ran the package-skip logic with and without ~/.local/zed.app/bin/zed present.
  • The mimeapps.list migration and the old-link cleanup were run on sample files: near-miss names (vscode.desktop, code.desktop.bak) are left alone, ;-separated lists are handled, and a real user file plus an unrelated extension both survive.
  • tests/run.sh: 17 passed, 1 skipped. check_config_integrity.py reports ok. shellcheck shows no new findings compared with the base.
  • Neither change has been tried yet on a real niri session or Zed install.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CrdbH4MCHhLKimzdRSzXZp

Back/Forward step the strip a column at a time (Super carries the
column along), Super+Shift/Ctrl+wheel scroll or move columns. Sizing
gains window heights (Super+Shift+R presets, Super+Shift+Minus/Equal),
Super+Ctrl+HJKL nudges in place of Hyprland's resize mode, plus
expand-to-free-width, center, reset height, consume/expel and tabbed
columns. Wider width presets; the focused column centres on overflow
and a lone window sits centred. Checked against niri-config's own
parser; cheatsheet and README updated for the niri session.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CrdbH4MCHhLKimzdRSzXZp
zed comes from the official repo (binary zeditor), so it joins the
pacman package list and the archinstall profile; the
visual-studio-code-bin AUR install is gone. Stoa ships Zed settings
(JetBrains Mono, telemetry off, the Stoa theme) and a Stoa theme family
ported from the VS Code theme, checked against Zed's theme schema.

Source files now open in dev.zed.Zed.desktop. install.sh repoints an
existing mimeapps.list's code.desktop entries and removes the stale
Stoa symlinks under ~/.vscode and ~/.config/Code, leaving files VS
Code wrote itself alone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CrdbH4MCHhLKimzdRSzXZp
@VictorGSchneider VictorGSchneider changed the title niri: scroll columns with mouse side buttons, fuller sizing binds niri: scroll columns with mouse side buttons, fuller sizing; Zed replaces VS Code Oct 21, 2026
Zed's own installer puts a self-updating copy in ~/.local/zed.app with
the same dev.zed.Zed.desktop and ~/.config/zed, so Stoa's settings,
theme and MIME defaults already apply to it. Skip the zed package when
that copy is present rather than installing a second one beside it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CrdbH4MCHhLKimzdRSzXZp
@VictorGSchneider VictorGSchneider self-assigned this Oct 21, 2026
@VictorGSchneider
VictorGSchneider merged commit 9c4fbd7 into main Oct 21, 2026
3 checks passed
@VictorGSchneider
VictorGSchneider deleted the claude/tender-dirac-0bc2zn branch October 21, 2026 00:11
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.

2 participants