Skip to content

Instantly share code, notes, and snippets.

@icq4ever
Last active August 10, 2026 23:33
Show Gist options
  • Select an option

  • Save icq4ever/18c44b4d2cd4bb02e87b34d3bf930cf9 to your computer and use it in GitHub Desktop.

Select an option

Save icq4ever/18c44b4d2cd4bb02e87b34d3bf930cf9 to your computer and use it in GitHub Desktop.
PicPick on Linux (Wine)

리눅스에서 PicPick 쓰기 (Wine)

윈도우용 화면 캡처·이미지 편집 도구 PicPick을 리눅스에서 Wine으로 실행하는 방법입니다.

먼저 읽어주세요: PicPick의 캡처 기능 중 절반 정도만 동작합니다. 전체화면·영역 캡처는 실제 리눅스 데스크탑을 잘 잡습니다. 반면 창 캡처, 스크롤 캡처, 전역 단축키는 동작하지 않으며 설정으로 해결할 수 없습니다. 시간을 들이기 전에 동작 여부부터 확인하시기 바랍니다.

English version


테스트 환경

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, winetricks
  • icoutils, imagemagick (아이콘을 만들 때만 필요합니다)

설치

1. 전용 prefix 만들기

기본 ~/.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은 둘 다 필요하지 않습니다.

2. Wine 구성요소 설치

winetricks -q corefonts gdiplus riched20 vcrun2022

PicPick은 네이티브 Win32 앱이라 .NET이 필요하지 않습니다. dotnet48 같은 것은 설치하지 마세요.

위 네 개가 반드시 필요한지는 검증되지 않았습니다. 첫 실행 전에 미리 설치해버려서, 없이도 동작하는지는 확인하지 못했습니다만. 부담 없는 항목들이니 필수라기보다 안전장치로 보시면 됩니다.

한글 UI를 쓰려면 winetricks -q cjkfonts도 추가하세요.

3. Windows 버전을 7로 셋업하세요

wine reg add "HKCU\\Software\\Wine" /v Version /t REG_SZ /d win7 /f

이 설정을 하지 않으면 창을 최대화했다 풀 때마다 하얗게 변합니다. Alt-Tab으로 나갔다 돌아와야 다시 그려집니다. 원인은 win7을 사용하는 이유를 참고하세요. 선택 사항이 아닙니다.

4. PicPick 설치 (포터블)

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.exe

WINEDEBUG=-all을 붙이면 fixme: 잡음이 사라져서 진짜 에러만 보입니다.

5. 실행 스크립트

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/binPATH에 포함되어 있는지 확인하세요.

6. 데스크탑 항목

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/null
cat > ~/.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 창에는 그 핸들이 없으므로 안되는것이 정상입니다.


win7을 사용하는 이유

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 -k

winecfg는 아예 사용하지 않아도 됩니다. 이 문서의 모든 설정은 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/applications

라이선스 안내

PicPick은 개인 사용에 한해 무료이며, 상업적 사용에는 유료 라이선스가 필요합니다. EULA를 참고하세요. 이 저장소에는 PicPick 바이너리가 포함되어 있지 않으며, 설치 안내만 담고 있습니다.

이 문서는 CC0로 배포합니다.

PicPick on Linux (Wine)

Running PicPick — a Windows screen capture and image editor — on Linux under Wine.

Read this first: roughly half of PicPick's capture modes work. Full-screen and region capture of your actual Linux desktop work well. Window capture, scrolling capture, and global hotkeys do not, and cannot be fixed by configuration. See What works before investing time.

한국어 문서 / Korean version


Tested environment

Wine 11.14
Display server X11 (Wayland not supported)
Desktop KDE Plasma
PicPick 7.x, portable build
Distro Arch-based (EndeavourOS)

The WineHQ AppDB entry for PicPick shows Platinum/Gold ratings, but those are for PicPick 3.x on Wine 1.6/1.7, tested in 2013. PicPick's UI was rebuilt around a ribbon interface after that. Treat those ratings as unrelated to current versions.


Requirements

  • An X11 session. Wayland is not supported — screen capture will not work. Check with echo $XDG_SESSION_TYPE. On Plasma 6, Wayland is the default, so you may need to pick an X11 session at the login screen.
  • wine, winetricks
  • icoutils and imagemagick (only for the desktop icon)

Install

1. Create a dedicated Wine prefix

Keeping PicPick out of your default ~/.wine makes it trivial to throw away later.

mkdir -p ~/.local/share/wineprefixes
export WINEPREFIX=~/.local/share/wineprefixes/picpick
WINEARCH=win64 wineboot -u

The first run prints a wall of fixme: and err:ole: lines. This is normal — Wine is noisy during prefix creation. As long as you see created the configuration directory, it worked. Decline the Mono/Gecko install prompts if they appear; PicPick needs neither.

2. Install Wine components

winetricks -q corefonts gdiplus riched20 vcrun2022

PicPick is a native Win32 application and does not require .NET, so there is no need for dotnet48 or similar.

These four verbs have not been verified as strictly necessary — they were installed before first launch, so it is unknown whether PicPick works without them. They are cheap and harmless; treat them as a precaution rather than a requirement.

For a Korean UI, add winetricks -q cjkfonts.

3. Set the Windows version to 7 — this one matters

wine reg add "HKCU\\Software\\Wine" /v Version /t REG_SZ /d win7 /f

Without this, the window turns blank white whenever you toggle maximize, and only redraws after you Alt-Tab away and back. See Why win7 for the cause. This is not optional.

4. Install PicPick (portable build)

Download the portable ZIP from picpick.app. The portable build avoids installer issues entirely and leaves nothing behind if you delete the 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   # confirm the executable name
WINEDEBUG=-all wine picpick.exe

WINEDEBUG=-all silences the fixme: noise so real errors stand out.

5. Launcher script

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

Make sure ~/.local/bin is on your PATH.

6. Desktop entry

The icons embedded in picpick.exe top out at 32×32, so grab the 800×800 logo from the website instead:

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/null
cat > ~/.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

If the launcher doesn't pick it up, log out and back in.


What works

There is one clean rule behind every result below:

Pixel-based features work. Handle-based features don't.

Wine can read pixels from the X root window, so anything that just needs to grab an image of the screen works — including capturing native Linux applications. But Wine only knows about its own windows. Firefox, your terminal, and every other X11 client are invisible to it as windows; they're just pixels. Any PicPick feature that needs a window handle therefore fails.

Feature Status
Full screen capture Works — captures the real Linux desktop
Region capture (drag) Works
Fixed region / freehand Works
Color picker, pixel ruler, protractor, crosshair Works
Image editor Works
Saving to Z:\home\... Works — writes straight to your Linux home
Tray icon Works
Window capture Fails — reports "none" over Linux windows
Window Control capture Fails
Scrolling window capture Fails
Global hotkeys Fails — only fire while PicPick has focus

Global hotkeys

RegisterHotKey under Wine only fires while a Wine window holds focus, which defeats the point of a capture tool. A possible workaround, untested: bind a KDE global shortcut to a script that uses xdotool to focus the PicPick window and forward the keystroke.

Scrolling capture

This one is easy to misread. Manually scrolling with the wheel during a capture attempt can produce a tall image that looks like a successful stitch, but it isn't reproducible. Scrolling capture needs a window handle to send scroll messages to, and there is no handle for an X11 window. It does not work.


Why win7

Launching with WINEDEBUG enabled reveals the cause of the blank-window bug:

fixme:uxtheme:BufferedPaintInit Stub ()
fixme:uxtheme:BufferedPaintUnInit Stub ()

Wine's Buffered Paint API is a stub — it returns success without doing anything.

PicPick is built with Delphi and DevExpress VCL components (visible in the executable's resources, e.g. DXSPREADSHEET_CONDITIONAL_FORMATTING_ICONSET_SVG). These components draw their entire UI through custom GDI code and rely on buffered painting for the ribbon and other complex controls. When BeginBufferedPaint silently does nothing, the drawing goes nowhere and the window stays white until something forces a plain WM_PAINT — which is exactly what Alt-Tab does.

There are no err: lines because nothing actually failed from the application's point of view. It thinks the API succeeded.

DevExpress selects its drawing path based on the reported Windows version. On win10 it commits to buffered painting; on win7 and below the classic GDI fallback is still active. Setting the prefix to win7 avoids the stubbed API entirely.

This was confirmed by reverting to win10 (bug returns) and setting win7 (bug gone). XP also works, but win7 is preferable — fewer side effects with file dialogs and modern APIs.


Troubleshooting

wine: chdir to ... No such file or directory Wine creates the prefix directory but not its parents. Run mkdir -p ~/.local/share/wineprefixes first.

winecfg hangs or crashes Kill leftover processes first — PicPick sitting in the tray conflicts with it:

export WINEPREFIX=~/.local/share/wineprefixes/picpick
wineserver -k

You can skip winecfg entirely; every setting in this guide is applied via wine reg.

Window goes white after maximize The Windows version isn't set to win7. Verify:

wine reg query "HKCU\\Software\\Wine" /v Version

Capture produces a black or empty image You are almost certainly on Wayland. Check echo $XDG_SESSION_TYPE.

Harmless log lines freetype_get_unicode_ranges encoding 'symb' not supported (symbol fonts), GetThreadUILanguage stub, WTSRegisterSessionNotification stub, NtUserSystemParametersInfo Unknown action: 8220 — all cosmetic.


Should you bother?

Honestly: if you need window capture, scrolling capture, or global hotkeys, use a native tool instead.

  • Flameshot — annotation, arrows, blur; closest to PicPick's editing feel (X11)
  • ksnip — markup plus proper Wayland capture
  • Spectacle — bundled with KDE, and its scrolling capture actually works

PicPick under Wine makes sense if you specifically want its editor, its measurement tools, or simply prefer the interface you already know.


Uninstall

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/applications

License note

PicPick is freeware for personal use; commercial use requires a paid license. See the EULA. This repository contains no PicPick binaries — only setup instructions.

Documentation here is released under CC0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment