如何更改无线罗技键盘上的功能 (Fn) 键行为

The*_*heo 29 keyboard shortcut-keys wireless logitech logitech-unifying

我确实有一个无线罗技 K750 键盘(Mac 版)连接到联想 ThinkPad(通过统一的 USB 接收器,以及无线罗技鼠标 M705),目前运行 Ubuntu 12.04。

默认情况下,F 键映射为多媒体/功能键,例如Play / Pause。由于我不经常使用它们,我希望 F 键的行为类似于“真正的” F 键 ( F1- F12)。我怎样才能做到这一点?

我知道 BIOS 设置中有一个选项,但这只会切换笔记本的内置键盘,而不是我的无线键盘。

我知道有一种方法可以为 Apple 无线键盘(AppleKeyboard#Change_Function_Key_behavior)更改此设置,但是 /sys/module/hid_logitech_dj/ 中没有“参数”目录。

有任何想法吗?或者有没有办法在以后的 Ubuntu 版本(13.04)中做到这一点?

更新:

lsusb -d 046d: 显示 Bus 002 Device 005: ID 046d:c52b Logitech, Inc. Unifying Receiver

更新 2:非常感谢 Lekensteyn 的帮助。最后,Solaar工作得很好。在 Solar 的“已知问题”中,它说它不适用于 Nano Receiver。但我有一个,它工作得很好。只是不要忘记阅读安装说明并运行rules.d/install.sh脚本。它还识别了我的 M705 鼠标。

Lek*_*eyn 31

Solaar是一个图形实用程序,能够在较新的设备上配置 Fn 键功能:

带有 Fn 功能交换配置的 Solar 屏幕截图

从 Ubuntu 15.04 (Vivid) 开始,可以从存储库 ( sudo apt-get install solaar)安装 Solaar 。安装后,您可以在应用程序菜单中搜索Solaar并从那里启动它。

还提供命令行界面。用法示例:

$ solaar show
...
  2: Wireless Illuminated Keyboard K800
...
$ solaar config 2
fn-swap = False
$ solaar config 2 fn-swap on
fn-swap = True
Run Code Online (Sandbox Code Playgroud)

请注意,这些设置不是持久的,重新启动后您将丢失它。这可能会在未来版本的 Solar 中改变。


我之前创建了该ltunify工具,它是一个能够以较旧的 HID++ 1.0 协议进行通信的统一工具。在下一个版本的 Solaar 发布之前(当前版本是 0.8.7),您可以使用ltunify切换旧设备(例如 K800 键盘)上的 Fn 键。

安装说明(取自https://askubuntu.com/a/114089/6969):

sudo apt-get install git gcc
git clone https://git.lekensteyn.nl/ltunify.git -b fkeyswap
cd ltunify
make install-home
Run Code Online (Sandbox Code Playgroud)

该命令ltunify fkeyswap显示当前状态:

$ sudo ltunify fkeyswap 
F key functions are not swapped
Run Code Online (Sandbox Code Playgroud)

要交换功能,请运行ltunify fkeyswap on

$ sudo ltunify fkeyswap on
F key functions are now swapped
Run Code Online (Sandbox Code Playgroud)

还有一个off动作:

$ sudo ltunify fkeyswap off
F key functions are now normal
Run Code Online (Sandbox Code Playgroud)

如果它不起作用,请发表评论,以便修复。上述功能使用未记录的硬件寄存器。

  • @MichalVician 较新的设备使用不同的协议版本,请尝试使用 [Solaar](https://github.com/pwr/Solaar) 来控制 FN 键。如果 repos 中的 `solaar` 包不起作用,请尝试具有更多修复和功能的 master 分支。 (2认同)

小智 5

您不再需要ppa在 Ubuntu 15.08 中巧妙地安装它。只需输入

sudo apt-get install solaar
Run Code Online (Sandbox Code Playgroud)

在命令行。

此外,如果您使用的是 Unity 或 Gnome Shell,则可以使用以下命令:

sudo apt-get install solaar-gnome
Run Code Online (Sandbox Code Playgroud)