답변:
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 파일은 필수 파일입니다. 파일에 오류가있을 경우 심각한 문제가 발생할 수 있으므로주의하십시오!
NB
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의 기능 "RAM 일시 중지"하지 않는 언급 이후 옵션이 사용됩니다. 도 참조하십시오 man rtcwake
.
정지 기능
정지 기능은 노래가 재생되는 동안 매초 유휴 시간을 측정하고 마지막 유휴 시간을 기억하는 기능으로 작동합니다. 경우 마지막 유휴 시간이 현재를 초과, 그것은 키 입력 또는 마우스 이벤트가 자리를 차지하게하고, 리듬이 사망을 의미합니다.
sudo visudo /etc/sudoers
않습니까?
Jacob의 python 스크립트를 실행하는 데 문제가 있어서 bash로 다시 작성했습니다 . 그냥 다운로드하여 실행 가능하게 만들고 그에 따라 변수를 편집하십시오.
몇 가지 : 알람 시간은을 통해 설정됩니다 date -d
. 일부 예 man date
:
깨어 난 후 vlc -L
루프에서 일부 음악을 재생 하는 데 사용 합니다. 경로가 폴더이면 파일을 재생하려고 시도합니다. 그게 내가하는 일입니다.