my-i3

i3에 대해서 기존 DE(Desktop Environment) 사용자의 시선에서 알아보도록하자.

i3?

i3은 GNU/Linux, BSD 운영체제를 위한 Tiling window manager 중 하나임.

Tiling window manager?

흔하게 접할 수 있는 TWM에는 윈도우즈(Windows)의 타일링 시스템이 있다. 시작+방향키 단축키나, 창을 한쪽으로 드래그해서 각 윈도우(창)들을 겹치지 않게 정렬을 해본 기억이 있을 것이다. 이러한 메커니즘으로 창들을 정렬할 수 있게 하는 프로그램.

  • X11의 twm(Tab window manager)와는 다르다.

왜 i3 인가?

i3는 TWM중에서 사용이 제일 쉽다고 느끼고 무엇보다도 문서화가 아주 잘 되어 있고 사용자들도 많으므로 사용중 문제가 생겼거나, 궁금한 점은 다양한 커뮤니티를 통해 순식간에 해결할 수 있다는 점. 커뮤니티를 사랑하는 사람에게는 이 장점은 얼마나 매력적일까.

나의 DE를 완전히 대체할 수 있을까?

가벼워야 하는 환경(저사양, 노트북)에서 적극적으로 사용하고자 한다면 DE를 사용하지 않고 i3를 사용하는 것을 추천한다… 하지만 이에 따른 부수적인 설정은 필히 따라오는 법이니, 자신의 상황에 맞춰 선택하자.

모든 유저들이 i3를 사용함으로써 생산성을 높여준다거나 편리하다고는 안한다. 20년을 넘게 기존 윈도우즈 시스템과 DE들에 적응을 했는데 갑자기 폭발적인 생산성이 증가할까? 그 편리함의 앞에는 러닝-커브가 있다.

하지만 걱정마라, 이 커브는 매우 완만하다.

더 자세히…

기본적으로 i3의 핵심 컨셉은 아래와 같다.

  • 콘텐츠 우선
  • i3의 설정은 프로그래밍을 몰라도 할 수 있다.
  • 창의 정렬은 사용자의 의도대로 되어야 한다.
  • 컨테이너 안에 존재하는 창은 수직/수평 분할이 가능하다.
  • 원한다면 창의 사이즈도 조절 가능하다.
  • 원한다면 탭 시스템처럼 중첩도 가능하다.
  • 좋은 문서, 깔끔한 코드.

DE, 윈도우즈를 사용할때 창이 많으면 고생이고 Alt+Tab같은 단축키가 있다곤 하지만 찾기가 힘들고.. 타일링 시스템이 내 마음대로 되지 않는 상황이 많았고…

결론은 마우스의 최소한의 사용으로 빠르고 정확하게 컨텐츠 중심의 화면 트리를 구성하고 내가 원하는 창을 찾을 수 있도록해보자는 목표이다.

내 리눅스에서 되는거야?

어떠한 환경이든 사용이 가능하다.

기존 DE(Gnome, KDE, Xfce등...)에서 사용할 수 있다. 물론 DE 내부에 직접적으로 적용 된다는 뜻은 아니다.

어? i3-gaps는 뭐야?

일부 리눅스 배포판의 저장소(repository)들이 i3의 패키지의 업스트림을 i3-gaps에서 받아온다. i3-gaps는 i3의 fork 판이며 이름 그대로 Gaps(윈도우 간의 여백)과 관련된 기능이 추가되어 있다.

gaps 관련 기능이 필요할 것 같다 싶으면 사용하는 것을 추천한다. 이외 기능/설정 상의 차이는 없다.

빨리 설치해보자

각 배포판 저장소에서 i3를 설치하자. 일부 DE를 설치한 사람은 새션을 로그아웃 후 DM 로그인 시 i3를 선택 후 로그인해주면 된다.

DE를 사용중이지 않거나, Arch Linux와 같이 깔끔한 상태에서 설치했다면 컴퓨터 환경에 맞는 드라이버나 lib들을 설치한 후 Xorg와 i3를 설치해주면 된다. 물론 추가적인 설정을 해줘한다. (폰트, DM, 기타 유용한 어플리케이션들…)

배포판별 다운로드

사용해보자

설치 후 정상적으로 실행했으면 아마 검은배경과 이상한 구시대적 상태바가 보이면서 설정할 수 있는 터미널 창이 하나 뜰텐데, 바로 $mod키의 설정이다. Win키를 사용할 것인지, Alt키를 사용할 것인지 자신의 키보드나 편의에 맞게 할당해주자.

first-config

이후에는 당황 하지말고 우선 아래와 같은 키 바인딩을 살펴보자

layout1

$mod의 기본 레이아웃.

layout2

$mod + Shift의 레이아웃

간단히 키바인딩을 나열해보자면…

  • $mod+Enter 터미널 열기
  • $mod+j,k,k,l or $mod+left,down,up,right 윈도우 간의 포커스를 이동
  • $mod+d dmenu 열기
  • $mod+v 수직분할 모드
  • $mod+h 수평분할 모드
  • $mod+w 탭 레이아웃
  • $mod+e 기본 레이아웃
  • $mod+r 크기 조정 모드
  • $mod+Shift+j,k,l or $mod+Shift+left...right 창 위치 변경

감이 좀 잡히는가? 하나하나 눌러보면서 이 키들이 어떠한 역할로 작동하는지를 살펴보면 좋을 것이다. 물론 감이 안잡혀도 상관이 없다. 왜냐면 우리는 마음대로 키바인딩을 설정해줄 수 있으니까.

Deep Dive

이 문서는 무료로 해줍니다.

i3 Documents <– 헛소리 없음

그래서…

나도 뉴비다 뉴비. i3를 사용한지는 글작성하는 시기쯤엔 3개월 쯤 됐는데… 이렇게만 사용해봐도 충분히 다른 사람들에게 적극적으로 추천할만 하다. 확실히 적응하기 까지의 러닝-커브는 존재하긴 한다. 하지만 어느정도 사용할 수 있게 된다면 앞선 투자비용에 대비 생산률은 대폭 상승했다.

내 환경

시간이 생긴다면 dotfiles를 정리해서 올릴 생각이다. 기본적으로 대체 가능 어플리케이션들은 아래와 같다.