xmonad를 사용하여 로그인할 때 명령 실행

xmonad를 사용하여 로그인할 때 명령 실행

x가 시작될 때마다 실행하고 싶은 간단한 스크립트가 있습니다.

#! /bin/sh
/home/kevin/.dropbox-dist/dropboxd &

chmod 755를 실행하여 완전히 실행 가능합니다. 그럴 것이다. 아니요. 일하다.

스크립트를 .xsession으로 설정하면 특정 데스크탑(xmonad)을 선택하지 않는 한 디스플레이 관리자(SLiM 및 LightDM으로 테스트됨)가 반복적으로 로그인 정보를 묻습니다. .xsession 파일이 없으면 xmonad를 기본 세션으로 로드합니다. 그럼에도 불구하고 스크립트는 실행되지 않습니다.

나는 이 스크립트의 변형을 시도했다는 것을 언급해야 합니다. "exec xmonad" 문을 사용하거나 사용하지 않고 드롭박스 대신 바탕 화면 배경을 로드합니다. xmonad가 현재 나에게 가능한 유일한 세션이기 때문에 아직 세션 매개변수를 기반으로 한 switch-case 문을 시도하지 않았습니다.

나는 그것을 (exec 문 없이) .xprofile에 넣었고 /etc/X11/xinit/xinitrc에 내 사용자에게 su를 알리는 줄을 추가하고 스크립트를 실행한 다음 종료합니다. 또한 이를 .xinitrc로 만들고 모든 디스플레이 관리자를 제거한 다음 x를 시작해 보았습니다. 모든 줄이 주석 처리되거나 파일 자체가 삭제/이동될 때만 사라지는 오류가 발생합니다.

로그인 후 스크립트를 실행할 수 있고 실행되어 예상되는 모든 작업을 수행할 수 있기 때문에 스크립트 자체가 괜찮다는 것을 알고 있습니다.

나는 xmonad를 사용하여 나만의 Debian 8을 실행하고 있습니다. 내 시스템에는 다른 어떤 것도 설치되어 있지 않습니다.

답변1

xmonad를 시작하기 전에 실행하려는 명령을 넣을 수 있습니다 ~/.xmonad/xmonad-session-rc.

가 있으면 ~/.xsession그 작업은 전체 X 세션을 시작하는 것입니다. 스크립트가 반환되면 세션이 종료됩니다. 따라서 이 파일을 사용하려면 이 파일에서 xmonad를 시작해야 합니다.

#! /bin/sh
/home/kevin/.dropbox-dist/dropboxd &
exec xmonad

실행 하려면 .xsessionxmonad가 아닌 디스플레이 관리자에서 사용자 정의 세션을 선택해야 합니다.

~/.xinitrc~/.xsession종료할 때 와 유사하게 X 세션이 종료됩니다. 차이점은 ~.xsession방금 로그인한 디스플레이 관리자에서 실행되는 반면, 외부 X /xinitrc에서 시작된 X 세션에 대해 실행된다는 점입니다 .startx

아니면 할 수 있습니다xmonad에서 프로그램 실행startupHook, 그러나 xmonad가 다시 시작되면 다시 실행된다는 단점이 있습니다.

관련 정보