I3 (창 관리자)
1. 개요
I3는 타일링 윈도우 매니저로, 사용자가 창의 위치와 크기를 직접 제어하는 대신, 자동으로 창을 배열하여 화면 공간을 효율적으로 활용한다. Xlib 대신 XCB를 사용하고, 텍스트 편집기 Vim과 유사한 모드를 지원하며, 창 관리를 위한 트리 구조를 사용한다. 설정은 텍스트 파일로 이루어져 사용자가 쉽게 사용자 정의할 수 있으며, 다중 모니터 환경을 지원한다.
-
창 관리자 -
파일 탐색기
파일 탐색기는 윈도우 운영체제에서 파일, 폴더 등을 관리하는 시스템 유틸리티로, 윈도우 95부터 시작하여 리본 인터페이스, 다크 모드, 탭 기능 추가 등 지속적인 개선을 거쳐 사용자 편의성을 높여왔다. -
창 관리자 -
오픈박스
오픈박스는 X 윈도 시스템을 위한 자유-오픈 소스 윈도우 매니저이며, 설정 파일을 통해 마우스 및 키 바인딩을 설정하고, 동적 메뉴 시스템을 갖춰 창 관리 방식을 설정하고 기능을 확장할 수 있다. -
BSD 라이선스 소프트웨어 -
V8 (자바스크립트 엔진)
V8은 구글이 개발한 오픈 소스 자바스크립트 엔진으로, 자바스크립트 코드 실행 속도 향상을 위해 여러 컴파일러를 거쳐 크롬, 노드.js 등에서 활용된다. -
BSD 라이선스 소프트웨어 -
VP9
VP9는 구글이 개발한 오픈 소스 비디오 코덱으로, VP8보다 압축 효율을 높이고 HEVC보다 나은 성능을 목표로 개발되었으며, WebM 형식으로 사용되고 주요 웹 브라우저와 넷플릭스, 유튜브 등에서 지원했으나 AV1의 등장으로 개발이 중단되었다. -
자유 X 윈도 매니저 -
Xfce
Xfce는 올리비에 푸르당이 1996년에 시작한 GTK+ 기반의 자유 소프트웨어 데스크톱 환경으로, 가벼운 사용감과 모듈화된 구조, 사용자 정의 용이성이 특징이며 낮은 사양의 컴퓨터에서도 원활하게 실행되도록 설계되었다. -
자유 X 윈도 매니저 -
플럭스박스
플럭스박스는 데스크톱 환경을 자유롭게 사용자 정의할 수 있는 창 관리자로, 루트 메뉴, 작업 표시줄, 데스크톱 테마 설정 기능과 사용자 정의 가능한 키보드 단축키, 창 탭, 분할창 기능 등을 제공하며, 설정 파일은 `~/.fluxbox` 디렉터리에 위치하여 사용자가 직접 구성할 수 있다.
2. 설계 목적
i3의 주요 설계 목표는 다음과 같다.
* 사용자 기여를 장려하기 위해 잘 작성되고 문서화된 코드를 제공한다.
* Xlib 대신 XCB를 사용한다.
* 다중 모니터 기능을 올바르게 구현하여, 각 작업 공간이 특정 모니터에 고정되지 않고 가상 화면처럼 동작하게 한다. 이를 통해 모니터를 추가하거나 제거해도 창이 유지되도록 한다.
* 텍스트 편집기 vi 및 vim과 유사한 모드 개념을 도입한다.
* 창 관리를 위해 트리 구조를 기본 데이터 구조로 사용한다.
* UTF-8 문자 인코딩을 완전하게 지원한다.
이러한 핵심 목표 외에도 i3는 사용자 편의성과 효율성을 높이기 위한 몇 가지 중요한 설계 원칙을 따른다.
첫째, 설정은 순수한 텍스트 파일 (일반적으로 `~/.i3/config` 또는 `~/.config/i3/config`)을 통해 이루어진다. 이는 프로그래밍 지식이 없어도 사용자가 쉽게 설정을 변경할 수 있게 하며, OS나 X를 재시작하지 않고도 변경 사항을 바로 적용할 수 있다.
둘째, dwm, awesome, xmonad와 같은 다른 타일형 윈도우 매니저와는 달리 창 관리를 사용자에게 맡긴다. 창은 '컨테이너'라는 단위로 관리되며, 사용자는 이 컨테이너를 수직 또는 수평으로 분할하거나 크기를 조절할 수 있다. 또한 여러 창을 쌓아두거나(스태킹), 웹 브라우저의 탭처럼 묶어서(태빙) 관리할 수도 있다.
셋째, 다중 모니터 환경을 효율적으로 지원한다. 작업 공간은 특정 모니터에 종속되지 않고 모든 모니터에 걸쳐 공유된다. 따라서 사용자는 창을 여러 모니터 사이에서 자유롭게 이동시킬 수 있다.
이러한 설계는 XCB 라이브러리 채택과 9P 프로토콜 제거 등을 통해 프로그램과의 호환성을 높이고 빠르고 효율적인 창 배치를 가능하게 한다.
3. 특징
i3는 여러 독특한 특징을 가지고 있다.
설정 및 사용성:
* 설정은 일반 텍스트 파일(일반적으로 `~/.config/i3/config`에 위치)을 통해 이루어지므로, 복잡한 프로그래밍 지식 없이도 사용자 정의가 가능하다. 설정을 적용하기 위해 OS나 X를 재시작할 필요가 없다.
* 최초 실행 시에는 자세한 주석이 달린 설정 파일을 생성하는 옵션을 제공하여 사용자가 쉽게 설정을 이해하고 수정할 수 있도록 돕는다.
* 사용자는 "Mod 키"(일반적으로 Win 키 또는 Alt 키)와 다른 키 조합을 사용하여 창의 배치, 생성, 삭제 등을 조작한다.
* Vim과 유사한 "모드" 개념을 가지고 있어, 특정 작업을 위한 전용 모드(예: 크기 변경 모드)로 전환할 수 있다. 설정 파일을 수정하여 프로그램별로 창 동작을 다르게 설정하는 것도 가능하다.
* 기본 프로그램 실행기로 dmenu를 사용하지만, 다른 실행기로 변경할 수 있다.
* 화면 하단에 시스템 정보를 표시하는 i3bar라는 자체 상태 표시줄을 제공한다.
창 관리:
* dwm, awesome, xmonad와 같은 다른 타일형 윈도우 매니저와 달리, i3는 창 관리를 사용자에게 맡긴다. 창은 컨테이너 안에 배치되며, 이 컨테이너는 수직 또는 수평으로 분할하고 크기를 조절할 수 있다.
* 창을 쌓아 올리거나(스태킹) 웹 브라우저처럼 탭 형태로 묶어서 관리할 수도 있다. 스태킹 및 탭 모드에서는 창 제목 표시줄을 통해 창을 전환할 수 있다.
* 트리 구조를 사용하여 창을 관리하므로, 다른 창 관리자보다 더 유연한 레이아웃 구성이 가능하다.
* 비밀번호 입력 창과 같은 특정 팝업 창은 기본적으로 타일링되지 않고 다른 창 위에 뜨는 플로팅 창으로 나타난다. 이 플로팅 창은 GNOME이나 KDE Plasma 환경에서처럼 자유롭게 이동하거나 크기를 조절할 수 있으며, 개발자는 플로팅 창을 주로 팝업 창 용도로 사용하도록 의도했다.
기술적 특징:
* 다중 모니터 환경을 잘 지원하며, 작업 공간이 모니터 간에 공유되어 창을 쉽게 이동시킬 수 있다. 화면 구성을 빠르게 변경해야 하는 상황(예: 프로젝터 연결)에 유연하게 대응한다.
* Xlib 대신 XCB 라이브러리를 사용하여 더 빠른 성능을 추구한다.
* UTF-8 인코딩을 완벽하게 지원하며, Pango 라이브러리를 통해 다양한 언어의 문자를 올바르게 표시할 수 있다.
* 9P 프로토콜을 사용하지 않아 wmii보다 유연한 프로세스 간 통신(IPC)이 가능하며, i3 실행 중에도 다른 프로그램과의 명령 수수가 용이하다.
* 소스 코드가 읽기 쉽게 작성되어 있고 문서화가 잘 되어 있다.
* 컴포지팅 윈도우 매니저와 비교하여 민첩한 동작을 기대할 수 있다.
* 2017년 기준으로도 활발하게 개발이 진행되고 있으며, 개발은 GitHub의 i3/i3 저장소에서 이루어진다.
4. 갤러리
--
--
--