controller: add auto-connect service
This commit is contained in:
parent
0093ab7007
commit
c20343c129
26
scripts/auto_connect_gamepad
Executable file
26
scripts/auto_connect_gamepad
Executable file
|
@ -0,0 +1,26 @@
|
|||
#!/bin/sh
|
||||
|
||||
list_paired_controllers() {
|
||||
bluetoothctl devices Paired | grep -i 'controller' | cut -d' ' -f2
|
||||
}
|
||||
|
||||
count_connected_controllers() {
|
||||
bluetoothctl devices Connected | grep -i 'controller' | wc -l
|
||||
}
|
||||
|
||||
try_to_connect_to_all_controllers() {
|
||||
list_paired_controllers | while read paired_controller; do
|
||||
echo "Trying to connect to controller $paired_controller"
|
||||
bluetoothctl connect "$paired_controller"
|
||||
done
|
||||
}
|
||||
|
||||
while true; do
|
||||
echo "looping"
|
||||
if test "$(count_connected_controllers)" -ne 0 ; then
|
||||
echo "there is a controller connected, not attempting to connect to any other"
|
||||
sleep 10s
|
||||
continue
|
||||
fi
|
||||
try_to_connect_to_all_controllers
|
||||
done
|
|
@ -125,6 +125,7 @@
|
|||
zbar
|
||||
wl-clipboard
|
||||
];
|
||||
auto_connect_gamepad = [ bluez ];
|
||||
}
|
||||
// lib.mapAttrs import_script {
|
||||
wdmenu = ./wdmenu.nix;
|
||||
|
|
|
@ -1,17 +1,22 @@
|
|||
{ pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
xdg.desktopEntries = {
|
||||
connect-controller = {
|
||||
name = "Connect Controller";
|
||||
exec = "bluetoothctl connect 84:30:95:97:1A:79";
|
||||
terminal = false;
|
||||
systemd.user.services = {
|
||||
autoconnect-gamepad = {
|
||||
Unit = {
|
||||
Description = "Attempt to connect to game controllers";
|
||||
PartOf = [ "graphical-session.target" ];
|
||||
After = [ "graphical-session.target" ];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = lib.getExe pkgs.auto_connect_gamepad;
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "sway-session.target" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
xdg.desktopEntries = {
|
||||
disconnect-controller = {
|
||||
name = "Disconnect Controller";
|
||||
exec = "bluetoothctl disconnect 84:30:95:97:1A:79";
|
||||
|
|
Loading…
Reference in a new issue