https://bakyeono.net/post/2015-12-31-linux-hangul-console.html
https://wiki.kldp.org/wiki.php/HangulConsole
리눅스에서 X 없이 콘솔창에서 한글을 사용할 수 있도록 하는 방법들에 대한 기록입니다.
예전에는 이런 게 필수적이었지 싶지만 현대 시스템에선 거의 대부분 관심이 없는 주제가 되었어요.
아니, 관심이 없다기 보다, 있어도 기술적 지원이 거의 없는 분야가 되었습니다.
여러 가지 이유로 그래픽 모드 배제하고 터미널 모드만 사용하고 싶을 수 있는데 그때도 한글은 꼭 필요하잖아요.
근데 그리 쓰는 사람들이 거의 없으니 안되겠지 하고 미리 포기하는 거지요.
프레임 버퍼는 리눅스에서 그래픽과 텍스트를 합성해서 보여주는 모드입니다.
도스시절 도깨비 등이 한글을 표시하던 것과 비슷한 거지 싶습니다.
https://github.com/ruo91/jfbterm
https://kldp.net/hangul-jfbterm/release/
https://blog.naver.com/timberx/30036217899
일본인이나 중국인들이 만든 프레임버퍼 터미널 프로그램에 한글패치들을 시도했던 것 같구요.
jfbterm 도 그 중 하나입니다. 저는 한참 전에 이 링크 도전했다 실패한 기억이 있습니다.
다시 해보면 또 어떨까 모르겠는데, 최근에 다른 솔루션이 나왔어요.
https://jimnong.tistory.com/1858
https://gall.dcinside.com/m/github/10620
yaft 라는 프레임 버퍼 터미널입니다. 자세한 설명은 링크를 보시면 되구요.
패치 프로그램을 그래픽 이미지로 올려뒀기 때문에 이걸 받아서 다시 컨버트하는 과정이 필요합니다.
저는 임시로 생성한 드랍박스에 yaft_ko_patch.png 라는 파일로 올려서 아래 과정을 진행했습니다.
혹 나중에 따라하실 분들은 직접 올려서 다운링크를 새로 생성하시는 게 좋겠습니다.
$ yay -S libhangul
$ yay -S imagemagick
$ git clone https://github.com/uobikiemukot/yaft
$ cd yaft
$ curl -L -O https://www.dropbox.com/scl/fi/gscbx3egou7keb6fvyuw6/yaft_ko_patch.png?rlkey=xqvh4lba9cj4lmc80v7nqg07t&dl=0
$ convert yaft_ko_patch.png RGB:- | xz -d -c - > hangul.patch
$ patch -p1 < hangul.patch
$ make
$ sudo make install
그리고 한영 전환키는 shift+space 로 설정합니다.
# dumpkeys > kmap
하고 kmap 편집.
string F60 = "\200"
스트링 항목에 한줄 추가하고,
shift keycode 57 = F60
키코드 100 항목 아래에 또 한줄 추가. shift+space 로 한영전환이 됩니다.
$ loadkeys kmap
변경사항 적용. 매번 실행하기 귀찮으므로 KEYMAP=/root/kmap 한줄을
아치는 /etc/vconsole.conf 에, 데비안은 /etc/default/keyboard 에 추가합니다.
테스트는 VMWare 에서 Arch Linux 최소설치로 했습니다.
vim 이나 emacs 등의 편집기에서도 다른 설정 없이 한글 입력과 수정이 다 잘 됩니다.
여기서 궁금한 건 yaft 를 꼭 sudo 권한을 붙여서 실행해야 되는데,
일반유저 권한으로 실행할 수 없는지, 그리고 libhangul 에서 세벌식 390 자판 지정은 안되는지에요.
혹 아시는 분 계시면 댓글 부탁드립니다.
좋은 정보 감사합니다.
한참 예전에 슬랙웨어 쉘에서 한글 나오게 하려고 고생하다가 포기했던 기억이 납니다.
라즈베리파이나 저사양 피씨에서 그래픽 앱들 배제하고 콘솔 모드로 구동할 때 한글이 필요하면 시도해볼 만한 해법 같습니다.
폰트 패치 부분에서 더 이상 진행이 안되고 멈춰 있어요. 이유는 모르겠습니다.
Debian 리눅스에서는 libhangul 관련 에러가 있습니다. libhangul 을 설치할 수 없어요.
libhangul-dev 를 깔아도 안되고 libhangul1 을 깔아도 안됩니다. 컴파일 중 헤더가 없다고 에러가 납니다.
결국 본문과 같은 프로세스로 yaft 빌딩이 되는 건 제가 테스트 해본 것들 중에선 Arch 리눅스 뿐이에요.
본문의 두가지 질문 중 일반 유저가 yaft 를 실행할 수 있는 권한은 위 명령으로 설정이 됩니다.
두벌식 자판을 세벌식 390 자판으로 설정할 수만 있으면 완벽한 환경이 되겠네요.
따로 설정파일이 있는게 아니고 생성된 hangul.patch 파일을 직접 수정해야 됩니다.
https://libhangul.github.io/libhangul-doc/git/group__hangulic.html#ga7dd66ed8f04fe95ff401f2b29e10db1f
libhangul 문서를 보면 두벌식은 2, 세벌식 390 은 39 등등으로 지정한다는 걸 알 수 있습니다.
hangul_ic_new("39") 로 하고 이후 과정 진행하면 세벌식 390 자판이 됩니다.
이걸로 미션 완료네요.
전에 도스 시절에는,
1. 롬상주 프로그램을 올려서 인터럽트 스내칭합니다.
2. 롬바이오스 등에 폰트 출력부의 주소를 변경합니다.
3. 텍스트 모드에서는 정해진 폰트만 출력되죠.
그래서 그래픽처럼 도트단위로 만든 폰트를 출력하지 못하기 때문에,
안쓰는 폰트를 여러개 정해놓고 그 폰트를 출력하기 전에 도트단위로 조작합니다.
노턴 NCD같은 툴들에서 텍스트 모드인데도, 마우스 커서가 그래픽처럼 표시되던 이유가 이 방식을 쓰는 거구요
그 폰트 주소를 따고 들어가서 폰트를 도트단위로 변화하는 방식씁니다.
한글도 유사방식으로 특정 폰트 뿌릴 때에 한글폰트쪽으로 주소 변경하면 출력됩니다.
텍스트 쉘 폰트 출력 관련이라 밑으로 좀 내려가야할거 같은데,
이런 기능이 필요한 분들이 많으시면 심심할 때 개발좀 해보겠습니다.
일단 본문의 경우 libhangul 을 이용하는 것 같은데요, 세벌식 자판 설정이 가능할까요?
그것만 되면 당장 불편한 거 없이 쓸 수 있을 듯 합니다.
설사 그곳이 디씨라 할지라도...
원문의 접근을 배제하겠다는 의도는 변함 없어 보입니다.
https://gall.dcinside.com/m/github/10620
원패치 작성하신 분이랑 중간과정 자세하게 캡쳐해서 설명해 주신 두분 덕분입니다.
리눅스 환경에서 한글이 필요한 건 영어를 몰라서가 아니에요.
대부분의 리눅스 유저들은 한글 로케일 보다는 영문 로케일에 한글 입력기만 활성화된 환경을 선호합니다.
그럼에도 불구하고 한글입력이나 출력이 안되는 환경이면 한국사람에게 매우 불편해요.
본문 솔루션 테스트 중인데 꽤 안정적으로 작동합니다.
사실, HEP님 댓글을 있는 그대로 보면 "매우" 공격적으로 느껴집니다. 농담이라고 추가하셨으면 부드러웠을 것 같아요.
와~ 댓글 산으로 간다~ ㅋㅋㅋ
실제로 정말 어지간히 저사양에서도 잘 돌아가는 윈도우 매니저들이 있긴 합니다.
본문 같은 프레임 버퍼 터미널들은 좀 더 원초적인 솔루션이라 할 수 있는 것 같습니다.
원리 구현에 가까워요. 아, 이게 되는구나! 하는. ^^
현재 댓글을 달고 있는 시스템이 주워온 2세대 i3 에 4기가 램으로 Rocky Linux 9 를 올린 겁니다.
가끔 랙이 걸리긴 해도 간단한 용도로는 Gnome 최신도 잘 돌아가니 사양문제는 부차적인 듯 합니다.
video 그룹이 뭔지 몰라서 찾아봤는데,
https://wiki.archlinux.org/title/users_and_groups
Access to video capture devices, 2D/3D hardware acceleration, "framebuffer".
라고 나오네요.
yaft가 프레임버퍼 터미널이니까, 알려주신 팁은 정공법이었네요.
세벌식 반영법도 그렇고... 많이 배웠습니다.
관련 검색으론 그 어디에도 나오지 않는 해결책입니다. 아무데도 언급된 곳이 없는 주제에요.
yaft 자체는 소유자나 권한 설정에 문제가 없는데 일반유저가 실행하면 퍼미션 에러가 납니다.
리눅스랑 유닉스로 삽질을 다량 하면서 비슷한 경험을 한게 있어서 혹시나 하고 적용했더니 잘 작동했어요.
본문과 댓글 참조해서 원 링크 글들 따라하시면 이번엔 쉽게 성공하실 거에요.
저의 경우에는 그런 목적도 있지만, 서버실의 서버들이 콘솔(SSH 불가)로만 가능한데 데이터가 한글이 들어간 자료를 확인해야 하는게 너무 번거로워서, 시도했던 적이 있었습니다.
그 외에도 distraction free writing 쪽에도 수요가 있지요. ㅎㅎ 물론 한국은 사용 유저가 극히 적고 관련 내용이 없어서 공유가 잘 안되는 것 같습니다. 외국에서는 이런 distraction free writing을 위한 기기까지 팔기도 하고, 운영이 되기도 합니다.
sudo 명령을 붙이느냐 안붙이느냐는 별로 중요하지 않구요.
수퍼유저 권한으로 yaft 가 실행이 되면 유저가 root 가 됩니다.
위 댓글에 해법이 있습니다. video 그룹권한을 지정해 주는게 정답이에요.
패스워드 없이 sudo 진입 결정하는 것은 보안에 불리할 것 같아서, 신중할 필요가 있어 보입니다.
특히 yaft에는 적합하지 않은 방식이라고 생각합니다.
다계정인 상태에서 yaft로 루트권한 탈취 당하면 헬게이트가;;;
DUNE 각본가도 DOS 환경(정확히는 WinXP에서 NTVDM 도스 호환으로 실행..)에서 글을 쓰는데... 외국같은 경우에는 전문 작가들은 distraction-free 를 위해서 이렇게 콘솔같은 환경서 글쓰는 것을 원하더라구요. freewrite나 일본의 pomera같은 제품들이 사업이 가능한 경우죠. 평균 수요가 적어도 워낙 사람들이 많은 곳이라 사업이 되는게 신기할 따름.... 한국은 거의 수요가 없이서, 이런 것은 취미로만 가능할 겁니다. ㅎㅎ 저도 한번 세팅해봐야 겠습니다. arch 같은 경우는 직접 패키지로 만드셔서 AUR에 올리셔도 좋을 것 같네요.
시스템 성능이 문제가 아니고 그걸 구동할 수 없는 환경이 있기 때문에 콘솔에서 한글 입출력이 가능하다는게 중요한 것 같습니다.
AUR 패키지는 능력도 안되고 제가 작성한 패치도 아니고 해서 힘들겠네요. ^^