Show HN: A Native Tiling Window Manager for Windows 10, Inspired by I3wm
github.com
github.com
One of the things that I’d love to see in this that fancy zones is missing is the ability of windows to remember where they should be after I reconnect to my dock. Like maybe I run some shortcut right before I disconnect the dock that stores window locations and then when I reconnect I click the shortcut again to restore them to those monitors.
You can connect external displays to USB-C or Thunderbolt docks / hubs.
It is also not uncommon to dock a laptop at a workstation with dual or triple monitors.
When I worked in an office, and had frequent meetings I had to take my laptop to, it irked me enough to come up with my own solution:
And it's hWnd based, so if the window handle ever changes it won't work. Also won't work for admin windows, unless run as an admin.
But it worked well enough for me.
Search Everything ( https://www.voidtools.com/ & it's toolbar https://github.com/stnkl/EverythingToolbar - highly recommended )
Gif about search everything toolbar: https://user-images.githubusercontent.com/17520641/102723553...
PsTools - https://docs.microsoft.com/en-us/sysinternals/downloads/psto...
The tools included in the PsTools suite, which are downloadable as a package, are: PsExec - execute processes remotely, PsFile - shows files opened remotely, PsGetSid - display the SID of a computer or a user, PsInfo - list information about a system, PsPing - measure network performance, PsKill - kill processes by name or process ID, PsList - list detailed information about processes, PsLoggedOn - see who's logged on locally and via resource sharing (full source is included), PsLogList - dump event log records, PsPasswd - changes account passwords, PsService - view and control services, PsShutdown - shuts down and optionally reboots a computer, PsSuspend - suspends processes, PsUptime - shows you how long a system has been running since its last reboot (PsUptime's functionality has been incorporated into PsInfo)
Enter https://live.sysinternals.com in to Windows Explorer to browse and run the psTools suite.
Its also exposed via WebDav at: \\live.sysinternals.com@SSL\DavWWWRoot
How do they do that?
Edit: well I guess going there answers the question: it’s exposed via WebDAV
I never ever understood why those who do allow gaps (i.e. some space between each window) are basically all, by default (and sometimes it's very hard to change), do add "gaps" near the monitor's borders.
I mean seriously: why on earth are empty pixels added between the leftmost window(s) and the left side of the monitor, between the rightmost window(s) and the right side of the monitor, between the bottommost window(s) and the bottom of the monitor?
This, to me, makes absolutely zero sense. And they all do that, including this one for Windows 10 (as can be seen in the screenshots).
Why? Really: just why? I want to rant and ask: what's wrong with people? : )
It just makes no sense. There's not a world in which it makes sense.
Worse, Awesome VM calls all the gaps "useless gaps" even though it's a fact that gaps between windows aren't useless (especially when you're tiling terminal windows with no borders or with a 1-pixel border, where it can be hard to detect boundaries between two terminals if there's no gap).
But gaps near the monitor's borders are really useless: it's ok, I don't risk mistaking what's at the right of my monitor (atm a physical cup of coffee) or what's at the right of my monitor (atm a tower with three Raspberry Pi stacked) for, say, a terminal window!?
I hacked my tiling VM (the "Awesome VM" on Linux) to not have these really useless gaps on the borders but the assumption that they should be there are so deeply tied in the code that's it's a PITA to do.
"Use the source Luke" and all that but, why, just why? And why hardcode these assumptions in the code? Why do they all do that?
I just don't get it and never will.
Rant off : )
Its purely esthetical :-)
Some people prefer the aesthetic of the gaps, but it should at least be an option for tiling window managers.
I don't even want to convince people this is right way to do it and just want to make clear there are different perspectives and for some visual composition is more important than information density on screen. I get this might be important for a laptop but running three 4k displays I find it important to clearly visually distinguish all the things on my screens at a glance and also to enjoy an uncluttered but spacey desktop.
edit: though regardless, I need to inject ForceResize into them, but still maybe I can come up with some way to subclass windows without subclassing windows lmao, need some gui thread message hijacking
While on Windows I never found a good i3-replacement, I found a fairly mature and stable tiling WM I’ve been contributing too, although it’s more in the style of xmonad.
So if you’re into tiling WMs and you’re stuck on Windows you may want to give that one a try too:
I’m primarily a macOS user, but projects like this really make me wish there were more options (yes, I’m aware of Amethyst, Yabai, Spectacle (now Rectangle), Hammerspoon, and so on. Those options all have their own deficits and trade-offs) in the Apple world.
https://docs.microsoft.com/en-us/windows/powertoys/fancyzone...
I have never seen Windows WM behave the way i3 does.
Tbf that's exactly what floating mode is for
I use i3 but don't know of any way to do this.
It's a bit of a curiosity nowadays, but Windows started out as a tiling system - if memory serves, overlapping windows were not supported until 2.1. But even then, it wasn't like i3.
- guy that worked on the Windows WM (USER & DWM) for over a decade
One recent thing PyleWM has added, but isn't in the readme, is a fuzzy program launcher, does this have anything like that?
I don't want to change the sizes of the windows and but just move them so that I can easily make use of all of them and for that goal:
For each window, I want its UL (upper left) corner to be on a line from roughly the top center of the screen to roughly the left center of the screen. And I want all those UL corners equally spaced on that line.
So, for the goal: With this arrangement (1) can see at least a little of each of the windows, (2) usually can see the title of each of the windows, and (3) properties (1) and (2) continue to hold for any Z-order for the windows, i.e., can click on the windows in any order, thus, changing the Z-order, and still have properties (1) and (2). So, with (3) can just click on any window, bring it to the top of the Z-order, see all of that window, and still have (1) and (2). That is, can continue working with all the windows without more arranging.
I wrote a little script in Rexx to do this arranging and put an icon on the desktop to run that script. Best place for the icon? Sure, in the UL corner of the screen thus, not covered by any of the so arranged windows.
The version of the Firefox Web browser I'm using does something similar BUT with a difference: The line I mentioned goes from the top center of the screen to the center RIGHT of the screen instead of the center left. Sooo, when a window is brought to the top of the Z-order, usually all the windows with UL corner to the lower right are fully covered, i.e., usually can't see any part of any of them. So, lose property (3) and often soon also properties (1) and (2).
So, having that "line" go to the center left of the screen instead of the center right is a biggie!
https://github.com/prabirshrestha/dwm-win32
Maybe you can take inspiration from one another...
I'm really tempted to try them out, but I probably first need a spare Windows system...
That's a shame, I look forward to this restriction being lifted so I can check it out without rewiring my brain in two ways at once instead of just learning the new tool.
i3wm is basically like that except ad-hoc instead of preconfigured, and starting from a single full-screen window.
There's definitely plenty of overlap: Fancy Zones has some options to try to automatically remember to snap applications to given zones.
Thanks that really clarifies how to view the projects actually.
I am using the same computer from 2 locations, one 10 meters away (using extension cables) from the computer. Both locations have a keyboard and a mouse. When I start an application it always opens on the primary display, not the display I initiated the opening of the application from.
On Linux with X11 (with BSPWM or not) this is flawless. The multi display support in Linux / X11 seems to be much more advanced compared to Windows.
Any idea how I can get this in Windows 10?
On Windows you have just one console, one window manager, and multiple monitors. The easiest way to accomplish this is to clone the two monitors in display settings so you're always using the same monitor, regardless of where you're sitting.
Yes cloning is what I ended up doing.
I meant the ability to change workspaces on each monitor separately. In MacOS I can have a 2 monitors each with 2 workspaces, and switch to workspace 2 on monitor 1 without affecting monitor 2's workspace.
I have a primary and secondary monitor (with actual physical differences) and being able to easily move a task from one to the other is such a useful feature. I'd go so far as to say this is the most significant thing from macOS I'm missing right now.
For me it's because I spend more of my time at work programing, while at home I spend as much time gaming, which I've found doesn't work with tiling WM's as well.
Also the focus bar is a little overlay line that could be improved, but it's very difficult to make it like in i3wm without covering a significant portion of a windows content since you can't really control a windows rendering, etc....
I'll address the bug soon
A suggestion: get rid of any spaces between the windows, but keep the snapping.
Sort of how Aero Snap works today, snap to the entire left half, or the entire right.
Keep the 2x2 grid you have now, but just make it easy to snap to the full size of each grid cell (or 1x2 or 2x1 spaces).