저자의 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라인이 이미 존재하는지 확인합니다. -
해당 라인이 없으면 파일 끝에 이 라인을 추가하여 사용자 정의 설정 파일이 로드되도록 합니다.
이러한 모듈화된 접근 방식은 각 설정의 목적을 명확히 하고, 특정 설정을 추가하거나 제거할 때의 복잡성을 줄여줍니다.