Wenn ich mein Gerät morgens aufwecke, bleibt es oft leer, weil es einen Konflikt zwischen meinem 4k-Monitor und dem Dialog „Ihr Computername hat sich zum 3950. Mal geändert“ gibt, was bedeutet, dass beide Bildschirme ausgeschaltet sind, bis ich den Dialog schließe, den ich nicht kann sehen.
Ich möchte das WLAN nicht manuell ein- und ausschalten müssen – wir haben Computer, die Dinge automatisch für uns erledigen – und ich brauche eine Kabelverbindung, während ich an meinem Schreibtisch bin.
Kann ich dem Mac also sagen, dass er WLAN nur aktivieren soll, wenn eth0 inaktiv ist?
Oder den Dialog „Ihr Computername hat sich geändert“ in eine Benachrichtigung umwandeln, die nicht manuell gelöscht werden muss, weil es mir wirklich egal ist, welche Nummer Apple heute hinzugefügt hat?
Sie haben mehrere Lösungen:
Dies ist ein Bash-Skript, das Ihr WLAN automatisch ausschaltet, wenn Sie Ihren Computer mit einer Ethernet-Verbindung verbinden, und das WLAN wieder einschaltet, wenn Sie Ihr Ethernet-Kabel / Ihren Adapter abziehen. Wenn Sie sich aus irgendeinem Grund entscheiden, WLAN einzuschalten, wird es sich an diese Wahl erinnern. Dies wurde aus diesem Mac-Hinweis improvisiert, um mit Yosemite zu arbeiten, und ohne die Adapternamen fest zu codieren. Es soll Growl unterstützen, aber ich habe diesen Teil nicht überprüft. Ich habe jedoch die Unterstützung des OSX-Benachrichtigungszentrums hinzugefügt. Fühlen Sie sich frei, Probleme zu forken und zu beheben, auf die Sie stoßen.
https://macperformanceguide.com/blog/2014/20141118_0958-OSX_Yosemite-disable-WIFI.html
Die zugehörige Google-Suche:
google.fr
(oder jede andere lokalisierte Suche für diese Angelegenheit).Mir ist klar, dass diese Frage etwas alt ist ... Da es jedoch mehrere Möglichkeiten gibt, dasselbe Ergebnis zu erzielen, hielt ich es für sinnvoll, eine weitere zu teilen: die Verwendung von Hammerspoon und ein paar Schnipseln von Lua-Code.
Hammerspoon ist ein Tool zur Automatisierung verschiedener Vorgänge auf einem Mac. Ich bin in keiner Weise damit verbunden, ich habe es buchstäblich installiert, um zu versuchen, den gleichen Zweck wie das OP zu erreichen.
Für alles, was Sie automatisieren möchten, schreiben Sie kleine Lua-Skripte; In diesem Fall habe ich eine network.lua
Datei erstellt, die ich neben der Hauptkonfigurationsdatei gespeichert habe, $HOME/.hammerspoon/init.lua
. Hier der Inhalt von beiden:
# init.lua
-- Imports
local homeNetwork = require "network"
-- Toggle WiFi based on Ethernet being connected or not
homeNetwork.setEthernetInterface("USB 10/100/1000 LAN")
systemWatcher = hs.caffeinate.watcher.new(homeNetwork.handleWifi)
systemWatcher:start()
# network.lua
local M = {}
local ethernetInterface
local function isEthernetConnected()
ipv4 = hs.network.primaryInterfaces()
activeInterfaceName = hs.network.interfaceName(ipv4)
return activeInterfaceName == ethernetInterface
end
local function toggleWifi()
desiredState = not isEthernetConnected() and true or false
if hs.wifi.interfaceDetails()['power'] ~= desiredState then
hs.wifi.setPower(desiredState)
newState = desiredState and "on" or "off"
hs.alert.show("Turning wifi " .. newState)
else
hs.alert.show("Wifi already in the desired state")
end
end
function M.setEthernetInterface(ethernetInterfaceName)
ethernetInterface = ethernetInterfaceName
end
function M.handleWifi(event)
if event == hs.caffeinate.watcher.systemDidWake then
toggleWifi()
elseif event == hs.caffeinate.watcher.screensDidUnlock then
toggleWifi()
end
end
return M
Das einzige, was Sie anpassen müssen, ist der Name Ihrer Ethernet-Schnittstelle in init.lua
; In meinem Fall liegt es "USB 10/100/1000 LAN"
daran, dass ich ein Dock verwende. Den Namen für Ihren finden Sie im Network
Abschnitt Ihrer Systemeinstellungen.
Es wurde seit einiger Zeit nicht mehr aktualisiert, aber ControlPlane handhabt dies sehr gut.
klanomath
Tim Baverstock
Wollmich