如何在 GUIX 中启用蓝牙?

如何在 GUIX 中启用蓝牙?

我正在尝试在我的 GUIX 机器上启用蓝牙,但我不明白说明:

方案流程:bluetooth-service [#:bluez bluez] [#:auto-enable? #F]

返回一个运行bluetoothd守护进程的服务,该守护进程管理所有蓝牙设备并提供许多D-Bus接口。什么时候自动启用?确实如此,蓝牙控制器在启动时自动供电,这在使用蓝牙键盘或鼠标时非常有用。

用户需要加入 lp 组才能访问 D-Bus 服务。

特别是,我不理解这[#:部分,因此不知道在我的 config.scm 中放置什么。

我所做的其他修改都不config.scm需要这样的“论证”,因为缺乏更好的词。例如,extra-special-file简单描述为

方案过程:额外特殊文件文件目标

并包含一个示例,因此很容易理解。

这不起作用:

  (services
    (append
      (list (service gnome-desktop-service-type)
            (service bluetooth-service))
      %desktop-services))

重新配置给出

guix system: error: failed to load 'config.scm':
gnu/services.scm:242:17: In procedure %service-with-default-value:
In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #<procedure bluetooth-service (#:key bluez auto-enable?)>

显然这#:是一个哈希冒号,用于定义方案中的关键字。但是该页面没有给我足够的信息来将 GUIX 指令翻译成要放入的内容config.scm

感觉 GUIX 文档假定了我还不具备的一些方案知识,而且我真的不知道从哪里开始获取。举个例子将不胜感激。

答案1

下面原始答案中的方法自 2020 年 9 月起已被弃用

bluetooth-service-type当前的方法是像大多数其他服务一样使用。例如

  (services
    (append
      (list (service gnome-desktop-service-type)
            (service bluetooth-service-type)
      %desktop-services))

旧答案:

啊,静态网络服务有一个例子,让我明白了:

  • service我不应该在前面加上bluetooth-service。我真的不明白为什么,可能是因为service将其他东西转换为服务,并且bluetooth-service本身已经是一种服务。
  • 方括号只是意味着“可选”,就像其他地方一样。语法#:可以逐字复制。

到目前为止这似乎有效:

  (services
    (append
      (list (service gnome-desktop-service-type)
            (bluetooth-service #:auto-enable? #t)
      %desktop-services))

至少重新配置有效,所以现在应该可以启动蓝牙。

编辑1:取得了一些成功!

herd status显示蓝牙正在运行,但蓝牙似乎还不能工作。我已经进lp群了,重启了登录 gnome 会弹出一个错误消息:

无法应用网络设置

您可能无法通过本机连接到蓝牙网络

例外

g-dbus-error-quark:GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown:任何 .service 文件均未提供名称 org.blueman.Mechanism (2)

编辑2:更加成功!

blueman-manager可以找到耳机并可以与其配对。但 GNOME 根本找不到蓝牙适配器。尽管如此,我可以使用正常的 GNOME 声音设置将声音重定向到耳机。

不幸的是,似乎无法调节音量。 GNOME 音量控制和耳机上的“硬件”音量旋钮都不能用于降低音量。只有播放应用程序本身(例如 youtube)上的音量控件会降低音量。

我不确定剩下的问题是否与 GUIX 有关。

答案2

这可能只是一个简单的指针,但哈希符号表示 lisp 关键字,并且可以像其他语言一样使用(我想到了 python)。该文档可以在以下位置找到:https://www.gnu.org/software/guile/manual/guile.html#Keywords

另外,我注意到一个可能感兴趣的 gnome-bluetooth 软件包,尽管我自己不运行 gnome,所以我无法确认它是否会解决您的问题(https://guix.gnu.org/packages/gnome-bluetooth-3.34.2/)。

相关内容