일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Mac
- Linux
- catalina
- 아이폰
- 시에라
- 맥북프로
- 모하비
- high sierra
- 3D프린터
- AirPods
- 컨트롤러
- asahi linux
- 맥
- 버그
- 애플
- IOS
- Tarantula
- beta
- 업데이트
- asahi
- 3D 프린터
- mojave
- 정식버전
- 에어팟
- 터치바
- Fedora
- macos
- tevo
- iOS 13
- sierra
- Today
- Total
elsa in mac
mac:Fedora-Asahi Remix, Hyprland 재 로그인 시 socket 연결 오류가 발생하는 경우 해결 방법 본문
mac:Fedora-Asahi Remix, Hyprland 재 로그인 시 socket 연결 오류가 발생하는 경우 해결 방법
elsa in mac 2024. 3. 27. 19:59
이번 포스트는 Hyprland를 사용할 때, logout/login 한 후, hyprland socket에 연결할 수 없는 문제와 관련된 것입니다.
SDDM을 통해 Hyprland WM으로 login을 하게 되면, hyprland는 /tmp/hypr/ 폴더에 socket을 생성합니다. 이 후, hyprctl 을 사용할 때 이 socket을 사용하여 정보를 얻어오거나 설정을 하게 되는데, 재 로그인을 하게 되면 이 후로 socket 에 연결할 수 없다는 오류가 발생하게 됩니다.
$ hyprctl monitors
Couldn't connect to /tmp/hypr/c554749244117f7f150c6f2a2ce4dede6e8cbb25_16931751828.socket.sock. (3)
가장 대표적인 예가 tmux를 사용하는 경우 입니다. tmux의 경우에는 가장 최근에 설정된 export 환경번수 정보를 기준으로 실행되기 때문에, 새롭게 생생된 socket 이름과 mismatch가 발생하게 됩니다.
이와 같은 문제를 해결하기 위해서는 Hyprland가 실행된 이후, 환경변수 정보들을 tmux 상의 최신정보로 갱신해 주는 작업을 해줘야 합니다.
환경변수 재 설정 shell script
~/.config/ 밑에 import_new_env 라는 파일을 하나 만들고 실행 권환을 설정해 줍니다.
cd ~/.config
touch import_new_env
chmod +x import_new_env
Editor로 import_new_env 파일을 열고, 아래와 같이 shell script code를 넣어 줍니다. 아래 정의된 환경변수 이 외에 갱신되어야할 별도의 다른 변수가 있다면 추가해 줍니다.
#!/usr/bin/env bash
set -e
[[ -n $HYPRLAND_DEBUG_CONF ]] && exit 0
_envs=(
WAYLAND_DISPLAY
DISPLAY
XCURSOR_SIZE
USERNAME
XDG_BACKEND
XDG_CURRENT_DESKTOP
XDG_SESSION_TYPE
XDG_SESSION_ID
XDG_SESSION_CLASS
XDG_SESSION_DESKTOP
XDG_SEAT
XDG_VTNR
# sway
SWAYSOCK
# hyprland
HYPRLAND_CMD
HYPRLAND_INSTANCE_SIGNATURE
# toolkit
_JAVA_AWT_WM_NONREPARENTING
QT_QPA_PLATFORM
QT_WAYLAND_DISABLE_WINDOWDECORATION
GRIM_DEFAULT_DIR
# ssh
SSH_AUTH_SOCK
)
for v in "${_envs[@]}"; do
if [[ -n ${!v} ]]; then
tmux setenv -g "$v" "${!v}"
fi
done
마지막으로 hyprland 설정 파일에서 가장 먼저 import_new_env가 실행되도록 exec-once를 정의해 줍니다.
# 가장 먼저 실행
exec-once = ~/.config/import_new_env
위의 스크립트가 별로 의미가 없다면.. 아래와 같이 HYPRLAND_INSTANCE_SIGNATURE만 설정 해주면 됩니다.
exec-once = tmux setenv -g HYPRLAND_INSTANCE_SIGNATURE "$HYPRLAND_INSTANCE_SIGNATURE"
logout을 한 후, 다시 login을 하게 되면, import_new_env가 실행되면서 tmux 환경변수를 최신 환경변수 값들로 갱신하게 되므로, hyprctl 이나 pypr 같은 도구를 사용할 때 socket에 연결할 수 없다는 오류가 발생하는 것을 방지할 수 있게 됩니다.
'Asahi Linux' 카테고리의 다른 글
mac:Fedora-Asahi Remix, UxPlay를 이용한 iOS기기/mac Airplay 미러링 및 오디오 사용하기 (0) | 2024.03.30 |
---|---|
mac:Fedora-Asahi Remix, Wayland 환경에서 키보드 키나 마우스 버튼을 다른 키로 맵핑하는 방법 (0) | 2024.03.29 |
mac:Fedora-Asahi Remix, Hyprland의 기능을 확장하라. Pyprland (0) | 2024.03.26 |
mac:Fedora-Asahi Remix, wayland 환경에서 chromium 사용 시 고려할 사항들 (0) | 2024.03.22 |
mac:Fedora-Asahi Remix, 그냥.. 음악이 듣고 싶을 때.. Internet Radio를 들어 봐요. (0) | 2024.03.14 |