SDLは、権限のないX11サーバーでは機能しません。

SDLは、権限のないX11サーバーでは機能しません。

root以外のユーザーとしてXサーバーをシステムサービスとして起動しました。

    systemd.services."autovt@tty1".enable = lib.mkForce false;
    systemd.services = {
      startx = {
        enable = true;
        restartIfChanged = true;
        description = "startx";
        wantedBy = [ "multi-user.target" ];
        serviceConfig = {
          User = config.primaryUser.name;
          WorkingDirectory = "~";
          PAMName = "login";
          TTYPath = "/dev/tty1";
          UtmpIdentifier = "tty1";
          UtmpMode = "user";
          UnsetEnvirnment = "TERM";
          ExecStart = "${pkgs.xorg.xinit}/bin/startx -- -keeptty -verbose 3 -depth 16";
          StandardInput = "tty";
          StandardOutput = "journal";
        };
      };
    };

権限がないため、SDLアプリケーションが起動しないようです。

$ dosbox
DOSBox version 0.74-3
Copyright 2002-2019 DOSBox Team, published under GNU GPL.
---
CONFIG:Loading primary settings from config file /user/.dosbox/dosbox-0.74-3.conf
X Error of failed request:  BadAlloc (insufficient resources for operation)
  Major opcode of failed request:  149 ()
  Minor opcode of failed request:  7
  Serial number of failed request:  253
  Current serial number in output stream:  254

$ qemu-system-x86_64 -display sdl
X Error of failed request:  BadAlloc (insufficient resources for operation)
  Major opcode of failed request:  149 ()
  Minor opcode of failed request:  7
  Serial number of failed request:  168
  Current serial number in output stream:  169

ルートで新しいXepyrセッションを開始すると、すべてがうまく機能します。

ベストアンサー1

問題は、このパラメータがあることです。

-depth 16

アンインストール後にSDLアプリケーションを実行できます。

おすすめ記事