شرتکات فوکوس روی پنجره ایمکس

خوب، امروز پست شاهین در مورد استفاده از ایمکس به عنوان ترمینال رو دیدم. یه مدت خودم هم این فکر رو تو سرم داشتم، ولی تنبلی نمیذاره کاری بکنیم ;)‏

خوب، این پست رو میخونم. همه جا تا multi-term خوب و خوش پیش میره. ولی وقتی به تنظیمات i3 میرسم، یه چیز جالب یادم میفته: دسکتاپ من i3 نیست! چاره چیه؟
باید پنجره ایمکس رو طوری بکنم که با یه شرتکات بیاد و بره. اوپن باکس به هیچ وجه تو مدیریت پنجره‌ها از طریق خط فرمان خوب نیست. پس باید یه راه دیگه پیدا کنم. با یه سرچ، به یه ابزار داخلی X میرسم: xdotool. کمی تو راهنماش میچرخم و چیزهایی رو که لازم هستن پیدا میکنم. چیزایی مثل مینیمایز کردن، بالا آوردن و گرفتن آی‌دی پنجره. خوب، فقط مونده این‌ها رو ترکیب بکنیم. یه اسکریپت کوتاه می‌نویسیم:
‎#! /bin/bash

id="$(xdotool search –name –limit 1 emacs@$HOST)"‎
active="$(xdotool getactivewindow)"‎

if [ "$id" = "" ]; then
zenity –error –title "Error" –text "No emacs is running\!"‎
exit 1
fi

if [ $id != "$active" ]; then
xdotool windowmap $id
xdotool windowfocus $id
else
xdotool windowminimize $id
fi

اول بگم که اگه بخواین این رو کپی کنین، یه سری کاراکتر برای درست نشون دادن این کد گذاشتم. پس اگه بخواین کپیش کنین، اول چک کنین ببینین کاراکتر اضافی دارین یا نه.
خوب، میشه گفت هرکسی با یه نگاه میتونه بگه این اسکریپت چیکار میکنه. ولی به هر حال توضیح میدم. اولین سطر که میگیم با بش اجرا کن. بعد، آی‌دی پنجره‌ای رو که اسمش emacs@HOSTNAME هست، میگیرم (HOSTNAME همون اسم کامپیوتره منه) که همون پنجره ایمکسه و میذارم تو متغیر id. بعد، آی‌دی پنجره فعال رو میگیرم و اونو هم میندازم تو متغیر active. حالا چک میکنم ببینم اصلا پنجره ایمکسی هست یا نه. اگه نباشه با zenity یه ارور میدم و میزنم بیرون. حالا یه if دیگه میذارم که ببینم پنجره فعال همون ایمکسه یا نه. اگه باشه، مینیمایزش میکنم و اگه نباشه، میارمش بالا و روش فوکوس میکنم.
خوب، حالا این رو تو یه فایل میریزم و یه شرتکات دلخواه براش تعیین میکنم و تمام.
ولی من شخصا زیاد از ترمینال ایمکس خوشم نیومد. بعضی شرتکات‌ها رو ساپورت نمیکنه (که نباید هم بکنه. به هر حال شرتکات‌های خودشه دیگه!) و بعضی کارهای دیگه هم نمیشن.
ولی به هر حال این کد رو نگه میدارم تا شاید یه روز برای برنامه دیگه‌ای، مثل GoldenDict، ازش استفاده بکنم 😉

Advertisements

یه گیگ‌بازی کوچولو: دانلود ده تا فایل پی‌دی‌اف از «ستاد سلام »

دیروز، کسی از گوگل پلاس، که یادم نیست کی بود، این لینک رو از ستاد سلام شیر کرده بود. درمورد چیزایی مثل حقوق زنان هست. می‌خواستم تمام فایل‌های پی‌دی‌اف رو دانلود بکنم، ولی در شأن یه گیک نیست که تک به تک بشینه فایل‌ها رو دانلود بکنه 😉 پس یکی دو خط کد می‌زنیم.
اول، باید یه فایل اچ‌تی‌ام‌ال از اون صفحه ستاد سلام بگیرم:
wget "http://www.setadsalam.net/paper-tools/trakt-nevisi" -O trakt_nevisi.html

حالا، باید لینک‌ها رو از فایل جدا کنیم و بذاریم تو یه فایل دیگه:
cat trakt_nevisi.html | grep -Po ‹href="(.*?)\.pdf"› | cut -d\" -f2 | uniq | sed "s|^|http://www.setadsalam.net|g" | tee URLs

خلاصه این کد اینه که اول با grep و cut آدرس‌ها رو از فایل جدا می‌کنیم، بعد چون هر آدرس یه بار هم تکرار شده، تکراری‌ها رو حذف می‌کنیم و بعد، به خاطر این که اولشون اسلش (/) هست و نه آدرس سایت، آدرس ستاد سلام رو هم به اولش اضافه می‌کنیم. بعدش هم با tee آدرس‌ها رو تو فایل URLs میذاریم.
خوب، حالا فقط دانلودشون مونده:
wget -i URLs
با آپشن ‎-i به wget میفهمونیم که باید آدرس‌ها رو از فایل URLs بگیره.
حالا برای اطمینان، تعداد فایل‌ها رو بررسی می‌کنیم:
‎ $ ls *.pdf | wc -l
‎10
خوب، ده تا کلیک صرفه‌جویی شد 😉

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

دوره جدید درسنامه برای خواننده‌ها و پادکسترها: استودیوی خانگ ی ضبط صدا

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

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

زندان برای اشتراک‌گذاری

سوئد کشوری هست که جزء آزادترین‌ها شناخته میشه و پایرت بی هم از اونجا متولد شده. ولی در حین حال، اونجا عملکردهای ضد پایرت زیادی دیده میشه.

تو سال ۲۰۱۰، پلیس فردی رو تو خونش در حال اشتراک‌گذاری ۵۷ تا فیلم با uTorrent دستگیر کرده. قرار شده ۶۰۰۰ کرون (۹۲۰ دلار) جریمه بده که بعد به ۸۰۰۰ کرون (۱۲۰۰ دلار) افزایش پیدا کرده. ولی این هم پلیس رو راضی نکرده و حالا به دادگاه عالی گزارش داده که شاید بتونه اون رو به زندان بکشونه. اگز بتونن این مرد رو به زندان بندازن، در آینده می‌تونن بقیه کسایی رو که فیلم‌ها و فایل‌های کپی‌رایت‌دار دیگه‌ای رو به اشتراک میذارن، به همین سرنوشت دچار کنه.

بله، اشتراک‌گذاری فایل‌هایی که به خاطرشون زحمت کشیده شده و تجاری هستن، کار درستی نیست. ولی اونقدر جرم بزرگی نیست که کسی رو به خاطرش به زندان بندازن. جرم کسی که شیشه مغازه رو میشکونه و یه تلویزیون میدزده هیچوقت با جرم کسی که یک (یا چند تا) فیلم رو آپلود می‌کنه قابل مقایسه نیست و نمیشه اون فرد رو به زندان انداخت.