【开发者自荐】键谱:一个记录、展示快捷键的本机网页应用(V3啦)

:joy_cat: 我的屏幕小

好,会增加固定的选择

1 个赞

预览

1 个赞


大佬 这个宽度有点太宽了 是可以 调节 的吗

安排

v3.3.0 已发布

  • [+] 增加“侧边栏”

1 个赞

给大佬磕一个


不能说 一模一样只能说 9分的相似
而且 非常贴心的写出了123456789 使用快捷键切换也一目了然
爱死了
3种点击切换模式
原始的点击切换 纯固定侧边栏 触发式侧边 这也太棒了吧

再算上快捷键 一个配置切换就提供了4种方式
总有一个姿势能满足用户的键谱切换方式

有人能帮忙做一个 keymap 的图标吗?用于 keymap.exe

BTW,马上就要有“快捷键显示当前窗口对应键谱”的功能了,也是单独的程序,该叫啥呢?翻书的叫书童,捡球的叫球童,那咱就叫“谱童”?(噗通 :joy_cat:

3 个赞

:rofl:我那个quicker动作可以删了

我用的GPT4 API 只能使用文字 无法 生成图片诶
没办法帮助大佬 制作图标 呜呜呜

看看这几个图标怎么样
icons8-快捷键-64(2)
icons8-快捷键-64(1)
icons8-快捷键-64
icons8-键盘-64
icons8-键盘-96

有个问题想跟大家交流一下,看怎么展示的效果比较好

有些程序的快捷键有多种模式,总的来说,vim模式、emacs模式、一般模式

  • 一般模式,多数软件默认采用的,有个修饰键集合(Win、Ctrl、Alt、Shift等),通过修饰键+单个普通键同时按下的方式触发相应命令(eg. Alt+F4 关闭),键谱现在支持得很好了:修饰键集颜色区分、右键筛选显示
  • Emacs模式,使用修饰键集合,但是与多个普通键组合,通过按住修饰键不放、连续敲击普通键的方式触发命令(eg. Ctrl+k Ctrl+S VSC的打开快捷键UI设置页面)。这种稍微区别于一般模式
  • Vim模式,有一个特殊关键键的集合,并且触发方式为以特殊键开始的连续敲击键(eg. dd 删除光标当前行,d是特殊键)。要展示这种模式,和当前的键谱是相反的:一般模式的命令是备注到最后的普通键,而Vim模式的命令是收纳到最开始的特殊键上。如果用键谱记录这类快捷键,应该怎么设计比较合适呢?
  • 还有种Vim混合模式的情况,组合键也可以当作特殊键,同时敲击组合键后,再敲击其他键触发(eg. Ctrl+k z VSC的切换到禅视图模式)

如果键谱可以把其他这些模式的一起管理起来,那就太棒了

我在 github 上也和人谈到过这个问题,不过到现在还没啥新想法,就把当时的答复贴过来吧

我在写键谱时,也思考过这种多次连续按键的问题,以下是我的想法:

键谱只针对记录“组合键”,“组合键”的概念是“同时按下的多个键(+)”,对于像sublime text这样的(Ctrl+K,Ctrl+Up)我觉得应该叫“连续键(,)”(借用格斗游戏里的连续技),它恰恰契合了键盘层的理念:按下连续键的起始键(Ctrl+K)后,后续整个键盘的按键所对应的功能完全不一样了;类似的,vi 的 esc 也可以算是连续键的起始键,按完后进入命令层,后续键盘输入虽然键值不变,但是功能变了;windows 程序的菜单也可以算,Alt+F 进入“File 功能键盘层”(打开 File 菜单),然后 O 键的功能就是打开文件,没有对应功能的按键则被忽略。

这其实是应对键盘上按键不够、功能太多的两个思路,并且经常结合起来,最常用的功能用组合键——更快,其他的用连续键——按键选择余地更多,而且可以更好地组织、分层,便于整理、记忆。

对于连续键、物理键盘层(现在也有软件实现的键盘层),起始键/切换键按下后,就不用再关注这个键了,而只需要关注之后真正调用功能的组合键,因此我觉得,应该把以这个起始键开始的连续键后续的组合键都放到一个键盘层下,这个起始键应该体现在层名里,而不需要体现在键表里。

所以这是我对当初引入键盘层的思考,当然,怎么使用是别人的事了,用出花来也是可能的(已经用出花来了,小众论坛上有人用扩展键布局来画“鼠标手势分布图” :smiley:

其实,我一直有些头痛的点是,在同一层下,组合键实在太多,颜色分类就很不好搞,搞颜色分类,最好是一个键上的组合键是可以分到一类的,否则这个键的颜色就不能代表它上面的所有组合键。对于这种快捷键多得一批的应用,我个人是觉得还是要分多个层来组织。

其实还有一种,超过2个的连续键,比如 CS 里的 B43,嗯,完全不建议在当前的键谱里搞,想着就…… :joy_cat:

快了


1 个赞

keymapTray.exe 发了,快去试试吧。注意 keymap.exe 也需要用新版的,不然隐藏了回不来

实现逻辑很简单的,就是根据设置的匹配规则,用 AHK 根据当前窗口标题去匹配对应的【谱匣】启动参数,然后运行【谱匣】

如果原先用其他快速启动工具的话(比如上面有人说的 quicker),可以继续使用,不用换 keymapTray.exe,毕竟少开一个程序。

哦,“隐藏【谱匣】窗口”这个功能可能还是需要用 keymapTray.exe 的。

2 个赞

大佬元宵节快乐 这就去试试

这个软件 完美的跳出了这个逻辑


标题 = 每次焦点所在路径

标题 包含 键谱名的也没有 弹出后切换

没太明白你的问题 :joy:

哦,明白了。

  1. 可以根据 exe 来匹配

    [Keymaps]
    ahk_exe XXX.exe = -P KEYMAP_NAME
    
  2. 自动切换键谱功能 需要在 keymapTray.ini 中自己设置对应关系的,比如你最后这个,估计需要增加这样一条对应:

    • 根据窗口标题关键字:
    [Keymaps]
    Aegisub 3.3.0 = -P aegisub
    
    • 或者根据 exe:
    [Keymaps]
    ahk_exe aegisub.exe = -P aegisub
    

我在 keymapTray.ini 注释里写了:

"应用窗口标题关键字"格式同 AHK 的 WinTitle,唯一限制是不能包含“=”

AHK WinTitle 的帮助:

感觉比较有用的就 ahk_exe

ahk_exe(进程名称/路径)

在 WinTitle 中使用 ahk_exe ProcessNameOrPath 来识别属于任何具有给定名称或路径的进程的窗口.

搞上了 :+1:

:+1: :+1: :+1:

其实【谱匣】的不少参数都可以省略的,像 -L 默认就是0,只有非0的时候才需要传,然后其他一些参数(SXHM),每个“键谱”一般都是固定不会改动的,那么也可以不传,显示时会保持原先的样子。

为啥要说这个呢?因为如果【谱匣】已经运行了的话,再次传入的参数是通过 AHK 发送【键谱】热键来实现的,为了保证效果,每个参数之间会间隔 100ms 发送,参数越多,时间越长。

我说呢,感觉键谱出来这么慢

原来如此