Skip to content

feat: support longer space names with dynamic icon widths and improved contrast#51

Open
Nicomalacho wants to merge 1 commit intoJaysce:mainfrom
Nicomalacho:feature/dynamic-space-names
Open

feat: support longer space names with dynamic icon widths and improved contrast#51
Nicomalacho wants to merge 1 commit intoJaysce:mainfrom
Nicomalacho:feature/dynamic-space-names

Conversation

@Nicomalacho
Copy link

@Nicomalacho Nicomalacho commented Mar 6, 2026

Summary

  • Increase space name limit from 3 to 10 characters in the preferences UI text field
  • Dynamically size menu bar icons based on text content instead of the fixed 49px width, so longer names display correctly
  • Improve named spaces rendering: active space gets a filled rounded-rect background with cutout text; inactive spaces get a border with directly drawn text at 60% opacity for much better readability
  • Update default fullscreen app name truncation from 3 to 10 characters

Motivation

The 3-character name limit is quite restrictive — users can't write readable labels like "Slack", "Browser", or "Terminal". This PR raises the limit to 10 characters and makes the rendering adapt to variable-length names.

The contrast improvement addresses poor readability of inactive space names, which were nearly invisible against certain menu bar backgrounds due to the destinationOut compositing on thin border icons.

Changes

File Change
PreferencesView.swift .prefix(3).prefix(10), updated placeholder text
SpaceObserver.swift Fullscreen app default name .prefix(3).prefix(10)
IconCreator.swift Dynamic icon width calculation, new createNamedIcons rendering with filled/bordered styles, variable-width mergeIcons layout

Screenshots

image

Tested on macOS Tahoe 26.2 with 16 spaces using full-word names (Slack, Monitor, Dev, Browser, etc.)

…d contrast

- Increase space name limit from 3 to 10 characters in preferences UI
- Dynamically size menu bar icons based on text content instead of fixed 49px
- Improve named spaces rendering: filled background for active space, bordered
  with visible text for inactive spaces
- Update default fullscreen app name truncation to 10 characters
- Use variable icon widths in mergeIcons for proper layout
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