মূল লেখায় যান
রাইসুল সোহান

উইন্ডোজ ডেস্কটপ ইউটিলিটি ও সিস্টেম সফটওয়্যার

LazyPin

যেকোনো উইন্ডো এক ক্লিকে অলওয়েজ-অন-টপ পিন করার নেটিভ উইন্ডোজ টুল

একক সফটওয়্যার আর্কিটেক্ট ও সিস্টেম ডেভেলপার উইন্ডোজ ১০ ও ১১ ডেস্কটপ অ্যাপ • C# / Win32 API • v1.0.3

  • GitHub স্টার: ০
  • v1.0.4 · ৪৪ মিনিট আগে
ফ্রি ডাউনলোড GitHub
LazyPin

উইন্ডোজ ১০ ও ১১-এ যেকোনো অ্যাপ্লিকেশন উইন্ডোর মিনিমাইজ বাটনের ঠিক পাশে একটি নিখুঁত নেটিভ পিন বাটন যুক্ত করে এক ক্লিকে অলওয়েজ-অন-টপ (Always-On-Top) করার হালকা ও অত্যন্ত দ্রুতগতির ডেস্কটপ ইউটিলিটি। উইন্ডো ড্র্যাগ ও রিসাইজ ট্র্যাকিংয়ে জিরো-জিটার পারফরম্যান্স, ক্রোমিয়াম ও আধুনিক অ্যাপের জন্য স্মার্ট ক্যাপশন অ্যাডাপ্টেশন এবং ফুলস্ক্রিন অটো-হাইড সুবিধা।

চ্যালেঞ্জ ও প্রেক্ষাপট

মাল্টিটাস্কিংয়ের সময় প্রোগ্রামার, ভিডিও এডিটর, গবেষক বা শিক্ষার্থীদের প্রায়শই কোনো রেফারেন্স উইন্ডো—যেমন ক্যালকুলেটর, ভিডিও টিউটোরিয়াল, চিটশিট, ডকুমেন্টেশন বা চ্যাট অ্যাপ—মূল কাজের উইন্ডোর ওপর সার্বক্ষণিক দৃশ্যমান (Always-on-Top) রাখতে হয়। মাইক্রোসফট পাওয়ারটয়স (PowerToys)-এর মতো প্রচলিত টুলগুলোতে কীবোর্ড শর্টকাট (Win+Ctrl+T) মুখস্থ রাখতে হয়, যা কাজের স্বাভাবিক ছন্দ ভেঙে দেয় এবং উইন্ডোর ওপর কোনো স্পষ্ট ভিজ্যুয়াল অ্যাফর্ডেন্স থাকে না। তাছাড়া অন্যান্য পুরনো পিন ইউটিলিটিগুলো ভারী ব্যাকগ্রাউন্ড প্রসেস চালায়, অ্যাডমিন পারমিশন চায় কিংবা উইন্ডো নাড়াচাড়া করার সময় বাটন আলাদা হয়ে মারাত্মক জিটার (Jitter) তৈরি করে।

প্রধান কারিগরি চ্যালেঞ্জসমূহ:
১. জিরো-জিটার রিয়েল-টাইম উইন্ডো ট্র্যাকিং: ব্যবহারকারী যখন মাউস দিয়ে দ্রুত গতিতে উইন্ডো সরান (Drag) বা উইন্ডোজ স্ন্যাপ (Snap) করেন, তখন পিন বাটনটিকে টাইটেল বারের মিনিমাইজ বাটনের পাশে ৬০+ FPS ফ্রেম-রেটে নিখুঁতভাবে আটকে রাখা। গ্লোবাল সিস্টেম-ওয়াইড হুক ব্যবহার করলে মেসেজ পাম্পে চাপ পড়ে পুরো ওএস ল্যাগ করত; তাই ট্র্যাকিং হুকটিকে কেবল নির্দিষ্ট সক্রিয় প্রসেসে সীমাবদ্ধ রাখা ছিল অপরিহার্য।
২. নন-স্ট্যান্ডার্ড ও কাস্টম ক্যাপশন বার শনাক্তকরণ: গুগল ক্রোম, মাইক্রোসফট এজ, ব্র্যাভ কিংবা ইলেকট্রন অ্যাপগুলো (যেমন Claude Desktop, VS Code, Spotify) সাধারণ উইন্ডোজ টাইটেল বার ব্যবহার না করে টাইটেল বারের ভেতরেই ক্লায়েন্ট ট্যাব আঁকে। ফলে ফিক্সড অফসেট বসালে পিন বাটন ইউজারের ট্যাবের ওপর চেপে বসত। DWM API ও নন-ক্লায়েন্ট হিট-টেস্টিং (WM_NCHITTEST) ব্যবহার করে লাইভ ক্যাপশন বাটন মেকানিক্স মাপা এবং হ্যাং হওয়া উইন্ডোতে মূল থ্রেড যাতে ফ্রিজ না হয় তা নিশ্চিত করা ছিল বড় চ্যালেঞ্জ।
৩. নন-ইন্ট্রুসিভ এক্সিকিউশন ও ফুলস্ক্রিন ইন্টেলিজেন্স: পিন করার সময় কীবোর্ড ফোকাস না হারানো, গেম বা ফুলস্ক্রিন ভিডিও প্লেব্যাকে স্বয়ংক্রিয়ভাবে লুকিয়ে যাওয়া এবং কোনো অ্যাডমিন প্রিভিলেজ (UAC) ছাড়া ব্যবহারকারীর লোকাল ডিরেক্টরিতে নীরবে চলা।

সমাধান ও কর্মপ্রক্রিয়া

১. প্রসেস-স্কোপ্ড উইনইভেন্ট হুক আর্কিটেকচার: গ্লোবাল হুকের বদলে সক্রিয় উইন্ডোর সুনির্দিষ্ট প্রসেস আইডিতে (PID) SetWinEventHook(EVENT_OBJECT_LOCATIONCHANGE) ব্যবহার করা হয়েছে। উইন্ডো নাড়াচাড়ার সাথে সাথে এটি ব্যাকগ্রাউন্ড লুপ ছাড়াই তাৎক্ষণিক কোঅর্ডিনেট আপডেট করে, যার ফলে ০% আইডল সিপিইউ ব্যবহারে ১ পিক্সেলও বিচ্যুতির ঝুঁকি ছাড়া ৬০+ FPS গতিতে জিরো-জিটার ট্র্যাকিং পাওয়া যায়।

২. ডায়নামিক DWM ও WM_NCHITTEST ক্যাপশন হিউরিস্টিক: DwmGetWindowAttribute (DWMWA_CAPTION_BUTTON_BOUNDS) এবং SendMessageTimeout-এর সমন্বয়ে নন-ব্লকিং হিট-টেস্ট ইঞ্জিন তৈরি করা হয়েছে। কোনো অ্যাপ যদি রেসপন্ড না করে (IsHungAppWindow), তবে টাইমআউট প্রটেকশন থাকায় মূল থ্রেড কখনো আটকে থাকে না। ফলে ক্রোম, এজ, নোটপ্যাড কিংবা ফাইল এক্সপ্লোরার—সব অ্যাপের মিনিমাইজ বাটনের বামে নিরাপদ ফাঁকা জায়গা স্বয়ংক্রিয়ভাবে শনাক্ত হয়।

৩. সিঙ্গেল-ক্লিক পিন ও অ্যাকসেন্ট স্টেট ভিজ্যুয়ালাইজেশন: পিন বাটনে ক্লিক করলেই SetWindowPos(HWND_TOPMOST) দিয়ে সক্রিয় উইন্ডোটি অলওয়েজ-অন-টপ হিসেবে লক হয় এবং বাটনে সিগনেচার অ্যাকসেন্ট কালার (#60CDFF) হাইলাইট ফুটে ওঠে। পুনরায় ক্লিক করলে উইন্ডো সাধারণ z-order-এ ফিরে আসে।

৪. ফুলস্ক্রিন ও মনিটর ইন্টেলিজেন্স: CoversMonitor অ্যালগরিদম দিয়ে সক্রিয় উইন্ডোটি কোনো মনিটরের ফুলস্ক্রিন গেম, ইউটিউব/মিডিয়া প্লেয়ার কিংবা F11 ব্রাউজার ভিউতে আছে কিনা যাচাই করে স্বয়ংক্রিয়ভাবে পিন বাটন লুকিয়ে রাখা হয় যাতে কোনো ফুলস্ক্রিন কনটেন্টে ব্যাঘাত না ঘটে।

৫. ডিপিআই-অ্যাওয়ার স্কেলিং ও থিম হারমনি: GetDpiForWindow ব্যবহার করে ১০০%, ১২৫%, ১৫০%, ২০০% যেকোনো মনিটর ডিপিআই স্কেলিংয়ে বাটনের সাইজ, প্যাডিং ও আইকন নিখুঁতভাবে সমন্বয় করা হয়। উইন্ডোজ ডার্ক ও লাইট থিমের সাথে মিলিয়ে ক্যাপশন কালার এডাপ্ট করে।

৬. সিস্টেম ট্রে ও জিরো-অ্যাডমিন ইনস্টলার: টাস্কবারে জঞ্জাল না করে সিস্টেম ট্রেতে নিঃশব্দে চলে (মাত্র ~১৫ এমবি র‍্যাম ব্যবহার)। Inno Setup দিয়ে প্রস্তুতকৃত ইনস্টলার ব্যবহারকারীর লোকাল ডিরেক্টরিতে (%LOCALAPPDATA%ProgramsLazyPin) ইনস্টল হয়, ফলে কোনো UAC অ্যাডমিন পারমিশন ছাড়াই উইন্ডোজ সাইন-ইন অটোস্টার্ট সহ সম্পূর্ণ নিরাপদে কাজ করে।

মূল দিকগুলো

  • উইন্ডোজ ১০ ও ১১-এ যেকোনো সক্রিয় অ্যাপ উইন্ডো এক ক্লিকে অলওয়েজ-অন-টপ করার সুবিধা
  • মিনিমাইজ বাটনের ঠিক পাশে নেটিভ স্টাইলের ক্যাপশন বাটন ইন্টিগ্রেশন
  • উইন্ডো ড্র্যাগ ও রিসাইজ করার সময় জিরো-জিটার ও ফ্রেম-পারফেক্ট লোকেশন ট্র্যাকিং
  • DWM ও NCHITTEST অ্যালগরিদম দিয়ে ক্রোম, এজ ও কাস্টম টাইটেল-বার অটো-ডিটেকশন
  • ফুলস্ক্রিন গেমস, মিডিয়া প্লেয়ার ও F11 ব্রাউজারে স্বয়ংক্রিয়ভাবে বাটন হাইড হওয়া
  • সিস্টেম ট্রে ইন্টিগ্রেশন — ব্যাকগ্রাউন্ডে নিঃশব্দে চলে, মাত্র ~১৫ এমবি র‍্যাম ব্যবহার
  • কোনো অ্যাডমিন প্রিভিলেজ (UAC) ছাড়া সহজ ইনস্টলেশন এবং ১০০% ফ্রি ও ওপেন সোর্স

ব্যবহৃত টুলস

  • Windows 10/11
  • C#
  • Win32 API
  • Desktop Utility
  • PowerShell
  • Always on Top
  • Open Source