بالاخره بعد از ماهها تأخیر، به این نتیجه رسیدم که باید 2.0 رو منتشر کنم.
علت تأخیر هم به مشغله برمیگشت و هم به تغییرات کلی که نمیدونستم کی تموم میشه و کی آمادهٔ استفاده میشه.
البته آخرین کدهام در github موجود بود و کاربران میتونستن تست کنن.
روش دانلود و نصب دقیقاً مثل نسخهٔ 1.9 هست، ولی برای یادآوری باز مینویسم
برای دانلود سورس، ۳ تا راه دارید:
۱- آخرین آرشیو سورس رو از سورسفورج دانلود کنید
http://sourceforge.net/projects/starcal/files/starcal2/2.0
۲- آخرین کدها رو توسط git از github دانلود کنید. یعنی اول git رو نصب کنید و بعد این دستور:
git clone git://github.com/ilius/starcal2.git
۳- اگه نمیخواید git رو نصب کنید، می تونید snapshot آخرین کدها رو بصورت یک آرشیو دانلو کنید. این آدرس رو در مرورگر باز کنید:
https://github.com/ilius/starcal2
روی دکمهٔ Downloads در سمت راست کلیک کنید و بعد دکمهٔ Download az zip یا Download az tar.gz رو بزنید
بعد از دانلود سورس، به پوشهٔ سورس cd کنید و بسته به توزیعتون یکی از چند دستور رو اجرا کنید (تاکید میکنم فقط یکی رو)
$ sudo ./install-debian
$ ./install-archlinux
$ sudo ./install-suse
$ sudo ./install-fedora
دقت کنید که این اسکریپتها، اول پکیج مخصوص توزیع شما رو میسازن و بعد سعی میکنن پکیج ساختهشده رو نصب کنن. در آخر هم پکیج رو توی دایرکتوری جاری کپی میکنن که اگه خواستید مثلاً برای دیگران آپلود کنید، یا خودتون دستی نصب کنید (اگه اسکریپت نتونست نصبش کنه)
در اوبونتو/دبیان، بهتره قبل از اجرای اسکریپت install-debian، پکیج gdebi رو نصب کنید، چون اگه gdebi نداشته باشید، اسکریپت سعی میکنه با dpkg نصب کنه و ممکنه مشکل پکیجهای پیشنیاز پیش بیاد
برای راحتی کاربران، پکیج deb این نسخه رو هم توی سورسفورج گذاشتم
اگه از ArchLinux استفاده میکنید، با نصب پکیج starcal-git از AUR، آخرین کدها که در github هست، نصب خواهد شد (لازم نیست سورس برنامه رو به روشهایی که در بالا گفته شد دانلود کنید)
اگه توزیعتون هیچ کدوم اینها (دبیانبیسد، آرچ، فدورا و سوزه) نیست، از دستور زیر استفاده کنید که شبیه make install هست و فایلها رو در /usr/local/ کپی میکنه.
$ sudo ./install
اما تغییراتی که نسبت به 1.9 داشته:
۱- رویدادها، بجای «روزهای دلخواه»
اون چیزی که تحت عنوان Custom Days یا روزهای دلخواه وجود داشت، کلاً حذف شده. و مفهوم رویداد جایگزینش شده که انواع مختلفی داره و خیلی انعطافپذیر و کامل هست. در واقع این مهمترین تغییر برنامه در این نسخه هست و نتیجهٔ چند سال تحقیق و توسعه هست.
از طریق منوی برنامه یا نوارابزار، پنجرهٔ «مدیریت رویدادها» رو باز کنید
اولین چیزی که میبینید «گروههای رویدادها» هستن. اگه با تقویم گوگل کار کرده باشید، مفهوم «گروه رویدادها» در استارکل، شبیه مفهوم Calendar در تقویم گوگل هست. در واقع پوشهای از رویدادها (اگه رویدادها رو شبیه فایل در نظر بگیریم). که البته یک گروه خودش نمیتونه شامل یک گروه دیگه باشه.
هر گروه خودش انواعی داره. و هر رویداد هم انواعی.
بهتره به منوهای این پنجره و منوی راست کلیک هر گروه، نگاه کنید. فعلاً قصد ندارم یک help کامل در مورد رویدادها بنویسم چون واقعاً خیلی مفصله. ولی رابط گرافیکی، به مرور زمان همه چیز رو براتون روشن میکنه.
متاسفانه به دلایل فنی (تفاوت ساختار رویدادها در استارکل و تقویم گوگل) هنوز امکان سینک با گوگل فراهم نیست. ولی در آینده احتمالاً با در نظر گرفتن محدودیتهایی (در مورد رویدادهای تکرارشونده) این امکان فراهم میشه.
بعنوان نکتهٔ آخر، برای backup گرفت از رویدادها، یا انتقالش از یک سیستم/شخص به سیستم/شخص دیگه، میتونید از گزینهٔ «صادر کردن» در منو پنجره، یا منوی راستکلیک هر گروه استفاده کنید.
رویدادهای یک یا چند گروه، به یک فایل json یا ics صادر میشه. اگه صرفاً میخواید توی استارکل ازش استفاده کنید، حتما فرمت json رو انتخاب کنید (فرمت اختصاصی استارکل هست و هیچ دیتایی در انتقال از بین نخواهد رفت). ولی اگه میخواید توی تقویم گوگل یا برنامههای دیگه از فایل خروجی استفاده کنید، ics رو انتخاب کنید (که رویدادهای تکرارشونده رو احتمالاً به چند رویداد در فایل ics تبدیل میکنه)
با توجه به اینکه برنامه در حال توسعه و تغییر هست و هنوز کاملا پایدار نشده، توصیه میکنم هر چند وقت یک بار «صادر کردن» به JSON رو انجام بدید و فایلهاش رو نگه دارید تا در صورت بروز مشکل بتونید دوباره import یا وارد کنید.
در ضمن، اون «روزهای دلخواه» که در ورژنهای قبلی تعریف کرده بودید، خود به خود import خواهند شد و به «رویدادهای سالیانه» تبدیل خواهند شد.
یک سری رویدادهایی که برای همهٔ ممکنه جالب/مفید باشه، مثل رویدادهای ویکیپدیا فارسی، تاریخ ایران، تاریخ اسلام، و سال کشف عناصر شیمیایی، در یک مخزن جدا در github هست
https://github.com/ilius/starcal2
که میتونید دانلود کنید و تکتک فایلهای json رو وارد (import) کنید در پنجرهٔ مدیریت رویدادها (یک نمونه اسکرینشات از تاریخ ایران در پنجرهٔ خط زمان گذاشتم)
۲- تقویم هفتگی
اگه از تقویمهای چاپی جیبی استفاده کرده باشید، نیاز چندانی به توضیح نداره.
چیزی که قبلاً بخش اعظم پنجرهٔ اصلی رو تشکیل میداد، «تقویم ماه» بود، یعنی یک مرورگر دوبعدی از روزهای یک ماه.
اما الآن در پنجرهٔ «شخصیسازی» میتونید تقویم هفتگی رو فعال کنید و تقویم ماه رو غیرفعال کنید، یا اینکه هر دو رو فعال نگه دارید (که در اینصوورت ارتفاع پنجرهٔ اصلی یکم زیاد میشه)
۳- کاملتر شدن بخش «شخصیسازی»
در قسمت قبل یک مقدار توضیح دادم
در پنجرهٔ شخصیسازی، غیر از اینکه میتونید با زدن/برداشت تیک هر قسمت، فعال/غیرفعالش کنید، با کلیک روی هر آیتم (مثل تقویم ماه، تقویم هفتگی یا آیتمهای داخلش)، گزینههای ظاهری مربوط به اون آیتم رو زیرش نشون میده. از دکمههای بالا و پایین که در سمت چپ پنجره (در حالت فارسی) هست هم میتونید برای جابجا کردم آیتمها استفاده کنید.
چند اسکرینشات برای نمونه میگذارم.
نکته بعدی اینکه یک سری از پارامترهای ظاهری پنجرهٔ اصلی، از پنجرهٔ ترجیحات (تب ظاهر) به پنجرهٔ شخصیسازی منتقل شده (بصورت مرتبتر و دستهبندی شده). پس اگه توی ترجیحات پیداش نمیکنید، پنجرهٔ شخصیسازی رو باز کنید و روی آیتم مربوط کلیک کنید تا پارامترهای ظاهریش رو نشون بده.
۴- پنجرهٔ «خط زمان»
زمان فقط در روز و هفته و ماه خلاصه نمیشه. زمان یک عنصر مجرد هست!
در پنجرهٔ خط زمان، زمان رو به اون مفهوم «محور افقی زمان» که در ریاضی یاد گرفتید خواهید دید. یک محور پیوسته که درجهبندیهایی روش دیده میشه، و البته، رویدادهایی که تعریف کرده باشید رو اینجا هم خواهید دید.
دوست دارم لذت کشف بیشترش رو به خودتون بدم، ولی چون برنامه هنوز help نداره، فعلاً کلیدهای میانبر این پنجره رو مینویسم
اسکرول موس: جابجا شدن در زمان
اسکرول موس + کنترل: تغییر مقیاس
کلید راست و چپ: جابجا شدن در زمان
کلید فاصله یا Home: رفتن به لحظهٔ جاری (بعنوان نقطهٔ وسط)
کلیک پایین: متوقف کردن حرکت در زمان (که بصورت انیمیشنی و smooth انجام میشه)
کلید Esc یا q: بستن پنجره
راستکلیک روی هر رویداد هم یک منو باز میکنه که میتونید ویرایش یا حذفش کنید
نکتهٔ پیشرفتهتر: در مورد نوع رویداد «کار» علامتهایی در اطرافش نشون داده میشه که اجازه میده رویداد رو بصورت ویژوال ادیت کنید (شبیه resize یا move کردن پنجرهها)
رنگهایی که در این پنجره استفاده میشه، تابع رنگهایی هست که در «ترجیحات -> ظاهر» تعریف کردید. ولی ممکنه در آینده یک قسمت مجزا برای تنظیمات خط زمان اضافه بشه.
۵- فارسیتر شدن
مثلاً در هر جایی که یک «ورودی عددی» دارید (یا SpinButton برای برنامهنویسها)، اگه دقت کرده باشید، قبلاً عددها انگیسی بود و حتی برای تایپ اعداد باید کیبوردتون روی انگلیسی میبود. ولی الأن اون مشکلات برطرف شده. نه توسط Gtk بلکه توسط خودم.
۶- غیرفعال شدن رابط گرافیکی Qt
به دلیل تغییرات خیلی زیادی که در رابط گرافیکی انجام دادم، نتونستم رابط Qt رو همگام با Gtk جلو ببرم، و به همین دلیل فعلاً غیرفعالش کردم. امیدوارم بعداً فرصت کنم کاملش کنم
۷- استفاده از app indicator بجای tray icon در اوبونتو
۸- و طبق معمول هر سال، آپدیت کردن مناسبتهای ایران، و ماههای هجری قمری (البته با چند ماه تاخیر انجام شد)
و باز هم مقدار زیادی تمیزکاری، بهبود خیلی زیاد design و البته رفع تعدادی باگ.
سازگاری
تا جایی که شده سعی کردم سازگاری با نسخههای گذشته (1.9) رو حفظ کنم
با این حال بعضی از تنظیمات جزئی مثل اندازهٔ حاشیهٔ تقویم یا شکل مکاننما، به مقادیر پیشفرض برمیگرده و اگه خواستید دوباره باید تنظیم کنید.
اگه آخرین نسخهای که امتحان کردید، 1.5 بوده (1.9 رو اجرا نکردید) یک پنجره برای import کردن تنظیمات در اولین اجرا ظاهر خواهد شد.
دوستانی که میخوان با گزارش باگها، به توسعهٔ برنامه کمک کنن، بد نیست که برنامه رو در ترمینال اجرا کنن (دستور starcal2) تا ارورهای احتمالی رو ببینن (و بتونن برای من پیست کنن).
گرچه خیلی از ارورها در این فایل لوگ میشه:
~/.starcal2/log/error
ولی تضمینی هم وجود نداره که همهشون لوگ بشه
و در نهایت، اگه خواستید Donate کنید:
بانک ملت، شمارهٔ حساب 3249590307
شمارهٔ کارت:
6104 3370 3338 9055
به نام: سعید رسولی
موفق باشید