[Project] Kakaotalk Dimmer — KakaoTalk PC 화면을 어둡게 눌러주는 오버레이 유틸리티
English
Kakaotalk Dimmer
Made with Hyeonseop Lee.
The KakaoTalk PC app has no built-in dark mode, and its bright white chat window is uncomfortable to look at at night. Instead of modifying KakaoTalk itself, I built a small Windows tray utility that overlays a semi-transparent black layer exactly on top of the KakaoTalk window, dimming it without touching the app or blocking any clicks.
How it works
- Every tick, the script calls the Win32 API (
EnumWindows,GetWindowRect,GetWindowThreadProcessId) to walk all visible windows on screen in z-order (front-to-back stacking order). - It filters those down to windows owned by the
KakaoTalk.exeprocess that are larger than a minimum size (to ignore small popups like the emoji picker). - For each matching window, it creates (or reuses) a borderless overlay window sized and positioned to exactly match it, and sets its transparency with
SetLayeredWindowAttributes. - The overlay is created with
WS_EX_TRANSPARENT(clicks pass straight through to KakaoTalk underneath) andWS_EX_NOACTIVATE(it never steals keyboard focus), so it’s purely visual. - If another window is floating on top of KakaoTalk, the script computes the overlapping rectangle and cuts it out of the overlay with
SetWindowRgn, so that other app isn’t darkened too. - On Windows 10 2004+ it also sets
WDA_EXCLUDEFROMCAPTUREon the overlay, so the dimming is invisible to screen recording/sharing — only your own screen looks dim, while whoever you share your screen with sees KakaoTalk at normal brightness.
Features
- Right-click the tray icon to adjust brightness (0–90%, in 10% steps) and polling speed (8–100ms, how fast the overlay tracks the window as you move/resize it).
- The tray icon itself is a moon that shifts color from amber to navy as you increase the dimming level.
- Settings are saved to
%APPDATA%\KakaoDarkOverlay\settings.txtand restored on the next launch. - A
.vbslauncher starts the PowerShell script with no visible console window, and can be dropped into the Windows startup folder to run automatically on login.
Built entirely with Windows PowerShell + WinForms (no external dependencies), since both ship with Windows 10/11 by default.
Source code: github.com/YooTaeJeong/Kakaotalk-Dimmer
한국어(Korean)
카카오톡 디머 (Kakaotalk Dimmer)
이현섭님과 함께 만들었습니다.
카카오톡 PC 버전은 다크모드가 따로 없어서, 밤에 쓸 때 하얗게 빛나는 채팅창이 눈에 많이 피로했습니다. 카카오톡 실행 파일 자체를 건드리지 않고, 그 창 위에 반투명한 검은 오버레이를 정확히 겹쳐 씌워서 밝기만 낮추는 Windows 트레이 유틸리티를 만들었습니다.
동작 원리
- 일정 주기마다 Win32 API(
EnumWindows,GetWindowRect,GetWindowThreadProcessId)로 화면에 보이는 모든 창을 z-order(앞뒤로 쌓인 순서) 그대로 확인합니다. - 그중
KakaoTalk.exe프로세스 소유이면서 일정 크기 이상인 창만 골라냅니다 (이모티콘 선택창 같은 작은 팝업은 제외). - 해당 창과 정확히 같은 위치/크기의 테두리 없는 오버레이 창을 만들고(또는 재사용하고),
SetLayeredWindowAttributes로 투명도를 설정합니다. - 오버레이는
WS_EX_TRANSPARENT(클릭이 그대로 아래 카카오톡 창으로 전달됨)와WS_EX_NOACTIVATE(포커스를 절대 가로채지 않음) 속성으로 만들어져서, 순수하게 시각적인 효과만 줍니다. - 다른 창이 카카오톡 창 위에 떠 있으면, 겹치는 영역을 계산해서
SetWindowRgn으로 오버레이에서 잘라내므로, 그 다른 앱까지 같이 어두워지지 않습니다. - Windows 10 2004 이상에서는 오버레이 창에
WDA_EXCLUDEFROMCAPTURE도 적용해서, 화면 녹화나 화면 공유에는 이 어둡게 처리된 부분이 전혀 찍히지 않습니다 — 내 화면만 어둡게 보이고, 화면을 공유받는 상대방에게는 카카오톡이 평소 밝기 그대로 보입니다.
주요 기능
- 트레이 아이콘 우클릭으로 밝기(0~90%, 10% 단위)와 반응속도(8~100ms, 창을 움직이거나 리사이즈할 때 오버레이가 얼마나 빨리 따라오는지)를 조절할 수 있습니다.
- 트레이 아이콘 자체가 초승달 모양이고, 어둡기를 높일수록 호박색에서 짙은 남색으로 색이 바뀝니다.
- 설정값은
%APPDATA%\KakaoDarkOverlay\settings.txt에 저장되어 다음 실행 때도 그대로 유지됩니다. .vbs런처로 실행하면 콘솔 창 없이 조용히 트레이 아이콘만 뜨고, Windows 시작 프로그램 폴더에 등록해두면 로그인할 때 자동으로 실행됩니다.
외부 의존성 없이 Windows PowerShell + WinForms만으로 만들었고, 둘 다 Windows 10/11에 기본 내장되어 있어 별도 설치가 필요 없습니다.