Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Default window manager switched to CTWM in NetBSD-current (netbsd.org)
94 points by caution on Sept 28, 2020 | hide | past | favorite | 62 comments


I recently switched my daily workflow(coding, writing etc) to a "keyboard driven methodology" as much as possible ! So far (about 3 months) it's been going great.

I'm running an ASUS ZenBook with Ubuntu 20.04 and:

-i3 (Seems everyone starts here for tiling managers)

-lightdm( weird issues with the default GDM3 and dual screens)

-Switched from "Dual Monitors" (laptop + 27") to one monitor, the 27", my laptop lid/display is closed. This was interesting to me, since now that I make better use of workspace and their shortcuts, I don't need more physical-real-estate. Especially with my neck issue. Can't turn my head too much right (car accident), I call it my Zoolander-Thang.

-Employed "workspaces" (virtual desktops ?) as follows:

--ws1 (Terminals)

--ws2 (Browser)

--ws3 (Comms) Skype,Gmail,WhatsApp

--ws4 (Code) VSCode

--ws6 (Files) Still in GUI land here... should look spend more time with something like nnn or ranger.

--ws7 (Gimp)

--ws8 (Geany) Scratchpad and misc. editor stuff

-Learnt most of the 'useful' keyboard shortcuts for the commonly used programs. VSCode, i3, Gimp

Less mouse, more KB :)


I worried about whether the time investment would be worth it when I was getting into tiling window managers (using chunkwm on Mac), but it has paid dividends and was totally worth it. The thing that helped me over the hump was setting a background image with the key commands for a little while, until it felt like second nature. A couple of years in now the key commands I’m pressing seem subconscious, almost like when entering a typo and looking and down at the keyboard and becoming disoriented. It’s weird.


Nice life hack. Settings the background image to a cheetsheet of commands that you want to learn. Love it. Thank you for the suggestion. :)


Don't forget a keyboard-driven navigation plugin for your browser, like vimium. I have a desktop PC and use my mouse maybe once or twice a day, mostly for JS-heavy crap (which also probably presents enormous problems for the blind folk).


I try to use the keyboard for everything but unfortunately I haven't found a proper plugin for modern browsers. I tried to like tridactyl on Firefox but there were too many rough edges and it was unreliable (not really their fault, mainly limitations of what webextensions can do). As a result it was frustrating to have your keyboard shortcuts not work right ~25% of the time because you had the wrong part of the browser focused or something like that.


You could try Vim Vixen as an alternative: https://addons.mozilla.org/en-US/firefox/addon/vim-vixen/


vimium works okay-ish, or maybe I simply got used to it.

https://addons.mozilla.org/en-GB/firefox/addon/vimium-ff/

The main problem I have with it is it does not keep key combinations stable — if you press F → Esc → F → … (or Alt+F), it assigns different combinations for each link each time.


Ahhh ! Haven't even thought about the browser-shortcuts ! Lol I know F5 basically :/ Thanks will def look into this.


Try SDDM, i recently switched from lightdm on arch.

It is themeable using qml


Will have a look :) - Thank you.


Zoolander couldn’t turn left, not right


Good choice. CTWM and Sawfish are two of the best and more configurable window managers there are.

Unfortunately I had to give up on both years ago when they got unmaintained on Debian and not even compiling them from source would make them avoid visual glitches that made them unusable (especially after running Firefox (!)).

Now I use KDE (also quite configurable, at least keyboard-wise) and my life is a little simpler in some ways and my experience a little more annoying in others.


I agree, and a while ago I did a memory usage of all the Window Managers I could find. CTWM used less memory then all the others except for icewm.

But it is far more configurable then icewm, even approaching FVWM2, but with much less memory.

And I still use it on my Slackware System


try out fvwm2, it is pretty awesome!


Apparently fvwm3 has been released: https://github.com/fvwmorg/fvwm3


I remember bacon in 2005 or so running openbox/black box/etc. on a $1400 laptop to make sure I squeezed all the performance out of it. Ironically, over the years my requirements for a graphical UI to do things on my laptop have actually diminished (my file management is now mostly done via the command line, etc. while my care for keeping my window manager to less than 300KB of memory has completely gone away.


It would always annoy me how I had such a beautiful, slim, and minimalist graphical UNIX system set up, but then some program would come in and load several megabytes of images it wasn't actually displaying into the X server. Megabytes matter a little less on my current 32go machine than when I had 32mo.


>"...bacon in..."

Typing this on an iPhone or Mac ? :)


> XEyes

Ah yes, the most important app. Definitely deserves a top 5 spot in the menu!


The only use I've ever had for XEyes is, ironically, under Wayland. I use it to see quickly which apps are running natively as Wayland apps, and which are using XWayland. The eyes don't follow the mouse when you hover over a native Wayland app, but they do for XWayland apps.


There is a configuration option for Sway that will put information into the title bar to tell you if the window is XWayland or pure Wayland. But I forgot the exact option. It was mentioned in the Sway documentation.


It's actually been a while since I've used Wayland, but that's good to know.

My current mix of OSes is OpenBSD (cwm on X11) for coding, iPadOS for casual consumption and note-taking, FreeBSD on a home server, macOS for work, and Windows/Nintendo Switch for gaming.


I figured out a similar sort of thing using xprop actually, but that's way funnier.


That's what you get when the people configuring the thing are people who will never use it :-). (in this case the right click menu)


Who's using NetBSD as a daily driver, then? What's the experience like?


I put it on a Pentium 90 just last week. I got 1024x768, it was pretty nice to see some computer from 1994 running current software.

I had a usb pci card in there and it just worked. I thought surely some nuanced part of the hardware will prevent a 256GB usb stick from just working. Handled it fine. Still pretty impressed.

The only real dog was ssh setup because the entropy bits were hard to come by.

It was all fun until one of my caps blew on the thing. I haven't turned it on since.

Eventually I plan to make it publicly accessible in some way along with a 386 I have.

I think it'd be hilarious

In 2002 or so I had an SE/30 running netbsd. I had I think 64 MB of memory, and maybe 20 GB storage via external SCSI and an Ethernet add on card. I also had a scsi cdrom hooked up. At the time SCSI hardware was literally worthless and I picked up all this stuff lying next to dumpsters. This machine would probably fetch $1500 today. Kinda funny.

Then again, an equivalent vintage machine, say from 2007 (core 2 duo with DDR1) would be equivalently worthless today. A regret of not hoarding more can't be healthy

Anyway, compiled Mozilla for it. When it started up you could see the elements draw on the screen in human time. Pretty fun. I remember loading slashdot on its tiny black and white screen.

I remember who I gave it to when I moved, I wonder if he still has it


Did you have to add entropy sources? Or just wait a while?


Just wait a while. The entropy conclusion is inferred here. The i/o was low, the cpu was low and it was generating keys and took about 2 minutes.

This entropy claim be a fiction, I didn't step through the code. It was induced.

Same thing happened earlier this year on a vax running simh on a fx-6300. Took about 15 minutes. I'm putting a 3970 together (although the 10k would probably be better for single threaded simh) but I intend to finish a project on emulated vax netbsd after it's up.

You think "forget it, telnet is fine" but then realize how much more ssh is than just log in. It's almost like an entire networking layer, there's so many nice tools and conveniences. Really indispensable


I do. If you are a few years behind the latest GPU/wifi then there's a good chance your hardware will just work.

It takes longer than usual to get a comfortable setup, but once you do it once it's very easy to keep the same for years/decades unchanged.

There's not much proprietary software, and the way to do things is usually the bare bones one. If you want to run linux virtualized, you can do it using QEMU+NVMM, but there won't be a fancy GUI like VirtualBox. You might need to change some boot parameters too.

People often run it on arm64, which has unusually good hardware support (it might have support for things faster than linux mainline kernel).


> If you are a few years behind the latest GPU/wifi then there's a good chance your hardware will just work.

This doesn't quite mesh with the slogan "of course it runs NetBSD"...


I always thought that referred to how you can get a build of NetBSD running on a given cpu architecture. Might be a tad unfair to apply it to getting hardware accelerated rendering on bleeding edge graphics hardware and such.


yes it does.

mainstream os's usually deprecate _OLD_ hardware much faster.


It has been many years since I used NetBSD as a daily driver, but it was (and I trust it stills is) an incredible operating system.

That said, there is a major drawback in a modern context. A lot of modern software assumes a mainstream Linux system. While the ports collection will handle the patches and dependencies, much of the lean, cohesive, and traditional feel of NetBSD disappears as soon as you start pulling in those applications (e.g. an up-to-date web browser). Users of mainstream Linux distributions will also find that there are a lot of skills to relearn with respect to system management, or at least recall from earlier days.


Latest Firefox builds fine on NetBSD without things like PulseAudio and D-Bus, it still feels like a traditional application to me.


> there is a major drawback in a modern context

have been using it as a daily driver for a few years around 2005 and concur that there is a integration moat with software that is intended for linux (modern or not) and i guess systemd made that problem worse.

the fact that i runs most linuxish software while beeing not a linux is usefull thou and, if one is inclined to, can learn a lot about systems engineering.


I remember trying that back in 2008 or so.

Awesome system, but the lack of hardware support really hurt back at the time.

I particularly liked the fact that OS-provided packages and user-istalled packages were two distinct and separate things, thanks to the pkgsrc black magic. It allowed for things like upgrading the underlying OS without touching the programs installed and vice versa.

I tried creating a similar frankenstein system by using pkgsrc on a mostly base install of Slackware but I didn't go very far (tbh, I was quite junior at the time). It looked like a neat idea at the time though.


I do, using it to type this.

It runs almost everything that I would want to use, the only extra application that I need is a customized version of the Eclipse IDE.


I use it daily with Mate DE and sometimes switching to Xfce4. Have them both installed :)


On what hardware?



I’s be interested in hearing more.


> For more than 20 years, NetBSD has shipped X11 with the "classic" default window manager of twm. However, it's been showing its age for a long time now.

It's been showing its age 20 years ago too.


had to chuckle but yea, 20 years qualifies as "a long time" i guess.


twm dates to roughly 1987 -- it was already pretty old in 2000, 20 years ago.


I used ctwm between 1998 and 2008 before switching to xmonad.

It's still a great choice.


Tvtwm worked fine for me. Thinkpad x30, grid of 4x3 panes of visible state with screen size jumps between positioning. Ctwm looks suitably small.

Had I gone back, I do think tiling is where I would go. My last work purchased device is an osx. What comes next isn't clear yet, 3 years to go.


you'll be missed twm!


AIUI it uses Xlib. Not Xcb.

What a poor choice.


Well it was based on TWM.


Yes, but my point was that netbsd had the chance to switch to something Xcb based.

And instead, they switched to yet another Xlib-based wm.


What does it matter? And would an Xcb-based window manager perform well on a 68020 with only a few megabytes of RAM and a 1-bit display?


Xcb is lighter. It requires less message bouncing back and forth. It is also simpler, and should yield less bugs.

Xlib is terrible and should be avoided whether possible[0].

Everything else being equal, Xcb should be faster.

This is true on current hardware, or on an Amiga 1200 with a 68030 accelboard like the one I have right next to me.

The difference is actually dramatic[1].

[0]: https://www.remlab.net/op/xlib.shtml

[1]: https://www.x.org/wiki/guide/xlib-and-xcb/


What's the TL;DR breakdown of who the target audiences are for FreeBSD, NetBSD, and OpenBSD?


There isn't one, at least not one that isn't superficial and wrong, as I pointed out at https://news.ycombinator.com/item?id=13948337 and https://news.ycombinator.com/item?id=17586058 .


FreeBSD: Created by people who run OS X on their computers for Sony and Apple.

NetBSD: Created and run by people on a huge variety of computers, big in Japan.

OpenBSD: Created by its own users, fork of NetBSD, run by everybody who truly cares about security and correctness.


Good rundown. Sent from my Arch Linux system.

edit: I have other systems. I agree with OpenBSD.


The thing with OpenBSD is that it's probably the most old-school even including its parent, NetBSD. Even though OpenBSD is a research OS, and has modern features often before any other OS, the way you administer and maintain it is much more old-school.

One great example is wifi, you create one config file in /etc/ for each interface, and then decide how you want it to be handled. To control wifi, you use ifconfig as you would any other interface. Why not just treat it as an additional interface and make it work with all the normal Unix type utilities and workflow?

This is correctness.


FreeBSD - You want to run an alternative to Linux

OpenBSD - You care about security

NetBSD - You want to hack on BSD


Hmmh? I thought NetBSD was the legacy/retro computing crowd. They still support (at least as 2nd tier architecture) SUN 2 with MC68K, which are more than 30 years old now. I don't quite understand the motivation for that, I must admit. If I would be curating museum machines, wouldn't I want the original software with it? You can't run modern software in a meaningful way on those ancient, quite limited machines, which have less RAM than today's CPUs cache.


NetBSD is a wonderful OS for embedded applications. Having support for a fully static port (the Sun2 port) and for old, generally slow architectures (m68k, VAX) means performance regressions don't go unnoticed, for starters.

I run NetBSD on a system with 24 megs of memory. I don't think this is possible with modern GNU/Linux - one would need an older kernel and something other than systemd, I think.


Don't forget Dragonfly BSD.

"I am on x86-64 and I want performance".


I switched a couple *nix machines I had to ctwm a while back. Its a neat manager if you want to go for a "retro" twm look but want a few more features Config is mostly like twm but more options.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: