summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEddy Pedroni <epedroni@pm.me>2025-12-01 15:18:06 +0100
committerEddy Pedroni <epedroni@pm.me>2025-12-01 15:18:06 +0100
commit6442c4f87e4adbde732d86da91c08ceb56192935 (patch)
tree9bcf2d8e884299146a9f84614b1301f17da2e3a2
parentfe566f22bde9fbb2f7270143112ee60866917967 (diff)
Add music station dock, support dock without displaysHEADmaster
-rw-r--r--50-docking-station.rules3
-rw-r--r--dock-action.py41
2 files changed, 26 insertions, 18 deletions
diff --git a/50-docking-station.rules b/50-docking-station.rules
index 9deb886..b421537 100644
--- a/50-docking-station.rules
+++ b/50-docking-station.rules
@@ -3,3 +3,6 @@ ACTION=="remove", SUBSYSTEM=="net", ENV{ID_NET_NAME_MAC}=="enxac91a1fe97bf" RUN+
ACTION=="add", SUBSYSTEM=="net", ATTRS{addr_assign_type}=="0", ATTRS{addr_len}=="6", ATTRS{address}=="ac:91:a1:fe:9a:23" RUN+="/usr/local/bin/dock-action.py connected lab-bench"
ACTION=="remove", SUBSYSTEM=="net", ENV{ID_NET_NAME_MAC}=="enxac91a1fe9a23" RUN+="/usr/local/bin/dock-action.py disconnected lab-bench"
+
+ACTION=="add", SUBSYSTEM=="net", ATTRS{addr_assign_type}=="0", ATTRS{addr_len}=="6", ATTRS{address}=="6c:1f:f7:24:2c:4c" RUN+="/usr/local/bin/dock-action.py connected music-station"
+ACTION=="remove", SUBSYSTEM=="net", ENV{ID_NET_NAME_MAC}=="enx6c1ff7242c4c" RUN+="/usr/local/bin/dock-action.py disconnected music-station"
diff --git a/dock-action.py b/dock-action.py
index 4a18a4b..aae4867 100644
--- a/dock-action.py
+++ b/dock-action.py
@@ -21,6 +21,9 @@ DEVICES = {
"eDP" : "off"
},
"mac_address" : "ac:91:a1:fe:9a:23"
+ },
+ "music-station" : {
+ "mac_address" : "6c:1f:f7:24:2c:4c"
}
}
@@ -51,24 +54,26 @@ def connected(device_name: str) -> None:
return
device = DEVICES[device_name]
- eth_adapter = get_adapter_name(device["mac_address"])
- if eth_adapter is None:
- logging.error("No network adapter found, exiting")
- return
-
- logging.debug("Disabling wireless adapter")
- do(["ip", "link", "set", WLAN_ADAPTER, "down"])
-
- logging.debug("Enabling ethernet adapter")
- do(["ip", "link", "set", eth_adapter, "up"])
-
- logging.debug("Configuring monitors")
- xrandr_args = ["xrandr"]
- for display, mode in device["displays"].items():
- xrandr_args.append("--output")
- xrandr_args.append(display)
- xrandr_args.append(f"--{mode}")
- do(xrandr_args)
+ if "mac_address" in device:
+ eth_adapter = get_adapter_name(device["mac_address"])
+ if eth_adapter is None:
+ logging.error("No network adapter found, exiting")
+ return
+
+ logging.debug("Disabling wireless adapter")
+ do(["ip", "link", "set", WLAN_ADAPTER, "down"])
+
+ logging.debug("Enabling ethernet adapter")
+ do(["ip", "link", "set", eth_adapter, "up"])
+
+ if "displays" in device:
+ logging.debug("Configuring monitors")
+ xrandr_args = ["xrandr"]
+ for display, mode in device["displays"].items():
+ xrandr_args.append("--output")
+ xrandr_args.append(display)
+ xrandr_args.append(f"--{mode}")
+ do(xrandr_args)
def disconnected(device_name: str) -> None:
logging.info(f"Disconnected notification for {device_name}")