릴스에서 본 우사기 커서, 직접 Windows 선물 세트로 만들었다
커서 하나에서 시작해 휴지통·폴더·작업 표시줄까지 확장하고, 반복 적용 뒤에도 원래 Windows 상태로 돌아가도록 복구 구조를 다시 만든 개인 선물 제작기.
한눈에 요약 친구가 좋아하던 우사기 커서 릴스를 보고 Windows 선물 세트를 직접 만들었다. 커서·대기 애니메이션·휴지통·폴더·작업 표시줄까지 한 세트로 묶었지만, 반복 적용 뒤에는 원복이 제대로 되지 않는 문제가 생겼다. 설치 성공보다 원래 상태로 안전하게 돌아가는 것을 완료 기준으로 다시 잡았다.
친구가 우사기 커서를 보고 좋아했던 릴스가 있었다. 그걸 보면서 “이 정도면 나도 직접 만들 수 있지 않을까” 생각했다. 시작할 때 목표는 커서 하나였다.
막상 실제 선물로 주려고 하니 커서만 바꿔서는 한 세트처럼 보이지 않았다. 휴지통과 폴더, 작업 표시줄까지 같은 분위기로 이어져야 했다. 더 중요한 문제도 있었다. 적용은 잘됐지만, 반복해서 적용한 뒤 원복 버튼을 누르면 원래 Windows가 아니라 우사기가 남는 경우가 생겼다.
원인은 백업 방식이었다. 이미 테마가 적용된 상태를 다시 원본이라고 저장해버리니, 복구를 해도 바뀐 상태로 돌아갔다. 예쁜 아이콘을 만드는 일보다 친구의 컴퓨터를 정확히 원래대로 돌려놓는 일이 먼저였다.
커서 하나를 어디까지 선물로 볼 것인가
릴스에서 눈에 들어온 건 화면 위를 움직이는 작은 커서였다. 하지만 친구가 실제로 설치해 쓰는 선물이라면 한순간 귀엽게 보이는 것만으로는 부족했다.
화살표 커서는 평소 상태와 눌렀을 때의 상태가 필요했다. 기다리는 동안에는 움직이는 대기 표시가 있어야 했다. 휴지통은 비어 있을 때와 차 있을 때가 다르고, 폴더도 여러 표정 중에서 고를 수 있어야 했다. 마지막에는 작업 표시줄에서 보이는 아이콘까지 같은 세트로 맞췄다.
최종 출력 파일은 22개가 됐다. 서로 다른 테마 22종이라는 뜻은 아니다. 한 선물 세트를 구성하는 파일을 모두 센 숫자다.
- 화살표 커서 2개
- 대기 애니메이션 1개
- 빈 상태와 가득 찬 상태, 귀 유무와 표정을 조합한 휴지통 아이콘 12개
- 귀 유무와 표정을 조합한 폴더 아이콘 6개
- 작업 표시줄 아이콘 1개
예전 README에는 25종이라고 적혀 있었지만 현재 결과와 맞지 않았다. 같은 문서 안의 표를 더해도 21개였고, 이후 작업 표시줄 아이콘이 추가돼 현재 저장소에서 확인되는 결과는 22개다. 그래서 제목에는 숫자를 앞세우지 않고 실제로 무엇이 바뀌는지를 적었다.
이미지 파일만 바꾼다고 Windows 테마가 되지는 않았다
Windows는 커서와 아이콘마다 읽을 수 있는 파일 형식이 따로 있다. 커서는 CUR, 움직이는 대기 표시는 ANI, 휴지통과 폴더 같은 아이콘은 ICO 형식을 쓴다. PNG 그림을 준비하는 것과 Windows가 실제로 읽는 파일을 만드는 것은 다른 작업이었다.
커서는 화면 배율이 달라져도 너무 흐리거나 작아지지 않도록 32·48·64 크기를 한 파일에 넣었다. 만들어진 CUR·ANI·ICO 파일은 이름만 맞는지 보는 데서 끝내지 않고 Windows API로 실제 로드되는지도 확인했다. Windows API는 프로그램이 운영체제 기능을 사용할 때 거치는 공식 통로다.
중간 결과는 GIF와 MP4 데모로 묶어 전체 인상을 확인했다. 다만 이 영상은 친구의 실제 바탕화면을 녹화한 것이 아니라, 개인 파일과 알림이 보이지 않게 만든 합성 데모다. 우사기 파생 이미지가 들어 있어 공개 글과 Reel에는 쓰지 않고 내부 제작 참고로만 남긴다.
원복해도 우사기가 남은 이유
가장 큰 실패는 설치가 아니라 복구에서 나왔다. 처음 적용할 때는 기존 커서와 아이콘 설정을 백업하고 새 테마를 넣었다. 문제는 같은 설치를 다시 실행했을 때였다.
두 번째 적용이 현재 상태를 새 백업으로 덮었다. 그때 현재 상태는 이미 우사기였다. 이후 원복을 실행하면 프로그램은 자신이 가진 백업을 충실히 돌려줬지만, 그 백업 자체가 오염돼 있었다.
해결은 최초의 깨끗한 상태를 한 번만 보존하고 절대 덮지 않는 것이었다. 작업 안에서는 이 원본을 pristine backup이라고 불렀다. 처음 적용하기 전의 Windows 상태가 이미 있으면, 재적용 과정에서는 새 백업으로 교체하지 않게 했다.
복구할 때는 가장 먼저 이 최초 백업을 찾고, 없을 때만 다른 안전한 기본값을 사용했다. 이후 적용 → 재적용 → 전체 원복을 격리된 Windows 환경에서 반복해 확인했다. 예쁜 결과를 다시 만드는 검사와, 원래 상태를 정확히 되돌리는 검사를 따로 둔 셈이다.
선물은 설치 파일이 아니라 되돌릴 방법까지 포함했다
친구에게는 우사기 세트를 생일 앱의 마지막 장에서 별도 선물로 공개했다. 전달물에는 아이콘 파일만 넣지 않았다. 적용하고, 현재 상태를 관리하고, 필요하면 원래대로 복구하는 흐름을 함께 만들었다.
격리 환경에서 검사가 끝난 뒤에는 친구 노트북에서도 전체 원복을 확인했다. 친구가 지금 어떤 항목을 계속 쓰고 있는지, 정확히 어떤 Windows 버전인지는 따로 확인하지 않았다. 모르는 부분까지 “잘 사용 중”이라고 쓰지는 않으려고 한다.
친구 사진이나 실제 바탕화면도 공개하지 않는다. 사진 공개 동의를 새로 받을 이유도 없었다. 개인 파일이 없는 안전한 재현 화면과 적용·원복 구조만으로 이 작업에서 중요한 결과를 설명할 수 있기 때문이다.
친구의 실제 화면을 별도 이미지로 덧붙이지 않는다. 앞의 격리 환경 데모와 검증 출력이 적용·원복을 이미 증명하므로, 동의받지 않은 사진을 추가해 같은 주장을 반복할 이유가 없다.
우사기 파일을 GitHub에 올리지는 않는다
이번 세트는 친구에게 준 개인 선물이다. 우사기 PNG와 CUR·ANI·ICO 파일, 설치 ZIP, 현재 저장소는 공개하지 않는다. 캐릭터를 개인적으로 쓴 것과 다른 사람이 다시 내려받아 쓰도록 배포하는 것은 범위가 다르기 때문이다.
기존 합성 데모는 홍보물로 쓰지 않는다. 현재 저장소의 권리 고지는 우사기 원본과 파생 산출물의 공개 배포를 금지한다. 대신 새로 촬영한 실제 Windows 화면에서는 적용과 원복 결과만 보여준다. 화면에 보이는 것과 원본 파일을 내려받게 하는 것은 분리하고, PNG·CUR·ANI·ICO·ZIP과 저장소는 공개하지 않는다. 영감을 준 원본 릴스 역시 그대로 가져와 재업로드하지 않는다.
나중에 공개할 수 있는 건 우사기 세트 자체가 아니라 Windows 캐릭터 테마 빌더다. 사용자가 직접 만들었거나 사용 권리가 있는 이미지를 넣으면 Windows용 커서와 아이콘을 만들고, 적용 전 상태를 백업하고, 언제든 전체 원복할 수 있게 하는 범용 도구다.
아직 그 빌더와 공개 저장소는 없다. 지금은 GitHub나 다운로드 링크를 만들지 않는다. 개인 자산을 걷어낸다고 곧바로 오픈소스가 되는 게 아니라, 권리 정리된 샘플과 안전한 적용·복구 구조를 별도 프로젝트로 다시 검증해야 한다.
릴스에서 본 건 작은 커서 하나였다. 실제로 만들고 나니 선물의 완성은 커서가 움직이는 순간이 아니었다. 친구의 Windows에 적용할 수 있고, 마음이 바뀌면 처음 상태로 정확히 돌아갈 수 있는 순간이었다.
관련해서 먼저 읽어볼 만한 글:
