Ano*_*pus 70 command-line keyboard shortcut-keys
如何从终端为不同的 Linux 版本设置自定义键盘快捷键?
基本上我想知道 Linux 在哪里存储键盘快捷键文件以及如何对其进行编辑。
在我的研究中,我发现了一个文件,~/.config/compiz-1/compizconfig但是当我尝试使用nano.
Jac*_*ijm 76
可以从命令行添加自定义快捷方式,但有点复杂;每个键绑定需要通过几个步骤来完成。在另一方面,它是非常简单,可以很好地照本宣科,如果你以某种方式要在命令行做(这是这个问题,对吧?)。
就像在您的界面中一样(系统设置 > “键盘” > “快捷方式” > “自定义快捷方式”),自定义键盘快捷方式是从命令行分两步创建的:
通过编辑(添加到-)命令返回的列表来创建键绑定:
gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings
Run Code Online (Sandbox Code Playgroud)
返回的列表看起来像(如果它目前只有一个快捷方式):
['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']
Run Code Online (Sandbox Code Playgroud)
通过以下命令应用编辑后的列表:
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "[<altered_list>]"
Run Code Online (Sandbox Code Playgroud)
(注意双引号)
NB无需说列表中的提及(例如custom1,custom2)应该是唯一的。如果您编写脚本,脚本应防止重复。在这种情况下,编辑后的列表应如下所示:
['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/', '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/']
Run Code Online (Sandbox Code Playgroud)
添加一个键绑定: custom1
设置其属性:
姓名:
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ name '<newname>'
Run Code Online (Sandbox Code Playgroud)命令:
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ command '<newcommand>'
Run Code Online (Sandbox Code Playgroud)组合键(例如<Primary><Alt>g):
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ binding '<key_combination>'
Run Code Online (Sandbox Code Playgroud)有用的信息可以在这里找到
下面的脚本可用于从命令行设置新的快捷键组合。它可以与命令一起使用(假设组合键可用):
python3 /path/to/script.py '<name>' '<command>' '<key_combination>'
Run Code Online (Sandbox Code Playgroud)
一个例子:
要设置快捷键组合以gedit使用组合键Alt+打开7:
python3 /path/to/script.py 'open gedit' 'gedit' '<Alt>7'
Run Code Online (Sandbox Code Playgroud)
剧本:
gsettings get org.gnome.settings-daemon.plugins.media-keys custom-keybindings
Run Code Online (Sandbox Code Playgroud)
如何使用:
将脚本粘贴到一个空文件中,将其另存为set_customshortcut.py,然后按照上述说明运行它。
Super key: <Super>
Control key: <Primary> or <Control>
Alt key: <Alt>
Shift key: <Shift>
numbers: 1 (just the number)
Spacebar: space
Slash key: slash
Asterisk key: asterisk (so it would need `<Shift>` as well)
Ampersand key: ampersand (so it would need <Shift> as well)
a few numpad keys:
Numpad divide key (`/`): KP_Divide
Numpad multiply (Asterisk):KP_Multiply
Numpad number key(s): KP_1
Numpad `-`: KP_Subtract
Run Code Online (Sandbox Code Playgroud)
等等。
lis*_*sak 15
有一种简单的方法可以使用dconf:
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/command "'move-window.sh'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/binding "'<Primary><Alt>Page_Down'"
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/name "'move-window'"
Run Code Online (Sandbox Code Playgroud)
使用gsettings:
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ name "'move-window'"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding "'<Primary><Alt>Page_Down'"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command "'/usr/local/bin/move-window.sh'"
Run Code Online (Sandbox Code Playgroud)
您需要增加custom0零件中的数字以添加更多绑定,即。custom1,custom2等等。
要使其永久化,只需将其添加到.bash_profile或由登录 shell 运行的类似脚本中即可。只是不要对非登录shell去做.bashrc,因为从我的经验,这些dconf和gsettings显著慢下来。更改/添加 30 个绑定需要一秒钟!您不希望在非登录 shell ( .bashrc) 中使用它!
所有自定义键盘快捷键设置都存储在 dconf 数据库中。
您可以通过以下方式轻松访问它们dconf-editor:
sudo apt-get install dconf-editor
Run Code Online (Sandbox Code Playgroud)
然后在编辑器中进入以下dconf路径:
/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/
Run Code Online (Sandbox Code Playgroud)

为防止接受的答案变得过于广泛,请为 12.04 发布单独的解决方案。
在(包括)12.04 之前,自定义键绑定不存储在dconf数据库中,而是存储在~/.gconf/desktop/gnome/keybindings(在 xml 文件中,在子文件夹custom0等中)。
下面的脚本创建xml文件及其包含的文件夹,自动正确命名。
set_customshortcuts_12.py使用以下命令运行它:
python /path/to/set_customshortcuts_12.py <name> <command> <key1> <key2> <key3>
Run Code Online (Sandbox Code Playgroud)
key3 是可选的,命令可以是例如:
python /path/to/set_customshortcuts_12.py run_browser firefox Primary 7
Run Code Online (Sandbox Code Playgroud)
或者
python /path/to/set_customshortcuts_12.py run_texteditor gedit Primary Alt 3
Run Code Online (Sandbox Code Playgroud)python /path/to/set_customshortcuts_12.py <name> <command> <key1> <key2> <key3>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54103 次 |
| 最近记录: |