2025-04-18
This commit is contained in:
parent
12bd97447b
commit
f14330ee0f
@ -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
|
/blah/2025-04-05.html
|
||||||
|
|
||||||
My habitual "the story so far" was long delayed because I didn't remember what
|
My habitual "the story so far" was long delayed because I didn't remember what
|
||||||
|
Loading…
Reference in New Issue
Block a user