/etc/profile.d/의 스크립트는 X 로그인(debian)에서 실행되지 않습니다.

/etc/profile.d/의 스크립트는 X 로그인(debian)에서 실행되지 않습니다.

다음 스크립트:

name='ILITEK ILITEK-TP'
echo 'running touchscreens' | systemd-cat
ids=$(xinput --list |awk -Fid= "/$name/"'{print $2+0}')
echo 'after xinput' | systemd-cat
for id in $ids
do event=$(xinput list-props "$id" | awk -F'"' '/Device Node/{print $2}')
   path=$(udevadm info "$event" |
          awk -F/ '/DEVPATH=/{printf "%s \n",$7}')
   if [[ "$path" == *"1-5"* ]]; then
      screen='HDMI-2'
      #echo "$id $path $screen"
      xinput map-to-output $id $screen
   elif [[ "$path" == *"1-6"* ]]; then
      screen='HDMI-3'
      #echo "$id $path $screen"
      xinput map-to-output $id $screen
   fi
done

사용자가 실행하면 정상적으로 작동합니다. 그러나 X 세션 사용자로 로그인하면 로 들어가고 /etc/profile.d/끝나는 데도 불구하고 실행되지 않습니다 .sh. 반면에 SSH를 통해 로그인하면 실행되는데, 실행하려는 시점과 정반대입니다.

이는 /etc/profileX 세션이 로그인되었을 때 전혀 호출되지 않았음을 의미합니까? 어떻게 작동하게 할 수 있나요? 내 창 관리자는 Cinnamon입니다.

업데이트: 스크립트를 로 옮겼 더니 이제 실행이 되는데 아직 제대로 작동하지 않거나 스크립트 실행 후 덮어쓰기가 되어 /etc/X11/Xsession.d/너무 이른 것 같습니다 .xinput map-to-output

업데이트 2: ~/.bashrc에 스크립트를 배치하면 작동하지만 터미널을 시작한 후에만 가능합니다. 이게 날 미치게 만들어

답변1

데비안 시스템에서는 사용자 정의 .xsession 파일을 생성하고 사용자 정의 X 명령 뒤에 를 사용하여 로그인한 사용자의 홈 디렉터리에 배치합니다 exec {yourwindowmanager}.

요청에 따라 편집되었습니다.

xinput map-to-output 12 HDMI-1
exec gnome-session

관련 정보