C가 뭐에요? 과일씨만 알아요. 에서 안티그래비티로 프로젝트 시작하기.
D
DINKIssTyle (61.♡.73.102)
2025년 12월 16일 PM 02:07
조회 333 공감 0
Q. 우분투에서 사용할 한글 입력기를 구상해보세요
우분투 환경(GNOME 데스크탑)에서 동작할 DINKIssTyle 한글 입력기의 구상안을 제안해 드립니다.
우분투는 기본적으로 IBus(Intelligent Input Bus) 입력기 프레임워크를 사용하므로, IBus 기반의 엔진을 개발하는 것이 가장 호환성이 좋고 안정적입니다.
🐧 DINKIssTyle IME for Ubuntu (Design Draft)
1. 개발 목표
- 안정성: 우분투 기본 환경(GNOME)에 완벽하게 통합되는 IBus 기반 입력기.
- 아이덴티티: macOS용 DINKIssTyle 입력기의 사용자 경험(단축키, 입력 감각)을 리눅스로 이식.
- 확장성: 추후 다른 리눅스 배포판(Fedora, Arch 등)에서도 쉽게 빌드할 수 있는 구조.
2. 기술 스택 (Tech Stack)
(1) 프레임워크: IBus
- 우분투의 표준 입력 인터페이스입니다.
과 통신하여 키 입력을 가로채고, 처리된 글자를 애플리케이션에 전달합니다.ibus-daemon
(2) 개발 언어: Python (권장) 또는 C
- Option A: Python (PyGObject)
- 개발 속도가 빠르고 코드가 간결합니다.
- 문자열 처리가 편리하여 한글 오토마타 로직을 빠르게 구현/수정하기 좋습니다.
- 추천: 빠른 프로토타이핑과 로직 구현을 위해 Python으로 시작하는 것을 추천합니다.
- Option B: C (Glib/GObject)
- 가장 가볍고 시스템 리소스를 적게 차지합니다.
같은 C 라이브러리와 직접 연동하기 좋습니다.libhangul
(3) 핵심 라이브러리
- 한글 처리:
- 방법 1: Custom Automata (직접 구현) - DINKIssTyle만의 독창적인 입력 방식이 있다면 직접 오토마타(자소 결합 로직)를 작성합니다.
- 방법 2: libhangul - 리눅스 표준 한글 라이브러리. 안정적이지만 커스터마이징에 한계가 있을 수 있습니다.
3. 주요 기능 (Features)
입력 모드 (Input Modes)
- 두벌식 (표준)
- 세벌식 (390, 최종) - 선택 사항
- 영어 (Direct Hardware Input)
한영 전환 (Toggle)
(전통적인 리눅스/한글 타자기 방식)Shift + Space
(Right Alt)한영 키- DINKIssTyle 특화: macOS 스타일의
지원 고려 (다만, 시스템 단축키와 충돌 가능성 있으므로 우회 필요).Command(Super/Windows) + Space
UI/UX
- Candidate Window (후보창): 한자 변환 시 IBus 기본 Lookup Table 사용.
- Indicator: 시스템 트레이(상단 바)에 현재 입력 상태(한/영)를 직관적인 아이콘으로 표시 (
/A
).한
설정 (Preferences)
- 한영 전환 키 변경.
- 자판 배열 선택.
- 입력기 테마 (다크 모드 지원 여부 등).
4. 프로젝트 구조 제안 (Directory Structure)
현재 비어 있는 디렉토리에 다음과 같은 구조를 잡는 것을 제안합니다.
DINKIssTyle-IME-Ubuntu/├── README.md # 프로젝트 설명├── setup.py # 설치 스크립트 (Python 기준)├── dinkisstyle.xml.in # IBus 컴포넌트 명세서 (XML)├── src/│ ├── __init__.py│ ├── main.py # 엔트리 포인트│ ├── engine.py # IBus 엔진 클래스 (키 이벤트 처리)│ ├── automata.py # 한글 자소 결합 로직 (핵심 알고리즘)│ └── prefs.py # 설정 창 (GTK4)├── data/│ └── icons/ # 아이콘 파일 (svg/png)└── schemas/└── org.freedesktop.ibus.engine.dinkisstyle.gschema.xml # GSettings 설정 스키마
5. 단계별 개발 계획
- Hello World 엔진: 키 입력을 받아 그대로 내보내는 기본 IBus 엔진 띄우기.
- 한글 오토마타 이식: 자음+모음이 합쳐지는 로직 구현 (
+ㄱ
->ㅏ
).가 - 한영 전환 구현: 상태 관리(State Machine) 추가.
- 패키징 및 설치: 우분투 시스템(
)에 등록하는 스크립트 작성.Typically /usr/share/ibus/component
어떤 언어(Python 또는 C)로 개발을 시작하시겠습니까? 특별히 원하시는 언어가 있다면 그에 맞춰 **초기 보일러플레이트 코드(기본 뼈대)**를 생성해 드리겠습니다.
Q. IBus용으로 만들고, C 를 이용합니다. 두벌식만 만듭니다.한영전환키는 쉬프트+스페이스, Right Alt, 한자 변환키는 아직 구현안함, 모아찍기 옵션, 단자음/단모음 쉬프트키 커스텀 옵션 추가. 해당 맥용 입력기 폴더를 추가하면 참고해서 작성할 수 있는지?
네, 맥용 입력기 소스 코드를 추가해 주시면 개발에 큰 도움이 됩니다.
특히 '모아찍기(Moajjikgi)' 알고리즘이나 Shift 키 커스텀 로직 같은 핵심 기능은 맥용 소스(Objective-C/Swift 추정)를 분석하여 C 언어로 리눅스 환경에 맞게 이식(Porting)하면, 두 플랫폼 간의 사용성을 동일하게 맞출 수 있어 매우 좋습니다.
다음 단계를 진행해 주세요:
- 소스 추가: 맥용 입력기 프로젝트 폴더를 현재 워크스페이스에 추가하시거나, 주요 소스 파일들을
DINKIssTyle-IME-Ubuntu<
댓글 (1)
-
DDINKIssTyle
작성자
25.12.16 · 61.♡.73.102
글이 밑으로 수두룩 더 있는데.. 다모앙 에디터가 짤라 먹었습니다!
댓글을 작성하려면 이 필요합니다.