روزنوشت

می نویسم؛ تا به یاد آورم روزی، بودم

روزنوشت

می نویسم؛ تا به یاد آورم روزی، بودم

روزنوشت

من آرزویی ندارم، من از چیزی نمی‌ترسم، من آزادم...

«کازانتزاکیس»

دنبال کنندگان ۳ نفر
این وبلاگ را دنبال کنید
آخرین نظرات

از زمانی که به اوبونتو کوچ کردم یک موضوع آزارم می داده و اونم بد بودن کیفیت رندرینگ فونت در برنامه های جاوا هست (یا بهتره بگم برنامه های تحت فریم ورک Swing)

امروز خیلی اتفاقی به پستی برخوردم که توضیح داده بود که پروژه ای تحت نام Infinality سعی داره تا کیفیت رندر فونت بهتری برای لینوکس فراهم کنه که امکان شخصی سازی بیشتری هم به کاربر بده.

یک عکس مقایسه ای رو میتونید اینجا ببینید:


برای بزرگنمایی روی تصویر کلیک کنید


خب من هیچ وقت از کیفیت فونت در محیط اوبونتو شکایتی نداشتم و کیفیت خیلی خوبی داره، برای همین بعد از دیدن این پست تقریباً داشتم ازش رد میشدم - اگر به تصویر دقت کنید تغییر خیلی محسوسی نمیبینید - که دیدم در آخر پست اشاره شده که یک پروژه ی دیگه سعی داره وصله های Infinality رو در OpenJDK اعمال کنه تا وضعیت بسیار بد رندر فونت در برنامه های تحت فریم وورک Swing رو بهبود ببخشه، اینجا ی موضوع برام جالب شد !

چون در اوبونتو با برنامه های نوشته با جاوای متعددی سروکار دارم که مهمترینشون IDEهای برنامه نویسی ای مثل NetBeans یا IntelliJ IDEA و جدیداً Android Studio (که بر مبنای IntelliJ IDEA ساخته شده) هست، همیشه دنبال روشی بودم تا این مشکل رو برطرف کنم.

در برخی موارد با تغییر Look And Feel برنامه مشکل کمی مرتفع میشد اما باز هم (حداقل برای من) آزار دهنده بود

به هرعنوان این دو بسته رو نصب کردم و نتیجه رو میتونید در دو تصویر زیر ببینید

در این تصویر تصویر برنامه ی NetBeans رو درکنار Gedit می بینید (برای دیدن تصویر با کیفیت اصلی، روی تصویر کلیک کنید):


NetBeans 7.2 قبل از اعمال این تغییر

NetBeans 7.2 پس از اعمال این تغییر


اگر مایل به اعمال این تغییرات هستید میتونید از توضیحات زیر استفاده کنید.

دستورات زیر رو در ترمینال وارد کنید

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 محدود کرده باشن که لازمه تغییرات لازم در این فایل ها رو هم اعمال کنید.


اگر بعد از نصب این وصله ها خواستید به حالت اول برگردید دستورات زیر رو در ترمینال وارد کنید

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

منابع: منبع ۱ و منبع ۲

  • موافقین ۰ مخالفین ۰
  • ۹۲/۰۳/۲۵
  • ۹۰۰ نمایش
  • Nevercom

نظرات (۲)

سلام
فوق العاده سپاس نیاز بود
پاسخ:
خواهش می کنم.
فقط یه موردی که باهاش برخورد کردم اینه که یا اعمال این تغییرات، برنامه هایی که بر اساس Qt نوشته شدن (مثل Clementine یا Qbittorrent) یا شایدم اونایی که GTK نیستن یکمی فونت هاشون درشت تر میشه که یکمی آزار دهنده هست.
زیاد با تنظیماتش سر و کله نزدم، شاید راه حلی داشته باشه، ممنون میشم اگه اطلاعاتی داشتین به اشتراک بزارین
  • عباسعلی ملاحسینی
  • سلام
    راهی هست واسه اوراکل جاوا؟
    پاسخ:
    گمان نمیکنم، به این دلیل که این بهبود رندرینگ به نوعی یک patch هست که برای OpenJDK ارائه شده، دلیلش هم این هست که OpenJDK نسخه ی اوپن سورس Oracle JDK هست.
    گمان نمیکنم این تغییر بر روی Oracle JDK از محلی بجز شرکت Oracle قابل انجام باشه.
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی