Skip to content

Commit

Permalink
Merge pull request #131 from abgox/v2
Browse files Browse the repository at this point in the history
fix: 更新版本 2.28.6
  • Loading branch information
abgox authored Jan 6, 2025
2 parents 8fbb6f5 + 4b73632 commit 6f09e9d
Show file tree
Hide file tree
Showing 7 changed files with 78 additions and 22 deletions.
20 changes: 18 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@

> - [查看 v1 老版本](./src/v1/README.md) (此版本已经没啥用了,不再更新)
**如果 `InputTip` 对你有所帮助,请考虑给它一个 Star ⭐**
[**如果 `InputTip` 对你有所帮助,请考虑给它一个 Star ⭐**](#stars)

### 新的变化

Expand Down Expand Up @@ -143,6 +143,10 @@
> [!Tip]
> 你可以自行查看源代码并编译 `InputTip`
> [!Warning]
>
> 如果修改了项目代码,需要先编译 `InputTip.JAB.JetBrains.ahk`,再编译 `InputTip.ahk`
1. 克隆项目仓库到本地
```shell
Expand Down Expand Up @@ -323,6 +327,7 @@
- 如果正在使用 **讯飞**输入法,你需要选择它
- `手心输入法`
- 如果你正在使用 **手心**输入法,你需要选择它
- 兼容性一般,因为获取到的输入法状态可能有误,导致基于此的相关功能都可能有问题。
- `自定义`
- [关于设置输入法模式中的自定义](https://inputtip.pages.dev/FAQ/about-input-mode-custom)

Expand All @@ -343,8 +348,19 @@
- 之后看到了 [RedDot - Autumn-one](https://github.com/Autumn-one/RedDot)[language-indicator - yakunins](https://github.com/yakunins/language-indicator) 的设计,通过不同颜色加上小符号来判断不同输入法状态
- InputTip 也参照了这样的设计,因为这样的实现很简单,其实就是 [InputTip v1](./src/v1/README.md) 中带文字的方块符号,去掉文字,加上不同的背景颜色

### Stars

**如果 `InputTip` 对你有所帮助,请考虑给它一个 Star ⭐**

<a href="https://github.com/abgox/InputTip">
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://reporoster.com/stars/abgox/InputTip"> <!-- light theme -->
<img alt="stargazer-widget" src="https://reporoster.com/stars/dark/abgox/InputTip"> <!-- dark theme -->
</picture>
</a>

### 赞赏支持

<a href='https://ko-fi.com/W7W817R6Z3' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi5.png?v=6' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>
<a href='https://ko-fi.com/W7W817R6Z3' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://abgox.pages.dev/buy-me-a-coffee.png' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>

![赞赏支持](https://abgox.pages.dev/support.png)
18 changes: 8 additions & 10 deletions src/v2/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@

- 没有特别说明的版本都是修复问题

## 2.28.6

- 完善了自动切换的逻辑
- 修复了当设置快捷键切换状态后,频繁按下多次快捷键,状态切换有误的问题
- 优化了「指定窗口自动切换状态」配置菜单
- 当添加应用进程时,如果白名单中不存在,则同步添加到白名单中
- 其他的修复和优化

## 2.28.5

- 限制同一个配置菜单只能存在一个,避免出现多个相同菜单,导致修改冲突
Expand Down Expand Up @@ -39,16 +47,6 @@
> [!warning]
>
> `v2.28.0` 会默认使用白名单机制
>
> 由于配置迁移的问题,旧版本更新后,需要根据情况手动调整。(在 `v2.28.1` 中已修复)
>
> - 使用新的白名单机制: `托盘菜单` => `符号显示黑/白名单` => `设置「白」名单`
> - 继续使用黑名单机制: `托盘菜单` => `符号显示黑/白名单` => `使用「黑」名单`
> - 推荐使用白名单机制,精确指定应用进程,可以减少一些特殊窗口的兼容性问题
>
> 白名单机制下,你需要先将 `InputTip.exe` 加入白名单,符号相关的配置更改才会实时生效
>
> 如果是通过源代码运行 `InputTip.ahk`,就需要将启动 `InputTip.ahk` 的 AHK 进程加入白名单
- 托盘菜单中的配置项变化
- `暂停软件运行` 修改为 `暂停/运行`
Expand Down
Binary file modified src/v2/InputTip.JAB.JetBrains.exe
Binary file not shown.
1 change: 0 additions & 1 deletion src/v2/InputTip.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ gc := {
}

; 配置菜单的字体大小

fz := "s12"
if (A_ScreenHeight < 1000 || A_ScreenWidth < 2000) {
fz := "s10"
Expand Down
37 changes: 32 additions & 5 deletions src/v2/utils/IME.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,11 @@ class IME {

/**
* 判断当前输入法状态是否为中文
* 需要: DetectHiddenWindows 1
* @returns {Boolean} 输入法是否为中文
* @example
* DetectHiddenWindows 1 ; 前置条件(不为1,可能判断有误)
* ;...
* MsgBox isCN()
*/
isCN() {
return IME.GetInputMode().isCN
Expand All @@ -145,8 +148,13 @@ isCN() {
/**
* 将输入法状态切换为中文
* @Tip 外部必须提供变量 useShift(是否使用 Shift 切换输入法状态)
* @example
* SetStoreCapsLockMode 0 ; 前置条件,确保大写锁定可切换
* ; ...
* switch_CN()
*/
switch_CN(*) {
isShift := GetKeyState("Shift", "P")
if (GetKeyState("CapsLock", "T")) {
SendInput("{CapsLock}")
}
Expand All @@ -155,15 +163,25 @@ switch_CN(*) {
IME.SetInputMode(1)
}
}
if (!GetKeyState("Shift", "P") && !isCN()) {
SendInput("{Shift}")
Sleep(50)
if (!isShift && !isCN()) {
SendInput("{LShift}")
Sleep(50)
if (!isCN()) {
SendInput("{RShift}")
}
}
}
/**
* 将输入法状态切换为英文
* @Tip 外部必须提供变量 useShift(是否使用 Shift 切换输入法状态)
* @example
* SetStoreCapsLockMode 0 ; 前置条件,确保大写锁定可切换
* ; ...
* switch_EN()
*/
switch_EN(*) {
isShift := GetKeyState("Shift", "P")
if (GetKeyState("CapsLock", "T")) {
SendInput("{CapsLock}")
}
Expand All @@ -172,12 +190,21 @@ switch_EN(*) {
IME.SetInputMode(0)
}
}
if (!GetKeyState("Shift", "P") && isCN()) {
SendInput("{Shift}")
Sleep(50)
if (!isShift && isCN()) {
SendInput("{LShift}")
Sleep(50)
if (isCN()) {
SendInput("{RShift}")
}
}
}
/**
* 将输入法状态切换为大写锁定
* @example
* SetStoreCapsLockMode 0 ; 前置条件,确保大写锁定可切换
* ; ...
* switch_Caps()
*/
switch_Caps(*) {
if (!GetKeyState("CapsLock", "T")) {
Expand Down
5 changes: 2 additions & 3 deletions src/v2/utils/options.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@ ListLines 0
KeyHistory 0
DetectHiddenWindows 1
InstallKeybdHook
InstallMouseHook
CoordMode 'Mouse', 'Screen'
SetStoreCapsLockMode 0

;@AHK2Exe-SetVersion 2.28.5
currentVersion := "2.28.5"
;@AHK2Exe-SetVersion 2.28.6
currentVersion := "2.28.6"
19 changes: 18 additions & 1 deletion src/v2/utils/tray-menu.ahk
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ makeTrayMenu() {
g.OnEvent("Close", yes)
yes(*) {
g.Destroy()
last := mode + 1
try {
gc.mode.Value := mode + 1
}
Expand Down Expand Up @@ -429,6 +430,7 @@ makeTrayMenu() {
global useWhiteList := value
restartJetBrains()
}
g.AddEdit("xs Disabled", "如果使用「黑」名单,你需要承担未知的可能存在的窗口兼容性代价")
_c := g.AddButton("xs w" bw, "设置「白」名单")
_c.OnEvent("Click", set_white_list)
_c.Focus()
Expand Down Expand Up @@ -1478,6 +1480,20 @@ makeTrayMenu() {
} else {
writeIni(config, RowText)
}

; 同步添加到白名单
global app_show_state
_app_show_state := readIni("app_show_state", "")
if (!InStr(app_show_state, ":" RowText ":")) {
if (_app_show_state) {
_app_show_state .= ":" RowText
} else {
_app_show_state := RowText
}
app_show_state := ":" _app_show_state ":"
writeIni("app_show_state", _app_show_state)
}

global app_CN := ":" readIni('app_CN', '') ":"
global app_EN := ":" readIni('app_EN', '') ":"
global app_Caps := ":" readIni('app_Caps', '') ":"
Expand All @@ -1489,6 +1505,7 @@ makeTrayMenu() {
g_1.AddLink(, "要将进程")
g_1.AddLink("yp cRed", RowText)
g_1.AddLink("yp", "添加到哪一个自动切换列表中?")
g_1.AddLink("xs cRed", "如果选择添加且此应用不在白名单中,则会同步添加到白名单中")
fn_CN(*) {
_handle("CN")
}
Expand Down Expand Up @@ -1640,7 +1657,7 @@ makeTrayMenu() {
gc.LV_add.ModifyCol(2, "AutoHdr")
gc.LV_add.ModifyCol(3, "AutoHdr")
tab.UseTab(2)
g.AddLink(, "如何使用这个管理面板?`n`n- 最上方的列表页显示的是当前系统正在运行的应用进程(仅前台窗口)`n- 双击列表中任意应用进程,就可以将其添加到下方任意列表中。`n- 如果需要更多的进程,请点击右下角的「显示更多进程」以显示后台和隐藏进程。`n- 也可以点击右下角的「通过输入进程名称手动添加」直接添加进程名称。`n- 下方分别是中文、英文、大写锁定这三个自动切换列表。`n- 在自动切换列表中的应用窗口被激活时,会自动切换到对应的输入法状态。`n- 双击列表中任意应用进程,就可以将它移除或者添加到其他列表中。`n`n- 举个例子: `n - 你可以双击上方正在运行的应用进程列表中的其中一个应用进程。`n - 然后在弹出的操作窗口中,选择将其添加到哪一个列表中。`n - 添加完成后,会在下方对应列表中显示,并实时生效。`n - 你也可以双击下方列表中的其中一个应用进程进行同样的操作。")
g.AddLink(, "如何使用这个管理面板?`n`n- 最上方的列表页显示的是当前系统正在运行的应用进程(仅前台窗口)`n- 双击列表中任意应用进程,就可以将其添加到下方任意列表中。`n- 如果需要更多的进程,请点击右下角的「显示更多进程」以显示后台和隐藏进程。`n- 也可以点击右下角的「通过输入进程名称手动添加」直接添加进程名称。`n- 下方分别是中文、英文、大写锁定这三个自动切换列表。`n- 在自动切换列表中的应用窗口被激活时,会自动切换到对应的输入法状态。`n- 双击列表中任意应用进程,就可以将它移除或者添加到其他列表中。`n- 如果选择添加且此应用不在白名单中,则会同步添加到白名单中。`n`n- 举个例子: `n - 你可以双击上方正在运行的应用进程列表中的其中一个应用进程。`n - 然后在弹出的操作窗口中,选择将其添加到哪一个列表中。`n - 添加完成后,会在下方对应列表中显示,并实时生效。`n - 你也可以双击下方列表中的其中一个应用进程进行同样的操作。")

g.OnEvent("Close", fn_close)
fn_close(*) {
Expand Down

0 comments on commit 6f09e9d

Please sign in to comment.