kterm + $BJI;f(Bpatch $B5;=Q>pJs(B
($BJQ$JF0:n$,5/$-$?;~$d!"6=L#$,$"$k?M$@$1FI$s$G2<$5$$(B)


  $B$3$N%P!<%8%g%s$N(B kterm $BJI;f(B patch $B$O!"$*$*$^$+$K0J2<$N5!G=$r<B8=$7$F$$$^$9!#(B

  (1)kterm $B$KJI;f$rE=$k(B
  (2)$BA*BrHO0O$J$I$NH?E>I=<($N;~$KJI;f$rE=$k(B
  (3)kterm $B$NJI;f$G(B root window $B$N3($rF)2a$5$;$k(B
  (4)root window $B$N3($rF)2a$7$D$D!"$=$N3($NL@$k$5$rJQ$($k(B

  $B$3$NJ,$1J}$O!"$=$l$>$l$N5!G=$,$[$\JL!9$N<BAu$G<B8=$5$l$F$$$k$H$$$&J,N`$G$9!#(B
$B$H$$$&$3$H$G$=$l$>$l$K$D$$$F$b$&$A$g$C$HFM$C9~$s$G@bL@$7$F$_$^$9!#(B


(1) kterm $B$KJI;f$rE=$k(B

  $B$3$l$OA4$F$N(B core $B$H$J$k5!G=$G$9!#$3$l$,L5$$$H2?$b;O$^$j$^$;$s!#(B
$B<B:]$K$O!"(Bkterm $B$N(B Window $B$K(B XSetWindowBackgroundPixmap(3X11) $B$rMQ$$$F(B
$BJI;f$r@_Dj$7!"(Bkterm $B$GJ8;z$rIA2h$9$k;~$K(B XClearArea(3X11) $B$GNN0h$r%/%j%"$7$F$+$i!"(B
XDrawString[16](3X11) $B$GJ8;z$rIA2h$7$F$$$^$9!#(B

(2)$BA*BrHO0O$J$I$NH?E>I=<($N;~$KJI;f$rE=$k(B

  $B$3$l$O(B (1) $B$NJ}K!$H$O0c$C$F!"(BXSetWindowBackgroundPixmap(3X11) $B$,;H$($J$$$N$G!"(B
$B<+A0$GGX7JMQ$N(B Pixmap $B$rMQ0U$7!"$=$l$r;H$C$F(B $BH?E>J8;z$rI=<($9$k;~$K(B
XCopyArea(3X11) $B$GNN0h$r%/%j%"$7!"(BXDrawString[16](3X11) $B$GJ8;z$rIA2h$7$F$$$^$9!#(B
$B$H$$$&$3$H$G$3$A$i$O(B (1) $B$h$j$bCY$/$J$k798~$K$"$j$^$9!#(B
($BF@$K(B Accell $B$N8z$/(B X server $B$@$H82Cx$K$J$k$H;W$$$^$9(B)

(3)kterm $B$NJI;f$G(B root window $B$N3($rF)2a$5$;$k(B

  (1) $B$NJ}K!$N3HD%$G$9!#(B(1) $B$G$O!"<+A0$GMQ0U$7$?(B Pixmap $B$r(B
XSetWindowBackgroundPixmap(3X11) $B$GJI;f$K@_Dj$7$F$$$^$7$?$,!"(B
$B$3$A$i$G$O(B Pixmap $B$N;XDj$K(B ParentRelative $B$rMQ$$!"?F(Bwindow $B$NGX7J$r7Q>5$7!"I=<($7$^$9!#(B
$B8e$O!"(B(1) $B$NJ}K!$HF1$8$/!"(BXClearArea(3X11) $B$7$F!"(BXDrawString[16](3X11) $B$9$k$@$1$G$9!#(B
$B$?$@!"$3$N;~$KLdBj$H$J$k$N$,(B WindowManager $B$NB8:_$G$9!#(B
WindowManager $B$,B8:_$9$k$H!"(Bkterm $B$N(B $B?F(Bwindow $B$O(B root window $B$G$O$J$/!"(B
WindowManager $B$N(B window $B$K$J$k$N$G$9$,!"$3$$$D$i$O;v$"$k$4$H$K(B
ParentRelative $BB0@-$,L5$/$J$j$^$9!#$=$3$G!"$=$N$h$&$J;v$,5/$3$j$=$&$J;~$K$O!"(B
kterm$BB&(B $B$+$i(B ParentRelative $B$K:F@_Dj$7$F$d$kI,MW$,$"$j$^$9!#(B
$B$h$C$F!"KM$,CN$i$J$$L$CN$N(B WindowManager $B$G$O!"@5>o$KF0:n$7$J$$2DG=@-$,$"$j$^$9!#(B
$B3'MM$N%P%0%l%]!<%H$r4|BT$7$^$9!#(B

(4)root window $B$N3($rF)2a$7$D$D!"$=$N3($NL@$k$5$rJQ$($k(B

  $B$3$l$O!"(B(1) $B$NJ}K!$H(B (3) $B$NJ}K!$r:.$<$?$h$&$JJ*$K$J$j$^$9!#(B
$B$H$$$&$N$b!"(B(3) $B$N$h$&$JJ}K!$G0lEY(B root window $B$N3($rI=<($5$;!"(B
$B$=$l$r(B XGetImage(3X11) $B<hF@$7$F2C9)$7!"(BPixmap $B$H$7$F(B XSetWindowBackgroundPixmap(3X11)
$B$GJI;f$K@_Dj$7!"$=$N8e(B (1) $B$NJ}K!$GJI;f$H$7$F;HMQ$9$k$+$i$G$9!#(B
$B$7$+$7!"2hLL%-%c%W%A%c$9$k;~$,LdBj$K$J$j$^$9!#(B
$B!VB>$N(B Window $B$,=E$J$C$F$$$k$H$=$l$r$b%-%c%W%A%c$7$F$7$^$&!W$N$G$9!#(B
$B$=$3$G!"8=:_$N<BAu$G$O!"0J2<$N$h$&$JJ}K!$rMQ$$$FF($2$F$$$^$9!#(B

  $B$^$:!"(Boverride_redirect $B$r(B True $B$K$7$?(B
Window Manager $B$N@)8f2<$KF~$i$J$$(B window $B$r:n$j$^$9!#(B
$B$=$7$F!"2hLL$r%@%s%W$9$k;~$K!"(B

    XGrabServer() /* $BB>$N(B Window $B$,<YKb$9$k$+$b$7$l$J$$$+$i(B */
    XMoveResizeWindow() /* $B%@%s%W$9$kBg$-$5$K9g$o$;$k(B */
    XMapWindow(), XRaiseWindow()
    XSync()
    XGetImage()
    XUnmapWindow(), XUngrabServer()

  $B$r!">e$+$i2<$K8~$1$F<B9T$7$^$9!#(B
$B$J$N$G!"(BXGrabServer() $B$r<B9T$7$?;~$K<~$j$N(B Window $B$NF0:n$,;_$^$j!"(B
$B$_$?$aHs>o$K=E$/$J$j$^$9!#(B
($B<B:](B local $B$J(B X server $B$G!"$+$J$j9bB.%^%7%s$G$J$$$H?I$$$G$7$g$&(B)
  $B$?$@$7!"2hLL$r%-%c%W%A%c$9$k;~$KMQ$$$k(B window $B$O!"(B
WindowManager $B$N@)8f2<$KF~$i$J$$(B window $B$J$N$G!"(B(3) $B$N;~$N$h$&$J(B
WindowManager $B$K$h$C$F$OF0:n$,$*$+$7$/$J$k$H$$$C$?4m81@-$,$+$J$j8:$j$^$9!#(B
