diff options
| -rw-r--r-- | 50-docking-station.rules | 3 | ||||
| -rw-r--r-- | dock-action.py | 41 |
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}") |
