출처: https://stackoverflow.com/questions/34813704/bash-timed-input-show-countdown
https://stackoverflow.com/questions/33614865/bash-countdown-to-execution-if-no-key-pressed
예전에는 ligthdm webkit2를 사용했는데
요즘은 꼭 그럴 필요 있는건가 하는 생각이 들어서 그냥 lightdm을 지웠습니다
콘솔에서 로그인하고 startx를 실행하면 openbox가 실행되게 xinit을 작성했는데
매번 startx를 하려니 생각보다 귀찮았습니다
다행히 콘솔 로그인시 자동으로 startx를 실행하는 간단한 코드가 있었습니다.
출처: https://wiki.archlinux.org/index.php/Xinit
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
exec startx
fi
그런데 만약 콘솔을 사용하고 싶다면 어떻게 해야할까 생각이 들었습니다.
물론 c+a+f2로 tty2에서 로그인하면 되겠지만
귀찮거나, tty2가 정상적으로 안되는 상황이 생기지는 않을까 하는 생각이 들었습니다.
그래서 exec startx대신 적당한 스크립트를 찾아서 제가 원하는대로 작동하게 만들었습니다.
#!/bin/bash
total=3
count=0
while [ ${count} -lt ${total} ] ; do
limit=$(( $total - $count ))
echo -e "\rPress any input key or wait ${limit} seconds for startx\c"
read -t 1 -n 1
if [ $? = 0 ] ; then
break
fi
count=$((count+1))
done
exec startx
이제 3초의 딜레이가 생기고
3초간 제가 아무짓도 안하던가,
3초가 지나기 전에 아무 키나 누르면
startx가 실행됩니다.
만약 콘솔을 사용하고 싶다면 c+c를 누르면 되겠네요.
c+c를 눌러도 콘솔화면이라기 보다는 로그인 화면으로 돌아가는걸 확인했습니다..
어디서 잘못된건걸까요. ㅠ