Hardware/Razer: Difference between revisions
Updating to unstable version of openrazer |
m fixed some syntax error |
||
(3 intermediate revisions by one other user not shown) | |||
Line 4: | Line 4: | ||
<syntaxHighlight lang=nix> | <syntaxHighlight lang=nix> | ||
hardware.openrazer.enable = true | hardware.openrazer.enable = true; | ||
environment.systemPackages = with pkgs; [ | environment.systemPackages = with pkgs; [ | ||
openrazer-daemon | openrazer-daemon | ||
Line 97: | Line 97: | ||
]; | ]; | ||
</syntaxHighlight> | </syntaxHighlight> | ||
== USB disable Issues == | |||
If you are encountering issues that your Razer keyboard does light up on boot shortly and then can not be found by the open-razer-daemon until you unplug your USB cable and re-plug it. Then you might want to reset your USB on startup so that after login the daemon finds it again.<syntaxhighlight lang="nixos" line="1"> | |||
# Razer usb reset. Since it disables somehow on boot. | |||
systemd.services."usb-reset" = { | |||
description = "Resets usb port for my Razer Keyboard"; | |||
after = ["multi-user.target"]; | |||
serviceConfig = { | |||
User = "root"; | |||
Type = "simple"; | |||
ExecStart=pkgs.writeShellScript "unit-restart-usb7_3" '' | |||
echo '7-3' |tee /sys/bus/usb/drivers/usb/unbind | |||
echo '7-3' |tee /sys/bus/usb/drivers/usb/bind | |||
''; | |||
KillMode = "process"; | |||
Restart = "on-failure"; | |||
}; | |||
wantedBy = ["graphical.target"]; | |||
}; | |||
systemd.services."usb-reset".enable = true; | |||
</syntaxhighlight>7-3 is the Bus: 7 and the Port: 3 | |||
How to figure those out you can read here: | |||
https://superuser.com/questions/1707773/how-to-turn-usb-connected-device-on-and-off-in-linux | |||
If that does not work, you can reset all usb controllers instead: | |||
https://unix.stackexchange.com/questions/704341/how-to-reset-usb-controllers<syntaxhighlight lang="nixos" line="1"> | |||
# Razer usb reset. Since it disables somehow on boot. | |||
systemd.services."usb-reset" = { | |||
description = "Resets usb port for my Razer Keyboard"; | |||
after = ["multi-user.target"]; | |||
serviceConfig = { | |||
User = "root"; | |||
Type = "simple"; | |||
ExecStart=pkgs.writeShellScript "unit-restart-usb-controller" '' | |||
#!/usr/bin/env bash | |||
# Resets all USB host controllers of the system. | |||
# This is useful in case one stopped working | |||
# due to a faulty device having been connected to it. | |||
base="/sys/bus/pci/drivers" | |||
sleep_secs="1" | |||
# This might find a sub-set of these: | |||
# * 'ohci_hcd' - USB 3.0 | |||
# * 'ehci-pci' - USB 2.0 | |||
# * 'xhci_hcd' - USB 3.0 | |||
echo "Looking for USB standards ..." | |||
for usb_std in "$base/"?hci[-_]?c* | |||
do | |||
echo "* USB standard '$usb_std' ..." | |||
for dev_path in "$usb_std/"*:* | |||
do | |||
dev="$(basename "$dev_path")" | |||
echo " - Resetting device '$dev' ..." | |||
printf '%s' "$dev" | tee "$usb_std/unbind" > /dev/null | |||
sleep "$sleep_secs" | |||
printf '%s' "$dev" | tee "$usb_std/bind" > /dev/null | |||
echo " done." | |||
done | |||
echo " done." | |||
done | |||
echo "done." | |||
''; | |||
KillMode = "process"; | |||
Restart = "on-failure"; | |||
}; | |||
wantedBy = ["graphical.target"]; | |||
}; | |||
systemd.services."usb-reset".enable = true; | |||
</syntaxhighlight> |