I've switched back and forth over the years. Sometimes 1 laptop, sometimes a desktop and a laptop. It's just easier to only have one computer. Even with cloud, synching, dropbox, etc. Having a single machine is just easier. You can put it to sleep, wake it up, and your own compiled services are still running.
The solution to keyboard / mouse / monitors / webcam / mic / speakers, is a powered USB-C hub. One plug, and you're at a desktop. This wasn't practical on Macs until the M1. With an M1 Air I did tons of work with no slowdowns for two years. It slowed down once or twice so now I'm on a Pro. PS. you can move between rooms very easily. And travel.
Edit: You're right about gaming. Mac fails at this, desktop or no. I played WoW and Stardew on my i7 Mini with an eGPU, but Apple Silicon doesn't have eGPUs, and no good games work on it. This also goes for VR.
My company gives me a hub to put on my desk at home. I plug 1 USB C cable to my work laptop and it charges the laptop, connects to my home LAN, connects to my monitors, webcam, mic, and it would connect to my keyboard & mouse but those are wireless. When I want a change of scenery I can just unplug and sit anywhere. I don't run anything locally that requires the intensity of a desktop.
When I go to the office I just bring my laptop and plug it into a hub at a hot desk. Then I have external monitors and all my processes just as I was running them earlier.
If I need a mouse and multiple screens I can't feel productive, that usually means the software doesn't have enough support for keyboard shortcuts and window management has too much friction.
> I don't know why developers are so infatuated with laptops
I need a laptop now and then either way, and having two computers means double the cost and more work to keep everything between them in sync. And I switched to a console for gaming, Windows 10 updates pissed me off enough that I'll never touch a Microsoft OS again.
I use it with a couple tools like Rectangle which make it usable enough for me. Half the time I'm managing "windows" in Vim and tabs in the browser, and in those the OS doesn't really matter.
The thing that annoys me most is that there's no global shortcut for new terminal windows. It's possible with some weird hacks but never really reliable or fast.
I found it through the yabai window manager - but I'm starting to think I might be better off with something less ambitious - as macos apis are restricted and yabai needs a lot of privileges to work with screen/desktops :'(
But skhd is very simple and powerful - it can run commands and also insert text (I rebind some keys for brackets and tilde which are annoying on Mac intl layouts).
Eg:
# open terminal, blazingly fast compared to iTerm/Hyper
cmd - return : /Applications/kitty.app/Contents/MacOS/kitty --single-instance -d ~
alt - k : skhd --text "~"
My mobile setup includes an Apple BT keyboard and mouse, a Roost laptop stand, an iPad as a second monitor and a USB C powered portable display - video and power from one cord.
As of tomorrow, my wife and I will officially be “digital nomads” flying around the country staying in hotels. I perfected my mobile setup over a year ago.
I visit my parents semi often and work from there.
I would guess it’s because developers are really finicky about the software side of their setup, and a laptop lets them have that wherever they are. With a desktop you need to keep multiple devices in sync, which is not yet quite as seamless as it should be.
But seriously, I need a full-sized keyboard, a mouse, and at least 2 monitors to feel productive.
Yes, I realize you can probably hook those up to a laptop with a bunch of adapters and hubs too, but I also use my machines to game, so...