리눅스에서 카카오톡 사용하기
이 글에서는 우분투에 설치했지만 Flatpak을 사용하기 때문에 리눅스 배포판 종류와 상관없이 설치할 수 있다.
다만 카카오톡이 열리는데 시간이 약간 오래 걸린다.
원래 wine
도 약간 느리긴 하지만 이건 아무래도 bottles
을 통해 실행해야 하니 더 느리다.
실행이 되고 나면 속도는 문제없다.
설치
CentOS를 사용하던 시절부터 카카오톡을 설치해 보려고 wine
, PlayOnLinux
등을 사용해 봤지만, 잘되지 않아서 bottles
를 사용했다.
그래서 wine
으로 카카오톡이 잘 돌아가는 지금도 bottles
를 사용 중이다.. 종류 및 버전 관리도 편하고, 프로그램들이 컨테이너 방식으로 돌아가기 때문에 관리도 편하다.
Flatpak 설치
먼저 Flatpak을 설치해야 한다.
- Debian/Ubuntu
Terminal 1
# sudo apt -y install flatpak gnome-software-plugin-flatpak
- RHEL/CentOS 7
Terminal 1
# sudo yum -y install flatpak
- RHEL/CentOS 8 & Fedora & Rocky Linux
Terminal 1
# sudo dnf -y install flatpak
그리고 Flatpak의 Repository 추가
Terminal 1
# flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Bottles 설치
Flatpak으로 Bottles 설치 후 재부팅
~/.local/share/applications/KakaoTalk.desktop 1
2
# flatpak install flathub com.usebottles.bottles
# sudo reboot
KakaoTalk 설치 준비
터미널에서 flatpak run com.usebottles.bottles
를 입력하거나 우분투 메뉴에서 Bottles 선택해서 실행 후 계속 진행
오른쪽 상단 삼선 메뉴 - Preferences - Runners에서 원하는 것으로 다운로드
왼쪽 상단 + 누른 후 Bottle 생성
폰트 설치
폰트를 설치하지 않으면 설치 과정에서 영어를 사용해야 하며, 다른 언어는 모두 깨져서 보인다.
물론 이 과정을 거치지 않고 영어로 설치하거나 깨진 언어로 설치한 후에 폰트를 직접 설치하고 카카오톡 설정에서 폰트를 변경해도 된다.
Bottle에서 제공하는 폰트(cjkfonts)를 설치할 수 있다.
cjkfonts 설치 시 굴림, 돋움, 맑은 고딕, 바탕 등의 폰트를 포함한 중국어(c), 일본어(j), 한국어(k)의 여러 폰트가 설치된다.
KakaoTalk 설치
카카오톡 사이트에서 Windows 설치 파일 다운로드 및 “Run Executable…“에서 카카오톡 설치 파일 선택.
2023.05.01 - caffe-7.20 에러
2023년 5월 1일 현재 caffe(v7.20)로 진행 시 에러가 발생한다.
아무런 업데이트가 없었는데 갑자기 되던 게 안 되니 내가 문제인지 caffe가 문제인지는 모르겠다.
Bottle을 제거 후 다른 Runner로 새로 생성하거나 Bottle의 Settings에 들어가서 Runner를 변경하면 문제없이 설치가 된다.
설정
카카오톡 실행
지금 이상태로는 카카오톡을 실행하려면 Bottles을 열고 카카오톡을 실행하고… 귀찮다.
Apps 목록에서 카카오톡이 뜨게 .desktop 파일을 만들거나, 터미널에서 실행할 수 있게 실행 파일을 생성하면 훨씬 편하다.
기본적으로 flatpak
명령어를 통해 실행하며 xdg-open
명령어를 사용할 수도 있다.
Applications 목록에 카카오톡 생성
/usr/share/applications/
, /usr/local/share/applications/
등 디렉토리에 .desktop 확장자 파일들 두면 Apps 목록에 아이콘이 생성된다.
직접 생성
카카오톡은 현재 유저만 사용할 수 있으므로 ~/.local/share/applications/
디렉토리를 사용.
아래에서 실행 파일을 생성했다면 Exec=
뒤에 해당 파일의 경로를 적어줘도 된다.
이 방법의 단점은 KakaoTalk의 기본 아이콘이 어디에도 없다는 것.
아이콘을 직접 다운로드 하거나 exe 파일에서 아이콘 추출 후 해당 경로를 Icon=
뒤에 적으면 된다.
- 카카오톡 아이콘 추출
Terminal 1 2
# sudo apt -y install icoutils # wrestool -x -t3 -n1 --raw KakaoTalk_Setup.exe --output=/path/to/KakaoTalk.png
- .desktop 파일 생성
Plain text 1 2 3 4 5 6 7 8
[Desktop Entry] Encoding=UTF-8 Name=KakaoTalk Comment=KakaoTalk Exec=xdg-open bottles:run/KakaoTalk/KakaoTalk Terminal=false Type=Application Icon=/path/to/KakaoTalk.png
Bottles 기능 사용
Bottles의 기능을 사용하여 Apps 목록에 아이콘을 생성할 수 있다.
먼저 Bottles에 권한을 줘야한다. Bottles 종료 후 아래 명령어 실행
Terminal 1
# flatpak override com.usebottles.bottles --user --filesystem=xdg-data/applications
이제 Bottles에서 아래 버튼을 클릭하면 .desktop 파일이 생성되는 것을 확인할 수 있다.
실행 파일 생성
kakaotalk이라는 텍스트 파일 생성 후 실행 권한을 주고 ~/bin
디렉토리에 두면 터미널에서 언제 어디서든 kakaotalk
을 입력하여 카카오톡을 실행할 수 있다.
첫 번째 KakaoTalk은 생성한 Bottle 이름, 두 번째 kakaoTalk은 Bottle 내 실행시킬 Programs의 이름이다.
kakaotalk 1
2
3
4
5
6
7
8
9
#!/usr/bin/env bash
if [ `ps -ef | grep -i bottles.*kakaotalk | wc -l` != 1 ]; then
echo "KakaoTalk is already running."
exit 1
fi
# nohup flatpak run --command=bottles-cli com.usebottles.bottles run -b KakaoTalk -p KakaoTalk 2>&1 > /dev/null &
xdg-open bottles:run/KakaoTalk/KakaoTalk
폰트 직접 설치
원래 이 내용은 cjkfonts를 설치하지 않았을 때 한글 깨짐 현상을 해결하기 위해 적은 내용이지만, 폰트를 직접 추가하려면 필요한 내용이므로 삭제하지 않았다.
네이버에서 나눔 폰트를 다운로드한 후 unzip
으로 압축을 푼다.
그리고 KakaoTalk이 설치된 곳에 폰트를 설치복사하면 된다.
bottles와 drive_c 사이에 오는 KakaoTalk은 생성한 Bottle의 이름이다.
Terminal 1
2
# unzip nanum-all.zip
# find 나눔\ 글꼴/ -type f -exec cp {} ~/.var/app/com.usebottles.bottles/data/bottles/bottles/KakaoTalk/drive_c/windows/Fonts/ \;
한글은 이제 안 깨지고 보이는데.. 하단 광고와 입력란의 한글은 여전히 깨진다.
이건 카카오톡 설정에서 폰트를 변경하면 된다.
카카오톡에서 파일 업로드 및 다운로드
업로드
Z 드라이브에 우분투의 루트 디렉토리가 마운트 되어있기 때문에 파일 업로드 시 Z 드라이브에 들어가서 파일을 선택하면 되..ㄹ 것 같지만..
이유는 모르겠지만 홈 디렉토리에는 Downloads 폴더밖에 보이지 않는다. 그래서 업로드할 파일을 Downloads 디렉토리에 복사한 후 전송하는 중..
어차피 아래 과정을 거치면 그 경로가 업로드 창을 열었을 때 뜨는 기본 경로기 때문에 파일이 바로 떠서 편하긴 하다.
업로드 (2023.08.09 추가)
어제 익명의 어느 분께서 메일을 남겨주셨다.
그 내용은..
Terminal 1
flatpak override --user --filesystem=host com.usebottles.bottles
위 명령어를 사용하면 모든 디렉토리에 접근이 가능하다고 한다.
다만, 시스템의 모든 파일에 접근이 가능하기 때문에 주의가 필요할 듯.
권한을 제거하려면 --filesystem
을 --nofilesystem
으로 바꿔주기만 하면 된다.
Terminal 1
flatpak override --user --nofilesystem=host com.usebottles.bottles
도움을 주신 익명님 감사합니다!
다운로드
카카오톡 내에서 파일을 다운로드할 때 파일을 홈 디렉토리의 Downloads 디렉토리에 다운로드되게 하려고 한다.
카카오톡에서 다운로드한 파일들은 “카카오톡 받은 파일”(영어로 설치했다면 “KakaoTalk Downloads”) 폴더에 저장된다.
카카오톡 설정에서 이 경로만 변경하면 된다.
Documents 폴더에서 “카카오톡 받은 파일”을 제외한 나머지 폴더가 모두 리눅스의 홈 디렉토리에 심볼릭 링크가 걸려있다.
즉, 아무거나 선택 후 Downloads 폴더를 선택하면 파일 다운로드 시 홈 디렉토리에 저장된다.
이게 귀찮다면 그냥 터미널에서 카카오톡 받은 파일
폴더를 직접 홈 디렉토리의 Downloads
에 심볼릭 링크를 걸어도 된다.
Terminal 1
2
3
# cd ~/.var/app/com.usebottles.bottles/data/bottles/bottles/KakaoTalk/drive_c/users/jh1950/Documents
# rmdir ./카카오톡\ 받은\ 파일/
# ln -s ~/Downloads/ ./카카오톡\ 받은\ 파일