Ruby 스크립트를 활용한 Omarchy 커스터마이징 및 설정 자동화

Customizing Omarchy with Ruby

작성자
발행일
2025년 10월 31일

핵심 요약

  • 1 Ruby 스크립트를 활용하여 Omarchy 운영체제 환경을 사용자 정의하고 재현 가능하도록 자동화하는 방법을 설명합니다.
  • 2 Bash 스크립트 대신 Ruby를 사용하여 dotfiles, Zsh 셸, Hyprland 설정 등 복잡한 시스템 커스터마이징 과정을 효율적으로 관리합니다.
  • 3 `setup.rb` 파일을 통해 `install-*` 패턴의 모듈화된 스크립트들을 로드하여 각 설정 단계를 명확하게 분리하고 유지보수를 용이하게 합니다.

도입

이 글은 Omarchy 운영체제 환경을 개인화하고 새로운 머신에 쉽게 복제할 수 있도록 설정 자동화 전략을 제시합니다. 기존에 다른 개발자가 Bash 스크립트를 사용하여 유사한 목표를 달성한 방식과 대조적으로, 저자는 Ruby가 더 나은 언어라고 판단하여 모든 설정 스크립트를 Ruby로 작성했습니다. Ruby는 Omarchy에 기본 설치되어 있기에 추가적인 의존성 없이 활용 가능하며, 본문은 Ruby 스크립트를 통해 시스템 설정을 체계적으로 관리하는 방법을 구체적인 예시와 함께 소개합니다.

저자의 Omarchy 커스터마이징 전략은 setup.rb라는 중앙 스크립트를 기반으로 합니다. 이 스크립트는 사용자 홈 디렉토리를 @home 인스턴스 변수에 할당하여 경로 지정을 간소화하고, install-* 패턴을 따르는 모든 Ruby 파일을 로드하여 실행합니다. 이를 통해 각 설정 작업을 독립적인 파일로 분리하여 관리할 수 있습니다.

Dotfiles 설정

install-dotfiles.rb 스크립트는 다음과 같은 단계를 수행합니다:

  • stow 패키지가 설치되어 있지 않으면 yay를 통해 설치합니다.

  • 사용자의 git 디렉토리로 이동하여 저자의 dotfiles 저장소를 클론합니다. 이미 존재하면 건너뜁니다.

  • 기존의 Alacritty, Ghostty, Neovim, Zsh, Hyprland 설정 파일들을 제거합니다.

  • dotfiles 저장소로 이동한 후 stow를 사용하여 해당 설정 파일들을 사용자 홈 디렉토리에 심볼릭 링크합니다.

  • 작업이 완료되면 원래 디렉토리로 돌아옵니다.

Zsh 셸 설정

install-zsh.rb 스크립트는 기본 셸을 Zsh로 변경하는 역할을 합니다:

  • 현재 셸이 이미 /usr/bin/zsh인지 확인합니다.

  • Zsh가 아니면 yay를 통해 Zsh를 설치하고 chsh 명령어를 사용하여 기본 셸을 Zsh로 변경합니다.

Hyprland 기본값 재정의

install-hyprland-overrides.rb 스크립트는 Hyprland 설정에 사용자 정의 오버라이드를 적용합니다:

  • ~/.config/hypr/hyprland.conf 파일에 source = ~/.config/hypr/overrides.conf 라인이 이미 존재하는지 확인합니다.

  • 해당 라인이 없으면 파일 끝에 이 라인을 추가하여 사용자 정의 설정 파일이 로드되도록 합니다.

이러한 모듈화된 접근 방식은 각 설정의 목적을 명확히 하고, 특정 설정을 추가하거나 제거할 때의 복잡성을 줄여줍니다.

결론

이 글은 Ruby 스크립트를 활용하여 Omarchy 시스템 환경을 효율적이고 재현 가능한 방식으로 커스터마이징하는 견고한 전략을 제시합니다. Bash 스크립트 대신 Ruby를 선택함으로써 저자는 보다 유연하고 강력한 스크립팅 환경을 구축했으며, dotfiles, 셸 설정, 데스크톱 환경 오버라이드와 같은 복잡한 작업들을 체계적으로 자동화했습니다. 이러한 접근 방식은 새로운 시스템에 동일한 설정을 신속하게 적용해야 할 때 매우 유용하며, Nmap, Burp Suite, ProtonVPN 등 다른 도구 설치에도 확장하여 적용할 수 있음을 시사합니다. Ruby를 통한 설정 자동화는 개발 워크플로우를 크게 개선할 수 있는 실용적인 해결책을 제공합니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!