GTK 4.24, 분수 배율과 화면 표시를 더 정교하게 다듬다

GTK 4.24, 분수 배율과 화면 표시를 더 정교하게 다듬다

Linux의 어플리케이션들은 버튼이나 입력창 하나하나를 매번 직접 만들지 않습니다. GTK같은 '공통 도구 상자(툴킷)'을 활용해서 기본 어플리케이션 화면을 구현합니다.

GTK는 화면을 그리는 것 외에도 창 크기 조절, 키보드 입력, 그래픽 출력처럼 앱과 OS 사이의 수많은 동작을 중간에서 관리하고 있습니다. 그렇다보니 GTK 라이브러리가 하나만 개선되어도 이를 사용하는 수많은 Linux 어플리케이션들이 자연스레 좋아지게 되는 것이죠.

최근 발표된 GTK 4.24는 모던 데스크톱 환경인 GNOME 51의 기반이 되는 중요한 업데이트라고 생각합니다. Linux 생태계 전체의 사용감을 바꿔놓을 핵심 변화라 많은 관심이 쏠리고 있습니다.

Wayland 환경의 변화

Wayland의 Blur 이펙트 (출처 : Phoronix)

이번 GTK 4.2에서는 Wayland의 ext-background-effect 프로토콜 지원이 추가됐습니다. 이 덕분에 반투명한 터미널 창 뒤로 바탕화면이 단순히 비치는 효과를 넘어서 자연스럽게 흐려지는 블러(Blur) 효과를 구현할 수 있게 되었죠.

텍스트 입력 기능도 물론 개선되었습니다. Wayland text-input 프로토콜 3.2 를 지원하면서, 스크린 킵조드나 한글 입력기처럼 입력을 중간에서 중개하는 프로그램들이 앱과 훨씬 더 정확하게 정보를 주고 받을 수 있게 되었습니다. 한글을 비롤한 다양한 언어 환경에서 훨씬 안정적인 입력을 기대할 수 있겠습니다.

분수 배율(Fractional Scaling) 픽셀 정렬

Windows의 화면 비율 설정 화면
Windows의 화면 비율 설정 화면

고해상도 노트북에서 글자나 아이콘을 키우기 위해 화면 비율을 125%나 150% 같은 분수 단위로 설정하는 경우가 많습니다. Windows같은 경우도 비슷한 설정이 있죠. 다만 모니터의 실제 픽셀은 정수 단위이다 보니, 경계선이 픽셀 사이에 걸치면 글씨나 선이 옅고 흐릿하게 보이는 문제가 생기죠.

GTK 4.24는 이런 분수 배율 환겨엥서 화면 요소를 장치 픽셀 경계에 딱 맞게 정렬하도록 개선되었습니다. 즉, 경계선을 대충 걸쳐서 흐리게 만드는 대신, 눈금에 맞춰서 깔끔하게 잘라내는 방식으로, 얇은 선이나 작은 글씨도 한결 또렷하게 보이게 됐습니다.

프레임 표시와 끊김 문제

화면 출력 시점도 다시 다듬었습니다. 앱이 다음 화면을 준비하고 모니터로 내보내는 타이밍을 관리하는 GDK 프레임 클럭을 재작업하여, 프레임이 제때 표시되도록 정밀도를 높이고 화면 끊김(렉) 현상을 크게 줄였습니다.

Android용 GTK4 역시 새로고침 주기(수직 동기화)에 맞춰 프레임 타이밍을 정교하게 다듬었습니다. 당장 눈에 띄는 큰 변화는 아니지만, 스크롤을 내리거나 애니메이션이 들어갈 때 한층 부드러운 느낌을 체감하실 수 있다고 생각됩니다.

원문 뉴스 : Phoronix


🐧 Linuxroom의 생각 :

GTK는 GIMP Toolkit의 약자입니다.

원래 처음부터 데스크톱 범용 라이브러리로 만들어진게 아니라 오픈소스 이미지 프로그램인 GIMP를 개발하는 과정에서 버튼이나 메뉴 같은 화면 요소를 편리하게 작성하기 위해 만들어진 도구 모음에서 유래되었습니다.

지금은 GIMP만을 위한 도구가 아닌, Linux 데스크탑 생태계를 대표하는 핵심 GUI 라이브러리로 성장했습니다.

GTK의 이번 업데이트는 눈에 띄는 대형 기능 하나보다 화면을 매일 바라보는 순간의 작은 불편을 줄이는 쪽에 가깝다고 생각합니다.

특히 125%나 150% 배율을 쓰는 노트북에서 글자와 선이 또렷하게 보이는지는 사양표보다 실제 만족도에 더 직접적인 영향을 줍니다. 더불어 Wayland 전용 프로토콜과 입력 처리가 함께 발전하는 점도 좋다고 생각합니다.

다만 세션 저장 기능이 다음 릴리스로 넘어간 것은 조금 아쉽습니다. GTK 앱을 만드는 개발자라면 이번 버전의 렌더링과 접근성 개선을 먼저 시험해 볼 만하지만, 일반 유저는 배포판의 정식 업데이트를 기다리면서 GNOME과 앱들이 새 기능을 얼마나 활용하는지 관망하시는게 좋을 것 같다는 생각이 듭니다.


※ 각주

[1] GTK: Linux등에서 창, 버튼, 입력 기능을 애플리케이션에 제공하는 그래픽 사용자 인터페이스 도구 모음입니다.

[2] Wayland: 그래픽 애플리케이션과 화면 표시 장치가 통신하는 현대적인 디스플레이 프로토콜입니다.

[3] 프로토콜: 서로 다른 프로그램이나 장치가 정보를 주고받을 때 따르는 약속입니다.

[4] 분수 배율: 화면 크기를 125%나 150%처럼 정수가 아닌 비율로 확대하는 설정입니다.

[5] GDK 프레임 클럭: GTK 프로그램의 화면 갱신 시점을 관리해 준비된 프레임을 표시하도록 돕는 구성 요소입니다.

[6] SVG: 선과 도형 정보로 이미지를 저장해 확대해도 가장자리가 선명한 그래픽 형식입니다.

[7] 수직 동기화: 그래픽 카드의 화면 출력 시점을 모니터의 새로 고침 주기에 맞추는 방식입니다.