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

v3.4.0

  • [+] 快捷键信息文字增加“内部超链”功能

1 个赞




大佬 那个可以把颜色也安排上么 您看
用上午的代码的时候 这个超级链接是可以设置颜色的
然后 现在简化之后 好像不支持设置自定义文字颜色?

可以用自定义样式,随心所欲 :sunglasses:

  • custom.css
    .ilink {
        color: blue; /* 超链字符色 */
        text-decoration-style: solid; /* 下划线型改为实线 */
        text-decoration: none; /* 取消下划线 */
    }
    
1 个赞

嘻嘻 其实也不是随心所欲


这个是多组都是同样的颜色
还是差点

啊,你想要每个都不一样颜色啊?

那用 custom.css 不行了,只能快捷键信息里直接写 HTML <span style="color: red">[](L3)</span>

嗯呢
层名 和按钮 用2种颜色区分开 要是能自定义的话 是这么想的

能放超链接了是吧,还是说单纯的内部跳转链接 :joy: ,之前打算提一嘴的,害怕给你增加太多负担,又害怕功能太多增加给软件使用成本。我之前有个场景,我以前姑父被人叫去铁路那边干活,但是他不会电脑,买了一张超大的cad桌垫,总叫我过去替他,后来还是啥都没学会回来了,这种鼠标垫还挺有人买的,都是上万几十万的销量。我想着要是有超链,如果有生态的话,可以做一些教程,用超链跳转,给那些很多初学着认识认识快捷键的功能,这样比起那种几十块钱的鼠标垫要更有优势,看能否通过吸引这样的新手来使用,帮助新手熟悉快捷键,造就一个生态。

不过当时感觉不切实际,庞大的软件生态,毕竟需要人写教程,没有一定的回报或者付费是没人去做这样费力的事情的,除非是软件开发本人自己来写和维护,也就是说让别人来适应你的生态,可人家作者自己可以内嵌链接和修改快捷键,让人适用键谱的前提就是键谱是具有极多软件和热键上手解释教程的生态,别人想要上手一个软件,打开软件直接在云端根据软件或者窗口条件,搜索查看有没有该软件的基础热键模板和教学。再者有被乱放链接的风险,所以这这功能和使用场景就搁置了。不过你可以给热键编辑和备注界面保留一个外链的接口,备注可以放软件教程的链接,通过你exe根据窗口弹出键谱的特性,我在备注里通过链接跳转到教程,或者笔记,我自己软件都是有记录的,比如软件某个设置或者配置忘了怎么用了,打开键谱我就从备注里跳转到笔记里去了,笔记内搜索干扰项目实在是太多了我,我每次都是找半天。

那位哥们提的内部链接我也有一些使用场景,比如我可以放长按、双击等一些额外信息,但算是比较进阶的操作,至少是要学了键盘宏映射的人,用的人估计不会太多。不过这种双链或者内部链接编辑方式很呆,明显就是底层架构在开始设计的时候出了问题。要想达到笔记双链的效果,只有用分配id的方式记录信息(一个键谱分配一个唯一id、一个键层一个id,一个键帽一个id,再组合就成了唯一特殊id,只需要给键谱做唯一id就可以了)
然后通过右键键帽(现在键帽右键是没有任何菜单的),通过唯一id对应的键帽,复制信息或者超链接,粘贴到另一个编辑框里即可,通过键谱的唯一id甚至可以跨键谱跳转。而编辑框或者备注框要有能转化内部超链和外链的功能,笔记软件都是这样做的,就像小众编辑框这样直接粘贴超链即可。当然你的内部链接放到其他软件里打开,就是外链了,通过链接可以和其他软件进行联动,提高了软件的上限,不过我建议先放一放,这种内链实现方式实现太生硬了。

要不,再提点方向和建议给开发大大上上强度,锻炼一下子能力。 :joy:
1.首先我觉得这个全局筛选可以有,可以极大的解决热键记忆的混乱,当初没提也是担心你工作强度太大了。然后还可以根据文字搜索进行全局筛选,比如搜重命名,就可以找到一些非f2的软件,修改热键统一使用逻辑。如果我要设计布局的话,还不如重新做一个界面作为组件独立出来,只传入数据然后输入按键或者文本进行全局筛选。
20240228_234029_449_copy

2.个人觉得手动传参自己写还是太小众了,我第一次用claunch时连命令行传参启动是啥都不知道,更何况要跑到ini文件里去写,能劝退一大部分人。外壳和本体这种传参方式太多割裂了,本体人性化很多了,理应是从本体的当前界面一键绑定窗口。
比如从本体的键谱界面点击绑定窗口,点完之后会记录当前键谱的配置信息保存到临时本地文件,然后运行一个获取和绑定窗口的脚本gui,脚本gui启动时读取该信息放入变量,然后在界面选择窗口信息并填写后确认,将窗口信息和启动时传入的变量组合一下,将组合后的信息存到本地文件作为最终的配置文件。然后重启外壳并读取文件、应用配置就行了,用户只需要点击绑定窗口和选择填写窗口信息。如果前面做了给每个键谱分配唯一id号,本地的绑定窗口的配置文件名就以键谱的唯一id命名,重复了在保存配置的时候提醒是否覆盖旧配置。有了唯一id这个固定变量,后期要做键谱改名、新建同名和移动换位、功能都很方便,还有包括我说的那个复制内链直接粘贴到编辑框和备注框。

3.我看大大的本体是网页、跨平台的,程序里有python文件,好奇问一下,python做的gui能不能跨平台?看大大是如何准备这个外壳的,是大包大揽做一个跨平台的外壳,还是留好接口然别人去适配mac和linux的程序,我现在用的开源的kde connect好像是除了linux、Android都是社区贡献的。我看你光主js那个文件就七八千行的代码量了,已经算不上啥小项目了,你这个项目要做到简单好用起码各种代码加起来估计得两万行了。

本体现在除了设置符号化的东西多点外,其他东西图形化程度都非常高,外壳就是能用的程度,对我来说1分钟的事,对懂点电脑没写过脚本的,估计都还要在命令行和窗口信息折腾一番,不怎么懂电脑的我估计看到都搞不懂另一个exe要怎么配置,编辑配置信息这种方法注定了软件会走向小众。


很显然,没编程基础的,^他都不一定知道是代表crtl,没准还在前面依葫芦画瓢加个;注释符 :smiling_face_with_tear:,我以前给claunch改皮肤的时候就是乱搞的、根本看不懂,不愿意折腾的直接劝退了。

不过我觉得功能大体是完善了,我用着没问题,但是大大你说开发基本就暂告一段落那还是得等等 :joy:,在加功能之前我个人建议来一次小重构,给键谱分配唯一id作为变量,现在改其他功能就是牵一发而动全身,内部双链只能通过其它生硬的方式硬加,编辑移动键谱只能复制、同名键谱名会清除原来的键谱、重命名更是难搞,你重命名就又得改外壳的配置文件,方便的配置应该是SiYuan - 思源笔记 = -P 唯一ID号 -S 2 -X 1 -H 1 -M t。现在才7000多行,晚了越难重构、重构也是能力的体现。

大佬之前说是web项目尝试,所以我斗胆建议小重构,莫怪。其实我自己一开始学ahk写的一个小东西也面临重构。去特意学了点py皮毛提升下系统性,学到面向对象后面的就看不太懂了,等我深造ahk 把大体功能实现后,就打算用py慢慢去重构了,从当初不懂一行代码,写笔记连markdown都不知道是啥,断断续续学了七个月左右的ahk,到现在用ahk写个东西至少要考虑脚本的精准性、易维护性和性能了,对个人而言,以前刚学就是抱着又不是不能用的态度,现在把研究自动化当做一种终生发展的兴趣的态度精进了,也是我唯二确立的兴趣。

v3.4.1 区分“内部超链”层和键

  • custom.css
.ilink.key {
    color: blue;
}
.ilink.layer {
    color: green;
}

快捷键信息支持 HTML,你看前面我直接用 <a> 临时实现了内部超链的功能,所以也可以直接写 <a> 的外部链。

备注是一个 <textarea> 多行文本框,所以不支持展示 HTML,不过应该可以比较方便地实现 HTML 支持,我考虑一下。

这也是一个思路 :+1:

我自己也已经有了点不成熟的想法,不过太懒 :stuck_out_tongue_winking_eye: 慢慢来吧

下一步吧,一点一点来嘛(懒*2

这个项目情况有点小复杂,用了几种编程平台包了几层:

  • 核心层 Web:【键谱】主体,核心功能都是前端网页实现的,直接用浏览器打开网页就是最简单的【键谱】用法,当然,一些高级功能就没有了,比如文件存储、热键呼出

  • 本地层 Python:实现“自动调用浏览器打开网页”的功能,将网页包装成一个本地应用,并提供了文件存储功能,但本身还需要 Python 运行环境

  • 热键层 AutoHotkey:两个用处

    • 打包 Python 程序 keymap.exe

    • 实现“热键呼出”功能 keymapTray.exe

Web 肯定是跨平台的,Python 用到了 webui 这个库来打开浏览器,看它的文档应该也是跨平台的(Win, Linux, MacOS),AutoHotkey 那肯定是 Win Only 了,我也不熟悉其他两大平台的情况,不知道有没有类似的工具。

1 个赞

哈哈 感谢
我没楼上坛友 那么多想法 就是简单好用 就够了 也没什么跨平台的想法
我上网2位数的年份了始终是用的WIN 哈哈

其实终极的想法就是要是键谱 自身是个按键映射工具就牛逼了
记录+修改映射全部集一个软件于一身
不过现在键谱+REWASD+ Key Manager 1.15

也已经满足日常使用和编辑记录需求了
我是打心眼里感谢大佬的 本来小小的抛砖引玉发个帖子
结果引出来的 是块 无上宝石 先去体验下 新功能

现在小作坊的 键盘 支持 这种
直接在键盘上写按键功能 就像


就像大厂 罗技这样

不过了各种分散在各种软件里 有了键谱 就可以统一在一个 界面里查看了
虽然配置需要花些时间不过 配置完之后 看着省事

其实我现在用的有点懵逼


这边的旋钮为啥有颜色呢
而咦 这边的旋钮为什么没颜色呢

我当时是怎么设置来着 会有这样的疑问

因为你颜色是设置在 XXX.set { ... } 里的,表示“按键上有快捷键设置,这条 css 才会起效”。

v3.4.2

  • [+] 增加支持“外部超链”
  • [*] “备注”支持“超链”,并改为双击进行编辑

例:

[](L1)
[](L1, Ctrl+1)
[层2](L2)
[层2-键](L2, Alt+1)
[bing](https://bing.com/)
1 个赞

噗 可以打开教程网页了

  • 快捷键编辑窗口中一次修改单个字母的多个快捷键的功能能加上吗,最近添加的快捷键有点多,每次修改一个快捷键都要保存,太麻烦了
  • 同一键谱不同键层上的分组可以单独设置,而不是沿用相同的分组
    因为有些软件有多个进程,每个进程生效的快捷键不同,所以要单独设置
  • 增加右键菜单,添加常用的复制、粘贴、剪切、撤销等功能
  • 单击按键选中并高亮,在键图模式下方,显示被选中按键的键表
  • 双击按键弹出编辑快捷键窗口,支持多个实例
  • 在键表模式下,当鼠标移动到快捷键简介上时,显示快捷键的信息提示
    看看以上建议能不能列入接下来的开发列表中

谢谢你的建议 :smiling_face: :smiling_face: :smiling_face:

咱一条一条说:


嗯,考虑把“保存”按钮改成只保存不关闭,另外再加个“关闭”按钮,或者直接把“取消”改成“关闭”

暂时不考虑修改。
建议1:多进程分键谱
建议2:分组可以自定义,且数量不限,每个键层使用不同的分组

g1::#ACE1AF::, g2::#F7CAC9::, g3::#E7E28C::,
g4::#BFBD50::, g5::#DCAE96::, g6::#FAA052::,
g7::#8ED449::, g8::#F2CB07::, g9::#BBBBBB::,
2层1组::red, 2层2组::blue

右键和“筛选”冲突。这些功能真有很多人常用吗?(希望大家能反馈一下 :pray:

1、指向按键就会显示该键的键表
2、单击和“编辑快捷键”冲突
3、键图下方是“备注框”的位置
4、键图下方显示键表的好处是啥?

我理解的“多个实例”是指多个 快捷键编辑窗口?而且可以拖动?这种模式能带来什么好处呢?
还是说“多个实例”是指 多个键谱?(不会吧

“信息提示”指什么?快捷键说明信息里的“备注”(第三部分)?


欢迎继续讨论,有想法的键友们也来说说 :smiling_face:

  • 可以改一下现有的筛选逻辑,因为Ctrl、Shift、Alt键作为修饰键本身没有单独功能,可以改为单击修饰键进行筛选,而不是弹出编辑对话框
  • 常用的右键编辑菜单很有用,举例说明:
    • 复制/粘贴:Ctrl+D和Ctrl+L具有相同功能,只需要右键复制将D的快捷键粘贴L键上,不必重复编写,也不必去编辑配置文件
    • 撤销:将Ctrl+Shift+A的快捷键“取消选择”不小心改为“反选”了,撤销一下就可以改回来,而不必打开编辑对话框,勾选Ctrl和Shift,再将“反选”改为“取消选择”,再点击保存

相当于多了一种视图,对于序列键的好处非常明显。现在的快捷键是修饰键+触发键;修饰键一般为系统自带的Ctrl、Shift、Alt等;另一种序列键是引导键+触发键;引导键可以是字母、数字、符号等,这样可以极大扩展快捷键的功能。例如在Chrome浏览器插件Surfingkeys中,引导键“y”的功能是复制,可以实现与复制相关的N种功能,如果在键谱中支持那就太棒了

就是多个编辑窗口,有些快捷键相同部分可以快速复制粘贴

是的,信息提示相当于对快捷键“简介”部分进行详细说明,因为键表位置有限,“简介”需要简短的描述快捷键的功能,信息提示就是对该快捷键进行详细说明。比如在Dopus中Ctrl+Shift+S快捷键“简介”设置为“条件选择”,将鼠标移动到“简介”上,弹出信息提示“在活动窗口中用通配符模式选择文件和文件夹”

其他键友有话说:修饰键作为单独快捷键触发的情况不少,特别是用 AHK 写的小工具,经常用双击修饰键做快捷键,或者多个修饰键作为快捷键。

所以在【键谱】里,所有键都是可以作为主键的,也就是都要编辑。

在 D 键上右键选复制,那么是复制 Ctrl+D 呢还是复制 Shift+D?所以,在键表的 Ctrl+D 上复制更合理一些,然后粘贴时,却是在键图界面的 L 键上粘贴更合理,这个操作链还不太顺

嗯,又有人提到“连续键”了,很遗憾,目前的【键谱】对“连续键”支持很差,像你提到的这种,暂时的方案就是把 y 设成自定义修饰键,然后设 y+G 这样的快捷键。哦,还不能区分大小写,所以没法实现小写 y 做修饰键 :joy_cat:

追加:
啊,想到了一个方法:把小写 y 设成扩展键,然后再设成修饰键(繁琐了点),可以部分实现(yG 可以,yma 这种不行 :joy:

和上面的复制粘贴有点功能重叠

快捷键的说明信息分为三部分:“简介”,“详细信息”和“备注”。
“简介”部分会直接显示在键帽上,“简介”和“详细信息”会显示在快捷键列表里,“备注”只会在录入界面显示。

你说的这个应该相当于“详细信息”部分,“详细信息”部分会直接显示在键表界面中,而“备注”部分不会显示,我会考虑让鼠标指向时显示“备注”。

下面红框是“简介”,绿框是“详细信息”

具体格式:

简介(可以是连续的多行文字)
(一个空行)
详细信息
--(连续多个“-”(英文减号))
备注信息
2 个赞