مشکل کار نکردن کلیدهای media برای بعضی برنامه‌ها

نمی‌دونم چرا ولی بعضی برنامه‌ها خودشون رو درست روی کلید‌های مدیای کیبورد رجیستر نمی‌کردن. یکم این موضوع عذاب آور بود کمی بررسی کردم دیدم بیشتر موزیک پلیرها توی dbus تعدادی متود برای خودشون اضافه می‌کنن که از طریق اون متودها میشه اون مدیا پلیر رو کنترل کرد، نکته خوبش این بود که همه شون از یه استاندارد استفاده می‌کردن برای همین تونستم خیلی راحت یه اسکریپت کوچیک برای حل این مشکل بنویسم:

این اسکریپت یه ارگومان می‌گیره که عملیاتی که می‌خواید انجام بشه رو مشخص می‌کنه (play, pause, next) سپس دستور انجام این عملیات رو به مدیاپلیرهایی که ازشون ساپورت می‌کنه می‌فرسته. اینجوری می‌تونین مستقیما از این اسکریپت استفاده کنید:

برای استفاده کافیه این اسکریپت رو جایی ذخیره کنید سپس وارد قسمت تنظیمات شورت‌کات‌های کیبورد دسکتاپتون بشید و برای کلیدهای مدیا این اسکریپت با آرگومان مربوطه صدا بزنید.

مثلا من توی xfce اینجوری تنظیمات رو اعمال کردم:
xfce4-keyboard-shortcuts

این اسکریپت الان از deadbeef clementine rhythmbox vlc quodlibet پشتیبانی می‌کنه. احتمالا برای این که پشتیبانی از یه پلیر دیگه رو اضافه کنید فقط کافیه اسم اون رو توی این خط اضافه کنید. (بعضی مدیا پلیرها لازمه قبلش پلاگینی به اسم dbus یا mpris رو فعال کنید.)

اجرای بازی‌های کنسول‌های قدیمی روی لینوکس

شاید شما هم بدتون نیاد بعضی بازی‌های قدیمی رو توی لینوکس اجرا کنید، من هنوز هم بازی‌های قدیمی رو که توی کنسول خانگی داشتم به خیلی از این بازی‌های جدید ترجیح می‌دم. شاید شما هم دوست داشته باشید بعضی از اون‌ها رو موقع بیکاری تست کنید. در اینجا به طور خلاصه چند برنامه برای اجرای بازی‌های چند کنسول معروف زمان خودم رو معرفی می‌کنم:

  • شما برای اجرای بازی کنسول:
    1. قبل از این که بخواید بازی خاصی رو اجرا کنید حتما یه دسته بازی (joy stick) تهیه کنید. بدون دسته اصلا فایده نداره 🙂
    2. به یک برنامه emulator نیاز دارید. یعنی یک برنامه‌ای که بتونه بازی‌های اون کنسول رو اجرا کنه، من تو این پست emulator های مختلف رو برای کنسول‌های مختلف معرفی می‌کنم.
    3. در مرحله دوم به خود بازی نیاز دارید. شما باید بازی مورد علاقه تون رو به صورت جداگانه دانلود کنید. با یه سرچ کوچیک توی گوگل هر بازی که مورد نظرتون باشه می‌تونید به راحتی پیدا کنید.
    4. حالا اون بازی که دانلود کردید یا emulator مربوط به اون کنسول باز کنید.

نینتندو (میکرو، دندی)

برای این کار پکیج fceux رو نصب کنید.

  • رابط گرافیکی خوب و خوشدستی داره
  • تا چهار نفر پلیر همزمان رو پشتیبانی می‌کنه
  • امکان سیو و لود حین بازی هم داره
  • می‌تونید فیلم بازی که می‌کنید رو توسط این برنامه رکورد کنید
  • بازی‌ها رو به خوبی در حالت تمام صفحه اجرا می‌کنه (برای این کار کلید alt+enter رو با هم بزنید تا پنجره بازی فول اسکرین بشه
  • از کدهای تقلب game genie پشتیبانی می‌کنه
  • امکان بازی تحت شبکه (با دستور fceux-net-server می‌تونید یک سرور ایجاد کنید و بهش وصل بشید)

مشکلات:
تنظیم کردن دکمه های دسته کمی گنگ بود توی رابط گرافیکی برنامه مستقیم نمی‌شد کلیدهای دسته رو ست کرد، برای این کار باید برنامه رو با دستور fceux –inputcfg gamepad1 اجرا کرد تا یه پنجره کوچیک باز بشه در این مرحله هر کلیدی که می‌گه روی دسته بزنید. (مثلا می‌گه بالا و شما کلید بالا رو روی دسته فشار بدید تا بالا دسته به بالای برنامه مپ بشه)

nes-contranes-mariones-megaman3nes-pacman

سگا

برنامه kega fusion رو از اینجا بگیرید و نصب کنید (برای اوبونتو پکیج deb داره و برای آرچ می‌تونید اون رو از aur نصب کنید) (یکی دوتا پکیج توی مخازن بودن که همین کارو می‌کردن ولی به درد نمی‌خوردن مستقیم همین رو نصب کنید)

  • رابط گرافیکی خوب و خوشدستی داره
  • تا چهار نفر پلیر همزمان رو پشتیبانی می‌کنه
  • امکان سیو و لود حین بازی هم داره
  • بازی‌ها رو به خوبی در حالت تمام صفحه اجرا می‌کنه (برای این کار کلید alt+enter رو با هم بزنید تا پنجره بازی فول اسکرین بشه
  • از کدهای تقلب game genie پشتیبانی می‌کنه
  • امکان بازی تحت شبکه (توی file-> netplay)

مشکلات:
این برنامه آزاد نیست و فقط رایگانه شاید به این موضوع حساس باشید برای همین گفتم (کدوم یک از بازی‌های کنسول نرم افزار آزاده که شما مقید شدید حتما emulator تون آزاد باشه؟)

sega-shinobisega-kombatsega-streetsofragesega-aladdin

آتاری

بکیج stella رو نصب کنید (نسبت به بقیه این برنامه رابط کاربری بهتری داشت)

  • رابط گرافیکی قابل قبوله
  • تا دو نفر پلیر همزمان رو پشتیبانی می‌کنه
  • امکان سیو و لود حین بازی هم داره (چرا میخاین بازی آتاری رو سیو کنید؟)

مشکلات:

  • حالت تمام صفحه بازی خیلی بد بود، ولی می‌شه زوم صفحه رو تغییر داد که پنجره بازی به حد قابل فبولی بزرگ بیشه (من 3x ست کردم)
  • اگه خواستین بازی river raid رو بازی کنید بازی شروع نمی‌شه و سرچ که زدم دیدم باید F2 رو بزنید تا بتونید بازی رو شروع کنید (این مشکل فقط با این بازی بود و بقیه بازی‌ها به اسپیس شروع می‌شدن)

atari-riverraidatari-galaxian

پلی استیشن ۱

با پکیج pcsxr می‌تونید بازی‌های پلی استیشن ۱ رو اجرا کنید.

برای اجرای بازی‌های پلی استیشن شما به فایل bios پلی استیشن نیاز دارید. یک فایل حدودا نیم مگیه که با کمی سرچ توی گوگل می‌تونید پیداش کنید. فایل بایوس رو تو شاخه زیر کپی کنید و سپس تو تنظیمات برنامه قسمت pluging and bios این فایل رو به برنامه بشناسونین (مثل عکس)

~/.pcsx/bios/

ps1-bios

  • رابط گرافیکی خوب و خوشدستی داره
  • تا دو نفر پلیر همزمان رو پشتیبانی می‌کنه
  • امکان سیو و لود حین بازی هم داره (کلید ctrl یا alt + اعداد)
  • از مموری کارت پشتیبانی می‌کنه برای همین حین بازی می‌تونید از امکانات سیو و لود داخلی خود بازی هم استفاده کنید
  • اگه سی‌دی بازی پلی استیشن رو داشته باشید لازم نیست اون بازی رو دانلود کنید pcsxr می‌تونه بازی رو از سی‌دی رام اجرا کنه (البته این کار رو نکنید چون بازهای پلی استیشنتون قدیمی هستن و سی‌دی هم خیلی خش دارن، یک ایمیج سالم دانلود کردن کار عاقلانه‌ای تره)
  • بازی‌ها رو در حالت تمام صفحه اجرا می‌کنه
  • از کدهای تقلب پشتیبانی می‌کنه (من چندتا کدهای game shark رو زدم کار نکرد، شاید کدهام با اون نسخه بازی که دانلود کرده بودم همخوانی نداشتند)
  • امکان بازی تحت شبکه (توی Configuration->netplay)
  • این مزیت emulator نیست ولی خوبه بدونید بازی‌های پلی‌استیشنی که دانلود کردید می‌تونید روی سی‌دی رایت کنید و با خود کنسول اون بازی رو اجرا کنید.

مشکلات:

  • اگه با درایور xvideo مشکل داشتید (بازی اجرا نمی‌شه و یک ارور مربوط به x می‌ده) برید توی تنظیمات برنامه opengl driver رو انتخاب کنید) توضیحات بیشتر در این لینک
  • تمام صفحه کردن بازی کمی آزاز دهنده است، باید رزولوش‌ها و تنظیمات مختلف رو چند بار امتحان کنید به بهترین حالت فول اسکرین برسید.

ps1-ctrps1-tekken3ps1-resident2

پی‌نوشت۱: برای اجرای بازی‌های سوپرنینتندو (snes) پکیج higan رو نصب کنید. خیلی خوب و روان بازی‌ها رو اجرا می‌کنه.

حذف یک خط از فایل با sed

مثلا می‌خواهید خط پنجم یک فایل رو پاک کنید:

این دستور خط پنجم فایل ورودی رو حذف و نتیجه رو نشون می‌ده. اگه بخواهید خروجی توی همون فایل ورودی ذخیره بشه این دستور رو بزنید:

پی‌نوشت: البته از دستور awk هم می‌شه برای این کار استفاده کرد
پی‌نوشت: استفاده از head و tail پشت سر هم یک ایده دیگس.

ارسال خروجی یک دستور به کلیپ‌بورد

xclip رو نصب کنید و به این صورت از اون استفاده کنید:

حالا خروجی برنامه توی کلیپ‌بورد شما قرار داره می‌تونید اون رو توی برنامه‌های دیگه پیست کنید.

برای این که راحت‌تر باشید می‌تونید یک alias براش بسازید مثل این (این خط رو توی فایل bashrc تون اضافه کنید)

و از این به بعد به این صورت ازش استفاده کنید:

خیلی کار پیچیده‌ای نیست به نظرم توضیح بیشتری لازم نداره.

البته راه دیگش هم اینه که خروجی رو با موس انتخاب کنید و کپی کنید 😀

درست کردن زمان فایل‌های mp3

تعدادی فایل mp3 دانلود کرده بودم که توی کلمنتاین زمان این فایل‌ها درست تشخیص داده نمی‌شدند. بعضی از اون‌ها رو کلمنتاین زمانشون رو بیشتر نشون می‌داد، برای بعضی کمتر و برای تعداد زیادی هم اصلا زمان فایل رو نمی‌تونست تشخیص بده و این کمی آزار دهنده بود. کمی توی اینترنت سرچ زدم و دیدم افراد دیگه هم این مشکل براشون پیش اومده بوه و راه حل هم اینه، برای این که کل فایل‌های mp3 توی یه شاخه رو درست کنید کافیه این دستور رو بزنید:

سپس برید توی clementine روی ابزارها -> انجام وارسی دوباره دوباره کامل کتابخانه کلیک کنید تا کلمنتاین کل موزیکاتون رو دوباره اسکن کنه

clementine-scan-library.

در پایان برای این که فایل‌های بک‌اپ تولید شده رو پاک کنید این دستور رو بزنید:

منبع