윈도우용 화면 캡처·이미지 편집 도구 PicPick을 리눅스에서 Wine으로 실행하는 방법입니다.
먼저 읽어주세요: PicPick의 캡처 기능 중 절반 정도만 동작합니다. 전체화면·영역 캡처는 실제 리눅스 데스크탑을 잘 잡습니다. 반면 창 캡처, 스크롤 캡처, 전역 단축키는 동작하지 않으며 설정으로 해결할 수 없습니다. 시간을 들이기 전에 동작 여부부터 확인하시기 바랍니다.
| Wine | 11.14 |
| 디스플레이 서버 | X11 (Wayland 미지원) |
| 데스크탑 | KDE Plasma |
| PicPick | 7.x, 포터블 버전 |
| 배포판 | Arch 계열 (EndeavourOS) |
WineHQ AppDB의 PicPick 항목에 Platinum/Gold 등급이 있지만, 이는 2013년에 PicPick 3.x를 Wine 1.6/1.7에서 테스트한 결과입니다. 그 이후 PicPick UI는 리본 인터페이스로 완전히 개편되었습니다. 현재 버전과는 무관한 데이터로 보셔야 합니다.
- X11 세션. Wayland는 지원하지 않습니다 — 화면 캡처 자체가 되지 않습니다.
echo $XDG_SESSION_TYPE으로 확인하세요. Plasma 6은 기본이 Wayland이므로 로그인 화면에서 X11 세션을 선택해야 할 수 있습니다. wine,winetricksicoutils,imagemagick(아이콘을 만들 때만 필요합니다)
기본 ~/.wine을 건드리지 않으면 나중에 통째로 지우기 편합니다.
mkdir -p ~/.local/share/wineprefixes
export WINEPREFIX=~/.local/share/wineprefixes/picpick
WINEARCH=win64 wineboot -u첫 실행 시 fixme:와 err:ole: 로그가 쏟아지는데 정상입니다. created the configuration directory가 보이면 성공입니다. Mono/Gecko 설치 팝업이 뜨면 취소해도 됩니다 — PicPick은 둘 다 필요하지 않습니다.
winetricks -q corefonts gdiplus riched20 vcrun2022PicPick은 네이티브 Win32 앱이라 .NET이 필요하지 않습니다. dotnet48 같은 것은 설치하지 마세요.
위 네 개가 반드시 필요한지는 검증되지 않았습니다. 첫 실행 전에 미리 설치해버려서, 없이도 동작하는지는 확인하지 못했습니다만. 부담 없는 항목들이니 필수라기보다 안전장치로 보시면 됩니다.
한글 UI를 쓰려면 winetricks -q cjkfonts도 추가하세요.
wine reg add "HKCU\\Software\\Wine" /v Version /t REG_SZ /d win7 /f이 설정을 하지 않으면 창을 최대화했다 풀 때마다 하얗게 변합니다. Alt-Tab으로 나갔다 돌아와야 다시 그려집니다. 원인은 win7을 사용하는 이유를 참고하세요. 선택 사항이 아닙니다.
picpick.app에서 포터블 ZIP을 받습니다. 인스톨러 문제를 아예 피할 수 있고, prefix를 지우면 흔적도 남지 않습니다.
mkdir -p ~/.local/share/wineprefixes/picpick/drive_c/picpick
unzip ~/Downloads/picpick_portable*.zip \
-d ~/.local/share/wineprefixes/picpick/drive_c/picpick
cd ~/.local/share/wineprefixes/picpick/drive_c/picpick
ls # 실행 파일 이름 확인
WINEDEBUG=-all wine picpick.exeWINEDEBUG=-all을 붙이면 fixme: 잡음이 사라져서 진짜 에러만 보입니다.
mkdir -p ~/.local/bin
cat > ~/.local/bin/picpick << 'EOF'
#!/bin/bash
export WINEPREFIX="$HOME/.local/share/wineprefixes/picpick"
cd "$HOME/.local/share/wineprefixes/picpick/drive_c/picpick"
WINEDEBUG=-all exec wine picpick.exe
EOF
chmod +x ~/.local/bin/picpick~/.local/bin이 PATH에 포함되어 있는지 확인하세요.
picpick.exe에 포함된 아이콘은 최대 32×32라 작습니다. 공식 사이트의 800×800 로고를 쓰는 편이 낫습니다.
cd /tmp
curl -L -o picpick-logo.png \
"https://picpick.app/static/logo-74929f92cead79160a18846cfc0e703b.png"
mkdir -p ~/.local/share/icons/hicolor/{256x256,48x48,32x32,16x16}/apps
for s in 256 48 32 16; do
magick picpick-logo.png -resize ${s}x${s} \
~/.local/share/icons/hicolor/${s}x${s}/apps/picpick.png
done
gtk-update-icon-cache -f -t ~/.local/share/icons/hicolor 2>/dev/nullcat > ~/.local/share/applications/picpick.desktop << EOF
[Desktop Entry]
Type=Application
Name=PicPick
GenericName=Screen Capture
Comment=Screen capture and image editor (Wine)
Exec=$HOME/.local/bin/picpick
Icon=picpick
Terminal=false
Categories=Graphics;2DGraphics;RasterGraphics;
StartupWMClass=picpick.exe
StartupNotify=true
EOF
update-desktop-database ~/.local/share/applications런처에 나타나지 않으면 로그아웃 후 다시 로그인하세요.
픽셀 기반 기능은 되고, 핸들 기반 기능은 되지 않습니다.
Wine은 X root window에서 픽셀을 읽을 수 있어서, 화면 이미지만 가져오면 되는 기능은 모두 동작합니다 — 리눅스 네이티브 앱도 캡처됩니다. 하지만 Wine은 자기 안의 창만 알고 있습니다. 파이어폭스든 터미널이든 다른 X11 클라이언트는 Wine 입장에서 창이 아니라 픽셀 덩어리일 뿐입니다. 그래서 윈도우 핸들이 필요한 기능은 모두 실패합니다.
| 기능 | 상태 |
|---|---|
| 전체화면 캡처 | 동작합니다 — 실제 리눅스 데스크탑이 캡처됩니다 |
| 영역 캡처 (드래그) | 동작 |
| 고정 영역 / 자유 형식 | 동작 |
| 색상 추출, 픽셀 자, 각도기, 십자선 | 동작 |
| 이미지 편집기 | 동작 |
Z:\home\... 로 저장 |
동작 — 리눅스 홈에 바로 저장됩니다 |
| 트레이 아이콘 | 동작 |
| 창 캡처 | 실패 — 리눅스 창 위에서 "none"으로 표시됩니다 |
| 컨트롤 캡처 (Window Control) | 실패 |
| 스크롤 캡처 | 실패 |
| 전역 단축키 | 실패 — PicPick 창이 포커스일 때만 동작 |
Wine에서 RegisterHotKey는 Wine 창이 포커스를 쥐고 있을 때만 발동합니다. 캡처 도구로서는 치명적인 제약입니다. 검증되지 않은 우회책이 하나 있습니다. KDE 전역 단축키에 xdotool로 PicPick 창을 포커스한 뒤 키를 전달하는 스크립트를 연결하는 방법입니다.
캡처 시도 중에 휠로 직접 스크롤하면 세로로 긴 이미지가 나와서 성공한 것처럼 보이지만, 재현되지 않습니다. 스크롤 캡처는 대상 창에 스크롤 메시지를 보낼 핸들이 필요한데 X11 창에는 그 핸들이 없으므로 안되는것이 정상입니다.
WINEDEBUG 로그를 켜고 실행하면 흰 화면 버그의 원인이 그대로 드러납니다.
fixme:uxtheme:BufferedPaintInit Stub ()
fixme:uxtheme:BufferedPaintUnInit Stub ()
Wine의 Buffered Paint API가 스텁입니다 — 아무것도 하지 않고 성공만 반환합니다.
PicPick은 Delphi + DevExpress VCL로 만들어졌습니다 (실행 파일 리소스에서 확인할 수 있습니다. 예: DXSPREADSHEET_CONDITIONAL_FORMATTING_ICONSET_SVG). 이 컴포넌트들은 UI를 전부 커스텀 GDI 코드로 그리고, 리본 등 복잡한 컨트롤에서 버퍼드 페인팅에 의존합니다. BeginBufferedPaint가 조용히 아무것도 하지 않으면 그리기가 갈 곳을 잃고, 일반 WM_PAINT가 강제로 발생할 때까지 창이 하얗게 남습니다. Alt-tab으로 이 증상을 되돌립니다.
err: 로그가 하나도 나오지 않는 이유도 여기에 있습니다. 앱 입장에서는 실패한 것이 없습니다. API가 성공했다고 믿고 계속 진행합니다.
DevExpress는 보고된 Windows 버전에 따라 그리기 경로를 선택합니다. win10에서는 버퍼드 페인팅을 전면적으로 사용하고, win7 이하에서는 클래식 GDI 폴백이 살아 있습니다. prefix를 win7로 두면 스텁 API를 아예 타지 않게 됩니다.
win10으로 되돌리면 버그가 재현되고 win7로 바꾸면 사라지는 것을 확인했습니다. XP도 동작하지만 win7이 낫습니다 — 파일 대화상자나 최신 API 관련 부작용이 적기 때문입니다.
wine: chdir to ... No such file or directory
Wine은 prefix 디렉터리는 만들어도 그 상위 경로는 만들지 않습니다. mkdir -p ~/.local/share/wineprefixes를 먼저 실행하세요.
winecfg가 멈추거나 종료됨 남은 프로세스부터 정리하세요. 트레이에 떠 있는 PicPick과 충돌합니다.
export WINEPREFIX=~/.local/share/wineprefixes/picpick
wineserver -kwinecfg는 아예 사용하지 않아도 됩니다. 이 문서의 모든 설정은 wine reg로 적용합니다.
최대화 후 창이 하얗게 됨 Windows 버전이 win7로 설정되지 않았습니다. 확인해보세요.
wine reg query "HKCU\\Software\\Wine" /v Version캡처 결과가 검거나 비어 있음
거의 확실히 Wayland입니다. echo $XDG_SESSION_TYPE으로 확인하세요.
무시해도 되는 로그
freetype_get_unicode_ranges encoding 'symb' not supported (심볼 폰트), GetThreadUILanguage stub, WTSRegisterSessionNotification stub, NtUserSystemParametersInfo Unknown action: 8220 — 모두 무해합니다.
창 캡처·스크롤 캡처·전역 단축키가 필요하시다면 네이티브 도구를 쓰는 편이 맞습니다.
- Flameshot — 주석, 화살표, 블러를 지원합니다. PicPick의 편집 감각에 가장 가깝습니다 (X11)
- ksnip — 마크업과 Wayland 캡처를 모두 지원합니다
- Spectacle — KDE 기본 내장이며, 스크롤 캡처가 실제로 동작합니다
rm -rf ~/.local/share/wineprefixes/picpick
rm -f ~/.local/bin/picpick
rm -f ~/.local/share/applications/picpick.desktop
rm -f ~/.local/share/icons/hicolor/*/apps/picpick.png
update-desktop-database ~/.local/share/applicationsPicPick은 개인 사용에 한해 무료이며, 상업적 사용에는 유료 라이선스가 필요합니다. EULA를 참고하세요. 이 저장소에는 PicPick 바이너리가 포함되어 있지 않으며, 설치 안내만 담고 있습니다.
이 문서는 CC0로 배포합니다.