Gnome 3 - dconf / gsettings - 如何分配多个键绑定?

时间:2017-11-22 16:49:12

标签: fedora gnome gnome-3 gsettings

目标:将Super_LSuper_R键分配为叠加菜单的触发器。

环境:Gnome 3.26.2,Fedora 27,戴尔XPS 9550,Kinesis Advantage2

为什么:对于工作,我单独使用笔记本电脑或与外接显示器,键盘和鼠标配合使用。笔记本电脑键盘有一个左超级(windows)键,没有右超级(windows)键。但是,外部键盘有一个右超级(Windows)键,但没有左超级(窗口)键。

目前,每次我在单独使用笔记本电脑或使用笔记本电脑切换时,我必须打开gnome-tweak-tooldconf-editor才能在Super_LSuper_R键之间切换外部设备(或执行gsettings等效项:gsettings set org.gnome.mutter overlay-key 'Super_{L/R}')。

状态: 我试图通过基于GUI的Super_L工具(以及通过CLI驱动的{{1})为Super_R值分配org.gnome.mutter.overlay-keydconf-editor使用许多不同的语法策略,但没有成功。

可以通过以下命令输出所有gsettings的列表:gsettings。根据此文件,多键值的适当语法如下:gsettings list-recursively > gsettings.txt。但是,尝试根据此格式(['value1', 'value2'])设置值会产生gsettings set org.gnome.mutter overlay-key ['Super_L', 'Super_R']用法菜单,这意味着命令格式无效。

我不太关心最终使用基于GUI的gsettings,我将使用配置管理软件为我执行配置(通过dconf-editor)(我使用{{1}构建和配置我的笔记本电脑。)

问题: 如何使用gsettings配置工具启用ChefSuper_L来触发Fedora叠加层菜单?

我试过的格式不起作用:

  • Super_R
  • gsettings

  • dconf write /org/gnome/mutter/overlay-key
  • gsettings set org.gnome.mutter overlay-key
  • "['Super_L','Super_R']"
  • "['Super_L', 'Super_R']"
  • ['Super_L','Super_R']
  • ['Super_L', 'Super_R']

任何提示,提示或建议都将不胜感激!

- Informatician

P.S。 - 我没有明确提到它,但我确实搜索了如何通过gsettings输入多值键绑定,但无法找到一个我可以无错误地复制的例子。

参考

2 个答案:

答案 0 :(得分:0)

我认为如果将密钥配置为字符串类型而不是字符串数组,这是行不通的:

$ gsettings range org.gnome.settings-daemon.plugins.media-keys volume-up
type s
$ gsettings range org.gnome.settings-daemon.plugins.media-keys custom-keybindings
type as

但是自定义键绑定数组可以解决问题!

您可以在键盘快捷方式用户界面中找到它,并使用amixer -D pulse sset Master 5000+之类的命令设置另一个键来调高音量。

请注意,如果我可以使用百分号,则这样做会更容易,但是由于某些原因而无法使用,而必须使用5000之类的大数字。尝试一下。

(我怀疑您可以使用gsettings来做到这一点,但不确定如何。)

答案 1 :(得分:0)

以下过程让两个超级按钮都可以打开主面板菜单(虽然我在 Pop!_OS v20.10 上使用 Gnome v3.38.2):

  1. 打开 Gnome Tweaks(您可能需要安装它),导航到 Keyboard & Mouse,并将 Overview Shortcut 设置为 Left Super(如果尚未设置)。
  2. 打开一个终端,然后输入:gsettings set org.gnome.desktop.wm.keybindings panel-main-menu "['Super_R']"

请注意,这会对快捷键产生一些影响:此时,我的左侧超级键在与其他字符组合时起作用(例如:Super+m 以最大化),而右侧将始终只显示面板主菜单,无论组合键。您显然可以使用上述步骤扭转这种情况。