Nexa Shortcut
v0.1.0윈도우용 초경량 단축키 유틸리티 모음
모든 데스크톱 OS에서 사용할 수 있어요
설치
Windows
winget — 한 줄 설치 (권장)
winget install SosomLab.nShiftSpace 포터블 exe가 PATH에 등록되어 nshiftspace 명령으로도 실행됩니다(x64·x86 자동 선택). 업그레이드: winget upgrade SosomLab.nShiftSpace · 제거: winget uninstall SosomLab.nShiftSpace. ⚠️ winget은 실행 중인 프로그램을 대신 종료해 주지 않으므로, 업그레이드·제거 전에 트레이 아이콘에서 먼저 종료하세요.
Chocolatey — 한 줄 설치 (관리자 권한)
choco install nshiftspace -y 관리자 권한 PowerShell에서 실행하세요. OS 아키텍처에 맞는 exe 하나만 설치되고 같은 이름의 shim이 PATH에 등록되어 nShiftSpace-x64(32비트 OS는 nShiftSpace-x86) 명령으로 실행됩니다. 업그레이드: choco upgrade nshiftspace -y · 제거: choco uninstall nshiftspace -y. ✅ winget과 달리 업그레이드·제거 시 실행 중인 프로그램을 자동으로 종료해 줍니다.
자동 실행 ① — 설치된 실행 파일 위치 확인
where.exe nshiftspace winget·Chocolatey 둘 다 시작프로그램에는 등록하지 않으므로 아래 절차를 한 번만 해 두면 됩니다. winget의 경우 위 명령이 알려주는 %LOCALAPPDATA%\Microsoft\WinGet\Links\nshiftspace.exe가 PATH에 걸린 별칭이고, 압축이 풀린 실제 exe는 …\WinGet\Packages\SosomLab.nShiftSpace_…\ 안에 있습니다. 바로가기는 업그레이드 후에도 경로가 그대로인 Links\nshiftspace.exe를 가리키게 하세요. Chocolatey로 설치했다면 %ChocolateyInstall%\lib\nshiftspace\tools\nShiftSpace-x64.exe가 대상입니다. (설치 직후에는 PATH가 반영되도록 터미널 창을 새로 열어야 하고, Links 별칭이 없다고 나오면 Windows 개발자 모드를 켠 뒤 재설치하면 생깁니다 — winget이 별칭을 심볼릭 링크로 만들기 때문입니다)
자동 실행 ② — 시작프로그램 바로가기 만들기 (PowerShell, 권장)
$exe = (Get-Command nshiftspace).Source
$dir = [Environment]::GetFolderPath('Startup')
$lnk = (New-Object -ComObject WScript.Shell).CreateShortcut("$dir\nShiftSpace.lnk")
$lnk.TargetPath = $exe
$lnk.Save() 이 폴더에 바로가기가 있어야 윈도우 시작 시 자동 실행됩니다. 위 스크립트는 현재 사용자용이며, 모든 사용자에게 적용하려면 Startup을 CommonStartup으로 바꿔 관리자 권한 PowerShell에서 실행하세요. 해제는 만들어진 nShiftSpace.lnk를 지우면 됩니다.
자동 실행 ② — 파일 관리자에서 직접 만들기
shell:startup
shell:common startup Win+R(실행)이나 파일 관리자 주소창에 위 경로를 입력하면 시작프로그램 폴더로 바로 이동합니다. shell:startup은 현재 사용자용, shell:common startup은 모든 사용자용(관리자 권한 필요)입니다. 여기에 ①에서 확인한 exe의 바로가기(우클릭 → 바로 가기 만들기)를 넣으면 등록이 끝납니다.
자동 실행 ② — 듀얼 패널로 한 번에 (가장 편한 방법)
왼쪽 패널 주소창 → shell:common startup
오른쪽 패널 주소창 → ①에서 확인한 실행 파일 폴더 패널이 둘인 파일 관리자를 쓰면 폴더를 오갈 필요가 없습니다. 왼쪽 패널을 시작프로그램 폴더로, 오른쪽 패널을 실행 파일이 있는 폴더로 열어 둔 다음, 오른쪽의 exe에서 우클릭 → 바로 가기 만들기로 만든 .lnk를 왼쪽 패널로 끌어다 놓으면 그대로 등록됩니다. 양쪽 폴더가 한 화면에 보이니 경로를 잘못 짚을 일도 없습니다. 같은 SosomLab 앱인 Nexa Dir가 듀얼 패널·패널별 탭·드래그앤드롭·주소창 shell: 경로 입력을 모두 지원해 이 작업에 잘 맞습니다. 설치 없이 exe 하나로 실행되는 포터블 탐색기입니다.
shell:common startup을 입력해 연 시작프로그램 폴더(등록을 마친 nShiftSpace 바로가기가 보입니다), 오른쪽 패널은 실행 파일이 있는 폴더입니다.자동 실행 ③ — 작업 스케줄러 (관리자 권한 창에서도 쓰려면)
$exe = "$env:LOCALAPPDATA\Microsoft\WinGet\Links\nshiftspace.exe"
$action = New-ScheduledTaskAction -Execute $exe
$trigger = New-ScheduledTaskTrigger -AtLogOn -User $env:USERNAME
$principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive -RunLevel Highest
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -ExecutionTimeLimit 0
Register-ScheduledTask -TaskName 'nShiftSpace' -Action $action -Trigger $trigger -Principal $principal -Settings $settings -Force 작업 관리자나 승격된 터미널처럼 관리자 권한으로 실행된 창이 포커스를 가지면 일반 권한으로 뜬 nShiftSpace의 단축키는 전달되지 않습니다. Windows의 UIPI 보안 정책이라 우회할 수 없고, 같은 방식의 프로그램은 모두 동일합니다. 해결하려면 nShiftSpace 자체를 승격 실행해야 하는데 시작프로그램 폴더나 Run 키로는 불가능하고 작업 스케줄러만 가능합니다. 위 스크립트를 관리자 권한 PowerShell에서 실행하세요 — -RunLevel Highest가 핵심이고, -ExecutionTimeLimit 0은 상주 프로그램이 3일 뒤 종료되지 않게 합니다. 로그인 시 조용히 실행되며 UAC 프롬프트는 뜨지 않습니다. 해제: Unregister-ScheduledTask -TaskName 'nShiftSpace' -Confirm:$false
- 또는 GitHub Releases에서
nShiftSpace-x64.zip(64비트) 또는nShiftSpace-x86.zip(32비트)을 내려받습니다. - 압축을 풀고
nShiftSpace-x64.exe를 실행하면 트레이에 상주하며 바로 동작합니다. (별도 설치 과정 없음) - 이 경우에도 자동 실행 등록은 위 ②와 같습니다 — 풀어 둔 exe의 바로가기를
shell:startup폴더에 넣으면 됩니다.
직접 내려받은 exe에 SmartScreen 경고가 보이면 "추가 정보 → 실행"을 누르세요. 종료는 트레이 아이콘 우클릭 → 종료. 시스템 요구사항: Windows 10 / 11 (x64·x86). 패키지 매니저 채널 현황 (2026-08-02 확인): ✅ winget SosomLab.nShiftSpace 0.1.0 등록 완료(PR #397365 병합), ✅ Chocolatey nshiftspace 0.1.0 승인 완료 — 두 채널 모두 정식 등록되어 위 명령이 그대로 동작합니다. 설치·자동 실행·문제 해결의 더 자세한 안내는 위의 "문서 (Wiki)" 버튼을 참고하세요.
GUI 프레임워크와 CRT 없이 순수 Win32 API로만 작성해 실행 파일 크기와 메모리 사용을 최소화한 단축키 유틸 모음. 첫 번째 도구 nShiftSpace는 단 4.5KB로 Shift+Space 한/영 전환을 제공합니다.
주요 기능
- Shift+Space 한/영 전환 Shift+Space 입력 시 한/영 키(VK_HANGUL)를 대신 눌러줘, 어떤 키보드에서도 익숙한 방식으로 전환할 수 있습니다.
- 4.5KB 초경량 실행 파일 GUI 프레임워크·CRT 없이 순수 Win32 API만 사용. CI에서 8KB 초과 시 빌드가 실패하도록 크기 회귀를 차단합니다.
- 대기 CPU 0에 가까운 동작 키보드 훅 대신 RegisterHotKey를 사용해 OS가 키를 가로채므로 상주 중 CPU 비용이 거의 없습니다.
- 트레이 상주 & 자동 복구 트레이 아이콘 우클릭으로 종료하고, 탐색기(explorer) 재시작 시 트레이 아이콘을 자동 복구합니다. 중복 실행도 방지합니다.
- 198바이트 픽셀아트 아이콘 '가·A' 픽셀 아트를 담은 16×16 1bpp ICO를 스크립트로 생성해 내장 — 아이콘까지 초경량 원칙을 지킵니다.
- 무설정 · 흔적 없는 제거 설정 파일도 설정 화면도 없고 레지스트리에 아무것도 쓰지 않습니다. .NET이나 VC++ 재배포 패키지도 필요 없고, exe 하나만 지우면 완전히 제거됩니다.
- winget · Chocolatey 정식 등록 두 패키지 관리자 모두 심사를 통과해 한 줄 명령으로 설치·업그레이드·제거할 수 있습니다. 설치·자동 실행·문제 해결은 사용자 위키 8개 페이지에 정리되어 있습니다.
- 키 재매핑 엔진 (로드맵) mappings.ini로 직접 정의하는 단순 키 재매핑(nexa-mapper)과 매핑 내장 독립 exe 내보내기를 준비 중입니다.
소개
Nexa Shortcut은 "하나의 기능을 가장 가볍게"를 원칙으로 하는 윈도우용 단축키 유틸리티 모음입니다. GUI 프레임워크는 물론 C 런타임(CRT)조차 링크하지 않고 순수 Win32 API만 사용해, 실행 파일 크기와 메모리 사용을 극단적으로 줄였습니다.
첫 번째 도구인 nShiftSpace(Nexa ShiftSpace)는 Shift+Space로 한/영을 전환하는 단일 기능 상주 프로그램입니다. 실행 파일이 4.5KB에 불과하고(원조 jwShiftSpaceKey.exe 12KB의 1/3 수준), RegisterHotKey 방식이라 대기 중 CPU 사용이 사실상 0입니다.
트레이 아이콘도 초경량 원칙을 따릅니다. '가·A' 픽셀 아트를 담은 198바이트 1bpp ICO를 스크립트로 생성해 내장했으며, 중복 실행 방지와 탐색기 재시작 시 트레이 아이콘 자동 복구까지 갖췄습니다.
설정 파일도 설정 화면도 없고 레지스트리에도 아무것도 쓰지 않습니다. 단축키가 Shift+Space로 고정된 것은 4.5KB를 지키기 위한 의도적인 선택이며, 제거는 exe 파일 하나를 지우는 것으로 끝납니다. 다만 Windows 보안 정책(UIPI) 때문에 작업 관리자처럼 관리자 권한으로 뜬 창이 포커스를 가지면 단축키가 전달되지 않는데, 이때는 작업 스케줄러로 nShiftSpace 자체를 승격 실행하면 해결됩니다 — 절차는 위키의 "자동 실행 설정"에 정리해 두었습니다.
설치는 winget과 Chocolatey 두 채널 모두 정식 등록을 마쳐 한 줄 명령으로 끝나고, zip을 직접 받아 원하는 폴더에 두고 쓸 수도 있습니다. 설치·자동 실행·문제 해결을 다루는 사용자 위키(8개 페이지)는 위의 "문서 (Wiki)" 버튼에서 볼 수 있습니다.
앞으로 mappings.ini로 사용자가 직접 정의하는 단순 키 재매핑 엔진(nexa-mapper), 현재 매핑만 내장한 독립 exe 내보내기 기능이 로드맵에 있습니다. MIT 라이선스로 누구나 무료로 사용할 수 있습니다.
릴리스 노트
배포 · 문서 2026-08-02 winget·Chocolatey 정식 등록 완료 + 사용자 위키 발행 (실행 파일은 v0.1.0 그대로).
배포
- Chocolatey
nshiftspace승인 완료(2026-07-30) — 관리자 권한 PowerShell에서choco install nshiftspace -y로 설치합니다. 업그레이드·제거 시 실행 중인 프로그램을 자동으로 종료해 주는 것이 winget과의 차이입니다. - winget
SosomLab.nShiftSpace등록 완료(2026-07-17, winget-pkgs PR #397365 병합) —winget install SosomLab.nShiftSpace. 포터블 매니페스트라 PATH에nshiftspace별칭이 등록되고 x64·x86이 자동 선택됩니다. - 이로써 목표했던 두 배포 채널이 모두 확보됐습니다. zip 직접 내려받기도 그대로 사용할 수 있습니다.
문서
- 사용자 위키 8개 페이지 발행 — 설치하기 · 자동 실행 설정 · 사용법 · 문제 해결 · 직접 빌드하기 · 릴리스와 배포 · 로드맵. 저장소
docs/가 설계·배포 이력 중심이라 일반 사용자가 읽기 무거웠던 문제를 해소했습니다. 상단 "문서 (Wiki)" 버튼에서 볼 수 있습니다. - 자동 실행 절차 정립 — winget 설치 시 바로가기가 끊기지 않도록
WinGet\Links\nshiftspace.exe별칭 경로를 쓰는 이유, 별칭이 없을 때 개발자 모드를 켜는 방법, 채널별 대상 경로를 정리했습니다. - 관리자 권한 창 제약과 해법 명문화 — UIPI 때문에 승격된 창에서는 단축키가 듣지 않는다는 점과, 작업 스케줄러(
-RunLevel Highest)로 우회하는 절차를 설치 안내와 위키에 함께 실었습니다.
v0.1.0 2026-07-04 첫 공개 — nShiftSpace, 4.5KB짜리 Shift+Space 한/영 전환 상주 프로그램.
추가
- Shift+Space로 한/영 전환 — 누르면 한/영 키(
VK_HANGUL)를 대신 눌러줍니다. 한/영 키가 없는 외산 키보드나 키 위치가 손에 맞지 않는 경우를 위한 도구입니다. - 4.5KB 단일 실행 파일 — GUI 프레임워크도 C 런타임(CRT)도 링크하지 않고 kernel32·user32·shell32만 사용합니다. .NET이나 VC++ 재배포 패키지가 필요 없습니다.
- 대기 중 CPU 0% — 키보드 훅(
SetWindowsHookEx)이 아니라RegisterHotKey를 써서 OS가 직접 키를 가로챕니다. 모든 키 입력을 검사하지 않으므로 백신이 훅 기반 프로그램을 의심하는 문제에서도 자유롭습니다. - 트레이 상주 — 창 없이 트레이 아이콘만 뜨고 우클릭으로 종료합니다. 탐색기가 재시작되어도 아이콘이 자동으로 되살아나며, 중복 실행은 뮤텍스로 차단됩니다.
- 198바이트 자체 아이콘 — '가·A' 픽셀 아트를 16×16 1bpp ICO로 스크립트 생성해 내장했습니다. 아이콘까지 초경량 원칙을 지켰습니다.
- x64 · x86 두 가지 빌드 제공. 레지스트리에 아무것도 쓰지 않아 exe를 지우면 완전히 제거됩니다.
알림
- 단축키는 Shift+Space 고정입니다 — 설정 파일도 설정 화면도 없습니다. 4.5KB를 지키기 위한 의도적인 선택이며, 키를 자유롭게 바꾸는 기능은 로드맵의 nexa-mapper에서 다룰 예정입니다.
- 다른 프로그램이 Shift+Space를 먼저 등록했다면(일부 IME·매크로·게임 오버레이) 단축키 등록이 실패할 수 있습니다.
약관 및 정책
등록된 약관·정책 문서가 없습니다.