بهبود رندرینگ فونت در Ubuntu و بخصوص در برنامه های جاوا
از زمانی که به اوبونتو کوچ کردم یک موضوع آزارم می داده و اونم بد بودن کیفیت رندرینگ فونت در برنامه های جاوا هست (یا بهتره بگم برنامه های تحت فریم ورک Swing)
امروز خیلی اتفاقی به پستی برخوردم که توضیح داده بود که پروژه ای تحت نام Infinality سعی داره تا کیفیت رندر فونت بهتری برای لینوکس فراهم کنه که امکان شخصی سازی بیشتری هم به کاربر بده.
یک عکس مقایسه ای رو میتونید اینجا ببینید:
برای بزرگنمایی روی تصویر کلیک کنید
خب من هیچ وقت از کیفیت فونت در محیط اوبونتو شکایتی نداشتم و کیفیت خیلی خوبی داره، برای همین بعد از دیدن این پست تقریباً داشتم ازش رد میشدم - اگر به تصویر دقت کنید تغییر خیلی محسوسی نمیبینید - که دیدم در آخر پست اشاره شده که یک پروژه ی دیگه سعی داره وصله های Infinality رو در OpenJDK اعمال کنه تا وضعیت بسیار بد رندر فونت در برنامه های تحت فریم وورک Swing رو بهبود ببخشه، اینجا ی موضوع برام جالب شد !
چون در اوبونتو با برنامه های نوشته با جاوای متعددی سروکار دارم که مهمترینشون IDEهای برنامه نویسی ای مثل NetBeans یا IntelliJ IDEA و جدیداً Android Studio (که بر مبنای IntelliJ IDEA ساخته شده) هست، همیشه دنبال روشی بودم تا این مشکل رو برطرف کنم.
در برخی موارد با تغییر Look And Feel برنامه مشکل کمی مرتفع میشد اما باز هم (حداقل برای من) آزار دهنده بود
به هرعنوان این دو بسته رو نصب کردم و نتیجه رو میتونید در دو تصویر زیر ببینید
در این تصویر تصویر برنامه ی NetBeans رو درکنار Gedit می بینید (برای دیدن تصویر با کیفیت اصلی، روی تصویر کلیک کنید):
NetBeans 7.2 قبل از اعمال این تغییر
NetBeans 7.2 پس از اعمال این تغییر
اگر مایل به اعمال این تغییرات هستید میتونید از توضیحات زیر استفاده کنید.
-
برای نصب Infinality
دستورات زیر رو در ترمینال وارد کنید
sudo add-apt-repository ppa:no1wantdthisname/ppa
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fontconfig-infinality
برای اعمال تغیررات باید یکبار Logout و دوباره Login کنید.
برای انتخاب نوع رندرینگ دستور زیر رو در ترمینال وارد کنید و یکی از گزینه های نمایش داده شده رو انتخاب کنید (توجه کنید که پس از ایجاد هر تغییری باید یکبار Logout کنید تا تغییرات اعمال بشه)
sudo bash /etc/fonts/infinality/infctl.sh setstyle
برای توضیحات بیشتر به مطلب اصلی رجوع کنید: http://www.webupd8.org/2013/06/better-font-rendering-in-linux-with.html
همونطور که گفتم پروژه ی دیگه ای سعی داره که این بهبود رندرینگ رو در OpenJDK 7 اعمال کنه، اگر تمایل داشته باشید میتونید نسخه ی تغییر یافته ی OpenJDK 7 رو نصب کنید تا این تغییرات رپ در برنامه های جاوا هم داشته باشید
-
برای نصب OpenJDK 7 تغییر یافته:
دستورات زیر رو در ترمینال وارد کنید:
sudo add-apt-repository ppa:no1wantdthisname/openjdk-fontfix
sudo apt-get update
sudo apt-get upgrade
بعد از آپگرید (و یا دریافت) OpenJDK 7 لازمه که این نسخه رو بعنوان VM پیشفرض انتخاب کنید، برای اعمال این تغییرات به پست قبلی من در این مورد رجوع کنید: مراحل نصب Oracle JDK 7 در Ubuntu
توجه کنید که بعضی از برنامه های جاوا ممکنه در فایل تنظیماتشون (مثل NetBeans) و یا لانچرشون اجرای برنامه رو با استفاده از نسخه ای خاص از JRE محدود کرده باشن که لازمه تغییرات لازم در این فایل ها رو هم اعمال کنید.
اگر بعد از نصب این وصله ها خواستید به حالت اول برگردید دستورات زیر رو در ترمینال وارد کنید
-
برای حذف Infinality
sudo apt-get purge fontconfig-infinality
sudo apt-get install ppa-purge
sudo ppa-purge ppa:no1wantdthisname/ppa
-
برای حذف OpenJDK 7 تغییر یافته
sudo apt-get install ppa-purge
sudo ppa-purge ppa:no1wantdthisname/openjdk-fontfix
- ۹۲/۰۳/۲۵
- ۱۴۶۷ نمایش
فوق العاده سپاس نیاز بود