Skip to content

progh2/keeptray

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

127 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

keeptray

Google Keep ๋ฐ์Šคํฌํ†ฑ ํŠธ๋ ˆ์ด ์•ฑ (macOS ยท Windows). ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜๋ฉด Keep ๋…ธํŠธ๋ฅผ ๋ฐ”๋กœ ์กฐํšŒยท์ž‘์„ฑยท์ˆ˜์ •ยท์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ตฌ์„ฑ๋„

์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

keeptray ์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

์ปดํฌ๋„ŒํŠธ ์•„ํ‚คํ…์ฒ˜

์ปดํฌ๋„ŒํŠธ ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ

์ธ์ฆ ์‹œํ€€์Šค

์ธ์ฆ ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

์•ฑ ์ƒํƒœ ์ „ํ™˜

์•ฑ ์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ

๋นŒ๋“œยท๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ

๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ ๋‹ค์ด์–ด๊ทธ๋žจ

์ฃผ์š” ๊ธฐ๋Šฅ

  • ๋ฉ”๋‰ด๋ฐ” ์ƒ์ฃผ โ€” ์•ฑ์ด Dock ์—†์ด ๋ฉ”๋‰ด๋ฐ”/ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค
  • ํŠธ๋ ˆ์ด ์ง์ ‘ ํด๋ฆญ โ€” ์•„์ด์ฝ˜ ํด๋ฆญ ์‹œ ๋…ธํŠธ ๋ชฉ๋ก ํŒจ๋„์ด ์ฆ‰์‹œ ์—ด๋ฆฝ๋‹ˆ๋‹ค (macOS ์šฐํด๋ฆญ ์‹œ ์ข…๋ฃŒ ๋ฉ”๋‰ด)
  • ๋…ธํŠธ ๋ชฉ๋ก ์กฐํšŒ โ€” ์ตœ์‹  ๋…ธํŠธ ๋ชฉ๋ก์„ ์นด๋“œ ํ˜•ํƒœ๋กœ ํ‘œ์‹œ, ์ด๋ฏธ์ง€ ์ธ๋„ค์ผ ์ง€์›
  • ์ƒ‰์ƒ๋ณ„ ํ•„ํ„ฐ โ€” ๋…ธํŠธ ๋ชฉ๋ก ์ƒ๋‹จ ํŒ”๋ ˆํŠธ์—์„œ ์ƒ‰์ƒ ํด๋ฆญ์œผ๋กœ ํ•ด๋‹น ์ƒ‰ ๋…ธํŠธ๋งŒ ํ•„ํ„ฐ๋ง
  • ๋…ธํŠธ ์ •๋ ฌ โ€” ์ˆ˜์ •์ผยท์ƒ์„ฑ์ผยท์ œ๋ชฉ ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ/๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
  • ๋…ธํŠธ ์ž‘์„ฑยท์ˆ˜์ •ยท์‚ญ์ œ โ€” ํŒจ๋„ ๋‚ด์—์„œ ์ง์ ‘ ํŽธ์ง‘ ๊ฐ€๋Šฅ
  • ํด๋ฆฝ๋ณด๋“œ๋กœ ์ƒˆ ๋…ธํŠธ โ€” ์ƒˆ ๋…ธํŠธ ๋ฒ„ํŠผ ์šฐํด๋ฆญ ์‹œ ํด๋ฆฝ๋ณด๋“œ ํ…์ŠคํŠธ๊ฐ€ ๋ณธ๋ฌธ์— ์ž๋™ ์‚ฝ์ž…
  • ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๋…ธํŠธ โ€” ํ•ญ๋ชฉ๋ณ„ ์ฒดํฌ/ํ•ด์ œ ์ง€์›
  • ์ž๋™ ์ €์žฅ โ€” ๋’ค๋กœ๊ฐ€๊ธฐยทESCยทํŒจ๋„ ๋‹ซ๊ธฐ ์‹œ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ž๋™ ์ €์žฅ
  • ๋˜๋Œ๋ฆฌ๊ธฐ โ€” ์ˆ˜์ • ์ค‘ ๋งˆ์ง€๋ง‰ ์ €์žฅ ์ƒํƒœ๋กœ ์ฆ‰์‹œ ๋ณต์›
  • ๋งํฌ ์ž๋™ ์ธ์‹ โ€” ๋…ธํŠธ ๋‚ด URL ํด๋ฆญ ์‹œ ๋ธŒ๋ผ์šฐ์ € ์˜คํ”ˆ
  • ํด๋ฆฝ๋ณด๋“œ ๋ณต์‚ฌ โ€” ๋ชฉ๋ก ์นด๋“œ ํ˜ธ๋ฒ„ ๐Ÿ“‹ / ํŽธ์ง‘๊ธฐ ๋ฒ„ํŠผ์œผ๋กœ ์ œ๋ชฉ+๋‚ด์šฉ ๋ณต์‚ฌ
  • ๋ณด๊ด€ํ•จ โ€” ๋…ธํŠธ๋ฅผ ๋ณด๊ด€ํ•จ์œผ๋กœ ์ด๋™, ๋ชฉ๋ก ์กฐํšŒ ๋ฐ ๋ณด๊ด€ ํ•ด์ œ
  • ํœด์ง€ํ†ต โ€” ์‚ญ์ œ ๋…ธํŠธ๋ฅผ ํœด์ง€ํ†ต์œผ๋กœ ์ด๋™, ๋ณต์› / ์˜๊ตฌ ์‚ญ์ œ / ํœด์ง€ํ†ต ๋น„์šฐ๊ธฐ
  • ๋ผ๋ฒจ ๊ด€๋ฆฌ โ€” ์‚ฌ์ด๋“œ๋ฐ”์— ๋ผ๋ฒจ ๋ชฉ๋ก ํ‘œ์‹œ ๋ฐ ํด๋ฆญ ํ•„ํ„ฐ๋ง, ํŽธ์ง‘๊ธฐ์—์„œ ๋…ธํŠธ์— ๋ผ๋ฒจ ํ• ๋‹น, ๋ผ๋ฒจ ์ถ”๊ฐ€ยท์ด๋ฆ„๋ณ€๊ฒฝยท์‚ญ์ œ
  • ํฐํŠธ ์„ค์ • โ€” ๋ชฉ๋ก ์ œ๋ชฉ/๋‚ด์šฉ, ํŽธ์ง‘๊ธฐ ์ œ๋ชฉ/๋ณธ๋ฌธ๋ณ„ ํฐํŠธ ์ข…๋ฅ˜ยทํฌ๊ธฐ ๊ฐœ๋ณ„ ์„ค์ •
  • ์ž๋™ ์—…๋ฐ์ดํŠธ โ€” GitHub Releases์—์„œ ์ƒˆ ๋ฒ„์ „ ๊ฐ์ง€ ์‹œ ์•Œ๋ฆผ, ์›ํด๋ฆญ ๋‹ค์šด๋กœ๋“œยท์„ค์น˜
  • ๋‚ด๋ณด๋‚ด๊ธฐยท๊ณต์œ  โ€” Markdown / TXT / PNG / PDF / ํ•œ๊ธ€(.hwpx) / Word(.docx) ์ €์žฅ, ์ด๋ฉ”์ผยท์นด์นด์˜คํ†ก ๊ณต์œ 
  • ๋‚ด ๋ฉ”์ผ๋กœ ๋ณด๋‚ด๊ธฐ โ€” ์„ค์ •์— ๋‚ด ๋ฉ”์ผ ์ฃผ์†Œ ์ €์žฅ ํ›„ ์›ํด๋ฆญ ์ „์†ก
  • ๋ฒˆ์—ญ ์ƒˆ ๋…ธํŠธ โ€” MyMemory API๋กœ ๋…ธํŠธ๋ฅผ ๋ฒˆ์—ญํ•˜์—ฌ ์ƒˆ ๋…ธํŠธ ์ƒ์„ฑ
  • ํ…Œ๋งˆ โ€” ๋ผ์ดํŠธยท๋‹คํฌยท์‹œ์Šคํ…œ ํ…Œ๋งˆ ์ง€์›, ์„ค์ • ๋ฉ”๋‰ด์—์„œ ์ฆ‰์‹œ ์ „ํ™˜
  • ์˜คํ”„๋ผ์ธ ํ‘œ์‹œ โ€” ๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜ ์‹œ ์บ์‹œ ๋…ธํŠธ๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์ฃผํ™ฉ์ƒ‰ ๋ฐฐ๋„ˆ๋กœ ์˜คํ”„๋ผ์ธ ์•ˆ๋‚ด, ์žฌ์—ฐ๊ฒฐ ๋ฒ„ํŠผ ๋ฐ 30์ดˆ ์ž๋™ ์žฌ์‹œ๋„ ์ง€์›
  • ํŒจ๋„ ์œ„์น˜ ์ž๋™ ์ดˆ๊ธฐํ™” โ€” ๋ชจ๋‹ˆํ„ฐ ์„ค์ • ๋ณ€๊ฒฝ ์‹œ ํŒจ๋„ ์œ„์น˜๋ฅผ ์ž๋™์œผ๋กœ ์ดˆ๊ธฐํ™”, ํŠธ๋ ˆ์ด ๋ฉ”๋‰ด '์œ„์น˜ ์ดˆ๊ธฐํ™”'๋กœ ์ˆ˜๋™ ์ดˆ๊ธฐํ™” ๊ฐ€๋Šฅ
  • ์„ธ์…˜ ๋งŒ๋ฃŒ ๊ฐ์ง€ โ€” ์„ธ์…˜ ๋งŒ๋ฃŒ ์‹œ ๋นจ๊ฐ„ ๋ฐฐ๋„ˆ ํ‘œ์‹œ ๋ฐ ์žฌ๋กœ๊ทธ์ธ ์•ˆ๋‚ด ๋‹ค์ด์–ผ๋กœ๊ทธ
  • ์ž๋™ ์‹œ์ž‘ โ€” macOS LaunchAgent / Windows ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๋“ฑ๋กยทํ•ด์ œ
  • ๋‹ค๊ตญ์–ด ์ง€์› โ€” ํ•œ๊ตญ์–ดยท์˜์–ดยท์ผ๋ณธ์–ด, ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ์ฆ‰์‹œ ์ „ํ™˜ ๊ฐ€๋Šฅ
  • ํ•œ๊ตญ์–ด IME ์ตœ์ ํ™” โ€” macOS ํ•œ๊ธ€ ์ž…๋ ฅ ์ฒซ ๊ธ€์ž ์ž์†Œ ๋ถ„๋ฆฌ ํ˜„์ƒ ์ˆ˜์ •

์ธ์ฆ ๋ฐฉ์‹

keeptray์€ Playwright Chromium์„ ์‚ฌ์šฉํ•ด Google ๊ณ„์ •์— ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.

  1. ์•ฑ ์‹คํ–‰ โ†’ "Google๋กœ ๋กœ๊ทธ์ธ" ๋ฒ„ํŠผ ํด๋ฆญ
  2. Chromium ์ฐฝ์ด ์ž๋™์œผ๋กœ ์—ด๋ฆฝ๋‹ˆ๋‹ค
  3. Google ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•˜๋ฉด ์ธ์ฆ์ด ์ž๋™์œผ๋กœ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค
  4. ์ดํ›„ ์‹คํ–‰๋ถ€ํ„ฐ๋Š” ์ €์žฅ๋œ ์„ธ์…˜์ด ์ž๋™์œผ๋กœ ๋ณต์›๋ฉ๋‹ˆ๋‹ค (์žฌ๋กœ๊ทธ์ธ ๋ถˆํ•„์š”)

์ธ์ฆ ์ฟ ํ‚ค(SAPISID)๋Š” macOS Keychain / Windows ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž์™€ ~/.config/keeptray/session.json์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
Google ์•ฑ ๋น„๋ฐ€๋ฒˆํ˜ธ๋‚˜ ๋ณ„๋„ API ํ‚ค๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์„ค์น˜

macOS (.dmg)

  1. Releases ์—์„œ keeptray-[๋ฒ„์ „].dmg ๋‹ค์šด๋กœ๋“œ
  2. DMG๋ฅผ ์—ด๊ณ  keeptray.app์„ Applications ํด๋”๋กœ ๋“œ๋ž˜๊ทธ

์ตœ์ดˆ ์‹คํ–‰ ์‹œ ํ•„์ˆ˜ ๋ช…๋ น์–ด

macOS๋Š” ์ธํ„ฐ๋„ท์—์„œ ๋‹ค์šด๋กœ๋“œํ•œ ์•ฑ์„ Gatekeeper๋กœ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. Apple Developer ์ธ์ฆ์„œ ์—†์ด ๋ฐฐํฌ๋œ ์•ฑ์€ ๋ณ„๋„์˜ ํ—ˆ์šฉ ์ ˆ์ฐจ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

xattr -rd com.apple.quarantine /Applications/keeptray.app && open /Applications/keeptray.app

์ด ๋ช…๋ น์€ ์ตœ์ดˆ 1ํšŒ๋งŒ ์‹คํ–‰ํ•˜๋ฉด ๋˜๋ฉฐ, ์ดํ›„์—๋Š” ํ‰์†Œ์ฒ˜๋Ÿผ ์•ฑ์„ ํด๋ฆญํ•ด์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows (.zip)

  1. Releases ์—์„œ keeptray-[๋ฒ„์ „]-win.zip ๋‹ค์šด๋กœ๋“œ
  2. ZIP์„ ์›ํ•˜๋Š” ํด๋”์— ์••์ถ• ํ•ด์ œ
  3. keeptray\keeptray.exe ์‹คํ–‰

Windows ์ฒซ ์‹คํ–‰

  • Chromium ์ž๋™ ์„ค์น˜: ์ฒซ ์‹คํ–‰ ์‹œ Google ๋กœ๊ทธ์ธ์— ํ•„์š”ํ•œ Chromium ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ž๋™์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค (์•ฝ 150MB, 1ํšŒ๋งŒ).
    ๋‹ค์šด๋กœ๋“œ ๊ฒฝ๋กœ: %LOCALAPPDATA%\keeptray\ms-playwright
  • Windows Defender: ์„œ๋ช…๋˜์ง€ ์•Š์€ ์•ฑ์œผ๋กœ ๊ฒฝ๊ณ ๊ฐ€ ๋œฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "์ถ”๊ฐ€ ์ •๋ณด โ†’ ์‹คํ–‰"์„ ํด๋ฆญํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์‹คํ–‰

# 1. ์˜์กด์„ฑ ์„ค์น˜
pip install -e .

# 2. Playwright Chromium ์„ค์น˜ (์ตœ์ดˆ 1ํšŒ)
python -m playwright install chromium

# 3. ์‹คํ–‰
python -m keeptray

๋ฐฐํฌ ๋นŒ๋“œ

macOS (.dmg)

# PyInstaller + ์ฝ”๋“œ์„œ๋ช… + DMG ์ƒ์„ฑ
bash build_dmg.sh
# โ†’ dist/keeptray-[๋ฒ„์ „].dmg

๋นŒ๋“œ ์š”๊ตฌ์‚ฌํ•ญ: pip install pyinstaller pyqt6==6.7.1
codesign์€ ad-hoc ์„œ๋ช…(-)์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ Apple Developer ๊ณ„์ • ๋ถˆํ•„์š”.

Windows (.zip)

# PyInstaller + ZIP ํŒจํ‚ค์ง•
python -m PyInstaller keeptray_win.spec --noconfirm
# โ†’ dist/keeptray/ ํด๋” โ†’ ZIP์œผ๋กœ ์••์ถ•

๋นŒ๋“œ ์š”๊ตฌ์‚ฌํ•ญ: pip install pyinstaller pyqt6==6.7.1

๊ธฐ์ˆ  ์Šคํƒ

๊ตฌ๋ถ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ”Œ๋žซํผ ์„ค๋ช…
GUI PyQt6 6.7.1 ๊ณตํ†ต Qt6 ๊ธฐ๋ฐ˜ ํฌ๋กœ์Šคํ”Œ๋žซํผ GUI ํ”„๋ ˆ์ž„์›Œํฌ
ํŠธ๋ ˆ์ด (macOS) rumps macOS macOS ๋ฉ”๋‰ด๋ฐ” ์•ฑ Python ๋ž˜ํผ
ํŠธ๋ ˆ์ด (Windows) pystray + Pillow Windows Windows ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜
macOS ๋„ค์ดํ‹ฐ๋ธŒ PyObjC macOS Objective-C/AppKit API Python ๋ฐ”์ธ๋”ฉ
Keep API gkeepapi ๊ณตํ†ต ๋น„๊ณต์‹ Google Keep API ํด๋ผ์ด์–ธํŠธ
๋ธŒ๋ผ์šฐ์ € ๋กœ๊ทธ์ธ Playwright ๊ณตํ†ต Chromium ์ œ์–ด๋กœ Google ๊ณ„์ • ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ
์„ธ์…˜ ์ €์žฅ keyring ๊ณตํ†ต macOS Keychain / Windows ์ž๊ฒฉ ์ฆ๋ช… ๊ด€๋ฆฌ์ž
๋ฌธ์„œ ์ €์žฅ python-docx, python-hwpx ๊ณตํ†ต Word(.docx) / ํ•œ๊ธ€(.hwpx) ๋‚ด๋ณด๋‚ด๊ธฐ
ํŒจํ‚ค์ง• PyInstaller 6.x ๊ณตํ†ต Python ์•ฑ์„ ๋‹จ์ผ ์‹คํ–‰ ํŒŒ์ผ๋กœ ํŒจํ‚ค์ง•
๋‹ค๊ตญ์–ด gettext ๊ณตํ†ต .po/.mo ๊ธฐ๋ฐ˜ ๋ฒˆ์—ญ, ๋Ÿฐํƒ€์ž„ ์–ธ์–ด ์ „ํ™˜

๋ฒˆ์—ญ ๊ธฐ์—ฌ

keeptray์€ ํ˜„์žฌ ํ•œ๊ตญ์–ดยท์˜์–ดยท์ผ๋ณธ์–ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์–ธ์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ๋ฒˆ์—ญ์„ ๊ฐœ์„ ํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„์€ ์–ธ์ œ๋“ ์ง€ ๊ธฐ์—ฌํ•ด์ฃผ์„ธ์š”!

  • ๋ฒˆ์—ญ ํŒŒ์ผ ์œ„์น˜: i18n/{์–ธ์–ด์ฝ”๋“œ}/LC_MESSAGES/keeptray.po
  • ์ž์„ธํ•œ ๊ธฐ์—ฌ ๋ฐฉ๋ฒ•์€ CONTRIBUTING_TRANSLATION.md๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”

๊ธฐ์—ฌ์ž๋ถ„์˜ ์ด๋ฆ„์€ CONTRIBUTORS.md์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ๐Ÿ™

๋ผ์ด์„ ์Šค

GNU GPL v3

About

๐Ÿ—’ Google Keep ํŠธ๋ ˆ์ด ์•ฑ โ€” ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜์œผ๋กœ ๋…ธํŠธ๋ฅผ ๋ฐ”๋กœ ์กฐํšŒยท์ž‘์„ฑยท์ˆ˜์ •ยท์‚ญ์ œ

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages