Cuando despierto mi máquina por la mañana, a menudo permanece en blanco porque hay algún conflicto entre mi monitor 4k y el diálogo "El nombre de su computadora ha cambiado por 3950 veces" que significa que ambas pantallas están apagadas hasta que descarto el diálogo. No puedo ver.
No quiero tener que encender y apagar el wifi manualmente (tenemos computadoras que hacen las cosas automáticamente por nosotros) y necesito una conexión por cable mientras estoy en mi escritorio.
Entonces, ¿puedo decirle a la Mac que solo habilite wifi si eth0 está inactivo?
¿O convertir el cuadro de diálogo "El nombre de su computadora ha cambiado" en una notificación que no necesita descartarse manualmente, porque realmente no me importa qué número Apple ha decidido agregarle hoy?
Tienes varias soluciones:
Este es un script bash que apagará automáticamente su wifi si conecta su computadora a una conexión ethernet y vuelve a encender wifi cuando desconecte su cable/adaptador ethernet. Si decide activar wifi por cualquier motivo, recordará esa elección. Esto se improvisó a partir de esta sugerencia de mac para trabajar con Yosemite y sin codificar los nombres de los adaptadores. Se supone que admite gruñido, pero no revisé esa parte. Sin embargo, agregué soporte para el centro de notificaciones de OSX. Siéntase libre de bifurcar y arreglar cualquier problema que encuentre.
https://macperformanceguide.com/blog/2014/20141118_0958-OSX_Yosemite-disable-WIFI.html
La búsqueda de Google asociada:
google.fr
(o cualquier otra búsqueda localizada).Me doy cuenta de que esta pregunta es un poco antigua... sin embargo, como hay varias formas de lograr el mismo resultado, pensé que valía la pena compartir una más: usar Hammerspoon y un par de fragmentos de código Lua.
Hammerspoon es una herramienta para automatizar varias operaciones en una Mac. No estoy asociado a él de ninguna manera, literalmente lo instalé para intentar lograr el mismo propósito que el OP.
Para cualquier cosa que desee automatizar, escriba pequeños scripts de Lua; en este caso, creé un network.lua
archivo que guardé junto al archivo de configuración principal, $HOME/.hammerspoon/init.lua
. Aquí está el contenido de ambos:
# 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
Lo único que tendrás que personalizar es el nombre de tu interfaz Ethernet en init.lua
; en mi caso es "USB 10/100/1000 LAN"
porque estoy usando un muelle. Puedes encontrar el nombre para el tuyo en la Network
sección de tus Preferencias del Sistema.
Hace tiempo que no se actualiza, pero ControlPlane lo maneja muy bien.
klanomath
Tim Baverstock
Wöllmich