My quest for the perfect window manager (2004)
ironphoenix.org
ironphoenix.org
But Windows 95 was better. MUCH higher contrast, very clear delineation between controls, and consistency of operations. Plus you could resize windows from any corner!
Then Windows XP came along and ruined everything. And the Windows UI continued to go downhill from there. At least it came with a "classic" theme for awhile.
Then I switched to MacOS Leopard. It was nice overall, but going back to menus at the top of the screen felt like a step backwards. At least it had contrast and clear delineation between controls, so I was on the whole happy. Then they started to flatten things, reduce contrast, and generally make a pig's breakfast of everything.
Now I've settled on Mate Desktop. It's mostly there, better in some ways, worse in others. But overall it's pleasant to work with, low impact, and gets out of your way.
And at the end of the day that's all I really wanted.
FVWM is completely legit as well, albeit a little heavy when compared to TWM or my favorite Rio, with Acme of course. Heavy is relative in this sense, I've run FVWM on reprogrammed childrens toys with the processing power of a warm potato.
I honestly don't understand the OP's hatred of fvwm, but people like different things.
But then I got two monitors and a job and stopped caring. I need virtual desktops, a launcher, and a good settings app. I’ve never tiled windows outside of Emacs, which runs full screen on one monitor opposite a browser on the other monitor. I’m baffled by people who need to have seven terminals open alongside a tiny YouTube video. Either watch the video or do some work.
It's ironic and silly because I use a tiling window manager to _be_ productive. I have used the same settings, window manager and configuration since 2006. That is exactly why I love it, it's stable as can be and I can rely on it forever (at least until X11 doesn't work anymore, but I will probably be dead by then).
I can update dwm by pulling master and rebasing my branch on master. Has worked since 2006. With that being said, dwm hasn't changed much since 2006.
Just let people decide for themselves how to be productive, it's great your work allows you to be productive on two windows, some other people may need more, some less.
I just want to have that factorio overview over my whole workprocess pipeline and everything stuck in it. Inclusive rerouting capability. That would be supersweet. Has that ever been attempted?
then i realized i could just run a full screen terminal on one desktop and run tmux within it. it can be a little annoying with just one screen but otherwise great.
(incidentally, i also used to be a window maker person, and an actual nextstep person... after those two i ran something extremely lightweight, with small thin window decorations and that's it. i cannot remember the name)
is it good? like if i'm doing something new and something new wants to pop a floating window, can i just keep doing my thing or do i have to start thinking about my window manager?
i find that dedicating a screen to tmux and another screen to a classic desktop environment gives the best of both worlds. (subject to the limitation of becoming dependent on multiple screens)
I did love the fact that all shortcuts started with the superkey though. That meant no overlap with any ide (I am looking at you, gnome).
In the end it was much faster to use the switchers in more traditional managers like Gnome and while you can stack/tab windows they still take up space.
Finally, and I think most importantly, while I was using an ultrawide screen at the time, and it was definitely nice to be able to easily split it in two or three windows quickly, I mostly don't need a tileable screen.
I used whatever the default Ubuntu DM is (gnome, not sure the version) for a while, because I got a new computer and didn't feel like messing around with .config stuff. Tuned it a little -- actually the gnome tweaks and plugins system is pretty nice! I had an applet that could control my smart-bulbs, and there's one that will invert a window color (I'm sure this is possible in sway but it would probably involve come obscure program I might need to compile).
But in the end the draw of proper keyboard controls over my WM is too appealing, switched back to sway.
IIRC, one thing that kind of kept me on the floating WM was Zoom. I think the general Zoom workflow depends on drawing a lot of windows of various random sizes, closing and opening them automatically, etc etc. It is a pretty dumb application (but it was mandated from on high, so...).
Openbox is extremely minimalist and customizable. I use it for games, gimp, and occasionally gui application development. You can add directional selection keybindings etc. so it keeps a tiled-esque feel.
I dumped a shellscript in my ~/.zprofile where I can easily switch wms and X configurations without logging out (keep mounts, music, etc). It makes it really painless to switch.
I've switched to windows because of laziness and need to reconfigure my dotfiles after like 6 years of using i3. This week I'm getting a new m2 disk and will be installing arch to finish my rice.
But, just recently, a co-worker mentioned Sway. I have to use things that prevent me from using Wayland, so I decided to give i3 a try after touching it and not understanding it many years ago.
The point of my WM life story is, that after all that, I have stuck with i3 for about 3 weeks now and am falling in love with it. There were some gnome things that I missed, but was able to quickly piece things together to get the functionality I wanted. Being a vi guy also, I really like using modes for my keyboard shortcuts too. It definitely helps with my productivity (when I'm not playing with things to increase my productivity anyway :) )
I've never looked into window managers. If I prefer to have all windows I'm using maximized on different virtual desktops all the time, is there still much of a benefit to using a WM?
Sometimes it feels sort of like using tmux full screen in a terminal, but some of the panels can be firefox or a PDF reader, haha.
I can't say much about floating WMs, as the above paragraph applies to me. They do exist, Hikari seems to be doing some interesting stuff.
My own jury is still out on how well it works on FreeBSD - which I am more attentive over, but I seen kwin use a lot of CPU for periods of time, spinning up the fans after a resume. But that was before I lowered the scheduling threshold from the recommendation ... but otherwise, it works fine.
But I settled because I really just don't care enough to optimize this part of my computing workflow. I guess the hip thing to describe it now here on HN is to call it "boring" ... to me, it is quite boring. :) I recommended KDE to a co-worker when deciding to use Ubuntu to get a Windows-y feel. So far, he's been happy with it too.
- audio
- displays
- bluetooth
Audio is especially confusing on Linux because there are so many parts to one system. Even after researching PulseAudio, ALSA, Pipewire, Jack, etc. it is super hard for me to know exactly what does what on my Linux machines.
I found that with i3 I often spent more time tweaking my desktop than actually doing work. However, I think that tweaking like this is actually super fun and educational on how Linux display stuff works -- I would never discourage someone from taking the time to mess around with i3, bspwm, or an alternative.
My perfect balance is GNOME plus the Pop! OS shell extension[1]. I'm not a Pop! OS user (and likely never will be) but I loooove having tiling in GNOME and being able to have all the stuff I don't like to manage just work.
[1] https://github.com/pop-os/shell
EDIT: minor grammar tweak
Displays is fixed by using Wayland (sway).
Bluetooth is indeed an unsolved problem. I suppose the skilled hacker types have just declared the whole protocol as broken and use wires.
Do I read parent as saying that these things are best managed through GUI widgets attached to the desktop environment
100% you are reading my original comment correctly. An example I ran into recently: I start up bluetoothctl, I power on the adapter, start scanning for Blueooth devices and am spammed by a bluetooth device nearby to the point where I can't see the one I am trying to pair to (even after turning off scanning). In contrast, blueman-applet or GNOME's control-center neatly organizes each unique Bluetooth device as individual icons and makes it easy to see each of those. Lots of little papercuts like that can make it frustrating when you're just trying to get work done.
This is also true things like displays -- sure I could take 20 minutes write a script to rearrange my displays the way I prefer -- or I could just open GNOME's control center and take two minutes using the display setting.
There are lots of little things like this that can get in the way when you just need to get something done.
And this is totally subjective to my experience, my opinion and what I currently value so please don't take this like I am saying everyone should prioritize things the way I do. For those more comfortable in i3 or something else -- great! :)
What would cause friction is if the display plain didn't work, or had bad aspect ratio or fonts. Wayland (in combination with kernel graphics probably) seems to have fixed those problems.
My experience with Pipewire has definitely been excellent.
> Displays is fixed by using Wayland (sway).
I still have some tooling that requires X11 -- but whenever I've used Wayland I feel like there is still a lot that relies on X11. For me, Rofi is one of those tools that I just haven't been able to totally replace in Wayland (even with the Wayland forks of Rofi). Some other day-to-day examples are Zoom[1] and Nvidia graphics cards[2]. While I am aware that these are third parties lagging behind Wayland support and not really an issue with Wayland itself, it still demonstrates how everything is not magically "just fixed" simply because you are on Wayland.
[1] https://support.zoom.us/hc/en-us/articles/6634039380877-Shar...
[2] https://forums.developer.nvidia.com/t/wayland-information-fo...
Though note I basically only use Windows as a fat driver layer unless I'm playing games (Wintendo!)
> unless I'm playing games
This is one area I've not been able to completely ditch Windows. Valve is doing some great work to get Windows games running on Linux in Steam but I find myself playing a bunch of games that are not in Steam with an anti-cheat engine that sucks in Proton. I hope more external game launchers/stores and anti cheat engines are motivated by Valve to implement Linux (or emulated) support.
I totally cannot be arsed being a desktop admin for either.
So I use WSL2+Xsrv to give me my -client- environment on windows and then use that to ssh into servers to actually do stuff.
Meanwhile, windows acts as a fat driver layer that provides firefox and my X11 setup and easy access to games.
I am in no way recommending this. But it works for me.
exec_always --no-startup-id blueman-applet
exec_always --no-startup-id nm-applet --indicator
I have been using Regolith for half a year now, after 10 years of endless tweaking of XMonad and Gnome under Ubuntu.
Gets me interested in getting my build setup like that!
Most of the time was spent just to familiarize with Arch and find packages, which will pay off later.
Regular Manjaro seems newbie friendly as well.
I would say if someone is curious to give Arch a try but doesn't want to go through the installation process that they should give archinstall a try! In my opinion, the preset profiles (for GNOME, KDE, etc.) really removes a bunch of friction to using Arch if you are a new user or just want to save yourself time.
(I would imagine my views don't reflect the majority of the Arch community as it often seems like deliberate steps are taken to keep Arch as a gated community to those who are elite enough to invest in Arch 100%)
However, for work, I need something not bleeding edge, and hope Manjaros tests and security test, will help in that regard. That it's a positive thing they wait about 2 weeks.
I had to tweak Manjaro a little, but so much worked out of the box. Don't have that dedicated time for ricing, though default installs in Arch seems very sanely configured.
It's interesting (to me at least) because I have ended up using Arch for all my personal servers and workstations and it has been pretty rock solid! Although, I typically use containers for running all the applications I care about -- which might lend to the stability I have seen with my systems.
One of the advantages of NixOS model.
hardware.pulseaudio.enable = true;
hardware.bluetooth.enable = true;
services.blueman.enable = true; #for systray applet
They work fine and are wm/de independent. As for displays, I simply use `arandr`. Can even save/apply layouts for specific setups.Can you explain how audio and bluetooth works independently of the desktop session? Does it need custom support compiled in to every window manager?
If it's so easy to do it independently of the desktop session, why does Ubuntu etc. make it dependent on the desktop session? I had assumed that it was something like the desktop session needing to set up environment variables so that all your applications knew how to talk to PulseAudio.
> Explicit PulseAudio support in applications
> Normally, the system-wide ALSA configuration (/etc/asound.conf) redirects the audio of applications which use the ALSA API through PulseAudio. For this reason, most applications do not need to be PulseAudio-aware. Some NixOS packages can be built with explicit PulseAudio support which is disabled by default. This support can be enabled in all applicable packages by setting:
> nixpkgs.config.pulseaudio = true;
Note that the parent is only changing a config option; there may be all sorts of logic behind the scenes which branch on that value, e.g. to splice different text into /etc files, to add compile flags to package builds, etc. ;)
>why does Ubuntu etc. make it dependent on the desktop session
Because what if you didn't want them? Non-Nix systems don't have this centralized configuration model therefore they cannot provide this flexibility. Therefore they just let each session to load what it needs.
For reference, here's my nixpkgs repo (galaxy-chromebook is my most recent config): https://github.com/heywoodlh/nixpkgs
- huge lack of basic hardware support for things like wifi (or bluetooth) chipsets
- lack of Docker support (I'm one of those that uses Docker as my universal CLI package manager)
Aside from these things, I absolutely love the mentality and philosophies behind FreeBSD and would love to have a FreeBSD workstation!
The thing I care about that a tiling window manager brings me is a way to automatically organize your windows in a minimal looking environment. The way I set up GNOME I am able to achieve that.
IMO, the key thing about tiling window managers is that if you configure it correctly, you always know where everything is, and you're only ever one or two keystrokes (or mouse clicks) away. For example, on my setup, workspace 8 is always Firefox. If I open workspace 8 and Firefox hasn't been launched yet it immediately opens. Workspace 7 is my meassaging app, 6 is discord, 1 is a terminal, and so on. Windows are never hidden behind each other so you never go hunting for anything.
There's also a lot of little customization things that make it feel really nice. Like I can hit a hotkey to size a youtube video to a pixel-perfect, borderless 720p window with other windows filling space around it. Or a global hotkey to hide notifications for the next hour. I have a "get focused" hotkey that will lock the screen and require an admin password if I open the browser.
TWMs are definitely not for everybody. But for me it removes a ton of frustration that I get with stacking window managers, and it lets me customize my own experience in ways that I find super valuable.
But for my new upcoming job they should be sending me a Macbook. Does the latest OS X have a workspace concept? If not is there an free application that can implement workspaces/desktops on OS X?
https://support.apple.com/guide/mac-help/work-in-multiple-sp...
I never really utilized it at all last time I used a macbook for work.. :/
I think the worst offence is how Mac OS conflates full screen with workspace, and how you cannot (I think?) assign keybindings for instantly (=0ms animation) moving focus and windows to workspace x.
Also I highly recommend disabling the "Automatically rearrange Spaces based on most recent use" in settings. That always felt like it was just randomly sorting my workspaces so that I had to fling them around until I found what I needed.
I would absolutely love a TWM that let me place/size windows like Spectacle or Rectangle but also _push_ other windows out of the way to maintain a grid and avoid overlapping. Open terminal, use keybind to place in upper right 1/3rd the screen width and 1/2 height. Open slack, hit same keybind, terminal gets pushed left (or down if there's already something to the left). Open browser, hit center 1/3rd 100% height keybind. Pushes terminal left. Focus slack, hit top right keybind again to expand window to 2/3rd width. Pushes browser down to center 1/3rd bottom 1/2. etc.
I've also used sway quite a bit. And i3... and even pop's tiling.. They are nothing, at all, like I've described.
I've gone so far as to setup sway to float all windows and created swaymsg keybinds to place/size windows like spectacle but discovered that sway has a bug with focus window up/down/left/right keybinds and floating windows.
I can't really speak to the other tiling window managers because I've been using i3 and Sway for years now and never felt any need to switch (i3 and Sway work pretty much the same; Sway is just the more modern Wayland implementation), but browsing r/unixporn is a good place to check out the different setups, and people often post their dotfiles if you want a starting point.
Not sure if Windows 11 has something similar (at least, not with native workspaces - they only "remember" certain windows and not others..)
These days I don't need to fiddle with my WM configuration, and I have all the other things (launcher, media controls, keyboard layouts) set up nicely too. I can just boot my system and start using it. It works exactly the way I want it to, and if there's something that doesn't work quite right I have direct access to the source code of the WM. A while back I had trouble with a volume widget that didn't work properly when using PipeWire, so I just went and fixed it myself.
I rarely have to venture out into Windowsland, but when I do I feel incredibly clumsy and slow, which is quite frankly weird after such a short amount of time using a tiling WM. They're definitely not for everybody, but for me it has been a fascinating experience.
He says for instance that he quit using tiling window managers because among other things because of the grossly overstated time required to configure screen locker and volume keys and such. However since he seems to have already sunk that 30 whole minutes there is no savings involved.
He explicates reasonably well the argument for a keyboard centric workflow then casually dismisses it by asserting without argument that users endure the great burden of learning scads if keyboard shortcuts for what he asserts is no benefit after he himself articulates the benefit. How hard is it to understand shortcuts per the name are quick ways to perform an operation? He mentions web browsers as if they were some great counter argument to keyboard shortcuts. Yes it's ok if you both pick up the mouse to click something and use shortcuts too.
He says that GUI apps work poorly with tiling window managers because they will be forced to a suboptimal size.
Nobody is making you open 7 apps on your 12" screen. Nothing about tiling window managers keeps you from giving a particular app up to an entire monitor.
This doesn't require writing rules for every app or manually resizing or indeed anything else but switching workspaces.
If you want 1 window alone on one workspace and 3 on the other do you know what complex operation is required?
You open 1 window switch to the second workspace and then open the other 3.
He claims that you won't be able to employ keyboard shortcuts without resolving conflicts as this was a great unsolved problem. Most shortcuts aren't global and application specific shortcuts just can't conflict by nature.
The traditional method for binding non conflicting shortcuts for actually global things like your wm is to bind windows key + foo to global things whereas applications get control shift alt + everything else.
It's so weird to watch him thinking he's being clever and knowledgeable when he's completely talking out of his rear.
If you like me watched the whole thing you know less than you started out knowing if you took him seriously.
If you don't have any such itch, tiling may seem pointless.
Tiling already works well out of the box with regular window managers, without the pain that can come with tiling window managers.
Regular stacked window managers actually come with most useful features of tiling managers like tiling windows on the side or the corner, with the keyboard or the mouse (and since I have a bigger screen I use them more and more like this), while still allowing stacking when it's useful, or using the mouse when it's useful.
I wish KWin allowed to remove shadows when windows take the full screen but this idea has been rejected.
Plus '#ffee66' for http://trout.me.uk/X11/xclus
will result in:
http://trout.me.uk/screenshot4.png
Everybody else's mileage will definitely vary.
("real" GUI wise, I still miss RISC OS ;)
Wayland's architecture in general is completely different, so you don't so much port a WM as you do rewrite it as a Wayland compositor. There are libraries like wlroots that help with this task but it is not straightforward.
someone has already made dwl, a wayland (wlroots) port of dwm: https://github.com/djpohly/dwl
the dwl codebase is very similar to dwm. some dwm patches can even be applied directly. i currently use dwl, it's part of my custom pure-wayland desktop environment built from suckless ports.
i think the 'difficult' work has already been done.
Edit: oh that wasn't a joke... this is an actual thing :mindblown:
They can pry bspwm+sxhkd out of my cold dead hands. It's a fast, lightweight and rock-solid environment, with simple yet flexible customization. It gets out of my way and works exactly as I want it to. I've been using it for years, and don't have the need to switch to anything else. I'm only hoping that something similar can exist for Wayland. Otherwise I don't see myself switching from X anytime soon.
Please support the author if you have the means: https://github.com/baskerville/bspwm/blob/master/doc/CONTRIB...
Maybe I'll try out GNOME with Pop Shell. Seems pretty nice out of the box.
I want plainness because the wm is just framing my applications, not the main atteaction.
I want stability because my workstation should not be rearranged without my consent or request.
After a long time looking, I'm happy for a while now.
IMO, other than the small additions of being able to toggle "on top" and virtual desktops, Windows 95 pretty much did it as far as a functional, efficient, and subtly stylish UI. Mac 8 is not bad either, but didn't have the keyboard accessibility.
There are utilities that attempt to provide some alternative window behaviors; they are all hacks — by necessity — because macOS does not support altering window behavior/appearance globally.
And why doesn't X-Windows also support altering menu appearance globally (like supporting pie menus in every app), too? NeWS did, over three decades ago.
NeWS Tab Window Demo (1990)
https://www.youtube.com/watch?v=tMcmQk-q0k4
X-Windows Disaster
https://donhopkins.medium.com/the-x-windows-disaster-128d398...
Ice Cube: The Lethal Weapon
One of the fundamental design goals of X was to separate the window manager from the window server. “Mechanism, not policy” was the mantra. That is, the X server provided a mechanism for drawing on the screen and managing windows, but did not implement a particular policy for human-computer interaction. While this might have seemed like a good idea at the time (especially if you are in a research community, experimenting with different approaches for solving the human-computer interaction problem), it can create a veritable user interface Tower of Babel.
If you sit down at a friend’s Macintosh, with its single mouse button, you can use it with no problems. If you sit down at a friend’s Windows box, with two buttons, you can use it, again with no problems. But just try making sense of a friend’s X terminal: three buttons, each one programmed a different way to perform a different function on each different day of the week — and that’s before you consider combinations like control-left-button, shift-right-button, control-shift-meta-middle-button, and so on. Things are not much better from the programmer’s point of view.
As a result, one of the most amazing pieces of literature to come out of the X Consortium is the “Inter Client Communication Conventions Manual,” more fondly known as the “ICCCM”, “Ice Cubed,” or “I39L” (short for “I, 39 letters, L”). It describes protocols that X clients must use to communicate with each other via the X server, including diverse topics like window management, selections, keyboard and colormap focus, and session management. In short, it tries to cover everything the X designers forgot and tries to fix everything they got wrong. But it was too late — by the time ICCCM was published, people were already writing window managers and toolkits, so each new version of the ICCCM was forced to bend over backwards to be backward compatible with the mistakes of the past.
The ICCCM is unbelievably dense, it must be followed to the last letter, and it still doesn’t work. ICCCM compliance is one of the most complex ordeals of implementing X toolkits, window managers, and even simple applications. It’s so difficult, that many of the benefits just aren’t worth the hassle of compliance. And when one program doesn’t comply, it screws up other programs. This is the reason cut-and-paste never works properly with X (unless you are cutting and pasting straight ASCII text), drag-and-drop locks up the system, colormaps flash wildly and are never installed at the right time, keyboard focus lags behind the cursor, keys go to the wrong window, and deleting a popup window can quit the whole application. If you want to write an interoperable ICCCM compliant application, you have to crossbar test it with every other application, and with all possible window managers, and then plead with the vendors to fix their problems in the next release.
In summary, ICCCM is a technological disaster: a toxic waste dump of broken protocols, backward compatibility nightmares, complex nonsolutions to obsolete nonproblems, a twisted mass of scabs and scar tissue intended to cover up the moral and intellectual depravity of the industry’s standard naked emperor.
Using these toolkits is like trying to make a bookshelf out of mashed potatoes. - Jamie Zawinski
https://en.wikipedia.org/wiki/NeWS
>NeWS was architecturally similar to what is now called AJAX, except that NeWS coherently:
>- used PostScript code instead of JavaScript for programming.
>- used PostScript graphics instead of DHTML and CSS for rendering.
>- used PostScript data instead of XML and JSON for data representation.
>TNT-based applications
>The best example of such a library is TNT (The NeWS Toolkit) which Sun released in 1989. Sun also shipped an earlier "Lite" toolkit intended for example purposes and making small programs.
Here's a good example of a TNT application I developed called "PizzaTool" that shipped with Solaris 2 / SVR4 Unix OpenWindows:
https://medium.com/@donhopkins/the-story-of-sun-microsystems...
>The Story of Sun Microsystems PizzaTool: How I accidentally ordered my first pizza over the internet.
It was meant to be a programming example for TNT, so the object oriented PostScript source code is heavily commented:
https://www.donhopkins.com/home/archive/NeWS/pizzatool.txt
And it has a manual page:
https://donhopkins.com/home/archive/NeWS/pizzatool.6
Before going to Sun, I also developed an early hypermedia browser and authoring tool called HyperTIES written in NeWS and using UniPress Emacs at the University of Maryland Human Computer Interaction Lab, which supported pie menus and tabbed windows. That is illustrated on both the NeWS and Tab (interface) pages on Wikipedia:
https://en.wikipedia.org/wiki/NeWS
https://en.wikipedia.org/wiki/Tab_(interface)
https://en.wikipedia.org/wiki/NeWS#/media/File:HyperTIESAuth...
>HyperTIES is an early hypermedia browser developed under the direction of Dr. Ben Shneiderman at the University of Maryland Human Computer Interaction Lab. This screen snapshot shows the HyperTIES authoring tool (built with UniPress's Gosling Emacs text editor, written in MockLisp) and browser (built with the NeWS window system, written in PostScript, C and Forth). The tabbed windows and pie menu reusable components were developed by Don Hopkins, who also developed the NeWS Emacs (NeMACS) and HyperTIES user interfaces. (Sorry about the quality -- this is a scan of an old screen dump printed by a laser printer.)
https://donhopkins.medium.com/designing-to-facilitate-browsi...
>Designing to Facilitate Browsing: A Look Back at the Hyperties Workstation Browser By Ben Shneiderman, Catherine Plaisant, Rodrigo Botafogo, Don Hopkins, William Weiland. Published in Hypermedia, vol. 3, 2 (1991)101–117.
https://donhopkins.medium.com/hyperties-discussions-from-hac...
>HyperTIES Discussions from Hacker News: I’m putting this lightly edited archive of a bunch of different discussions and email about HyperTIES, all together in one place here on Medium. Please forgive the rough wall of text and redundancy, but I haven’t yet had time to distill it all down into one sentence. I will just include the email I sent to Ben Shneiderman summarizing the interesting posts and links, for now. Here goes: [...]
And speaking of "good news", there was an even more wonderful user interface toolkit and deeply user customizable window manager for NeWS, like HyperCard with PostScript programming and colorful stencil/paint graphics and networking instead of Hypertalk scripting and black and white bitmap graphics and no networking, which I worked on porting to TNT at the Turing Institute with Arthur van Hoff, first called "GoodNeWS", then "HyperNeWS", then finally "HyperLook", which I used to port SimCity to Unix.
You could use HyperLook's built-in PostScript drawing editor to define the shape and look and feel of any of your windows, drawing arbitrarily shaped scalable window frames and content, and cutting and pasting in scriptable buttons and widgets with graphics, like customizable clocks and custom menus, etc. The Encapsulated PostScript drawing editor itself was a reusable component that other components could incorporate, like the way the customizable clock's property sheet had drawing editors to edit the clock face and hands, so you could edit the clock's appearance.
Decades later there are still no X-Windows window managers (or even Wayland window managers) that are anything like HyperLook.
https://medium.com/@donhopkins/hyperlook-nee-hypernews-nee-g...
>SimCity, Cellular Automata, and Happy Tool for HyperLook (nee HyperNeWS (nee GoodNeWS))
>HyperLook was like HyperCard for NeWS, with PostScript graphics and scripting plus networking. Here are three unique and wacky examples that plug together to show what HyperNeWS was all about, and where we could go in the future!
https://en.wikipedia.org/wiki/Arthur_van_Hoff
https://en.wikipedia.org/wiki/Turing_Institute
The "perfect" X-Windows or Wayland window manger should be more like HyperLook was 30 years ago, and enable users to easily customize the shape and graphics and behavior of their window frames and contents with a fully featured built-in graphics editor, paste in custom buttons and widgets from a library into those window frames and client applications, or create and script your own, like pie menus and arbitrarily shaped tabs stuck onto any window edge -- not just the top edge, and even edit the properties and graphics of those widgets and tabs and menus, like how the clock face and hands looked.
How would you even begin to implement something like that with X-Windows or Wayland? (It would be a waste of time to do that for X-Windows at this point, but there's a reason nobody's bothered to try in 30 years.)
To be clear, though, the "hack" I use (Spectacle) isn't even actively developed anymore, but has worked flawlessly through a decade of macOS upgrades. Zero problems, zero glitches, even with multiple monitors it just works exactly how I expect.
If only non-"hack" Linux GUI software were this stable and perfectly-functioning over such a long time span.
I hear iTerm has sloppy focus between its own windows, but ... that's not enough, is it?
Another request (which I know is more difficult to implement) is to have a button in the top-bar that mutes the audio of that window.