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