I use arch, btw
잡담 •


Way to Arch
History of my machines
저는 예전부터 아래 조합을 거의 고정적으로 사용했습니다.
- Windows 데스크탑
- MacBook
- 데비안 계열 서버용 데스크탑 2대
MacOS는 개발 하다 보면 Safari나 XCode가 필연적으로 필요해지는 순간이 와서 항상 고정으로 사용했습니다.
서버는 안정적으로 운영하고 싶어서 계속 데비안 계열 OS를 사용했고요. 진입점도 많이 낮아서 사실 설치하는 데 드는 공은 Windows랑 별반 다를 것도 없습니다.
Windows는 사실 아주 싫어하면서도 계속 썼습니다. 꽤 오랫동안 인생을 갈아 넣은 MineCraft Bedrock Edition부터 시작해서 오랫동안 즐겨오던 게임들이 Windows가 아니면 정상적으로 구동이 불가능해서요.
터미널도 못 쓸 수준이고, WSL이 나오면서 상황이 많이 좋아졌지만, 사실 여전히 너무 부족한 게 많습니다.
사용성도 사실 처참한 수준입니다. 시작 메뉴에서 검색하면 쓸데없이 인터넷 검색이 되고, OS 이름값 못하게 제대로 된 Window Manager도 없고, 광고랑 트래커 투성이에, 사실 전 아직도 왜 메모장에 Copilot이 붙어야 하는지도 잘 모르겠습니다.
이런 실정에, 사양 좋은 데스크탑을 쓰면서도 작업은 항상 - 데스크탑을 쓰는 중에도 - ssh로 제 개발 서버에 붙어서 진행했습니다.
와중에도 일주일에 한두시간 하는 게임과, OS 붙들고 씨름할 시간이 없어지는 나이가 되어버린 탓에 오랫동안 방치만 하고 있었습니다.
그러다 몇 가지 계기가 연쇄적으로 생겨 결국 Arch로 넘어갈 결심을 하게 됐습니다.
- 전 오래 전부터 Hyprland랑 비슷한 셋업을 선호해 왔습니다.
- 거기다 요즘 부쩍 생산성과 인지 부하 줄이기에 더욱 관심이 많아졌습니다.
- 자극이 많이 되는 Pewdiepie의 비디오가 있었습니다.
- 게임 유튜버도 Linux를 쓰는데…SWE라고 하면서 Windows를..?
- 아주 가끔 게임을 하는데, 끝낼 때마다 시간을 내다 버린 것 같은 영 유쾌하지 않은 느낌이 듭니다.
Installation steps
무슨 일이 벌어질지 모르니, 한 10년쯤 전에 쓰던 랩탑에다 설치를 진행해 봤습니다.
몇 번 설치를 잘못해서 부팅이 안되거나, 커널 패닉이 생겨버리더라고요. 의도하진 않았지만 이 덕분에 익숙해져서, 네트워크 잡고 디스크 파티션 잡고 쭉 설치해 나가는 과정을 스피드런 할 수도 있겠다 싶었습니다.
짬짬이 시간 내서 이틀정도 투자하니 hyprland까지 설치하고 최소한 쓸 수 있는 환경을 자신있게 만들 수 있겠다 싶더라고요.
이때 바로 메인 데스크탑에 C 드라이브에 있는 자료들 백업하고, 부팅 USB 메인 데스크탑에 연결하고, 시원하게 C 드라이브 통째로 밀어버리고 설치했습니다.
근데 이게 다른 건 상관 없는데..GPU가 달라버린 탓에 설치해야하는 드라이버가 많이 다르더라고요.

세팅 다 했는데 kitty가 실행이 안돼 한참 헤매다가, 엔비디아 드라이버랑 유틸리티 잘못 설치하고 커널 패닉도 한 번 났습니다.
사실 이런 상황을 제일 걱정했던 건데, hyprland를 써보자마자 ‘이게 내가 찾아 헤매던 진짜 Window Manager다’ 싶었고, 정말 제 입맛에 맞는 진짜 저의 기기를 이제서야 가졌단 느낌이 들며 도파민이 며칠째 터지던 와중이라 큰 이슈로 안 느껴졌습니다.
pacman -Syy
pacman -S archinstall
archinstall사실 간단하게 하려면 이제 위와 같이 archinstall 스크립트를 활용하면 그냥 적당히 클릭 몇 번으로도 설치할 수 있습니다!
굳이 험난한 길을 가는 재미가 많이 떨어질 순 있지만, 당장 부팅해서 뭔가 쓰고싶다 하면 고려해 볼만한 선택지지 않을까 합니다.
Why I love Arch
Tiling Window Manager
저는 사실 개발하면서 대부분의 조작이 ‘내가 어디에 있어야할 지 찾는 것’이라고 생각합니다.
코드를 작성하는 중에는 내가 어떤 파일을 수정 / 생성해야 하는지 일 것이고,
브라우저에 검색하기, 테스트 화면으로 이동하기 등 내가 원하는 위치를 찾는 데 시간을 많이 할애합니다.
이때 전 아래 순서로 인지 부하가 적다고 생각합니다.
- 특정 key binding으로 탐색
- 원하는 것을 검색
- 눈으로 여러 프로그램이나 파일들을 탐색
GUI가 생기면서 대부분 운영체제가 3번을 권장하는데, 1번이나 2번에 익숙해지기 전까지는 3번이 얼마나 비효율적인지를 잘 몰랐던 것 같습니다.
창들 펼쳐두고 어디있나 눈으로 하나씩 살펴보는 게 시간으로 보면 얼마 안 된다고 생각할 수 있지만 결국 그 사이에 흐름이 깨지는 게 정말 싫더라고요.

Tiling Window Manager는 위와 같이 window를 겹치지 않게 배치해주며, 대개 workspace (MacOS에서 Mission Control의 spaces같은)을 지원합니다.
이러면 눈으로 창을 찾는 수고가 훨씬 줄어들고, 키보드만으로 창이나 화면을 전환하기도 훨씬 쉬워집니다.
1 - 개발 환경
2 - 브라우저 (검색용)
3 - 브라우저 (Figma같은 레퍼런스 확인용)
4 - 소셜 (Slack 등)
5 - 기타 (잠깐 봐야하는 창들)
저는 위와 같이 workspace들을 고정해서 사용하고, 터미널 등 자주 사용하는 애플리케이션은 단축키로 열 수 있도록 세팅해뒀습니다.
아주 예전엔 VSCode 같은 거 쓰면서 file explorer나 상단에 고정된 buffer들에서 파일을 찾기도 했는데, 이건 진작부터 fuzzy find로 탐색할 수 있게 바꿔뒀고요.
이렇게 되면 상술했던 ‘눈으로 탐색’까지 갈 일 없이, 항상 key binding 혹은 검색으로 내가 원하는 곳에 갈 수 있게 됩니다.
I can build from scratch
사실 Arch는 거의 깡통에 가깝습니다. 위에서 언급한 장점이 다른 OS에서도 가능한 게 아니냐고 할 수 있지만, OS가 기본으로 제공해주는 기능들을 override하면서 내 입맛대로 만드는 게 생각보다 쉬운 일은 아닙니다.
Window Manager를 예로 들면, 일단 Windows에는 상술한 것처럼 마음에 드는 window manager가 없습니다.
MacOS에서 yabai와 skhd로 어느정도 흉내는 낼 수 있지만, 맥 버전이 올라가면서 특정 workspace로 window를 보낼 수가 없습니다.
게다가 기본적으로 굉장히 요란한 애니메이션들이 있는데, reduce motion 옵션을 켜도 굉장히 느린 opacity 전환되는 애니메이션을 봐야합니다.
사용자는 많을지 몰라도, 이렇게 기기를 커스터마이징하는 데 있어서는 커뮤니티가 훨씬 소극적인 것도 한 몫 합니다.

또 이런 것들 ricing하는 재미도 소소하게 있습니다.
쓸데없는 것들 아무것도 없이 bash scripting과 css만으로 내가 필요한 기능들 알아서 만들어둘 수 있는게 정말 큰 장점이라고 생각합니다.
서버들 상태 저기서 보여주는 게 꽤 오랜 소원이었는데, waybar로는 너무 쉽게 달성해버렸네요.

심지어는 이런 알림창까지 직접 꾸밀 수 있습니다!
’할 수 있다’ 보다는 ‘해야만 한다’라고 표현해야 더 알맞긴 할 것 같긴 하지만요.
물론, 단점도 있긴 합니다.
- 몇몇 소수 유저들이 개인 시간을 투자해서 만든 툴에 의존해서 시스템을 만들게 됩니다.
- 서로 다른 그룹에서 만든 툴이라, 커스터마이징 하는 방법도 제각기 다릅니다.
어디서는 scripting에 bash를, 어디선 lua를 쓰고, 여기선 jsonc, 저기선 qml, 또 다른데선 conf 파일 등 서로 다른 규칙을 사용합니다.
- 물론 한 번 세팅해두면 여러번 건들진 않아서 그렇게 큰 단점은 아니지 않나 싶기도 합니다.
- 설치기에서 언급한 것처럼, 드라이버 설치 잘못하다 kernal panic 생기기도 하고 그럽니다. 밑바닥부터 내가 만들 수 있는 자유가 있단 건, 어딘가 문제가 생겼을 때 내가 찾아보고 해결해야 한다는 뜻이기도 합니다.
Muscle Memory just works
키보드에서 단축키로 대부분 원하는 작업을 처리할 수 있으니, 그냥 머슬 메모리로 대부분을 해결할 수 있습니다.
이건 예전부터 다른 환경에서도 구현해보고 싶은 마음에
- Windows: PowerToys, Auto Hot Key
- MacOS: Karabiner Elements, Hammerspoon
이 조합으로 열심히 세팅을 해봤는데, 앞서 말씀드렸듯 keyd처럼 디바이스 이벤트를 바로 후킹하지 못하는 게 대부분이라 시스템 단축키와 충돌하는 경우 해결할 수 없는 경우도 많고, 동작도 불안정합니다.
아직 tmux / vim이랑 많이 친해지지 못해서 갈 길이 조금 남긴 했지만, 쓰는 내내 편안함을 줍니다.
소소한 추가 사용기들

NeoVim을 다시 쓰기 시작했습니다.
원래는 Cursor에 Vim keymap을 설정해서 쓰고 있었는데, 천천히 NeoVim 비중도 많이 올려볼 생각입니다.
Claude Code Max가 있긴 한데, tab completion이 생각보다 반복 작업을 꽤 많이 줄여주기도 하고, 간단한 문서 뽑거나, Claude 말고 다른 모델들한테 일 시키고 싶을 때 썼었는데, 차차 익숙해지면 Vim을 메인으로 쓰고, AI한테 하청 줄 때만 켜면 되지 않을까 하는 생각입니다.
최종 목표는 결국 개발할 때 개발 말고는 아무것도 생각핮 않아도 되는 게 목표입니다.

Wofi는 딱히 중요하지 않다고 생각해서 claude code한테 완전히 위임해서 작업해봤는데, 꽤 마음에 들게 결과물을 뽑아줬습니다.
추가로, SteamOS 덕분에 Linux에서도 돌아가는 게임이 굉장히 많아졌더라고요.
예전엔 Linux 장점 중 하나가 게임이 불가능해서 개발에 강제로 집중해야만 한다는 것도 있었는데, 이 장점은 꽤 많이 퇴색돼버렸네요.
그래도 온라인 게임들은 멍청한 안티치트 때문에 실행이 불가능한 게 많고, PVE는 이제 즐길만큼 즐긴 탓에 게임에 집중 뺏길 일은 없지 않을까 합니다.

쓸 일은 없지만 OBS도 설치해봤습니다.

Arch 설치하자마자 처음으로 내 기기를 쓰게 되었다는 생각이 들면서, 맥북이 너무 쓰기 싫어져서 Thinkpad 하나 사서 Arch 설치해서 쓰고 있습니다.
근데 확실히 하드웨어 만듦새는 맥북이 많이 좋다는 생각이 동시에 들긴 하더라고요…
소프트웨어가 주는 만족도가 훨씬 커서 그래도 훨씬 만족하면서 쓰는 중입니다.
