Introduce max-width for nodes #621
Replies: 13 comments
-
Thanks for sharing your vision!
I'm curious if is it a mistake or is it intentional? The definition of "node" includes windows and containers. Restricting nodes max width will effectively restrict the root container width, which is no different from having big gaps. My vision was different. I planned to introduce Another thing is where to store "max width restriction". According to your description, you want to store it in the nodes/windows themselves. This way it's possible to resize nodes/windows independently My vision was to have as many Since the primary use case is to improve experience for ultrawide monitors, it feels natural to me that I understand that "isn't yet intuitive to me" is a bad argument, and I will try add a comment later when I realize it. Maybe my intuition is afraid that every window will now have a property that is not directly observable (which feels too chaotic and random), or maybe it's something different, I didn't realize it yet.
What would be the use case for disabling the constraint?
And I afraid that possibility to set |
Beta Was this translation helpful? Give feedback.
-
If a Something akin to defining proportioned areas that windows would be constrained to. Then you can have multiple proportions for the trees to work in. For example, you could define multiple zones such as:
etc etc Could help to avoid having to manually calculate any different monitor sizes when switching between stations. |
Beta Was this translation helpful? Give feedback.
-
I think the question is what we want to happen if the monitor width is larger than twice the max width. The first window will definitely be centered. What happens when the second window is added. Are both windows centered on the screen, or are both windows centered in their nodes, so effectively have a big gap between them? In effect this is the difference between css justify-content: centered or justify-content: space-between. I think strongly that centered is better.
I think the case where the value will be overwritten will be pretty rare, so maybe your intuition is right. I'm thinking that web browsers should be max 1280px for most websites to look good, but sometimes you really want it to be wider using a specific website. This should just be possible without turning off the global setting.
Similar to the above: if you give a presentation in google slides, or are in a video chat that's best looked at full width screen. It would be bad if you have to turn off aerospace because you use a tool that needs the entire screen.
Totally losing the ability to make any window fullscreen feels challenging in day to day. VSCode flow state sessions, fullscreen presentations, fullscreen youtube video, IA Writer in zen mode, Video games in windowed mode. All those are things I wanted to temporarily use more than 1280px for a window recently. But maybe there is a simpler way to accomplish this? |
Beta Was this translation helpful? Give feedback.
-
I agree
I guess it makes sense... I never used an ultrawide monitor, so it's unclear to me how these apps look when they appear super wide. Do you mind attaching a screenshot? |
Beta Was this translation helpful? Give feedback.
-
don't have a good one as i'm on the road right now. But you can pretty much see the issue in the review shots of this one, which is the most common one. For what it's worth, i don't think that's an ultrawide only feature. While maybe not at laptop level- 30" screens would definitely benefit from a max-width cap. |
Beta Was this translation helpful? Give feedback.
-
Here's a good example of Slack when it is super wide. As you can see, reading messages is pretty difficult because my eyes have to scan the entire width of the monitor. For a sense of scale, the horizontal width of my monitor is 32 inches (81 cm). I've added pretty large outer gaps to compensate, but this isn't great because I lose screen real-estate when tiling multiple windows. Currently, aerospace doesn't completely solve my problem -- but with a max width it'll be perfect for me. |
Beta Was this translation helpful? Give feedback.
-
The problem is far worse on a 40 inch ultrawide. Also I see other great ideas #465 #60 |
Beta Was this translation helpful? Give feedback.
-
Just wanted to +1 @tobi's request here, and stay in touch with this issue as it's currently the only thing holding me back from using AeroSpace, which I'm otherwise very excited about. While some apps do a good job with keeping to reasonable line lengths of roughly 60-75 characters per line, some unfortunately don't make such accommodations—Slack, Spark, Mail.app, and Notes.app being notable examples. This makes using them on a screen like those described very difficult. In my case, I've got a Pro Display XDR, and seeing windows like Finder, Notes, etc. full screen is jarring and offputting to the point where it's impractical to use them with AeroSpace. #552 would also help out in this instance. Max width would be a great solution, as in a space where only one window is present, but max width is enforced, the surrounding space would simply be the desktop. I'll also note that in some cases, perhaps restricted to certain spaces, max height would also be beneficial. That's because with a monitor as large as the Pro Display, keeping my vision centered in the middle is sometimes preferred, and a 100% height window can also be unwieldy. Love the project so far @nikitabobko and looking forward to being able to use AeroSpace one day! |
Beta Was this translation helpful? Give feedback.
-
Having zones would be amazing as literally Aerosapce is pretty perfect for laptop size screen or non-wide screen displays, however its just shy of being useful for widescreens. And as others have mentioned creates a rather jarring experience. Being able to define zones means you can take control of large monitor estate and lock applications down based on those widescreen requirements, its sooo nearly there as i can transition my workspaces on docking my laptop to the new display automatically and keep some on the mac screen (which is just amazing!). Currently If i have e.g. 1 Browser session open on a workspace, when that moves to a widescreen it takes up the entire 5120x1440 estate which just makes it pointless, the only way to take control of this app window is to essentially open multiple other applications. It would be nice to just have a "chill window" as per #60 (comment) where you have a centrally located browser window and nothing else around it to read some blogs etc. Also - great work @nikitabobko I was about to throw my mac away as I was sick of dragging windows for a living in OSx!! |
Beta Was this translation helpful? Give feedback.
-
For me personally, I wish there was a way to define a default width an app opened in, instead of a max width. I tend to open and close apps (vs using workspaces) as it's less mental clutter for me, and every time I open Telegram or Messages, I need to resize them to their min width (as that's how small I like them when using them). Something like this (which doesn't currently work): [[on-window-detected]]
if.app-id = 'com.googlecode.iterm2'
run = 'resize width 300' |
Beta Was this translation helpful? Give feedback.
-
Tracking this like most - ultra wides are a first world problem, but a problem non-the-less... I'm going to share some lose concepts and ideas as I'm looking to use this.. I believe zones have been used to describe this concept? I could see myself setting up a workspace that I use for comms. I want Slack in zone 1, email in zone 2 and discord in zone 3 - this workspace would be ALT+C, additionally I'd like to setup these applications via configuration. This configuration feels like it could be defined to a monitor by default or specific to a workspace. I think someone here is trying to achieve the same result by defining workspace configurations. Maybe it feels like there is startup process which loads the app and then a bootstrap process that loads pre-configured workspaces accordingly. There are times I want to just have my normal floating windows without strict workspace bindings, so a workspace that is in floating mode with NO defined zones, basically a workspace that isn't managed by aerospace, free-form if you will |
Beta Was this translation helpful? Give feedback.
-
+1 on this. I came from Rectangle and really liked being able to center my browser to the middle third of my monitor when I was reading papers. With Aerospace I essentially have to fill the screen with more windows on the left/right which is undesirable because I want to just focus on the browser itself |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Having windows go full-width on large monitors and ultrawides is jarring and undesired. There are a few tickets already on this, but I'd love to contribute my favorite way to solve this. And if the @nikitabobko is willing to merge this, I'm happy to offer a small bounty for the implementation, if that's desired.
Introduce
default-node-max-width: 1280
. When set, this gives each new node a maximum width when it is created. On a screen that cannot be filled fully due to this constraint, a new window/node is centered with margins to the edges of the screen. I think would be an elegant improvement for the people that are bothered by this, and should introduce minimal amount of additional complexity to the system. Certainly avoids nasty late night, dark mode for hours, accidentally-flashbang-yourself-with-google.com on a 1800nits display problem which inspired this ticket 😅.Some additional considerations:
layout tiling-fullwidth
that allows for hotkeys that disable the constraint. Example:ctrl-alt-cmd-space = ['layout tiling-fullwidth tiling']
. Windows in this tiling-fullwidth state just ignore the maxwidth attributeresize max-width 800
, this enables setting some types of windows to be constrained by default like so:I think that this is a horizontal only thing. Maybe there should be a vertical version of this as well, but I have a hard time coming up with a great use-case for this, so maybe best to just skip it.
Beta Was this translation helpful? Give feedback.
All reactions