lightdmにxmonadを起動させる方法は?

lightdmにxmonadを起動させる方法は?

私はxmonadを使ってnixosを実行し、startxxserverを起動しました。しかし、私は挨拶する人を持つことにしました。

まずstartx、sddmを無効にして有効にしてみました。sddm

services.xserver {
  displayManager {
    startx.enable = false;
    sddm.enable = true;
  };
};

nixos( )を再構築しましたが、nixos-rebuild switchsddmが正常に動作しているようですが、パスワードを正しく入力すると何も起こりません。だから私は怠惰でsddmに専念していなかったので、問題を解決するのではなく、別のディスプレイマネージャに切り替えることを決めてlightdmに切り替えました。

services.xserver {
  displayManager {
    startx.enable = false;
    lightdm.enable = true;
  };
};

再構築中に同様のことが発生しました。 lightdm は正常に起動しましたが、ログインしようとすると「ログインに失敗しました」というメッセージが表示されました。だからログを確認してみました/var/log/lightdm/lightdm.log

ログがかなり長いため、ログイン後のオプションは次のとおりです。

[+15.51s] DEBUG: Authenticate result for user ww: Success
[+15.51s] DEBUG: User ww authorized
[+15.51s] DEBUG: Greeter requests default session
[+15.56s] DEBUG: Seat seat0: Failed to find session configuration default
[+15.56s] DEBUG: Seat seat0: Can't find session 'default'
[+31.69s] DEBUG: Seat seat0 changes active session to 
[+68.26s] DEBUG: Seat seat0 changes active session to 2
[+701.81s] DEBUG: Got signal 15 from process 1
[+701.81s] DEBUG: Caught Terminated signal, shutting down
[+701.81s] DEBUG: Stopping display manager
[+701.81s] DEBUG: Seat seat0: Stopping
[+701.81s] DEBUG: Seat seat0: Stopping display server
[+701.81s] DEBUG: Sending signal 15 to process 997
[+701.81s] DEBUG: Seat seat0: Stopping session
[+701.81s] DEBUG: Terminating login1 session c1
[+701.87s] DEBUG: Session pid=1043: Sending SIGTERM
[+701.87s] DEBUG: Seat seat0: Stopping session
[+701.87s] WARNING: Session pid=1061: Error writing to session: Broken pipe
[+701.87s] WARNING: Session pid=1061: Error writing to session: Broken pipe
[+701.87s] WARNING: Session pid=1061: Error writing to session: Broken pipe
[+701.87s] WARNING: Session pid=1061: Error writing to session: Broken pipe
[+701.87s] WARNING: Session pid=1061: Error writing to session: Broken pipe
[+701.87s] WARNING: Session pid=1061: Error writing to session: Broken pipe
[+701.87s] WARNING: Session pid=1061: Error writing to session: Broken pipe
[+701.87s] WARNING: Session pid=1061: Error writing to session: Broken pipe

したがって、「基本セッション」が見つからないようです。見回して/usr/share/sessions/xmonad.desktopコンテンツを作成しました。

[Desktop Entry]
Encoding=UTF-8
Name=xmonad
Comment=This session starts xmonad
Exec=/home/ww/.local/bin/xmonad
Type=Application

に基づいてxmonad FAQ。ファイルを参照するために、/usr/share/lightdm/lightdm.conf.d以下も作成しました。

[SeatDefaults]
user-session=xmonad

に基づいてUbuntu Wikiのlightdmページ

ただし、これは問題を解決しないか、再起動後にエラーログが有意に変更されることはありません。

lightdmがxmonadを正しく起動できるように、この間隔をどのように短縮できますか?現在何が起こっているのか、何が起こるのかを理解するのに概念的なエラーがあるようです。

答え1

私はLightDMでXMonadを使用します。私のConfiguration.nixの関連部分は次のとおりです。

  services.xserver = {
    enable = true;
    windowManager = {
      default = "xmonad";
      xmonad = {
        enable = true;
        enableContribAndExtras = true;
      };
    };
    # On nixos-unstable I needed to add this deprecated setting (not sure if still needed)
    desktopManager.default = "none";
  };

また、{X、Light、G}DMを介して開始されたセッションが同じプログラムを開始するように、.xsession私のシンボリックリンクをリンクしました。.xinitrc

ln -s .xinitrc .xsession

関連情報