Skip to content

Commit

Permalink
fix(Modules): pomodoro enable
Browse files Browse the repository at this point in the history
  • Loading branch information
snomiao committed Oct 27, 2022
1 parent 7e33958 commit 7c3c838
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 23 deletions.
52 changes: 31 additions & 21 deletions Modules/插件-番茄时钟.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@

global T_TomatoLife := CapsLockX_Config("TomatoLife", "Enable", 0, "使用番茄时钟(默认禁用,改为 1 开启)")
global T_TomatoLife_NoticeOnLaunch := CapsLockX_Config("TomatoLife", "NoticeOnLaunch", 1, "启动时报告番茄状态")
global T_TomatoLife_UseTomatoLife := CapsLockX_Config("TomatoLife", "UseTomatoLife", 1, "使用番茄报时(00分和30分播放工作铃声,每小时的25分和55分播放休息铃声)(需要先开启番茄时钟)")
global T_TomatoLife_UseTomatoLifeSwitchVirtualDesktop := CapsLockX_Config("TomatoLife", "UseTomatoLifeSwitchVirtualDesktop", 1, "使用番茄报时时,自动切换桌面(休息桌面为1,工作桌面为2")
global T_TomatoLife_UseTomatoLifeSound := CapsLockX_Config("TomatoLife", "UseTomatoLifeSound", 1, "使用番茄报时(00分和30分播放工作铃声,每小时的25分和55分播放休息铃声)(需要先开启番茄时钟)")
global T_TomatoLife_UseTomatoLifeSwitchVirtualDesktop := CapsLockX_Config("TomatoLife", "UseTomatoLifeSwitchVirtualDesktop", 1, "使用番茄报时时,自动切换桌面(休息为桌面1,工作为桌面2")

if (T_TomatoLife) {
高精度时间配置()
GoSub CapsLockX定时任务
GoSub CapsLockX_番茄时钟定时任务
; [有一个难以复现的 bug・Issue #17・snolab/CapsLockX]( https://github.com/snolab/CapsLockX/issues/17 )
}

Expand All @@ -29,7 +29,7 @@ Return
global T_TomatoLife_UsingHighPerformanceTime := CapsLockX_Config("TomatoLife", "T_UsingHighPerformanceTime", "0", "已经配置过高精度时间的Flag")
if (T_TomatoLife_UsingHighPerformanceTime)
return
ToolTip, 定时任务开启,正在为您配置系统高精度时间
ToolTip, 番茄时钟开启,正在为您配置系统高精度时间
RunWait reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config" /v "FrequencyCorrectRate" /t REG_DWORD /d 2 /f, , Hide
RunWait reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config" /v "UpdateInterval" /t REG_DWORD /d 100 /f, , Hide
RunWait reg add "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config" /v "MaxPollInterval" /t REG_DWORD /d 6 /f, , Hide
Expand All @@ -41,6 +41,7 @@ Return
CapsLockX_ConfigSet("TomatoLife", "T_UsingHighPerformanceTime", "1", "")
ToolTip
}

番茄状态计算(){
Return ((Mod((UnixTimeGet() / 60000)+30000, 30) < 25) ? "工作时间" : "休息时间")
}
Expand All @@ -49,7 +50,7 @@ Return
; CapsLockX 暂停时,番茄状态也暂停
if (CapsLockX_Paused)
Return
; 检测睡眠标记文件以跳过报时
; tooltip 检测睡眠标记文件以跳过报时
static SLEEPING_FLAG_CLEAN := 0
if(!SLEEPING_FLAG_CLEAN) {
; 启动时重置标记文件
Expand All @@ -62,32 +63,39 @@ Return
}
}
番茄状态 := 番茄状态计算()
; 边沿触发过滤器
; tooltip 边沿触发过滤器

static 上次番茄状态 := "" ; : 番茄状态计算()

; static 上次番茄状态 := ""
static 上次番茄状态 := 番茄状态计算()
global T_TomatoLife_NoticeOnLaunch ;
tomatoLaunchFlag := 0 ;

; msgbox %上次番茄状态% %番茄状态%
if ( 上次番茄状态 == "" && !T_TomatoLife_NoticeOnLaunch) {
上次番茄状态 = 番茄状态计算()
tomatoLaunchFlag := 1
}
; tooltip 边沿触发过滤器
; tooltip %上次番茄状态% %番茄状态%
if (上次番茄状态 == 番茄状态 && !force) {
Return
}
上次番茄状态 := 番茄状态
; MsgBox, 番茄:%番茄状态%
; TrayTip, 番茄:%番茄状态%, : %番茄状态%
MsgBox, 番茄:%番茄状态%

; 状态动作
if ("工作时间" == 番茄状态) {
; SoundPlay % "C:\Windows\media\Windows Unlock.wav" ; 时间提醒
sleep 30000 ; 暂缓30秒切工作桌面
TrayTip 番茄时钟:%番茄状态%, 工作时间到啦!
SoundPlay % "Data/NoteC_G.mp3" ; 升调
if (T_TomatoLife_UseTomatoLifeSwitchVirtualDesktop) {
; sleep 10000 ; 暂缓10秒切工作桌面
if (T_TomatoLife_UseTomatoLifeSwitchVirtualDesktop && !tomatoLaunchFlag) {
Func("SwitchToDesktop").Call(2) ; 切到工作桌面(桌面2)
}
}
if ("休息时间" == 番茄状态) {
; SoundPlay % "C:\Windows\media\Windows Balloon.wav" ; 时间提醒
TrayTip 番茄时钟:%番茄状态%, 起来运动一下收拾收拾东西!
SoundPlay % "Data/NoteG_C.mp3" ; 降调
sleep 30000 ; 暂缓30秒切休息桌面
if(T_TomatoLife_UseTomatoLifeSwitchVirtualDesktop) {
sleep 10000 ; 暂缓10秒切休息桌面
if(T_TomatoLife_UseTomatoLifeSwitchVirtualDesktop && !tomatoLaunchFlag) {
Func("SwitchToDesktop").Call(1) ; 切到休息桌面(桌面1)
}
}
Expand All @@ -101,18 +109,20 @@ UnixTimeGet()
Return t * 1000 + A_MSec
}

CapsLockX定时任务:
if (T_TomatoLife_UseTomatoLife)
CapsLockX_番茄时钟定时任务:
if (T_TomatoLife && T_TomatoLife_UseTomatoLife)
番茄报时()
; 下次循环时间计算
间隔 := 60000 ; 间隔为1分钟,精度到毫秒级
延时 := (间隔 - Mod(UnixTimeGet(), 间隔))
; ToolTip, % 延时
SetTimer CapsLockX定时任务, %延时%
SetTimer CapsLockX_番茄时钟定时任务, %延时%
Return

#If

^!i::
; 番茄状态 := 番茄状态计算()
; MsgBox, 番茄状态:%番茄状态%
番茄报时()
番茄报时(1)
return
18 changes: 16 additions & 2 deletions Modules/插件-配置修改.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,26 @@ global CLX_CONFIG_ONSTARTUP := CapsLockX_Config("Core", "CLX_CONFIG_ONSTARTUP"

Menu, Tray, Add ; Creates a separator line.
Menu, Tray, Add, 配置文件编辑, 配置文件编辑 ; Creates a new menu item.
; Menu, Tray, Add, Exit, Exit ; Creates a new menu item.
Menu, Tray, Add, Exit, ExitCapsLockX ; Creates a new menu item.

if (CLX_CONFIG_ONSTARTUP) {
SetTimer CapsLockX_配置窗口, -1
}

return

ExitCapsLockX()
{
exit
}
; 修改配置
#if CapsLockXMode

; m:: 配置文件编辑()
m:: CapsLockX_配置窗口()

CapsLockX_配置窗口(){
Gui, Destroy
; TODO update this to web view
Gui, Add, Text, , 你可以按 CapsLockX + M 打开此窗口
Gui, Add, Text, , 当前 CapsLockX_配置目录:%CapsLockX_配置目录%
Expand All @@ -39,6 +44,13 @@ CapsLockX_配置窗口(){
Gui, Add, Button, w80, 添加开机自动启动
Gui, Add, Button, w80, 配置文件编辑

global T_TomatoLife
if (T_TomatoLife) {
Gui, Add, CheckBox, gCapsLockX_ConfigureUpdate vT_TomatoLife Checked, 启用番茄时钟,每25分钟休息5分钟·。
} else {
Gui, Add, CheckBox, gCapsLockX_ConfigureUpdate vT_TomatoLife, 启用番茄时钟,每25分钟休息5分钟·。
}

global T_XKeyAsCapsLock
if (T_XKeyAsCapsLock) {
Gui, Add, CheckBox, gCapsLockX_ConfigureUpdate vT_XKeyAsCapsLock Checked, 使用 CapsLock 作为引导键(默认启用)
Expand Down Expand Up @@ -78,7 +90,8 @@ Button打开官方文档:
Run https://capslockx.snomiao.com/
return
CapsLockX_ConfigureUpdate:
global T_XKeyAsCapsLock
global T_TomatoLife
global T_XKeyAsCapsLock
global T_XKeyAsSpace
global T_AskRunAsAdmin
global CLX_CONFIG_ONSTARTUP
Expand All @@ -88,6 +101,7 @@ CapsLockX_ConfigureUpdate:
reloadFlag := reloadFlag || ( CapsLockX_ConfigGet("Core", "T_XKeyAsSpace", T_XKeyAsSpace) != T_XKeyAsSpace )
reloadFlagAdmin := 0
reloadFlagAdmin := reloadFlagAdmin || ( CapsLockX_ConfigGet("Core", "T_AskRunAsAdmin", T_AskRunAsAdmin) != T_AskRunAsAdmin )
CapsLockX_ConfigSet("TomatoLife", "Enable", T_TomatoLife, "使用番茄时钟(默认禁用,改为 1 开启)")
CapsLockX_ConfigSet("Core", "T_XKeyAsCapsLock", T_XKeyAsCapsLock, "使用 Space 作为引导键(默认启用,用户启用)")
CapsLockX_ConfigSet("Core", "T_XKeyAsSpace", T_XKeyAsSpace, "使用 CapsLock 作为引导键(默认启用,用户启用)")
CapsLockX_ConfigSet("Core", "T_AskRunAsAdmin", T_AskRunAsAdmin, "请求管理员权限(权限受限时,鼠标模拟等功能无法正常运行,如果不需要管理权限下的功能,可以改为0)")
Expand Down

0 comments on commit 7c3c838

Please sign in to comment.