निलंबित मोड से अलार्म घड़ी


9

मैं चाहता हूं कि मेरा लैपटॉप सुबह में निलंबित मोड से उठ जाए और मुझे अपने एमपी 3 फ़ाइल का उपयोग करके जागने के लिए अलार्म दे। मैं यह कैसे करुं?

मैंने apmsleep की कोशिश की, लेकिन यह काम नहीं करता क्योंकि मेरे पीसी में BIOS में "सस्पेंड टू रैम" फीचर नहीं है। मैं क्या कर सकता हूँ? धन्यवाद!

जवाबों:


13

1.Basic अलार्म घड़ी समारोह

सस्पेंड मोड में प्रवेश करना

इस समाधान के लिए, आपको नीचे स्क्रिप्ट चलाकर सस्पेंड मोड दर्ज करना होगा। यह कंप्यूटर को सस्पेंड मोड में ले जाता है और आपके द्वारा (स्क्रिप्ट में) परिभाषित एक (घड़ी-) समय पर जागता है। आपका गाना बजाना।

बेशक आप इसे उपयोग करने के लिए स्क्रिप्ट को मैन्युअल रूप से चला सकते हैं, लेकिन इसे एक कुंजी संयोजन के माध्यम से उपलब्ध कराना अधिक सुविधाजनक है, जिसमें सेट किया गया है 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, और जब भी आप इसे चलाएंगे, तब आपको आपके पासवर्ड के लिए संकेत दिया जाएगा।

अब आप अपने प्रमुख संयोजन के साथ सस्पेंड मोड में प्रवेश कर सकते हैं और आप अपने जागने के गीत से जाग जाएंगे।

2. बंद संस्करण सहित (किसी भी) कुंजी या माउस हिट होने पर फ़ंक्शन

इस एक और "बुनियादी" संस्करण के बीच का अंतर यह है कि इसमें एक अलार्म बंद हो जाता है जब किसी कीस्ट्रोकेक या माउस की गति का पता लगाया जाता है (जब आप बस उठते हैं तो कंप्यूटर पर रिदमबॉक्स को रोकने की तुलना में अधिक सुविधाजनक होता है), और यह कि अलार्म स्वचालित रूप से बाहर निकल जाता है समय की एक निर्धारित अवधि।

सेटअप मूल संस्करण के रूप में बहुत अधिक है, लेकिन 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कमांड के चारों ओर लिखी गई हैं , जैसा कि यहां बताया गया है । आदेश का उपयोग कंप्यूटर को निलंबित करने और समय की एक निर्धारित मात्रा के बाद जागने के लिए किया जा सकता है (और वैकल्पिक रूप से जागने के बाद एक कमांड चलाएं)। -m diskविकल्प प्रयोग किया जाता है, के बाद से ओपी अपने कंप्यूटर का समर्थन नहीं करता BIOS में सुविधा "राम को निलंबित" का उल्लेख किया। यह भी देखें man rtcwake

स्टॉप फंक्शन

स्टॉप फंक्शन एक ऐसे फंक्शन द्वारा काम करता है, जो हर सेकंड में समय को मापता है, जबकि गाना बज रहा है, और अंतिम निष्क्रिय समय को याद करता है। यदि अंतिम निष्क्रिय समय वर्तमान से अधिक है, तो इसका मतलब है कि कीस्ट्रोक या माउस घटना हुई है और रिदमबॉक्स मारा गया है।


मेरा सुझाव है कि नौसिखिया sudoers फ़ाइल को छूने के लिए नहीं है।
रेगरबॉय

@ ओवरडॉलर वे व्यावहारिक रूप से करने की जरूरत है, लेकिन एक चेतावनी दी जानी चाहिए। अगर मुझे घर पर (वर्तमान में मोबाइल पर) मिलता है, तो संपादित करेंगे।
याकूब वलिजम

@ डेवलेपर और किया ....
जैकब व्लिजम

1
यह नहीं होना चाहिए sudo visudo /etc/sudoers?
यूनिवर्सिटीलीयूनिड

@ भारद्वाजराजु नहीं, इसे आजमाएं :) vi सिर्फ संपादक हैं।
जैकब वलिज्म

2

यदि आप अपने लैपटॉप को केबल द्वारा इंटरनेट से कनेक्ट कर सकते हैं, तो आप इसे "मैजिक पैकेट" भेजने के लिए दूसरे कंप्यूटर या स्मार्टफोन का उपयोग करने का प्रयास कर सकते हैं और इसे जगा सकते हैं।

"लान पर जाग" (WOL) देखें।


नहीं, यह केवल वाईफाई है।
Chelios

1

मुझे जैकब की पाइथन स्क्रिप्ट चलाने में परेशानी हुई, इसलिए मैंने इसे बैश में लिखा । बस इसे डाउनलोड करें, इसे निष्पादन योग्य बनाएं और तदनुसार चर संपादित करें।

चीजों की एक जोड़ी: अलार्म समय के माध्यम से निर्धारित किया जाता है date -d। कुछ उदाहरण man date:

  • "सन, 29 फरवरी 2004 16:21:42 -0800"
  • "2004-02-29 16:21:42"
  • "अगले गुरुवार"

उठने के बाद मैं vlc -Lएक पाश में कुछ संगीत बजाने के लिए उपयोग करता हूं । यदि आपका पथ एक फ़ोल्डर है, तो वह इसमें फ़ाइलें चलाने का प्रयास करेगा। यही तो मैं करता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.