리눅스 데스크탑 환경 소개


목표

글 작성 시점(2022년 12월)을 기준으로 무난한 개발자용 작업 환경을 구성한다.

추천 OS

Arch linux를 사용하자.

전에는 무난한 ubuntu나 debian stable을 쓰는 것이 좋지 않을까? 생각했던 적이 있었지만, 어지간한 문제는 혼자 해결할 자신이 있다면 archlinux를 쓰는 편이 좋다.

  • 어지간한 패키지는 최신 버전으로 업데이트되기 때문에, 구버전 라이브러리를 써서 나오는 문제는 다 해결됨
  • debian unstable보다는… 안정적인 것 같음(?)
  • 타 배포판에 비해 유저베이스가 더 개발자 친화적?

Shell

Zsh, 그리고 oh-my-zsh를 사용한다.

일단 z 플러그인을 사용하는 것만으로도 bash 대비 100배 낫다.

Boot loader

Grub을 사용하자.

어차피 부팅 시점에만 돌아가는 부트로더는 성능이나 기능보다 안정성이 훨씬 중요함. Grub이 경험상 가장 무난.

GUI

아직은 X11이다, 아직은…

화려하고 부드러운 화면 이동을 원하는 게 아니기 때문에, 여전히 X11이 안정적이고 무난하게 구동할 수 있는 최적의 선택이다. 특히나 엔비디아 그래픽카드를 쓴다면 wayland는 몹시 불안정하고 종종 화면의 일부가 잠깐 초록색으로 깜박이는 문제가 발생해서 추천하기가 어렵다.

Display manager

Lightdm을 사용하자.

GDM이니 뭐니 다른 후보에 비해 훨씬 가볍고 구동이 빠르다. greetd가 훨씬 가벼울 것 같아서 기대가 많았는데, 이게 초기에 X11을 띄워주는 greeter 모듈(greetd는 플러그인 비슷하게 로그인 화면을 설정할 수 있다)이 따로 없어서 오히려 실행하는 데 시간이 더 걸리는 감이 있다. 예를 들면, lightdm은 무지성으로 기본 로그인 username에 암호만 입력하면 바로 깜박임 없이 awesomewm이 실행되는데, greetd의 경우 현재의 greeter는 X11을 쓰려면 startx를 실행하게 되는데, 뒤늦게 X11을 로딩하는 셈이기 때문에 오히려 체감상 더 느리게 여겨졌다.

Window manager

awesomewm, dwm, xmonad 중 하나를 사용하십시오. 나는 awesomewm을 쓴다.

윈도우나 맥 대신 리눅스 데스크탑 개발 환경을 구성하는 이유 중 하나가 이런 단순하고 강력한 개발자 전용 툴이다. 위에 추천한 세 개의 창 관리자는 모두 tile 방식을 지원하는데, 마우스 없이 키보드 만으로도 창 관리가 가능해지기 때문에 더 빠르게 이용할 수 있다.

Terminal emulator

나는 alacritty를 쓰지만, kitty나 terminator도 추천할 만 하다.

무조건 super+shift+enter를 눌렀을 때 즉각적으로 터미널 창이 나와야만 한다. 그럴려면 가볍고 그래픽 가속을 지원하는 alacritty가 최선의 선택이었다. 그치만 terminator를 사용한다면 그것은 바로… 주요 코드가 python으로 작성되어 있기 때문에 상대적으로 수정이 간편하다는 점일 것이다. 이를테면 메인 터미널은 폰트 14, 옆으로 치워놓은 터미널은 폰트 12와 같은 식으로 설정하는 게 파이썬 코드 작성으로 가능하다.