1. বেসিক অ্যালার্ম ক্লক ফাংশন
সাসপেন্ড মোডে প্রবেশ করা হচ্ছে
এই সমাধানের জন্য, আপনাকে নীচের স্ক্রিপ্টটি চালিয়ে স্থগিত মোড প্রবেশ করতে হবে। এটি কম্পিউটারটিকে সাসপেন্ড মোডে নিয়ে যায় এবং আপনাকে (স্ক্রিপ্টে) দ্বারা নির্ধারিত (ঘড়ি) সময়ে আপনাকে জাগিয়ে তোলে। তোমার গান বাজছে
অবশ্যই আপনি এটি ব্যবহার করতে সরাসরি স্ক্রিপ্টটি চালাতে পারেন, তবে এটি সেট করা কী কী সংমিশ্রনের মাধ্যমে এটিকে উপলব্ধ করা আরও সুবিধাজনক System Settings > Keyboard > Shortcuts > Custom Shortcuts
।
সেট আপ করুন
একটি ফাঁকা ফাইলে নীচে স্ক্রিপ্টটি আটকান, জাগ্রত করার (ঘড়ির) সময় সেট করুন (1-24 ঘন্টা, 1-60 মিনিটের মধ্যে), আপনার জাগ্রত গানের পথ নির্ধারণ করুন এবং এটি সংরক্ষণ করুন wakeup.py
।
#!/usr/bin/env python3
import datetime
import subprocess
###############################################
# set wakeuptime and location of the mp3:
hour = 7
minutes = 15
command = "rhythmbox /path/to/wakeupsong.mp3"
###############################################
currtime = str(datetime.datetime.now().time()).split(":")[:2]
minutes_set = hour*60 + minutes
minutes_curr = int(currtime[0])*60 + int(currtime[1])
if minutes_curr < minutes_set:
minutes_togo = minutes_set - minutes_curr
else:
minutes_togo = minutes_set + 1440-minutes_curr
interval = minutes_togo*60
run = "rtcwake -m disk -s "+str(interval)+" && "+"sleep 20 &&"+command
subprocess.call(['/bin/bash', '-c', run])
স্ক্রিপ্ট কার্যকর করতে
স্ক্রিপ্টটি চালানোর জন্য একটি কী সংমিশ্রণ সেট করুন; খুলুন System Preferences > Keyboard > Shortcuts > Custom Shortcuts
, কমান্ড যুক্ত করুন
sudo /path/to/wakeup.py (sudo = assuming you do the next step below)
এবং একটি কী সমন্বয় চয়ন করুন
স্ক্রিপ্টটির জন্য প্রশাসকের সুযোগ-সুবিধা দরকার। পাসওয়ার্ডটি প্রবেশ না করেই এটি চালাতে, sudoers ফাইলটি খুলুন:
sudo visudo
ফাইলটির একেবারে নীচে লাইনটি যুক্ত করুন:
[your_username] ALL=NOPASSWD: [/path/to/wakeup.py]
নোট করুন যে sudoers ফাইল একটি প্রয়োজনীয় ফাইল; ফাইলের ত্রুটিগুলি সম্ভবত গুরুতর সমস্যাগুলির দিকে পরিচালিত করে , তাই সাবধান!
বিশেষ দ্রষ্টব্য
- ঘুম থেকে ওঠার পরে, অ্যালার্ম শুরু হওয়ার আগে কম্পিউটারটি 20 সেকেন্ডের জন্য অলস।
- আপনি sudoers ফাইল সম্পাদনা করতে না চান, আপনি ইনস্টল করতে হবে
gksu
: sudo apt-get install gksu
। সেক্ষেত্রে স্ক্রিপ্টটি চালানোর আদেশটি হ'ল gksu /path/to/wakeup.py
এবং প্রতিবার এটি চালানোর সময় আপনাকে আপনার পাসওয়ার্ডের জন্য অনুরোধ জানানো হবে।
এখন আপনি আপনার কী সংমিশ্রণ সহ সাসপেন্ড মোডে প্রবেশ করতে পারেন এবং আপনার জাগ্রত গানের মাধ্যমে আপনি জাগ্রত হয়ে উঠবেন।
(কোনও) কী বা মাউস হিট হলে স্টপ ফাংশন সহ ২.০ বর্ধিত সংস্করণ
এই এবং "বেসিক" সংস্করণের মধ্যে পার্থক্য হ'ল এই একের মধ্যে যখন কোনও কীস্ট্রোক বা মাউস চলাচল ধরা পড়ে তখন কম্পিউটারে রিথম্বক্স থামানোর চেয়ে আরও সুবিধাজনক হয় (এবং যখন আপনি জেগেছিলেন তখনই) অ্যালার্মটি স্বয়ংক্রিয়ভাবে প্রস্থান করে that সময়ের একটি নির্ধারিত সময়।
সেটআপটি মূল সংস্করণের মতো প্রায় একই, তবে xprintidle
কীস্ট্রোক- বা মাউস আন্দোলনের ইভেন্টগুলি সনাক্ত করতে ইনস্টল করা দরকার:
sudo apt-get install xprintidle
এই পান্ডুলিপি:
#!/usr/bin/env python3
import subprocess
import time
import datetime
from threading import Thread
#-------------------------- edit settings below -------------------------------
max_wakeupduration = 1 # max time the song will play (minutes)
wakeup_hour = 7 # wake up hour (0-24)
wakeup_minute = 15 # wake up minute
wakeup_song = "/path/to/song.mp3" # path to wake up song
#------------------------------------------------------------------------------
def stop_wakeup():
time1 = int(time.time()); time2 = time1
last_idle = 0
playtime = max_wakeupduration*60
while time2 - time1 < playtime:
get_idle = subprocess.Popen(["xprintidle"], stdout=subprocess.PIPE)
curr_idle = int(get_idle.communicate()[0].decode("utf-8"))
if curr_idle < last_idle:
break
else:
last_idle = curr_idle
time.sleep(1)
time2 = int(time.time())
subprocess.Popen(["pkill", "rhythmbox"])
def calculate_time():
currtime = str(datetime.datetime.now().time()).split(":")[:2]
minutes_set = wakeup_hour*60 + wakeup_minute
minutes_curr = int(currtime[0])*60 + int(currtime[1])
if minutes_curr < minutes_set:
minutes_togo = minutes_set - minutes_curr
else:
minutes_togo = minutes_set + 1440-minutes_curr
return minutes_togo*60
def go_asleep():
sleeptime = calculate_time()
run = "rtcwake -m disk -s "+str(sleeptime)+" && "+"sleep 20"
subprocess.call(['/bin/bash', '-c', run])
combined_actions()
def play_song():
command = "rhythmbox "+wakeup_song
subprocess.Popen(['/bin/bash', '-c', command])
def combined_actions():
Thread(target = play_song).start()
Thread(target = stop_wakeup).start()
go_asleep()
ব্যাখ্যা
rtcwake
উভয় স্ক্রিপ্ট এখানে rtcwake
কমান্ডের চারপাশে লেখা হয়েছে । কমান্ডটি কম্পিউটারকে স্থগিত করার জন্য এবং নির্ধারিত সময়ের পরে জাগ্রত করার জন্য ব্যবহার করা যেতে পারে (এবং wakeচ্ছিকভাবে জাগরণের পরে একটি কমান্ড চালানো)। -m disk
বিকল্প ব্যবহার করা হয়, যেহেতু ওপি তার কম্পিউটার সমর্থন করে না BIOS- এ বৈশিষ্ট্যটি "র্যাম থেকে সাসপেন্ড" উল্লেখ করেছে। এছাড়াও দেখুন man rtcwake
।
স্টপ ফাংশন
স্টপ ফাংশন এমন একটি ফাংশন দ্বারা কাজ করে যা গানটি চলাকালীন প্রতি সেকেন্ডে অলস সময় পরিমাপ করে এবং শেষ অলস সময়টিকে স্মরণ করে। যদি শেষ অলস সময়টি বর্তমানের চেয়ে বেশি হয় তবে এর অর্থ একটি কী-স্ট্রোক বা মাউস ইভেন্ট হয়েছে এবং রিদম্বক্সকে হত্যা করা হয়েছে।