TTY를 전환하면 wayland와 연결이 끊기나 봅니다.
커널패닉

Lv.1 커널패닉 (119.♡.59.225)

2025년 11월 26일 PM 06:56 · 수정됨(11. 28. 04:13)

조회 328 공감 0

swaylock에서 화면 끄기를 설정해 놓았더니 TTY를 전환하기 전까지 화면이 다시 안켜지더군요.

[code]swayidle -w \\

timeout 15 '\\

if pgrep -x swaylock; then \\

swaymsg "output * power off"; \\

if [[ $(playerctl status 2> /dev/null) == "Playing" ]]; then\\

playerctl pause; \\

fi;\\

fi\\

' resume 'swaymsg "output * power on"'\\

timeout 180 '\\

if pgrep -x swaylock; then \\

~/.config/sway/src/backend "enter_sleep";\\

fi\\

' resume 'swaymsg "output * power on"'[/code]

그래서 TTY 전환 공법(?) 으로 화면을 다시 키고 있습니다만,

이전에 화면에 가사를 오버레이해 주는 프로그램을 켜놓은 채로 TTY를 전환했더니 죽어있더군요.


처음에는 TTY 전환으로 인해 발생하는 문제인 줄 모르고 클로드에게 버그를 수정할 수 있나고 물었더니

알아서 coredump를 확인하고 나서 TTY 전환으로 인한 wayland와의 연결이 재설정되어 발생한 문제라고 요약을 해주었습니다. {emo:damoang-emo-015.gif:50}

AI를 사용하지 않았다면 그냥 '단순히 sway 에 오버레이를 직접 그리는 것은 역시 불안정한가 보네' 라고 생각하며 넘어갔을 것 같네요. (그 이유는 이미 wshowkey 를 사용하면서 많이 겪어봤기 때문입니다. 그러고 보니 이 프로젝트도 해당 문제를 해결할 수 있을 것 같군요)


가사 오버레이 프로그램을 만들면서 클로드에게 지불한 금액은 약 $50 [부과세 별도] 정도입니다.

기능추가 및 버그수정보단 코드 리팩토링에 토큰을 대부분 소모했네요

원래 이번주 금요일에 주간 리미트가 재설정될 예정이었는데

오늘 사용한도 규정이 업데이트되어 주간 리미트가 리셋되어 있었습니다 {emo:onion-051.gif:50}


그 외에 gemini 와 codex도 깔아봤는데, 제미니의 경우는 답변을 생성하는데 너무 오래걸려서 제거했네요. (나름 프로 요금제였는데.. 느리면 가차없이 삭제하는군요)

그리고 codex의 경우는 클로드와 동일하게 선결제를 해야 코딩 에이전트를 사용할 수 있지만, 지금은 클로드만으로도 충분하기에 codex 도 제거했습니다 {emo:onion-014.gif:50}

댓글 (2)

  • 커널패닉

    커널패닉 Lv.1 작성자

    25.11.26 · 119.♡.59.225

    지금 스크립트를 확인해보니, non-zero exit code 로 idle 스크립트가 비정상 종료되는 것 같아보이네요. (모든 sleep 관련 target 을 마스킹하면 exit code 가 0이 아닌 다른 값을 리턴하니까요)

    [code]function enter_sleep() {
    if [ "$1" == 'test' ]; then
    if [ "$(systemctl is-enabled sleep.target suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target | grep -c static)" -eq 0 ]; then
    logger --tag sway --priority user.notice 'backend: sleep.target was masked. Skipping `enter_sleep` operation.'
    return 3
    elif ! [ "$(systemctl is-enabled sleep.target)" == 'masked' ]; then
    # NOTE: To change SleepOperation features, please enter below commands and reboot to changes take effect.
    # `echo 'SleepOperation=suspend' | sudo tee /etc/systemd/logind.conf.d/sleep-operation.conf`
    # applicable sleep targets in SleepOperation: suspend, suspend-then-hibernate, hibernate, hybrid-sleep
    # Any Handle*Key configs will not changes take effect in this `enter_sleep` function
    # If you want reject sleep operation, please enter `systemctl mask sleep.target` commands
    # To check current SleepOperation value, please run `systemd-analyze cat-config systemd/logind.conf`

    valied_target=$(find /etc/systemd -type f -exec grep '^SleepOperation' {} \\; | sed 's/SleepOperation=//')
    if [ -n "$valid_target" -a "$(systemctl is-enabled $valid_target.target)" == 'masked' ]; then
    logger --tag sway --priority user.notice "backend: $valid_target.target was masked. Skipping \\`enter_sleep\\` operation."
    return 2
    elif [ -z "$valid_target" -a "$(systemctl is-enabled suspend.target)" == 'masked' ]; then
    logger --tag sway --priority user.notice "backend: suspend.target was masked. Skipping \\`enter_sleep\\` operation."
    return 2
    fi
    else
    logger --tag sway --priority user.notice 'backend: sleep.target was masked. Skipping `enter_sleep` operation.'
    return 1
    fi
    elif [ "$1" == 'current' ]; then
    result=$(find /etc/systemd -type f -exec grep '^SleepOperation' {} \\; | sed 's/SleepOperation=//')
    if [ -z "$result" ]; then
    echo 'suspend'
    else
    echo $result
    fi
    else
    enter_sleep 'test'
    if [ $? -eq 0 ]; then
    systemctl sleep
    if [ $? -ne 0 ]; then
    debug_message="unable to enter $(enter_sleep 'current'). unknown error occurred."
    return $LINENO
    fi
    else
    debug_message="unable to enter $(enter_sleep 'current'). Please check system configuration to resolve this issue."
    return $LINENO
    fi
    fi
    }[/code]
  • 신사아님당

    신사아님당 Lv.1

    25.11.28 · 125.♡.243.26

    [https://s3.damoang.net/data/editor/2511/83b5713.png]
    ctrl + alt + 3을 눌러 TTY를 변경하면 내부적으로 기존 2번 TTY와 wayland 연결이 끊어졌다가, ctrl + alt + 2 를 눌러 원래 TTY로 돌아오면 그때 다시 연결된다. ... 는 말씀이시죠? 일단 그런 개념이 있다고 내모리에 저장~ {emo:onion-013.gif:50}

댓글을 작성하려면 이 필요합니다.