기능가격문서블로그
mote 받기
← 블로그
릴리스·2026년 8월 7일·읽는 시간 4분

어떤 설치 양식이든 같은 모습이도록, GTK를 함께 싣기로 했다

같은 앱이 배포판마다 조금씩 다르게 보이는 이유는 대개 앱이 아니라 시스템에 깔린 툴킷 버전이에요. beta.2부터는 네 가지 설치 양식이 전부 같은 라이브러리를 안고 다녀요.

m
mote
설정 → 모양의 맨 아래 두 스위치. 켜져 있으면 강조색과 UI 글꼴이 mote의 것이고, 끄면 데스크톱의 값을 따라요.
설정 → 모양의 맨 아래 두 스위치. 켜져 있으면 강조색과 UI 글꼴이 mote의 것이고, 끄면 데스크톱의 값을 따라요.

리눅스 앱은 같은 빌드도 배포판마다 다르게 보일 수 있어요. 스위치 모양이 달라지고, 대화상자 여백이 어긋나고, 때로는 창이 열리지 않기도 하죠. 시스템마다 설치된 툴킷이 다르기 때문이에요.

mote도 두 가지 빌드를 관리해 왔어요. .deb는 시스템 GTK를 쓰고, AppImage·tarball·Flatpak은 필요한 라이브러리를 직접 담았죠.

beta.2부터는 빌드를 하나로 합쳤어요.

설치 방식은 달라도, 앱은 같아요

이제 .deb/opt/mote에 GTK 4.22와 libadwaita 1.9를 담아요. 시스템에 설치된 라이브러리와 상관없이 Ubuntu 22.04와 Debian 12에서 apt install로 설치할 수 있어요. 화면과 동작도 AppImage·tarball·Flatpak과 같고요.

함께 넣는 라이브러리는 Flatpak의 GNOME 런타임과 맞췄어요. GLib 2.88, Pango 1.56, HarfBuzz 11, cairo 1.18, fontconfig 2.16이에요. 오래된 배포판에서도 실행할 수 있도록 glibc 2.35 컨테이너에서 직접 빌드해요.

목표는 확인해야 할 경우의 수를 줄이는 거예요. 시스템 GTK를 쓰면 Ubuntu 버전마다 툴킷이 달라요. 24.04는 4.14, 24.10은 4.16, 25.04는 4.18이에요. 스타일을 한 줄 고칠 때마다 그 조합을 전부 확인해야 하죠. 이제는 설치 방식만 확인하면 돼요.

.deb를 없애는 방법도 고민했어요. 하지만 Ubuntu 데스크톱에서 apt는 가장 익숙한 설치 경로예요. AppImage는 실행이 약 140ms 느리고 FUSE가 필요해요. tarball에는 자동 업데이트가 없고, Flatpak은 샌드박스 예외와 약 1GB의 런타임이 필요하죠.

그래서 .deb를 없애는 대신, 안을 바꿨어요.

14MB로 일관성을 샀어요

대가는 있어요. .deb 용량은 4MB에서 34MB로 커졌어요. 같은 문서를 열었을 때 PSS 메모리도 115MB에서 129MB로 늘었고요. 앱에 담긴 라이브러리를 다른 GTK 앱과 공유할 수 없기 때문이에요.

성능은 유지됐어요. 키 입력부터 화면 표시까지 걸리는 p95 시간은 4.82ms에서 4.07ms로 줄었어요. 첫 화면이 뜨는 시간의 중앙값도 306ms에서 303ms로 조금 빨라졌고요. 앱을 열어 두기만 했을 때는 이전처럼 프레임을 그리지 않아요.

메모리 14MB를 더 쓰는 대신, 어느 배포판에서나 같은 앱을 얻었어요.

동봉한 툴킷을 올리는 일은 연 1회쯤의 정기 작업이에요. Flatpak의 GNOME 런타임이 오르면 동봉한 버전도 같이 올려요. 그때는 실험실의 여덟 행이 그 갱신의 관문이 돼요.

취향은 mote가, 접근성은 사용자가 정해요

브랜드 설정도 정리했어요. 강조색과 UI 글꼴은 mote의 기본값을 쓰고, libadwaita 위젯에도 똑같이 적용해요. 데스크톱 설정을 따르고 싶다면 설정 → 모양에서 두 스위치를 끄면 돼요.

대신 접근성 설정은 항상 사용자의 선택을 따라요. 텍스트 배율과 HiDPI 설정을 앱이 덮어쓰지 않아요. 큰 글자를 켠 사용자는 mote에서도 큰 글자를 볼 수 있어요. 다크 모드도 시스템·밝게·어둡게 중에서 직접 고를 수 있고요.

한글 입력은 여덟 가지 환경에서 확인했어요

툴킷이 바뀌면 입력기부터 살펴봐야 해요. 설치 방식과 ibus·fcitx5, X11·Wayland, Ubuntu 22.04·24.04를 조합한 여덟 가지 환경에서 한글 입력을 확인했어요. 모두 통과했어요.

개발용 검사 기능에 기대지 않도록 테스트도 고쳤어요. 이제 실제로 배포하는 파일을 설치한 뒤 한글 조합이 제대로 되는지 확인해요.

Ubuntu 버전과 세션, 입력기, 설치 방식이 다른 여덟 가지 환경에서 한글 입력 검사를 모두 통과한 모습
Ubuntu 버전과 세션, 입력기, 설치 방식이 다른 여덟 가지 환경에서 한글 입력 검사를 모두 통과한 모습

어디서나 같은 앱을 만드는 가장 확실한 방법은, 달라질 수 있는 조건부터 줄이는 거예요.

← 이전 글손으로 친 표를 그대로 지키는 표 편집다음 글 →이미지 붙여넣기가 확인 카드를 거치는 이유
RSS로 새 글 받기
글을 위한 기본
한국어
© 2026 mote
멘토그래드 (MentorGrad) · 대표 윤상빈 · 사업자등록번호 475-15-02958 · 통신판매업신고 2026-서울도봉-0075 · 서울특별시 도봉구 마들로13길 61, 씨드큐브 창동, 4층 C동 411H호 · 010-2012-3741 · support@motemd.com