2025 추석 목표 1 Contribution 1 Language 1 PPT 중 1 Contribution 담당
예전에 Ms PowerToys 의 PowerToy Run 이라는, Window 판 알프레드같은것에 PR 날린적이 있다.
[Microsoft/PowerToys] 야호 나도 MS 파워토이 컨트리뷰터
이게 거의 4년 전인데, 그 이후 PowerToy Run 은, 명령팔레트 (Cmd Pal) 로 완전 새롭게 업데이트되었다.

아무튼.. Cmd Pal 의 기본 기능들중에는, 앱을 찾아서 키는것, 그리고 열려있는 앱을 빠르게 찾고 전환하는것 (== WindowWalker) 기능이 포함되어있는데,


위 첨부한 사진을 보면, Calendar 의 를 키는것은, Calendar 아이콘이 잘 나오는데, 이 Calendar 로 전환하는것은, 엣지 아이콘이 나온다.
이는 저 Calendar 가 Win32 나 MS store 에서 받은 프로그램이 아니라, Edge 에서 PWA 앱으로 만든 앱이기 때문

나는 즐겨찾기 기능보다. 이렇게 PWA 앱으로 만들어서 사용하는걸 선호하는데, 전환시 엣지 이모티콘만 나와서 여간 불편한게 아니다..

근데 관련 Issue 가 8월 19에 이미 누가 올려뒷길래, 그냥 언젠가 고쳐지겠지~ 하고 쓰고있었다.
근데 추석이 다 되가도 고쳐질 기미가 안보여서, 추석에 할 것도 없고, 내가 고쳐야겠다 마음먹고 4년만에 PowerToy 를 다시 Clone 하고 코드분석을 시작하였다.
근데..
1. 일단 process 는 edge 가 맞고, 이 process 가 PWA 인지 판별할수 있는 방법을 못찾음
2. 근데 process 가 뜨는게 맞음? 그럼 PWA 아니더라도 다 process 만 뜰텐데..?
해서, Python GUI 앱을 띄워보고, 그걸 WindowWalker 로 보니, Taskbar 에 출력되는 GUI 아이콘이 아니라, python 아이콘만 뜨더라

그래서 "WindowWalker" 에서 "Process" 아이콘을 가져오는거 자체가 문제다! 그럼 "ProcessWalker" 지!
라는 결론을 내리고,
Taskbar 에 출력되는 아이콘을 가져올수있는 기능이 Win Native API 에 있을것 같아서 AI 도움과 함께 (심지어 PowerToy 다른곳에서 쓰는곳도 있었음 ㅋㅋ) 이를 찾고 이걸 PoC 해서 빌드한뒤,
AS-IS 와 TO-BE 를 담아서 Issue 를 생성
[CmdPal] Window Walker currently shows only the process icon. This is weird and confusing, especially for PWAs or Python GUIs. I
Description of the new feature / enhancement I found a weird behavior in [Window Walker] when used with a PWA app. It only shows the "Edge" icon, even though [All Apps] displays the correct icon. I...
github.com
그것이 이것이고..
이때 PoC 한 결과로 코드를 좀더 정갈하고, Rule 에 맞게 다듬고, Optional 로 쓸수있게 Setting 값도 주고 PR 을 날렸고 결과적으로 머지되었다.
[CmdPal] `WindowWalker` Show the actual window icon instead of the process icon by Lee-WonJun · Pull Request #42316 · microsof
Summary of the Pull Request This is a PR for issue #42260. It targets CmdPal’s WindowWalker and changes the icon retrieval to use SendMessage to obtain the window’s actual icon, instead of using th...
github.com

머지될때까지 재밋는일이 몇가지 있었는데,
Issue 달때 부터 도와주신 Collaborator 가 계셧는데, 당연히 Approve 권한/ Merge 권한도 있을줄 알고, PR 시작부터 바로 이분을 태그해서 의논하고 작업했는데,
럴수럴수 이럴수가, 권한이 없었다.

그래도 Collaborator 의 LGTM 을 받았으므로 맴버도 곧 LGTM 해주겠지 싶어서 냅두고 있었는데,
럴수럴수 이럴수가, 똑같은 작업을 하고 계셧다, 심지어 코드도 거의 똑같다 ㅋㅋ, 진짜 기막힌 우연

내가 좀더 빨랐다 ㅋㅋ 추석이 일주일만 늦었으면 Issue 달 필요조차 없었다.
오픈소스 컨트리뷰트하다보니 이런일도 겪는구나..
그리고 v0.95.x 의 안정화 단계라, 버그관련 PR 만 머지되고, 이런 기능적인것은 v0.96.0 release 때로 마일스톤이 잡혀있어서, 관련 태그를 부여받고 있다가, v0.96.0 에 들어갈 PR 로 머지되었다

'프로그래밍 기록 > OSS | 컨트리뷰션' 카테고리의 다른 글
| [AWS/aws-toolkit-jetbrains] 야호 나도 amazon Q 컨트리뷰터 (2) | 2025.08.18 |
|---|---|
| [Gemini-CLI] 야호 Key Binding 리펙터링으로 구글 Gemini-cli 컨트리뷰터 (2) | 2025.08.10 |
| [Gemini-CLI] 야호 나도 구글 Gemini 컨트리뷰터 (0) | 2025.07.17 |
| [Spring AI] 야호 나도 Spring AI 컨트리뷰터 (0) | 2024.12.22 |
| [Azure/Functions OpenAPI Extensions] 야호 나도 애저 Function 컨트리뷰터 (0) | 2021.11.03 |