시작버튼 우클릭 메뉴 (WinX) 제어판 추가

WinX 메뉴

윈도우 10의 시작 버튼을 우클릭 하면 다양한 바로가기가 제공됩니다. 단축키가 Win + X이기 때문에 WinX 메뉴라고 합니다. 그중 가장 많이 사용하는 항목이 제어판인데, 레드스톤 2부터 제어판이 사라지고 설정 메뉴가 나타납니다. 앱 및 기능, 전원 옵션 등의 항목들도 제어판이 아닌 설정 바로가기로 바뀌었습니다.



WinX 메뉴 분석

시작 버튼 우클릭 메뉴의 바로가기가 저장된 위치는 다음과 같습니다.
%LocalAppdata%\Microsoft\Windows\WinX
Group 1, 2, 3 폴더로 각각의 영역이 구분되어 있습니다
이곳에 바로가기를 만들어 복사하면 쉽게 WinX 메뉴에 등록할 수 있을 것 같지만 그렇지 않습니다. 특별한 양식의 바로가기만 인식하기 때문입니다. 바로가기를 읽을 때 특정 hash 값이 검출되어야 WinX 메뉴에 나타나게 됩니다.

이는 WinX 메뉴에 설치 프로그램이 무분별하게 등록되는 것을 막기 위한 것으로 보입니다. 관련 레지스트리 항목도 쉽게 변경할 수 없도록 권한이 높게 설정되어 있습니다.



LocalizedFileNames

Group 2 의 내용을 자세히 살펴보기 위해 명령 프롬프트를 실행합니다. 탐색기 주소창에 cmd를 입력하면 현재 위치에서 커맨드 창이 열립니다. dir 명령어를 사용하여 파일 목록을 확인해 보겠습니다.



탐색기에서 볼 때와는 달리 1 - Run.lnk, 2 - Search.lnk 같은 이름을 확인할 수 있습니다. 이 이름이 파일의 진짜 이름이며 탐색기에서 나타나는 실행, 검색 등의 이름은 Localized File Name입니다. 번역을 통한 현지화 및 편의성 등을 위해 사용되는 로컬 네임입니다.

desktop.ini 를 수정하여 Localized File Name을 변경할 수 있습니다. Group 2 를 살펴보면 5개의 바로가기가 있고 시스템 파일인 desktop.ini 가 숨겨져 있습니다. 시스템 파일을 보려면 탐색기 설정에서 보호된 운영체제 파일 숨기기를 해제하거나, 명령어를 통해 직접 열어야 합니다.
notepad.exe %LocalAppdata%\Microsoft\Windows\WinX\Group2\desktop.ini

파일을 열면 LocalizedFileNames 항목이 보이는데 각각의 행에서 등호 (=) 왼쪽에 있는 것이 파일의 본래 이름, 오른쪽에 있는 것이 Localized File Name입니다.
[LocalizedFileNames]
1 - Run.lnk=@%SystemRoot%\system32\shell32.dll,-12710
위 항목을 보면 "실행" 바로가기 파일의 원래 이름은 1 - Run.lnk 인 것을 알 수 있습니다. 등호 (=) 오른쪽에 나온 항목 (@%SystemRoot%\system32\shell32.dll,-12710) 이 탐색기에서 "실행"이라고 보이는 현지화된 이름을 나타냅니다.

WinX 메뉴에 바로가기를 추가할 때 ini 파일을 편집하여 메뉴의 이름을 변경할 수 있습니다. 파일의 원래 이름을 수정하면 순서를 변경할 수 있습니다.



WinX 메뉴 삭제 - 원하는 바로가기를 삭제 후 탐색기를 재시작합니다.



WinX 메뉴 순서 변경

Group 2의 메뉴 순서를 변경해 보겠습니다. 바로가기를 이름순으로 정렬 했을 때의 순서가 메뉴의 순서가 됩니다. 단 Localized file name 이 아닌 파일의 원래 이름을 기준으로 합니다. Group 2 에서 dir 명령어를 사용하여 파일을 확인하면 간단하게 순서를 확인할 수 있습니다. 순서가 빠른 파일이 메뉴에서 가장 아래에 나타납니다.

Group 2의 실행 바로가기의 이름을 "1 - Run.lnk" 에서 "Run.lnk" 로 변경하여 순서를 가장 위로 바꿔 보겠습니다. 바로가기 아이콘을 우클릭> 이름 바꾸기를 하거나 F2를 눌러 이름을 변경합니다. 바로가기 파일은 탐색기에서 확장자 (.lnk)가 생략되어 있으므로 "Run"으로 변경하면 됩니다.
ren 명령어를 사용하여 이름을 변경할 수도 있습니다.
ren "1 - Run.lnk" "Run.lnk"
탐색기를 재시작하면 실행 메뉴가 Group 2의 가장 마지막(위쪽)으로 옮겨집니다.

탐색기에서 Run 을 로컬 네임으로 표시하고 싶다면 ini 파일을 수정합니다.
1 - Run.lnk=@%SystemRoot%\system32\shell32.dll,-12710 행에서
1 - Run.lnk -> Run.lnk 로 변경합니다. 로컬 네임이 바뀔 뿐 WinX 메뉴에는 영향이 없으므로 생략해도 괜찮습니다.



WinX 메뉴 이름 변경

우클릭 메뉴에 나타나는 이름을 변경하는 방법입니다. 이름을 변경하려면 3가지 방법이 있습니다. 탐색기를 재시작하면 적용됩니다.

1. 바로가기 파일을 우클릭하여 속성> 설명에 원하는 이름을 입력하면 가장 우선하여 적용됩니다.

2. ini 파일을 수정하여 localized file name을 추가하거나 변경하면 파일 자체의 이름보다 우선권을 가지고 메뉴의 이름에 반영됩니다.

3. 파일 설명도 없고 localized file name도 없다면 파일 자체의 이름이 메뉴에 나타납니다.

기본 메뉴들은 항목 이름과 단축키가 이미 시스템에 등록되어 있으므로 두 번째 세 번째 방법으로는 메뉴 이름이 변경되지 않습니다. 파일의 이름만 바뀔 뿐 WinX 메뉴의 항목은 변하지 않습니다. 첫 번째 방법을 사용하여 메뉴 이름을 변경할 수 있지만, 단축키가 사라집니다.

새로 추가한 바로가기는 파일 이름이 WinX 메뉴에 나타납니다. 1번 또는 2번 방법을 사용하여 메뉴에 나타나는 이름을 변경할 수 있습니다. 설명 추가 방법이 쉽기 때문에 1번 방법을 추천합니다.

WinX 메뉴에 나타나는 이름의 우선권을 정리하면 다음과 같습니다.
파일 속성 설명 > (시스템에 등록된 이름) > 로컬 네임 > 원래 이름



WinX 메뉴 추가

바로가기 파일을 hashlnk툴을 사용하여 수정하면 WinX 메뉴에서 인식할 수 있습니다. 메뉴의 등록부터 순서 변경까지 한 번에 편집 가능한 프로그램도 있습니다. Win+X Menu Editor 라는 프로그램인데 hashlnk 도구의 소스 코드를 사용하여 바로가기를 만들고 등록해 줍니다. 사용법은 다음 글에서 확인할 수 있습니다.

서드파티 프로그램을 사용하지 않고 제어판 바로가기 파일을 얻으려면, RS2 업그레이드를 하지 않은 윈도우에서 복사해 오는 방법이 있습니다. VirtualBox에 RS1을 설치 후 아무 수정 작업도 거치지 않은 WinX 폴더를 복사하여 올려둡니다.
다운로드 링크

필요한 바로가기를 %LocalAppdata%\Microsoft\Windows\WinX 의 원하는 그룹에 복사한 후 탐색기를 재시작하면 메뉴에 등록됩니다. Group2의 가장 위에 제어판을 등록하려면 6 - Control Panel 등으로 이름을 바꿔 순서를 맞추고, 파일 설명을 "제어판"으로 변경합니다. 레지스트리 편집은 필요 없으며 다른 바로가기를 추가하거나 순서 및 이름을 변경하려면 위의 설명을 참고하시기 바랍니다.

댓글