技术解析

Linux 下是否有好用的全局快捷键修改?
0
2021-06-22 09:31:19
idczone

请问各位用 Linux 的 V 友,Linux 下是否有好用的全局快捷键修改?想要修改成 macOS 一样把 copy 改成 super+c, paste 改成 super+v 等,谢谢!


试试 xmodmap 能不能做映射

什么桌面什么系统,windows 还分个 win7,win10 的

基于 ubuntu 的 pop!_os,wm 为 gnome

谢谢 这个是类似 xkb 进行按键映射的吧?按键映射和快捷键修改有个细微区别,就是映射过后虽然按键位置变了,但逻辑上没有变,也就是快捷键没有变,复制仍然按的是 ctrl+c。但这个会在 terminal 里产生干扰,我想要的是真正全局修改成 super+c 为复制,这样就不影响 terminal 里面了

Mac 上复制改成 Ctrl Shift C
Ubuntu 下 Super 映射成 Ctrl
Caps Lock 一律改成 Ctrl

这样只是改了按键的位置 没有在逻辑上更改快捷键 所以逻辑上的一些问题还是会存在 比如 terminal 中 ctrl+c 会产生中断操作

适当配合 https://github.com/baskerville/sxhkd

centos7 的 gnome3 桌面有系统自带的设置全局快捷键地方, 感觉这是 gnome3 的功能,ubuntu 估计也有
设置 -- 设备 -- 键盘

嗯 但是只有部分功能可以设置 并没有全局的复制粘贴可供更改

https://github.com/Chester-zZz/linux-capslock
觉得可以的话给个 star 哦

谢谢,已 star。XKB 也能实现类似的映射功能,问题还是没有在逻辑上修改系统内的全局快捷键,就是不论你按了哪些键,最终逻辑上还是 ctrl+c=复制,我希望在逻辑上修改 super+c=复制。


如果只是为了写代码方便,经过一段时间的实验,我觉得用 autokey 就行了,配置也方便,设置开机启动,不想用的时候直接关掉软件就行了。
如果是想程序里应用系统修改,目前还没有研究过。不过直接改系统的好么?感觉不如打个补丁,不想用的时候补丁一撕就完事儿。

纯粹键盘映射的问题是无法解决一些快捷键冲突,比如 terminal 中 ctrl+c=中断(虽然已经映射到 super+c 的键位上了),但像在 macOS 里面那样在逻辑上用 super+c 复制就不会引起中断了,而且能够保证在 terminal 和其他地方都是按同样的键位进行复制

Ctrl+C 产生中断操作是无法避免的 所以在终端中不如就用默认的 Ctrl+Shift+C 来复制,但是你可以改变在 Mac 下的习惯,将 Mac 下的复制设置为 Ctrl+Shift+C ;我用 KeyboardMaestro 实现

当然终端内和终端外复制的快捷键没法统一…我是养成了两套习惯了(哦不其实是三套,vim 里也不一样…)

win/linux gui: Ctrl+C / Ctrl+V
terminal: Ctrl+Shift+C / Ctrl+Shift+V, Ctrl+Insert / Shift + Insert(这套在 linux gui 下面也基本是通用的)
tmux: Ctrl+b, [, Space, Enter / Ctrl + b, ] ,外加自定义复制到剪贴板的 y
vim: .... 外加自定义复制到系统剪切板的 Ctrl + y

改快捷键是窗口管理器的功能,没有提供就只能魔改窗口管理器了。拿着窗口管理器源码改改,改好了把补丁提交给上游合并了岂不是美滋滋

autokey 现在可以直接 pyhon 文件,强大的一批

https://github.com/linuxmint/gtk/blob/master/gtk/gtk-keys.css.mac
https://www.reddit.com/r/emacs/comments/c22ff1/gtk_4_support_for_key_themes_does_not_affect/
使用 gnome 的话可以设置键绑定主题。两个链接,参考一下。我本来也想设置来着,想着想着,还是想买台 mac 吧。这么改还是不完美的。我猜你是想使用 emacs 的快捷键吧,但是这样会占用很多程序使用的快捷键。总有你改不了的快捷键。还是买 mac 是完美的方案。

我想了一不办法是保持原来的快捷键,在 super + a,e,p,n,b,f 上增加快捷键。但是这又和终端的快捷键冲突了。

哈哈 谢谢 我目前的方案是适应 ctrl 键。。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服