로그인 화면 전에 시작되는 스크립트를 어떻게 실행합니까?


17

터치 스크린을 보정하고 있었고 xinput_calibrator가 가장 좋은 도구라는 것을 알았습니다. 그래서 나는 그것을 사용했다. 그것은 두 가지 옵션 (하나는 작동하지 않음)이 있으므로 두 번째 옵션입니다. "X 세션으로 시작하는 스크립트에서"이 명령을 실행해야한다고 말합니다.

xinput set-int-prop "3M 3M USB Touchscreen - EX II" "Evdev Axis Calibration" 32 14410 2146 14574 2115

그래서 나는 ~/.xinitrc, ~/.xsession그리고 시도했지만 ~/.xsessionrc모두 존재하지 않았습니다. 그래서 나는 그것들을 만들었고 정확한 내용은이 명령이었습니다. 처음 두 파일은 로그인에 실패했습니다 (로그인 후 로그인 화면으로 돌아갑니다).

마지막 파일로, 캘리브레이션은 작동했지만 로그인 후에 만 ​​가능했습니다 ...

로그인 대화 상자가 나타나기 전에 해당 명령을 실행 해야 합니다. 나는이 명령을 /etc/X11/xinit/xinitrc결과없이 끝에 추가하는 것을 생각했습니다 (아무것도 변경되지 않았습니다). 또한 /etc/X11/Xsession.d/40x11-common_xsessionrc(일부 파일을 검사 한 후) 끝에 추가하려고 했지만 결과는에 추가하는 것과 정확히 동일합니다 ~/.xsessionrc.

로그인 화면이 표시되기 전에 (창 관리자가 시작되기 전 또는 X 세션이 시작되기 전에)이 명령을 실행하려면 어떻게해야합니까?

(중요한 경우 기본 창 관리자로 Kubuntu를 실행하고 있습니다)

업데이트 Kubuntu를 사용하면서 디스플레이 관리자는 kdm입니다. 수락 된 대답에서 알 수 있듯이 파일을 편집했으며 여기에/etc/kde4/kdm/Xsetup 언급 된 것처럼 기본적으로있는 명령 앞에 명령을 추가했습니다. 그리고 그것은 매력처럼 작동합니다 :)


4
어떤 로그인 관리자를 사용하고 있습니까? 당신은 아마 사용할 수 있습니다 gdm3 /etc/gdm3/Init/display또는 /etc/gdm3/Init/Default- manpages.debian.net/cgi-bin/...
울리히 DANGEL

이봐, 좋은 물건. 여기에 질문을 게시했습니다 [ unix.stackexchange.com/questions/172007/… 이 Q & A와 중복 될 수있는 것으로 표시되었습니다. 그러나 사람들은 그것이 복제품이라고 확신하지 않습니다. Pl도 내 질문을보고 도와주세요 :)
kaiwan

답변:


13

. 당신이 변화를 시도 모든 파일은 로그인 한 후에 또한 읽을 수있다 ~/.xinitrc~/.xsession전체 명령입니다 그 세션에서 실행; ~/.xinitrc당신이 실행하는 경우 읽기 xinit또는 startx텍스트 모드 프롬프트에서, 그리고 ~/.xsession읽기 당신은 "사용자 세션"을 실행하면 프롬프트 그래픽 로그인에서 (이름은 다를 수 있음).

로그인 프롬프트를 표시하는 프로그램 인 디스플레이 관리자 를 구성해야 합니다. KDE 디스플레이 관리자 인 kdm의 경우 /etc/kde4/kdm/Xsetup(또는 /etc/kde3/kdm/Xsetup이전 버전의) 명령을 추가하십시오 ( 데비안의 경로입니다. Kubuntu가 동일한 경로를 사용하는지 확인하지 않았습니다).

gdm (Gnome 디스플레이 관리자)의 경우 명령을에 추가하십시오 /etc/gdm/Init/Default. xdm (기존 X 디스플레이 관리자)의 경우 명령을에 추가하십시오 /etc/X11/xdm/Xsetup.


설명 주셔서 감사합니다! 나는 당신이 제안한 것을 성공하지 않고 시도했습니다. 나는 위치 Xsetup(당신이 언급 한 같은 경로에) 파일을하고 명령을 추가했다. 캘리브레이션이 작동하지 않았지만을 추가 echo "w" > /test.log하고 /test.log재부팅 후 존재 하는지 확인 하여 캘리브레이션이 실행되었는지 확인했습니다 . xinput특별한 "문맥"이나 무언가 를 요구할 수 있습니까?
jadkik94

실제로 마지막 주석은 무시하십시오. xinput명령을 해당 파일로 리디렉션 했는데 장치 이름에 공백을 추가하여 보정이 작동하지 않는 것 같습니다. 당신은 100 % 정확했습니다. :) 다시 감사합니다.
jadkik94

5
그리고 디스플레이 관리자가 무엇인지 알아 보려면 (데스크톱 환경과 혼동하지 마십시오) 다음을 사용하십시오 cat /etc/X11/default-display-manager.
Nux

무엇에 대해 xserverrc? 그리고 안에있는 것들 /etc/X11/xinit/xserverrc?
CMCDragonkai

1
@CMCDragonkai 디스플레이 관리자 startx가있는 경우 사용되지 않습니다. 디스플레이 관리자 초기화 스크립트는 사용자가 로그인하기 전에 실행되므로 여기서 관련이 없습니다.
Gilles 'SO-stop

4

간단한 예를 들어 자신의 구성 파일을 만드는 것이 좋습니다.

/usr/lib/X11/xorg.conf.d/20-calibration.conf

파일 내용 :

Section "InputClass"
         Identifier "Calibration"
         MatchProduct "3M 3M USB Touchscreen - EX II"
         Option "Calibration" "14410 2146 14574 2115"
EndSection

그 트릭을해야합니다.


-1

/etc/rc.local을 시도해 볼 수 있습니까?

.


4
나는 X가 시작하기 전에 스크립트가 실행되는 것에 대해 걱정했다.
jadkik94

3
@ jadkik94 rc.local이 x 세션에 액세스 할 수 없으므로 작동하지 않습니다.
Ulrich Dangel

-1

OpenSUSE가 있으면 스크립트를 /etc/init.d에 복사하고 insserv 스크립트 이름을 실행할 수 있습니다. : insserv 스크립트 수 http://man-wiki.net/index.php/8:insserv을 .


2
이것은 아마도 xinputinit 스크립트에서 사용할 수 없거나 초기화되지 않은 X가 필요할 때 작동하지 않을 것입니다
Ulrich Dangel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.