도트파일 및 설정 관리 (Dotfiles)
Omarchy는 주로 ~/.config에 위치한 도트파일(Dotfiles)을 통해 시스템을 설정합니다. 이 파일들은 전적으로 사용자의 수정을 위해 제공되는 파일들입니다. /usr/share/omarchy에 있는 파일들은 Omarchy 시스템 자체의 자산이므로 직접 수정해서는 안 됩니다. 해당 파일의 설정을 변경하려면 ~/.config 내의 파일에서 값을 덮어써야 합니다.
핵심 설정 파일들은 Omarchy 메뉴(Super + Space)에서 직접 열 수 있습니다(Setup > Monitors, Setup > Keybindings, Setup > Input, Setup > Config > [file] 등). 이 방식을 사용하면 에디터를 종료했을 때 관련 서비스 프로세스가 자동으로 재시작됩니다(기본 에디터는 Neovim — 저장은 :wq! Setup > Defaults > Editor에서 변경 가능).
~/.config의 핵심 설정 파일 및 역할 목록:
| 파일 경로 | 주요 역할 및 설정 범위 |
|---|---|
~/.config/hypr/hyprland.lua | Hyprland 메인 설정 파일. Omarchy 기본값과 아래의 오버라이드 파일들을 로드합니다. Hyprland 설정 가이드 보기. |
~/.config/hypr/bindings.lua | 사용자 정의 단축키 및 기본 단축키 재정의. |
~/.config/hypr/monitors.lua | 모니터 해상도, 주사율, 다중 모니터 배치 위치 제어. |
~/.config/hypr/input.lua | 키보드 배열, 마우스 및 트랙패드 감도/동작 설정. |
~/.config/hypr/looknfeel.lua | 창 간격, 테두리, 애니메이션 및 시각적 외형 제어. |
~/.config/hypr/autostart.lua | 세션 로그인 시 시작할 백그라운드 프로세스 제어. |
~/.config/omarchy/shell.json | Omarchy Shell: 상단 바 위치/위젯, 화면 보호기, 잠금 및 유휴 시간 제어. |
~/.config/foot/foot.ini | 터미널 에뮬레이터 설정 (foot 기본). |
~/.XCompose | 빠른 이모지 및 이름/이메일 자동 완성 키 시퀀스 정의. 수정 후 omarchy-restart-xcompose 실행 필요. |
설정을 많이 변경하셨다면 이 도트파일들을 백업해 두는 것이 좋습니다. GNU Stow를 활용하면 관리가 매우 편리합니다.
세션 시작 시 사용자 앱 자동 실행
로그인할 때마다 실행할 데몬이나 스크립트가 있다면 ~/.config/hypr/autostart.lua에 추가하세요:
o.launch_on_start("my-service")
세션의 일부로 등록되어 로그아웃 시 정상 정리됩니다.
시스템 이벤트 훅 (Hooks) 실행
Omarchy는 주요 시스템 이벤트 발생 시 훅을 트리거합니다. ~/.config/omarchy/hooks/<event>.d/ 디렉터리에 실행 파일을 넣어두면 해당 이벤트 발생 시 자동으로 실행됩니다:
| 이벤트 | 실행 시점 |
|---|---|
post-boot | 데스크톱 환경 구동 완료 직후 |
post-update | omarchy update 수행 중 패키지 및 마이그레이션 완료 후 |
pre-refresh-pacman | omarchy refresh pacman이 패키지 설정을 동기화하기 전 |
theme-set | 테마 변경 후 (테마명이 $1로 전달) |
font-set | 폰트 변경 후 (폰트명이 $1로 전달) |
battery-low | 배터리 잔량 부족 시 (잔여 퍼센트가 $1로 전달) |
각 폴더에는 예시 형식인 .sample 파일이 들어 있습니다. 외부 스크립트를 설치하려면 omarchy hook install post-boot ~/my-hook을 사용하면 자동으로 복사되고 실행 권한이 부여됩니다.
사용자 정의 메뉴 항목 추가
~/.config/omarchy/extensions/omarchy-menu.jsonc를 수정하여 Omarchy 메뉴(Super + Space)에 나만의 항목을 추가할 수 있습니다. 점(.)으로 구분된 id로 계층을 지정합니다:
"personal": {"icon":"","label":"Personal"},
"personal.notes": {"icon":"","label":"Notes","action":"omarchy-launch-editor ~/notes"},
기존 id를 사용하면 해당 기본 메뉴 항목을 덮어씁니다.
Shell 환경 변수, 함수, 별칭 추가
자신만의 별칭(Aliases), 함수(Functions), 환경 변수(Exports)는 ~/.bashrc에 작성하세요. 이 파일은 시스템 업데이트 시에도 덮어쓰이지 않고 안전하게 보존됩니다.
Omarchy 내부 파일 수정에 관한 안내
자유롭게 시스템을 다룰 수 있지만 /usr/share/omarchy 아래의 파일을 직접 수정하는 것은 피하는 것이 좋습니다. 패키지 업데이트 시 덮어쓰이기 때문입니다. 대신 ~/.config/* 폴더에서 값을 오버라이드하세요.
예를 들어 ~/.config/hypr/bindings.lua에서 기본 단축키를 Obsidian 대신 Joplin으로 바꿀 수 있습니다:
hl.unbind("SUPER + SHIFT + O")
o.bind("SUPER + SHIFT + O", "Joplin", "joplin-desktop")
Omarchy 내부 소스코드를 직접 수정하고 싶다면 Update > Channel > Dev로 dev 채널로 전환하세요. ~/omarchy의 Git 리포지토리와 직접 연결되어 원하는 대로 소스코드를 개발할 수 있습니다.
설정 초기화 및 복원
설정이 꼬인 경우 Omarchy 메뉴의 Update > Config에서 개별 설정을 복원하거나, 터미널에서 omarchy reinstall configs를 실행하여 모든 설정을 초기 기본값으로 리셋할 수 있습니다.