집중하느라 시간을 잊을 때가 있으신가요? 그럴 땐 — 지랄발광 타이머.
다른 알람은 한 번 삑 울리고 끝나서 놓치기 쉽죠. 이 녀석은 다릅니다. 시간이 끝나면 창이 화면에서 부르르 떨고, 빨강↔노랑으로 번쩍번쩍, 다른 창 뒤에 숨어 있어도 맨 위로 튀어나와 당신을 붙잡습니다. 못 본 척? 불가능합니다. 아무 키나 누르거나 "그만!!"을 눌러야 멈춰요.
Windows용 Tauri 데스크톱 타이머/알람 앱. UI는 웹(HTML/CSS/JS), 로직은 Rust. OS에 내장된 WebView2를 쓰기 때문에 설치 파일 ~1.9MB / 실행 파일 ~8.7MB로 가볍다.
| 타이머 | 알람 | 시간 끝! |
|---|---|---|
![]() |
![]() |
![]() |
- 타이머 탭: 카운트다운. 프리셋(5/10/25분) + 분·초 스테퍼(+/−, 꾹 누르면 빨라짐). 시작/일시정지/리셋.
- 알람 탭: 시:분을 정해두면 그 시각에 한 번 울린다(1회성). 현재 시각도 같이 표시.
- 지랄발광: 시간이 다 되면 OS 창 자체가 흔들림 + 화면 번쩍 + 항상 맨 위로. 아무 키 / "그만!!"으로 정지.
- GitHub Releases에서
jiral-timer_x.y.z_x64-setup.exe를 다운로드. - "Windows의 PC 보호"(SmartScreen) 경고가 뜨면 — 서명 안 된 앱이라 그런 거예요. 둘 중 하나로 실행:
- 경고창에서 추가 정보 → 실행, 또는
- 받은 파일 우클릭 → 속성 → 하단 "차단 해제" 체크 → 확인 후 실행
(PowerShell이면:
Unblock-File "경로\jiral-timer_x.y.z_x64-setup.exe")
- 설치 마법사를 따르면 시작메뉴·바탕화면 바로가기가 생긴다. (WebView2는 Win10/11에 기본 내장)
필요: Rust (+ MSVC 빌드 도구), Node.js, WebView2(Win11 기본).
cd jiral-tauri
npm install # 최초 1회 (@tauri-apps/cli 등)
npm run tauri dev # 개발 실행 (핫리로드)npm run tauri build
# 결과물: src-tauri\target\release\bundle\nsis\지랄발광타이머_0.1.0_x64-setup.exe
# 실행 파일: src-tauri\target\release\jiral-tauri.exe첫 빌드 때 NSIS 도구를 받아 푸는 단계에서 드물게
액세스가 거부되었습니다 (os error 5)가 날 수 있다(백신이 새로 푼 파일을 잠깐 잠그는 경우). 그냥 한 번 더npm run tauri build하면 캐시가 채워져 정상 진행된다.
실행 파일에 인자를 주면 켜지자마자 자동으로 타이머/알람이 동작한다. 에이전트가 이 앱을 띄울 때 이 방식을 쓰면 된다.
| 인자 | 동작 |
|---|---|
--timer <분> |
그 분만큼 카운트다운 자동 시작. 예: --timer 25 (25분) |
--timer <분:초> |
분:초 카운트다운. 예: --timer 0:30 (30초), --timer 1:30 (1분 30초) |
--alarm <HH:MM> |
그 시각 알람을 켜고 대기. 예: --alarm 15:30 |
| (없음) | 평소 UI로 실행 (직접 설정) |
# 설치된 exe (설치 경로의 지랄발광타이머.exe)
& "$env:LOCALAPPDATA\지랄발광타이머\지랄발광타이머.exe" --timer 25
# 빌드한 실행 파일로 직접 (프로젝트 폴더에서)
& ".\src-tauri\target\release\jiral-tauri.exe" --alarm 15:30
# 개발 모드로 인자 전달 (-- 두 번: 첫 번째는 tauri-cli, 두 번째는 앱으로)
npm run tauri dev -- -- --timer 0:30- Tauri 2 + WebView2: 크롬을 통째로 싸는 Electron과 달리 OS 내장 WebView를 써서 용량이 ~40배 작다.
- 프론트엔드는 번들러 없는 정적
src/index.html(withGlobalTauri로window.__TAURI__직접 사용). - 창 흔들기·항상 맨 위·CLI 인자 파싱은 Rust 커맨드(
freakout_start/freakout_stop/get_launch_args)로 처리.
- 빌드 산출물(
src-tauri/target/, 설치 파일)은 git에 커밋하지 않는다(.gitignore 처리). - 소스만 push → 릴리스 때
npm run tauri build로 만든 설치 파일을 GitHub Release 자산으로 첨부.
src/index.html— UI + 타이머/알람 로직 (단일 파일, 번들러 없음).src-tauri/src/lib.rs— Rust 커맨드(창 흔들기/항상 맨 위/CLI 인자).src-tauri/tauri.conf.json— 창 설정(프레임리스 460×680), 번들(NSIS), 제품명.src-tauri/capabilities/default.json— 프론트가 호출 가능한 창 권한.docs/— README용 스크린샷·GIF.



