Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
Fix mac icon

Add waker model

Add assets

Add app

Fix bugs and Add build.ps1

Release v1.0.0

Add submodule

Release v1.0.0
  • Loading branch information
ChenglongMa committed Aug 1, 2024
1 parent b8d6133 commit 3f5ee0c
Show file tree
Hide file tree
Showing 39 changed files with 1,549 additions and 2 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ celerybeat.pid
.venv
env/
venv/
prod_venv/
ENV/
env.bak/
venv.bak/
Expand Down Expand Up @@ -158,3 +159,5 @@ cython_debug/
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

*.bak
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "src/core"]
path = src/core
url = [email protected]:ChenglongMa/waker-core.git
3 changes: 3 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .idea/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file added CHANGELOG.md
Empty file.
10 changes: 10 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
include README.md
include LICENSE
include MANIFEST.in
recursive-include src/waker/assets *
recursive-exclude * *.py[co]
exclude .idea/*
exclude CHANGELOG.md
exclude _config.yml
exclude docs/*
exclude requirements.txt
134 changes: 132 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,132 @@
# keep-active
A simple library to make MS Teams or other similar apps "Active"
<div align="center">
<img src="./docs/social-preview.png" alt="Waker social preview">

![Windows Version](https://img.shields.io/badge/Windows-7%2B-green?logo=windows)
[![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/ChenglongMa/waker?include_prereleases)](https://github.com/ChenglongMa/waker/releases/latest)
[![GitHub License](https://img.shields.io/github/license/ChenglongMa/waker)](https://github.com/ChenglongMa/waker/blob/main/LICENSE)
[![Downloads](https://img.shields.io/github/downloads/ChenglongMa/waker/total)](https://github.com/ChenglongMa/waker/releases/latest)

</div>

<div align="center">
English | <a href="./README_CN.md">简体中文</a>
</div>

> "_You deserve a cup of coffee!_" - Waker <img src="./docs/icon.svg" alt="Waker icon" width="50px">
Waker is a straightforward Windows app designed to keep your PC awake and prevent "_You know what_" apps from
becoming inactive.

With Waker, you can also prevent other apps (your admin) from monitoring its status, ensuring your privacy and leisure.

# Appearance

## Menu Bar Status

![Waker Menu Bar Active](./docs/appearance/menu-bar-status.svg)

## Menu Body Appearance

![Waker Menu Body Appearance](./docs/appearance/menu-body-appearance.svg)

# Features

- 🎯 **Keep PC Awake**: Prevent your PC and related apps from becoming inactive.
- 🙈 **Anti-Monitoring**: Prevent other apps (your admin) from monitoring Waker's status.
-**Set Wake Up Interval**: Define the interval to wake up your PC.
-**Schedule Running Time**: Set specific times for Waker to run.
- 🚀 **Auto-Start**: Configure Waker to start automatically upon login.
- 🌒 **Dark Mode Support**: Seamlessly switch between light and dark modes.
- 🌟 **Auto-Update**: Automatically check for updates and notify you of new versions.
- 🌐 **Multi-Language Support**: Available in English and Chinese.


# Installation

1. Download the latest version of Waker's `.zip` file from
the [release page](https://github.com/ChenglongMa/waker/releases/latest).
2. Unzip the downloaded file to any directory.
3. Run `Rekaw.exe`.

> [!NOTE]
>
> * The app is renamed to **Rekaw** (Waker spelled backward) to avoid potential monitoring by certain apps.
> * You can customize the `.exe` file name by renaming it to your preferred name **before running it**.
> * You can customize the app's title and icons in the settings.
>
> [!WARNING]
>
> If you encounter a Windows Defender SmartScreen warning, click "**More info**" and then "**Run anyway**" to proceed with the installation.
>
# Workflow Logic

The app will simulate your working style when you're away from your PC, preventing it from becoming inactive.

(I don't want to be too specific here, as it may attract unwanted attention.
If you want to know more, you can email me at **chenglong.m_at_outlook.com**.)

# Usage

Using Waker is intuitive, with its functionality directly accessible from its interface.

## Functionality

### Manual Running

Toggle the `Main Switch` in the app or the trap app menu to manually run or stop Waker.

### Set Wake-Up Interval

Define the **maximum** wake-up interval in the app to prevent certain apps from becoming inactive.

### Schedule Running Time

Set specific times for Waker to run, allowing for customized usage based on your preferences and workflow.

For example, you can set the app to run at **9:00 AM** and close at **6:00 PM** from **Monday** to **Friday**.

### Anti-Monitoring

![settings](./docs/usage/settings.png)

As shown in the `settings` menu:
1. You can customize the app's title and icons in the settings to prevent information collection by certain apps.
2. You can edit the corpus to simulate your working behavior.

This feature will be further enhanced in future versions. Welcome to contribute!

### Auto-Update

Enable automatic update checks to stay informed about the latest versions of Waker.

You can also check for updates manually in the app menu bar settings.

# Contributing

👋 Welcome to **Waker**! We're excited to have your contributions. Here's how you can get involved:

1. 💡 **Discuss New Ideas**: Have a creative idea or suggestion? Start a discussion in
the [Discussions](https://github.com/ChenglongMa/waker/discussions) tab to share your thoughts and
gather feedback from the community.

2.**Ask Questions**: Got questions or need clarification on something in the repository? Feel free to open
an [Issue](https://github.com/ChenglongMa/waker/issues) labeled as a "question" or participate
in [Discussions](https://github.com/ChenglongMa/waker/discussions).

3. 🐛 **Issue a Bug**: If you've identified a bug or an issue with the code, please open a
new [Issue](https://github.com/ChenglongMa/waker/issues) with a clear description of the problem, steps
to reproduce it, and your environment details.

4.**Introduce New Features**: Want to add a new feature or enhancement to the project? Fork the repository, create a
new branch, and submit a [Pull Request](https://github.com/ChenglongMa/waker/pulls) with your changes.
Make sure to follow our contribution guidelines.

5. 💖 **Funding**: If you'd like to financially support the project, you can do so
by [sponsoring the repository on GitHub](https://github.com/sponsors/ChenglongMa). Your contributions help us
maintain and improve the project.

Thank you for considering contributing to **Waker**.

We value your input and look forward to collaborating with you!
115 changes: 115 additions & 0 deletions README_CN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
<div align="center">

<img src="./docs/social-preview.png" alt="Waker social preview">

![Windows Version](https://img.shields.io/badge/Windows-7%2B-green?logo=windows)
[![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/ChenglongMa/waker?include_prereleases)](https://github.com/ChenglongMa/waker/releases/latest)
[![GitHub License](https://img.shields.io/github/license/ChenglongMa/waker)](https://github.com/ChenglongMa/waker/blob/main/LICENSE)
[![Downloads](https://img.shields.io/github/downloads/ChenglongMa/waker/total)](https://github.com/ChenglongMa/waker/releases/latest)

</div>

<div align="center">
<a href="./README.md">English</a> | 简体中文
</div>

>
> "_嗨,不要着急,休息,休息一会儿!_" - Waker <img src="./docs/icon.svg" alt="Waker图标" width="50px">
Waker是一个简单直接的macOS菜单栏应用,旨在保持你的Mac唤醒状态,防止某些应用(说的就是你,Teams)变成离开状态。

# 外观

## 菜单按钮状态

![Waker菜单栏活跃状态](./docs/appearance/menu-bar-status.svg)

## 外观

![Waker菜单主体外观](./docs/appearance/menu-body-appearance.svg)

# 主要功能

- 🎯 **保持唤醒**:防止你的PC及相关应用进入**离开**状态。
- 🙈 **防监控**:防止其他应用(你的管理员)监控Waker的状态。
-**设置唤醒间隔**:设置唤醒间隔时间。
-**计划运行时间**:设置Waker运行周期。
- 🚀 **开机自启**:设置Waker登录时自动启动。
- 🌒 **深色模式支持**:无缝切换浅色和深色模式。
- 🌟 **自动更新**:自动检查更新,及时获取最新功能。

# 安装

1. 请从 [发布页面](https://github.com/ChenglongMa/waker/releases/latest) 下载最新版本的Waker的 `.zip` 文件。
2. 将下载的文件解压到任意目录。
3. 运行 `Rekaw.exe`

> [!NOTE]
>
> * 该应用程序已更名为 **Rekaw**(Waker的反向拼写)以避免受到某些应用程序的监控。
> * 你可以在运行之前将 `.exe` 文件重命名为你喜欢的名称。
> * 你可以在设置中自定义应用程序的标题和图标。
>
> [!WARNING]
>
> 如果遇到Windows Defender SmartScreen警告,请单击“**更多信息**”,然后单击“**仍要运行**”以继续安装。
>
# 工作原理

当你短暂离开电脑时,该应用通过模拟你的工作方式防止电脑进入“非活动”状态。

(在这里不太过多介绍具体原理,有兴趣可以给我发邮件 (**chenglong.m_at_outlook.com**),我会详细解释)

# 用法

Waker 的使用方法非常直观,所见即所得。以下是一些小小的提示,以帮助你更好地使用该应用程序。

## 主要功能

### 手动运行

在应用中或任务栏菜单栏中切换 `主开关` 以手动运行或停止 Waker。

### 设置唤醒间隔

在应用中设置唤醒间隔,以防止某些应用程序变为非活动状态(比如**离开**)。Teams 自动转入离开状态的间隔为**5分钟**,所以建议设置小于等于**5分钟**的时间。

### 定时运行

设置 Waker 运行的时间周期,根据你的偏好和工作流程进行自定义使用。

比如,你可以设置该应用程序在**周一****周五****上午9:00**运行并在**下午6:00**关闭。**996** 打工仔请自觉绕道😂。

### 防监控

![设置](./docs/usage/settings.png)

如图所示的 `设置` 菜单:
1. 你可以在设置中自定义应用程序的标题和图标,以防止其他应用程序(你的管理员)监控Waker的状态。
2. 你可以编辑语料库以模拟你的工作行为。

该功能后续将会进一步完善,欢迎各位提出建议。

### 自动更新

开启自动更新检查以获取最新版本的 Waker。

当然,你也可以手动单击菜单栏中的 `检查更新` 按钮检查更新。

# 开源贡献

👋 欢迎关注 **Waker**!很高兴有你的参与。以下是你可以参与的方式:

1. 💡 **讨论新想法**:有创意的想法或建议?在[Discussion](https://github.com/ChenglongMa/waker-mac/discussions)页面开始讨论,分享你的想法并从获得反馈。

2.**提问**:对仓库中的某些内容有疑问?随时开一个标记为“问题”的[issue](https://github.com/ChenglongMa/waker-mac/issues)或参与[Discussion](https://github.com/ChenglongMa/waker-mac/discussions)

3. 🐛 **报告错误**:如果你发现了一个bug,请开一个新的[issue](https://github.com/ChenglongMa/waker-mac/issues),并清楚描述问题、复现步骤以及你的运行环境。

4.**引入新功能**:想要为项目添加新功能或增强吗?Fork仓库,创建一个新分支,并提交一个带有你更改的[PR](https://github.com/ChenglongMa/waker-mac/pulls)。确保遵循我们的贡献指南。

5. 💖 **赞助**:如果您想更多地支持该项目,你可以通过[在GitHub上赞助仓库](https://github.com/sponsors/ChenglongMa)来实现。感谢各位金主大佬!

非常感谢各位对 **Waker** 的关注和支持!🙏
3 changes: 3 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
theme: jekyll-theme-cayman
title: Waker
description: A simple library to make MS Teams or other similar apps "Awake".
105 changes: 105 additions & 0 deletions build.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
param (
[Parameter(Mandatory = $false)]
[switch]$Dev
)

####################################################################

function Remove-Folders {
param (
[Parameter(Mandatory=$true)]
[string[]]$Paths
)

foreach ($Path in $Paths) {
if (Test-Path $Path) {
Write-Output "Removing $Path..."
Remove-Item -Path $Path -Recurse -Force
} else {
Write-Output "Skipping $Path as it does not exist."
}
}
}

####################################################################
Write-Output "Please ensure you have valid icon.ico in src\waker\assets\"
Write-Output "You can create one using https://www.icoconverter.com/ or https://icoconvert.com/"
Write-Output "Building Waker..."
$EnvName = "prod_venv"
$ErrorActionPreference = "Stop"
$ProgressPreference = "SilentlyContinue"

Write-Output "Cleaning Up..."
Remove-Folders -Paths @(".\dist", ".\build", ".\$EnvName")

Write-Output "Building..."

Write-Output "Creating Virtual Environment..."
.\venv\Scripts\python.exe -m pip install --upgrade pip
.\venv\Scripts\pip.exe install -r requirements-dev.txt
.\venv\Scripts\python.exe -m venv $EnvName

Write-Output "Activating Virtual Environment..."
$ActivateScript = Join-Path -Path ".\" -ChildPath "$EnvName\Scripts\Activate.ps1"
. $ActivateScript

Write-Output "Installing Dependencies..."
& .\$EnvName\Scripts\python.exe -m pip install --upgrade pip
& .\$EnvName\Scripts\pip.exe install -r requirements.txt
& .\$EnvName\Scripts\pip.exe install -r .\src\core\requirements.txt

Write-Output "Building Executable..."

$InstallerArgsDebug = @(
"--noconsole",
"--add-data",
".\src\waker\assets\*.png;.\assets",
"--add-data",
".\src\waker\assets\*.ico;.\assets",
"--add-data",
".\src\waker\assets\*.json;.\assets",
"--collect-data",
"sv_ttk",
"--paths",
".\src",
"--clean",
"--icon",
".\src\waker\assets\icon.ico",
"--name",
"Rekaw",
".\src\waker\main.py"
)

$InstallerArgs = $InstallerArgsDebug + @(
"--log-level",
"WARN",
"--onefile"
)

if ($Dev)
{
& .\$EnvName\Scripts\pyinstaller.exe $InstallerArgsDebug
}
else
{
& .\$EnvName\Scripts\pyinstaller.exe $InstallerArgs
}

if ($Dev)
{
Write-Output "Debug mode enabled, skipping compression..."
& .\dist\Rekaw\Rekaw.exe
}
else
{
Write-Output "Creating Version File..."
& .\venv\Scripts\create-version-file.exe metadata.yml --outfile file_version_info.txt

Write-Output "Setting Version..."
& .\$EnvName\Scripts\pyi-set_version.exe ./file_version_info.txt ./dist/Rekaw.exe

Write-Output "Compressing Files..."
Compress-Archive -Path .\dist\Rekaw.exe -DestinationPath .\dist\Rekaw.zip
}

Write-Output "Done!"
Loading

0 comments on commit 3f5ee0c

Please sign in to comment.