1a73027baSmrgXCOMM!SHELL_CMD
2ac57ed83SmrgXHASH $NetBSD: xinitrc.cpp,v 1.23 2025/03/09 08:09:32 mrg Exp $
3ac57ed83Smrg
4ac57ed83Smrgxrdb=XRDB
5ac57ed83Smrgxinitdir=XINITDIR
6ac57ed83Smrgxclock=XCLOCK
7ac57ed83Smrgxterm=XTERM
8ac57ed83Smrguxterm=UXTERM
9ac57ed83Smrgtwm=TWM
10ac57ed83Smrgxmodmap=XMODMAP
11ac57ed83Smrgctwm=CTWM
12ac57ed83Smrgxsetroot=XSETROOT
13a73027baSmrg
14a73027baSmrguserresources=$HOME/.Xresources
15a73027baSmrgusermodmap=$HOME/.Xmodmap
16ac57ed83Smrgsysresources=$xinitdir/.Xresources
17ac57ed83Smrgsysmodmap=$xinitdir/.Xmodmap
18a73027baSmrg
19a73027baSmrgXCOMM merge in defaults and keymaps
20a73027baSmrg
21a73027baSmrgif [ -f $sysresources ]; then
22a73027baSmrg    if [ -x /usr/bin/cpp ] ; then
23ac57ed83Smrg        $xrdb -merge $sysresources
24a73027baSmrg    else
25ac57ed83Smrg        $xrdb -nocpp -merge $sysresources
26a73027baSmrg    fi
27a73027baSmrgfi
28a73027baSmrg
29a73027baSmrgif [ -f $sysmodmap ]; then
30ac57ed83Smrg    $xmodmap $sysmodmap
31a73027baSmrgfi
32a73027baSmrg
33a0a5c96cSniafontsize=$(/usr/X11R7/libexec/ctwm_font_size)
34a0a5c96cSniaif ! [ -n "$fontsize" ]; then
35a0a5c96cSnia	fontsize=16
36a0a5c96cSniafi
37a0a5c96cSnia
38a73027baSmrgif [ -f "$userresources" ]; then
39a73027baSmrg    if [ -x /usr/bin/cpp ] ; then
40ac57ed83Smrg        $xrdb -merge "$userresources"
41a73027baSmrg    else
42ac57ed83Smrg        $xrdb -nocpp -merge "$userresources"
43a73027baSmrg    fi
44b205cadfSniaelse
45ac57ed83Smrg    $xrdb -merge - <<EOF
4623117e9aSuweXHASH ifdef COLOR
47b205cadfSnia*customization: -color
4823117e9aSuweXHASH endif
49b205cadfSnia*VT100.foreground: grey90
50b205cadfSnia*VT100.background: black
5126fe6ebdSnia*SimpleMenu*font:	-*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
5226fe6ebdSnia*SimpleMenu*menuLabel.font:	-*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
53a0a5c96cSniaBitmap*font:    -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
54a0a5c96cSniaEditres*font:   -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
55a0a5c96cSniaViewres*font:   -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
56a0a5c96cSniaXCalc*font:     -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
57a0a5c96cSniaXClipboard*font:        -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
58a0a5c96cSniaXConsole*font:  -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
59a0a5c96cSniaXFontSel*font:  -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
60a0a5c96cSniaXLoad*font:     -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
61a0a5c96cSniaXedit*font:     -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
62a0a5c96cSniaXfd*font:       -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
63a0a5c96cSniaXgc*font:       -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
64a0a5c96cSniaXmag*font:      -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
65a0a5c96cSniaXmessage*font:  -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
66a0a5c96cSniaXmh*font:       -*-spleen-medium-r-*-*-$fontsize-*-*-*-*-*-*-*
67b205cadfSniaEOF
68070b8b84Sniaif [ $fontsize -gt 18 ]; then
69539dc72fSniaXCOMM
70539dc72fSniaXCOMM For HiDPI displays, the font size returned by ctwm_font_size will
71539dc72fSniaXCOMM generally be a multiple of 16.  96 is our standard DPI, and many
72539dc72fSniaXCOMM applications want to scale by integer increments or don't handle
73539dc72fSniaXCOMM non-integer scaling gracefully, so we want to scale by multiples
74539dc72fSniaXCOMM of 96.
75539dc72fSniaXCOMM
76070b8b84Snia    XRDB -merge - <<EOF
77539dc72fSniaXft.dpi: $((96 * (fontsize / 16)))
78a0609b14Snia*VT100.faceName: xft:Monospace:pixelsize=$fontsize
79070b8b84SniaEOF
80070b8b84Sniaelif [ $fontsize -gt 13 ]; then
81539dc72fSniaXCOMM
82539dc72fSniaXCOMM For non-HiDPI cases, use the standard misc-fixed font in xterm
83539dc72fSniaXCOMM since it has bold variants, and seems to have caused fewer
84539dc72fSniaXCOMM complaints than alternatives in the community so far.
85539dc72fSniaXCOMM
86539dc72fSniaXCOMM Using bitmap instead of TrueType fonts offers us some minor
87539dc72fSniaXCOMM performance gains on very slow machines.
88539dc72fSniaXCOMM
89070b8b84Snia    XRDB -merge - <<EOF
90070b8b84Snia*VT100.font: -misc-fixed-medium-r-normal-*-18-*-*-*-*-*-iso10646-1
91070b8b84Snia*VT100.fontBold: -misc-fixed-bold-r-normal-*-18-*-*-*-*-*-iso10646-1
92070b8b84Snia*VT100.utf8Fonts.font: -misc-fixed-medium-r-normal-*-18-*-*-*-*-*-iso10646-1
93070b8b84Snia*VT100.utf8Fonts.fontBold: -misc-fixed-bold-r-normal-*-18-*-*-*-*-*-iso10646-1
94070b8b84SniaEOF
95070b8b84Sniaelse
96070b8b84Snia    XRDB -merge - <<EOF
97070b8b84Snia*VT100.font: -misc-fixed-medium-r-normal-*-13-*-*-*-*-*-iso10646-1
98070b8b84Snia*VT100.fontBold: -misc-fixed-bold-r-normal-*-13-*-*-*-*-*-iso10646-1
99070b8b84Snia*VT100.utf8Fonts.font: -misc-fixed-medium-r-normal-*-13-*-*-*-*-*-iso10646-1
100070b8b84Snia*VT100.utf8Fonts.fontBold: -misc-fixed-bold-r-normal-*-13-*-*-*-*-*-iso10646-1
101070b8b84SniaEOF
102070b8b84Sniafi
103a73027baSmrgfi
104a73027baSmrg
105a73027baSmrgif [ -f "$usermodmap" ]; then
106ac57ed83Smrg    $xmodmap "$usermodmap"
107a73027baSmrgfi
108a73027baSmrg
109a73027baSmrgXCOMM start some nice programs
110a73027baSmrg
111ac57ed83Smrgif [ -d $xinitdir/xinitrc.d ] ; then
112ac57ed83Smrg	for f in "$xinitdir/xinitrc.d"/?*.sh ; do
113a73027baSmrg		[ -x "$f" ] && . "$f"
114a73027baSmrg	done
115a73027baSmrg	unset f
116a73027baSmrgfi
117a73027baSmrg
118ac57ed83Smrg$xsetroot -cursor_name left_ptr
119ac57ed83Smrg$xsetroot -solid 'rgb:00/22/44'
120ac57ed83Smrg$xclock -digital -strftime '%a %Y-%m-%d %H:%M' \
12144a9cfa4Snia	-face "spleen:pixelsize=$fontsize" -g +0+0 &
122ac57ed83Smrg$uxterm &
123ac57ed83Smrgexec $ctwm -W
124