bash 명령이 .xinitrc에서 실행되지 않는 것 같습니다.

bash 명령이 .xinitrc에서 실행되지 않는 것 같습니다.

.xinitrc스크립트에서 일부 bash 명령을 실행 하려고 하는데 창 관리자가 시작될 때 올바르게 실행되지 않습니다.

저는 "awesome"이라는 창 관리자를 사용하여 Arch Linux를 실행하고 있으며 startx다음은 ~/.xinitrc.

#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)

if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

xinput set-int-prop "TPPS/2 IBM Trackpoint" "Evdev Wheel Emulation" 8 1
xinput set-int-prop "TPPS/2 IBM Trackpoint" "Evdev Wheel Emulation Button" 8 2
xinput set-int-prop "TPPS/2 IBM Trackpoint" "Evdev Wheel Emulation Timeout" 8 200
xinput set-int-prop "TPPS/2 IBM Trackpoint" "Evdev Wheel Emulation Axes" 8 6 7 4 5

rfkill block bluetooth

# exec gnome-session
# exec startkde
# exec startxfce4
# ...or the Window Manager of your choice
exec awesome

제가 Bluetooth를 끄고 노트북에서 트랙 포인트 스크롤을 활성화하려고 한다는 것을 눈치채셨을 것입니다. 이러한 명령 xinputrfkill명령은 모두 수동으로 입력하면 작동하지만 실행하면 아무 일도 일어나지 않습니다 startx.

여기서 무슨 일이 일어나고 있나요? :(

답변1

음... 근본적인 문제는 정말 사소합니다.

rfkill루트권한이 필요하므로 제대로 실행이 되지 않습니다.

xinput내 명령이 작동하지 않는 이유는 장치 이름에 철자 오류가 있었기 때문입니다. '트랙포인트'가 아니라 '트랙포인트'여야 합니다. xinput조용히 실패했습니다.

젠장, 내가 자랑스러워하는 것보다 훨씬 더 오랜 시간이 걸렸어.

답변2

보다 ~/.xsession-errors. 의 출력이 .xinitrc그곳으로 리디렉션되므로 발생한 오류가 여기에 표시되고 스크립트를 디버깅하는 데 도움이 됩니다.

관련 정보