Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[Umbrella] Support gaps #3724

@Airblader

Description

@Airblader

Known issues / possible improvements


Original issue text:

Desired Behavior

After a recent discussion between @stapelberg and myself, we would like to reconsider bringing gaps into i3 itself, effectively deprecating i3-gaps. The main rationale here is that there clearly are thousands of users who want gaps.

In order to do so, we need to implement not only gaps, but also all of the current i3-gaps features as listed below. This issue serves as an umbrella issue, if necessary we can create separate issues for the individual features. Before work on this can be started, we need to state our expectations:

  1. This is not about simply porting the gaps patch into i3. The current gaps patch is kept simple enough to make upstream maintenance possible; this means, however, that in many ways it is more of a hack and doesn't live up to our quality expectations. We should therefore consider – and discuss – how gaps can be brought into i3 in a clean way, particularly including support for titlebars.
  2. At this point in time, there is no final decision on whether we would merge this. It very much depends on the discussion and the solution we can find.

Gaps

This list tracks the core gaps features that need to be supported

  • Current i3-gaps configuration and command surface:
    • Configuration: gaps [inner|outer|horizontal|vertical|top|left|bottom|right] <px>
    • Configuration: workspace <ws> gaps [inner|outer|horizontal|vertical|top|left|bottom|right] <px>
    • Command: gaps inner|outer|horizontal|vertical|top|right|bottom|left current|all set|plus|minus|toggle <px>
  • Make gaps information properly available on the IPC (required for in-place restart)
  • Provide tests for gaps

We should overall strive to be compatible with i3-gaps to minimize friction, but where sensible we may deviate. For example, workspace-level gaps are currently solved a bit awkward in i3-gaps.

Gaps-related features

The following list tracks other features that need to be supported in i3 as well¹.

  • smart_gaps on | inverse_outer
  • smart_borders no_gaps²
  • hide_edge_borders smart_no_gaps

¹ Note that we may choose to rename features if necessary.
² smart_borders on is an alias for hide_edge_borders smart and will thus be ignored here.

Linking related issues for visibility: #1474, #3611, #2890

Please keep the discussion on this issue solely about how to move gaps to i3. Other questions or feature requests should be posted as new issues. As this will likely be a long and technical discussion I will hide any off topic comments. Thank you!

Environment

Output of i3 --moreversion 2>&-:

i3 version: 4.16.1

Metadata

Metadata

Assignees

Labels

4.16acceptedHas been approved and is ok to start working ondiscussionenhancementmerge-i3-gapsIssues needing to be resolved to deprecate i3-gaps

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions