설치
flatpak 하나와 GNOME 확장 하나면 됩니다. root도 암호도 필요 없습니다.
앱
curl -fLO https://github.com/chaotic-ground/kakaotalk-on-wine/releases/latest/download/kakaotalk.flatpak
flatpak install --user kakaotalk.flatpak
런타임은 flathub에서 오는데, 거의 모두가 이미 갖고 있습니다. 없다면 리모트를 먼저 더하십시오.
flatpak remote-add --user --if-not-exists flathub \
https://dl.flathub.org/repo/flathub.flatpakrepo
첫 실행 때 카카오 CDN에서 설치 파일을 받아 프리픽스를 만드느라 몇 분 걸리고, 그 다음부터는 바로 뜹니다.
쓰는 것은 64비트 클라이언트입니다. 카카오가 윈도우용을 셋 배포하는데,
검색으로 흔히 나오는 app-pc.kakaocdn.net/talk/win32/는
32비트라 쓰지 않습니다.
GNOME 확장
팝업의 자리와 포커스, 트레이를 대신하는 인디케이터, 카카오톡 자신의 메뉴
열기를 맡습니다. 샌드박스 안의 앱은
~/.local/share/gnome-shell/extensions에 아무것도 넣을 수
없기 때문에, 이것만은 손으로 깔아야 합니다.
git clone https://github.com/chaotic-ground/kakaotalk-on-wine
cp -r kakaotalk-on-wine/gnome/kakaotalk-popup@lens0021 \
~/.local/share/gnome-shell/extensions/
gnome-extensions enable kakaotalk-popup@lens0021
확장을 먼저 깔아도 되는데, 아무것도 설치되어 있지 않으면 인디케이터가 flatpak 설치를 권해줍니다.
설정은 gnome/README.md에 있습니다.
문제 해결
백신이 Wine을 격리할 때
백신이 Wine의 PE 모듈을 격리하면 없어진 파일을 탓하는 대신 엉뚱한 Wine 오류가 납니다.
wine: Call from ... to unimplemented function user32.dll.CreateDialogParamW
한 번에 92개가 사라진 적도 있습니다. flatpak 안의 Wine은 읽기 전용이라
안전하지만, 프리픽스는 ~/.var/app 아래에 있어 그렇지
못합니다.
업데이트 창만 뜨고 본 창이 안 뜰 때
카카오톡 26.8.1까지 쓰던 분이 겪었을 수 있습니다. 판이 올라갈 때 "카카오톡 업데이트" 창만 뜨고 클라이언트는 영영 오지 않았습니다. 몇 번을 다시 띄워도 같았습니다.
런처가 업데이터를 죽이고 있었습니다. 카카오톡은 자기 파일을 바꾸려고
업데이트할 때 일부러 먼저 끝나고, 뒤는 KakaoUpdate.exe가
잇습니다. 런처는 클라이언트가 끝나면 프리픽스를 정리했는데, 그때 찾는
이름이 KakaoTalk.exe뿐이라 압축을 풀고 있던 업데이터가 그물에
걸리지 않고 같이 죽었습니다.
고쳤습니다. 이제 업데이터가 돌고 있으면 끝날 때까지 기다립니다. Wine도 카카오도 잘못한 것이 없었고, 차분 업데이트는 그대로 두면 잘 끝납니다.
고친 런처가 든 판을 받기 전에 이 상태에 빠지셨다면, 전체 설치 파일로 한 번 덮으면 넘어갑니다.
flatpak run io.github.chaotic_ground.KakaoTalk --reinstall
대화 기록은 AppData에 있어 그대로이고, 실행 파일이 바뀌어서
다시 로그인을 물을 수는 있습니다.
두 번 실행하면 안 되는 이유
돌고 있는 앱에 flatpak run을 한 번 더 하면 앱이 죽습니다.
두 번째 클라이언트를 띄우는 이야기가 아니라, 다른 프로세스를 들여다보는
wine 프로세스면 무엇이든 그렇습니다. 인스턴스마다 PID 네임스페이스가
따로이기 때문입니다. 창을 되찾고 싶을 때는 패널 인디케이터를
쓰십시오.