I am currently (once again) in the process of trying out different window managers to see which one fits my needs the most. I used dwm from 2020 until mid 2022, where I then switched to i3wm. I also tried out ratpoison for a couple of weeks. Right now I'm using bspwm. I like it, but have some complaints. It's very easy to configure and use and it only uses about 2MB of RAM, which probably makes it one of my top picks for low-end machines. The problem I have with it is after using ratpoison, I don't like how every other window manager arranges windows. I don't like the concept of workspaces and I don't want to use an external program like rofi or a dmenu script to switch between windows. Ratpoison makes this extremely easy by using screens and frames instead of workspaces. I don't need to worry about which workspace or screen or even which monitor a window is in, I can simply switch between them and don't have to place them in another workspace or monitor; it just works. This is the same problem I have with i3wm and dwm, although with i3wm you still have containers. With dwm and bspwm it's just either fullscreen one window or have them all in splits. I might try out herbstluftwm, because from what I've seen it also has the ability to split the screen into different frames. Honestly, I might go back to ratpoison, because out of all window managers, this is the one that fits my workflow the most. The ONLY thing that I'm missing is that some extended window manager hints like _NET_ACTIVE_WINDOW are not supported. This means that using a TUI file manager like nnn with the plugin preview-tabbed, the tabbed window always steals focus whenever I hover over a new file. I tried switching to preview-tui, but it always stops working after a couple seconds. I tried to patch the ewmh in myself by looking at sdorfehs - the spiritual successor to ratpoison - but it never worked. I am still debating whether I even need this preview functionality. I only use it a couple times a month and could do everything I need to just with sxiv instead.