如何从终端设置自定义键盘快捷键?

Ano*_*pus 70 command-line keyboard shortcut-keys

如何从终端为不同的 Linux 版本设置自定义键盘快捷键?

基本上我想知道 Linux 在哪里存储键盘快捷键文件以及如何对其进行编辑。

在我的研究中,我发现了一个文件,~/.config/compiz-1/compizconfig但是当我尝试使用nano.

Jac*_*ijm 76

从命令行分两步添加快捷键绑定 (14.04+)

可以从命令行添加自定义快捷方式,但有点复杂;每个键绑定需要通过几个步骤来完成。在另一方面,它非常简单,可以很好地照本宣科,如果你以某种方式要在命令行做(这是这个问题,对吧?)。

就像在您的界面中一样(系统设置 > “键盘” > “快捷方式” > “自定义快捷方式”),自定义键盘快捷方式是从命令行分两步创建的:

  1. 通过编辑(添加到-)命令返回的列表来创建键绑定:

    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无需说列表中的提及(例如custom1custom2)应该是唯一的。如果您编写脚本,脚本应防止重复。在这种情况下,编辑后的列表应如下所示:

    ['/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

  2. 设置其属性:

    • 姓名:

      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,然后按照上述说明运行它。

一些最常用的关键提及(通过实验发现,查看 GUI 方式对绑定值所做的更改):

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零件中的数字以添加更多绑定,即。custom1custom2等等。

要使其永久化,只需将其添加到.bash_profile或由登录 shell 运行的类似脚本中即可。只是不要对非登录shell去做.bashrc,因为从我的经验,这些dconfgsettings显著慢下来。更改/添加 30 个绑定需要一秒钟!您不希望在非登录 shell ( .bashrc) 中使用它!


Syl*_*eau 9

所有自定义键盘快捷键设置都存储在 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)

在此处输入图片说明

  • 这是图形方法,而不是来自终端 (5认同)
  • 问题是关于终端,而不是 GUI,所以答案无关紧要 (3认同)

Jac*_*ijm 6

在 12.04 中从命令行添加快捷键绑定

为防止接受的答案变得过于广泛,请为 12.04 发布单独的解决方案。

在(包括)12.04 之前,自定义键绑定不存储在dconf数据库中,而是存储在~/.gconf/desktop/gnome/keybindings(在 xml 文件中,在子文件夹custom0等中)。

下面的脚本创建xml文件及其包含的文件夹,自动正确命名。

如何使用

  1. 将脚本粘贴到一个空文件中,另存为 set_customshortcuts_12.py
  2. 使用以下命令运行它:

    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)

笔记

  • 请注意,键的命名与编辑 gsettings 不同。据我所知,这些键的名称与它们在系统设置>“键盘”>“快捷方式”>“自定义快捷方式”中显示的一样。
  • 我在12.04的VirtualBox下测试了脚本;它需要注销/登录才能进行更改。
python /path/to/set_customshortcuts_12.py <name> <command> <key1> <key2> <key3>
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

54103 次

最近记录:

5 年,1 月 前