diff --git a/homepage.content b/homepage.content index 061dc0a..1ec58e2 100755 --- a/homepage.content +++ b/homepage.content @@ -1050,6 +1050,92 @@ pre { /* DRY who? */ } +/blah/2025-04-18.html + +: X without the WM + +I use a netbook for /only/ SShing into this CM4 uConsole. The netbook runs +NetBSD/i386 and my usual behavior is something like + +sanichi$ ssh laika.lan + laika$ tmux + +which works well for me, except for fancy UTF-8 TUI programs, which look ugly, +because the NetBSD tty(4) supports ASCII only (as far as I know, though I did +check the manual). + +I don't want windows or decorations, I don't want clocks or status bars, I just +want tmux in a terminal window. I'm going to achieve this using xinit(1) (which +comes with the full NetBSD system) and xdotool(1). + +# pkgin install xdotool + +This command assumes the use of pkgsrc; adapt it to other package managers if +need be. I don't know much about modular-xorg so you may need to futz a bit to +find xinit(1). + +$ cd; vi .xinitrc + +And here's the entire .xinitrc: + +xdotool search --sync --class xterm windowsize 100% 100% & exec xterm + +Not bad for 80B, eh? Let's chart it out: + +xdotool ; xdotool(1) - command-line X11 automation tool + search ; Find a certain window. + --sync ; Wait until it's found. + --class xterm ; It calls itself "xterm". When you find it, + windowsize ; resize it. + 100% ; Make it fill the view horizontally. + 100% ; Make it fill the view vertically. + & ; Don't wait for this command to finish before + ; starting the next one. +exec ; Start this next program in the X server, and + ; when it finishes, close the X server. + xterm ; xterm(1) - terminal emulator for X + +I can exit X by either sending an EOF (that's ^D) from xterm(1) or, if it +freezes, switching to ttyE0 and sending a ^C to the running X server. + +I initially passed xterm(1) `-e tmux` to start tmux, but I've found I still +prefer to SSh into laika before starting tmux, so all my terminals are remote +(one for mail, one for writing, one for debugging, one for man pages). + +I did add `xrdb -load ~/.Xresources` before the xdotool(1)/xterm(1) line, so +xterm(1) would load with my preferred color scheme which I've already +configured (also see X(7)). I thought this might be automatic, but on here it's +not. + +I'm finishing this blah post on my netbook running NetBSD/i386 and an X11 +server, in which xterm(1) is running, in which ssh(1) is running, connected to +my uConsole across the room, on which tmux(1) is running, in which nvim(1) is +running. The UTF-8 is beautiful and bat(1) (a guilty pleasure of mine) looks +good. + +If I was going to use this computer for anything more than terminals, I'd just +use a window manager. I thought about using sxhkd(1) for this task but it +ultimately proved to be unnecessary. + +I added the following to my $ENV (see sh(1)): + +# Don't start X if I'm on a framebuffer kick or am in tmux(1) (or screen(1)). +if test -z "$NO_WM" && ! test "$TERM" = screen + then case "$0" in + -*) startx ;; # Do start X if I'm in a login shell + # (see bash(1)). + esac +fi + +Which seems to work well. If it failed dreadfully I could reboot and login as +root. + +I don't have much more to say. Don't be scared of X - in conjunction with +xinit(1) and startx(1) it's quite easy to use. Don't be scared of Wayland +either - it may not yet run well on NetBSD, but if you get a chance to try it, +you might really like it. + + /blah/2025-04-05.html My habitual "the story so far" was long delayed because I didn't remember what diff --git a/trinitystuff/nvim/init.vim b/trinitystuff/nvim/init.lua similarity index 100% rename from trinitystuff/nvim/init.vim rename to trinitystuff/nvim/init.lua