0

xcb ライブラリを使用して基本的なウィンドウ マネージャーを実装しようとしています。

X サーバーに接続していくつかのイベントを取得できましたが、アプリケーションを起動して現在の X セッション内に表示する方法がわかりません。

xcb チュートリアルに従おうとしています: http://xcb.freedesktop.org/tutorial/

基本的に、セッションが開始されたら、「windowmanager」を使用して、アプリケーションを起動したい場合は、それをフォークしてアプリケーションを起動するだけでよいと思いました (そしておそらく間違っています)。たとえば、次のようになります。

int child = fork();
if(child==0) {
    printf("Child");
    execve("/usr/bin/xterm", NULL, NULL);
}

しかし、うまくいかなかったようです。

上に貼り付けたチュートリアルのコードを変更しようとしているだけなので、表示するコードはあまりありません(無限ループを追加し、他にいくつかのものを追加しました)。

では、xterm、pcmanfm などの x アプリケーションを起動して、現在の x セッションで表示するにはどうすればよいでしょうか?

また、新しいウィンドウ内にアプリケーションを描画するにはどうすればよいですか?

最後の質問: X チュートリアルの hello world ウィンドウの例をコピーして貼り付けようとしましたが、ウィンドウが読み込まれないようです。コードはこちら: http://www.x.org/releases/X11R7.7/doc/libxcb/tutorial/index.html#helloworld

4

1 に答える 1