微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Gio::Settings 创建自定义快捷方式?

如何解决如何使用 Gio::Settings 创建自定义快捷方式?

我一直在使用 gtkmm3 为 Elementary OS 编写我的应用程序。现在我想创建自定义快捷方式来运行我的应用程序。

首先我尝试通过 gsettings linux 命令创建它并且它有效。

system("gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings \"['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/','/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/','/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/my-app0/']\"");
system("gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/my-app0/ name 'com.github.username.my-app'");
system("gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/my-app0/ command 'com.github.username.my-app'");
system("gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/my-app0/ binding '<Alt>v'");

现在,是时候使用几乎未公开的 Gio::Settings。

auto media_keys = Gio::Settings::create("org.gnome.settings-daemon.plugins.media-keys");
auto custom_keys = media_keys->get_string_array("custom-keybindings");
for (const auto &item : custom_keys)
{
    g_print("%s\n",item.c_str());
}

结果:

[
    '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/','/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/'
]

我需要将我的新唯一条目添加到上面的字符串数组中,例如:

[
    '/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/','/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/my-app0/'
]

然后(使用 Gio::Settings)

  1. 设置新的字符串数组(现有自定义键绑定列表+我的)
  2. 为我的应用自定义键绑定设置名称
  3. 为我的应用自定义键绑定设置命令
  4. 为我的应用自定义键绑定设置绑定

但是怎么做?

你能帮忙吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。