ν”Όλ“œλ‘œ λŒμ•„κ°€κΈ°
πŸ–₯️ Weekend Project: A CLI to Manage Multi-Monitor Layouts on Windows
Dev.toDev.to
DevOps

κ°œλ°œμžκ°€ 4개 λͺ¨λ‹ˆν„° ν™˜κ²½μ—μ„œ μˆ˜λ™ λ ˆμ΄μ•„μ›ƒ μ „ν™˜ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ Windows λͺ¨λ‹ˆν„° λ ˆμ΄μ•„μ›ƒ 관리 CLI 도ꡬλ₯Ό 직접 κ΅¬ν˜„ν–ˆλ‹€

πŸ–₯️ Weekend Project: A CLI to Manage Multi-Monitor Layouts on Windows

OsirisFrik2026λ…„ 3μ›” 30일4λΆ„intermediate

Context

4개 λͺ¨λ‹ˆν„° ν™˜κ²½μ—μ„œ μž‘μ—…μš© μšΈνŠΈλΌμ™€μ΄λ“œ λͺ¨λ‹ˆν„°μ™€ κ²Œμž„μš© 24인치 λͺ¨λ‹ˆν„° κ°„ μ „ν™˜ μ‹œ 맀번 Windows μ„€μ •μ—μ„œ μˆ˜λ™ μž¬λ°°μΉ˜ν•΄μ•Ό ν•˜λŠ” λΆˆνŽΈν•¨μ΄ μ‘΄μž¬ν–ˆλ‹€. κΈ°μ‘΄ 도ꡬ듀은 νŠΉμ • μš”κ΅¬μ‚¬ν•­μ„ μΆ©μ‘±ν•˜μ§€ λͺ»ν–ˆλ‹€.

Technical Solution

  • wsm CLIκ°€ Windows APIλ₯Ό 톡해 μ—°κ²°λœ λͺ¨λ“  λͺ¨λ‹ˆν„°λ₯Ό 읽어듀인닀
  • λͺ¨λ‹ˆν„° 해상도, μ£Όμ‚¬μœ¨, μœ„μΉ˜, κΈ°λ³Έ λ””μŠ€ν”Œλ ˆμ΄ μ—¬λΆ€, λ°©ν–₯ 정보λ₯Ό μΊ‘μ²˜ν•œλ‹€
  • λͺ¨λ‹ˆν„° ꡬ성을 YAMLμ΄λ‚˜ JSON ν”„λ‘œν•„λ‘œ ~/.wsm-profiles에 μ €μž₯ν•œλ‹€
  • 변경사항을 일괄 μŠ€ν…Œμ΄μ§• ν›„ 단일 μ—°μ‚°μœΌλ‘œ μ œμΆœν•˜μ—¬ ν™”λ©΄ κΉœλΉ‘μž„μ„ λ°©μ§€ν•œλ‹€
  • Elgato Stream Deck ν”ŒλŸ¬κ·ΈμΈμœΌλ‘œ μ›λ²„νŠΌ λ ˆμ΄μ•„μ›ƒ μ „ν™˜μ΄ κ°€λŠ₯ν•˜λ‹€

Impact

ν•˜λ£¨μ— μ΅œλŒ€ 3회 λ°œμƒν•˜λ˜ λͺ¨λ‹ˆν„° λ ˆμ΄μ•„μ›ƒ μˆ˜λ™ μž¬μ„€μ • μž‘μ—…μ„ μ œκ±°ν–ˆλ‹€

Key Takeaway

AI 도움에도 λΆˆκ΅¬ν•˜κ³  Windows API의 버그와 μ—£μ§€ μΌ€μ΄μŠ€λ₯Ό 직접 λ””λ²„κΉ…ν•˜λ©° 도메인 지식이 ν•„μˆ˜μ μ΄μ—ˆλ‹€.


Windows ν™˜κ²½μ—μ„œ μ—¬λŸ¬ λͺ¨λ‹ˆν„° λ ˆμ΄μ•„μ›ƒμ„ λΉˆλ²ˆν•˜κ²Œ μ „ν™˜ν•˜λŠ” μ‚¬μš©μžκ°€ YAML ν”„λ‘œν•„λ‘œ ꡬ성을 μ €μž₯ν•˜κ³  CLI λͺ…λ Ήμ–΄λ‘œ λ³΅μ›ν•¨μœΌλ‘œμ¨ μˆ˜λ™ μ„€μ • 반볡 μž‘μ—…μ„ μ œκ±°ν•  수 μžˆλ‹€

원문 읽기