Gestion de la Luminosité d'Écran et Optimisation Énergétique sur macOS
Gérez la luminosité d'affichage et la consommation d'énergie sur vos appareils MacFleet avec un contrôle complet de la luminosité, des politiques d'éclairage adaptatif et des outils d'optimisation énergétique d'entreprise. Ce tutoriel couvre l'ajustement de luminosité, la planification automatisée et la gestion d'affichage à l'échelle de la flotte.
Comprendre la Gestion de la Luminosité d'Affichage
Le contrôle de la luminosité d'affichage sur macOS affecte à la fois l'expérience utilisateur et la consommation d'énergie. La gestion d'entreprise inclut :
- Contrôle de Luminosité - Ajustement direct des niveaux de luminosité d'affichage
- Éclairage Adaptatif - Ajustement automatique basé sur l'environnement et l'heure
- Optimisation Énergétique - Conservation de batterie grâce à la gestion intelligente d'affichage
- Expérience Utilisateur - Paramètres d'affichage cohérents sur les appareils d'entreprise
Avantages d'Entreprise
Une gestion appropriée de la luminosité d'affichage offre des avantages d'entreprise :
- Conservation d'Énergie - Réduction de la consommation d'énergie et prolongation de la durée de vie de la batterie
- Confort Utilisateur - Conditions de visualisation optimales pour différents environnements de travail
- Amélioration de Sécurité - Affichages atténués dans les espaces publics pour la confidentialité
- Bénéfices Santé - Réduction de la fatigue oculaire grâce à un éclairage approprié
- Standardisation - Expérience d'affichage cohérente sur toute la flotte d'appareils
Contrôle de Luminosité de Base
Prérequis et Configuration
#!/bin/bash
# Installer Homebrew et l'outil de contrôle de luminosité
install_brightness_tools() {
echo "=== Installation des Outils de Contrôle de Luminosité ==="
# Vérifier si Homebrew est installé
if ! command -v brew >/dev/null 2>&1; then
echo "Installation de Homebrew..."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Ajouter Homebrew au PATH pour la session actuelle
eval "$(/opt/homebrew/bin/brew shellenv)" 2>/dev/null || eval "$(/usr/local/bin/brew shellenv)" 2>/dev/null
else
echo "✓ Homebrew déjà installé"
fi
# Installer l'outil de contrôle de luminosité
if ! command -v brightness >/dev/null 2>&1; then
echo "Installation de l'outil de contrôle de luminosité..."
brew install brightness
else
echo "✓ Outil de luminosité déjà installé"
fi
echo "✓ Installation des outils de contrôle de luminosité terminée"
}
# Usage
install_brightness_tools
Commandes de Luminosité de Base
#!/bin/bash
# Définir la luminosité à des niveaux spécifiques
set_brightness() {
local level="$1"
if [[ -z "$level" ]]; then
echo "Usage : set_brightness <niveau>"
echo "Le niveau doit être entre 0.0 (sombre) et 1.0 (plus lumineux)"
return 1
fi
# Valider le niveau de luminosité
if ! [[ "$level" =~ ^[0-9]*\.?[0-9]+$ ]] || (( $(echo "$level > 1.0" | bc -l) )) || (( $(echo "$level < 0.0" | bc -l) )); then
echo "Erreur : Le niveau de luminosité doit être entre 0.0 et 1.0"
return 1
fi
echo "Définition de la luminosité à ${level} ($(echo "$level * 100" | bc)%)"
# Essayer différents emplacements de commande de luminosité
if command -v brightness >/dev/null 2>&1; then
brightness "$level"
elif [[ -x "/usr/local/bin/brightness" ]]; then
/usr/local/bin/brightness "$level"
elif [[ -x "/opt/homebrew/bin/brightness" ]]; then
/opt/homebrew/bin/brightness "$level"
elif [[ -x "/usr/local/Cellar/brightness/1.2/bin/brightness" ]]; then
/usr/local/Cellar/brightness/1.2/bin/brightness "$level"
else
echo "Erreur : Outil de contrôle de luminosité non trouvé"
return 1
fi
echo "✓ Luminosité définie à ${level}"
}
# Niveaux de luminosité prédéfinis
set_brightness_full() {
echo "Définition de la luminosité à 100%"
set_brightness "1.0"
}
set_brightness_high() {
echo "Définition de la luminosité à 75%"
set_brightness "0.75"
}
set_brightness_medium() {
echo "Définition de la luminosité à 50%"
set_brightness "0.5"
}
set_brightness_low() {
echo "Définition de la luminosité à 25%"
set_brightness "0.25"
}
set_brightness_dim() {
echo "Définition de la luminosité à 10%"
set_brightness "0.1"
}
# Exemples d'utilisation
set_brightness_medium
Obtenir le Niveau de Luminosité Actuel
#!/bin/bash
# Obtenir le niveau de luminosité actuel
get_current_brightness() {
echo "=== Luminosité d'Affichage Actuelle ==="
# Essayer d'obtenir la luminosité en utilisant différentes méthodes
local current_brightness=""
# Méthode 1 : Utiliser la commande brightness
if command -v brightness >/dev/null 2>&1; then
current_brightness=$(brightness -l 2>/dev/null | grep -o '[0-9]*\.[0-9]*' | head -1)
fi
# Méthode 2 : Utiliser system_profiler (solution de repli)
if [[ -z "$current_brightness" ]]; then
current_brightness=$(system_profiler SPDisplaysDataType | grep -i "brightness" | awk '{print $2}' | head -1)
fi
# Méthode 3 : Utiliser ioreg (solution de repli alternative)
if [[ -z "$current_brightness" ]]; then
local brightness_raw=$(ioreg -c AppleBacklightDisplay | grep brightness | head -1)
if [[ -n "$brightness_raw" ]]; then
current_brightness=$(echo "$brightness_raw" | grep -o '[0-9]*\.[0-9]*')
fi
fi
if [[ -n "$current_brightness" ]]; then
local percentage=$(echo "$current_brightness * 100" | bc)
echo "Luminosité Actuelle : $current_brightness (${percentage}%)"
return 0
else
echo "Impossible de déterminer le niveau de luminosité actuel"
return 1
fi
}
# Usage
get_current_brightness
Gestion Avancée de la Luminosité
Contrôle de Luminosité Adaptatif
#!/bin/bash
# Luminosité adaptative basée sur l'heure du jour et les conditions
adaptive_brightness_control() {
local mode="${1:-auto}"
local location_lat="${2:-}"
local location_lon="${3:-}"
echo "=== Contrôle de Luminosité Adaptatif ==="
echo "Mode : $mode"
echo "Date : $(date)"
echo ""
case "$mode" in
"auto")
automatic_brightness_adjustment
;;
"schedule")
scheduled_brightness_adjustment
;;
"ambient")
ambient_light_brightness "$location_lat" "$location_lon"
;;
"work_hours")
work_hours_brightness
;;
"battery_saver")
battery_aware_brightness
;;
*)
echo "Mode inconnu : $mode"
echo "Modes disponibles : auto, schedule, ambient, work_hours, battery_saver"
return 1
;;
esac
}
# Ajustement automatique de luminosité basé sur l'heure du jour
automatic_brightness_adjustment() {
local current_hour=$(date +%H)
local current_minute=$(date +%M)
local time_decimal=$(echo "$current_hour + $current_minute / 60" | bc -l)
echo "--- Ajustement Automatique de Luminosité ---"
echo "Heure actuelle : $current_hour:$(printf "%02d" $current_minute)"
local brightness_level
if (( $(echo "$time_decimal >= 6 && $time_decimal < 9" | bc -l) )); then
# Matin : Augmentation graduelle
brightness_level="0.4"
echo "Période : Matin (6:00-9:00) - Définition luminosité modérée"
elif (( $(echo "$time_decimal >= 9 && $time_decimal < 17" | bc -l) )); then
# Heures de travail : Luminosité complète
brightness_level="0.8"
echo "Période : Heures de travail (9:00-17:00) - Définition luminosité élevée"
elif (( $(echo "$time_decimal >= 17 && $time_decimal < 20" | bc -l) )); then
# Soirée : Luminosité moyenne
brightness_level="0.6"
echo "Période : Soirée (17:00-20:00) - Définition luminosité moyenne"
elif (( $(echo "$time_decimal >= 20 && $time_decimal < 22" | bc -l) )); then
# Nuit : Luminosité faible
brightness_level="0.3"
echo "Période : Nuit (20:00-22:00) - Définition luminosité faible"
else
# Tard dans la nuit/tôt le matin : Très faible
brightness_level="0.1"
echo "Période : Tard dans la nuit/Tôt le matin - Définition luminosité très faible"
fi
set_brightness "$brightness_level"
}
# Changements de luminosité programmés
scheduled_brightness_adjustment() {
echo "--- Ajustement de Luminosité Programmé ---"
# Définir l'horaire (heure:niveau_luminosité)
local schedule=(
"06:00:0.3" # Aube
"08:00:0.6" # Matin
"09:00:0.8" # Début travail
"12:00:0.9" # Midi
"17:00:0.7" # Fin travail
"19:00:0.5" # Soirée
"21:00:0.3" # Nuit
"23:00:0.1" # Tard dans la nuit
)
local current_time=$(date +%H:%M)
echo "Heure actuelle : $current_time"
# Trouver le niveau de luminosité approprié pour l'heure actuelle
local target_brightness="0.5" # Par défaut
for schedule_entry in "${schedule[@]}"; do
IFS=':' read -r schedule_time schedule_brightness <<< "$schedule_entry"
if [[ "$current_time" > "$schedule_time" ]] || [[ "$current_time" == "$schedule_time" ]]; then
target_brightness="$schedule_brightness"
fi
done
echo "Niveau de luminosité programmé : $target_brightness"
set_brightness "$target_brightness"
}
# Gestion de luminosité consciente de la batterie
battery_aware_brightness() {
echo "--- Gestion de Luminosité Consciente de la Batterie ---"
# Obtenir les informations de batterie
local battery_info=$(pmset -g batt)
local battery_percentage=$(echo "$battery_info" | grep -o '[0-9]*%' | head -1 | tr -d '%')
local power_source=$(echo "$battery_info" | grep -o "AC Power\|Battery Power" | head -1)
echo "Niveau de batterie : ${battery_percentage}%"
echo "Source d'alimentation : $power_source"
local brightness_level
if [[ "$power_source" == "AC Power" ]]; then
# Sur alimentation secteur - luminosité normale
brightness_level="0.8"
echo "Sur alimentation secteur - Définition luminosité normale"
else
# Sur batterie - ajuster selon le niveau de batterie
if [[ $battery_percentage -gt 50 ]]; then
brightness_level="0.6"
echo "Batterie > 50% - Définition luminosité moyenne"
elif [[ $battery_percentage -gt 20 ]]; then
brightness_level="0.4"
echo "Batterie 20-50% - Définition luminosité faible"
else
brightness_level="0.2"
echo "Batterie < 20% - Définition luminosité très faible"
fi
fi
set_brightness "$brightness_level"
}
# Usage
adaptive_brightness_control "auto"
Système de Gestion d'Affichage d'Entreprise
#!/bin/bash
# Outil de Gestion de Luminosité d'Affichage MacFleet
# Contrôle d'affichage complet, optimisation énergétique et gestion de flotte
# Configuration
SCRIPT_VERSION="1.0.0"
LOG_FILE="/var/log/macfleet_display_management.log"
REPORT_DIR="/etc/macfleet/reports/display"
CONFIG_DIR="/etc/macfleet/display"
POLICY_DIR="/etc/macfleet/policies/display"
SCHEDULE_DIR="/etc/macfleet/schedules/display"
# Créer les répertoires s'ils n'existent pas
mkdir -p "$REPORT_DIR" "$CONFIG_DIR" "$POLICY_DIR" "$SCHEDULE_DIR"
# Modèles de politiques de gestion d'affichage
declare -A DISPLAY_POLICIES=(
["enterprise_standard"]="adaptive_brightness,battery_optimization,work_hours_profile,user_override_limited"
["energy_saver"]="aggressive_dimming,battery_priority,low_brightness_default,power_aware_scheduling"
["presentation_mode"]="high_brightness,stable_settings,no_auto_dimming,optimal_visibility"
["kiosk_display"]="fixed_brightness,no_user_control,scheduled_adjustments,energy_optimized"
["healthcare"]="eye_strain_reduction,shift_appropriate,patient_privacy,energy_conscious"
["financial"]="security_dimming,privacy_protection,energy_compliance,professional_display"
["education"]="classroom_optimized,energy_teaching,adaptive_learning,student_friendly"
["retail"]="customer_facing,bright_displays,brand_consistency,operational_hours"
["manufacturing"]="industrial_visibility,safety_priority,harsh_environment,energy_efficient"
["government"]="security_compliant,energy_mandates,accessibility_aware,audit_ready"
)
# Profils de luminosité pour différents cas d'usage
declare -A BRIGHTNESS_PROFILES=(
["work_day"]="morning:0.4,work_start:0.8,lunch:0.9,afternoon:0.8,work_end:0.6"
["energy_saver"]="morning:0.3,work_start:0.6,lunch:0.7,afternoon:0.6,work_end:0.4"
["presentation"]="all_day:0.9,constant_high:1.0"
["night_shift"]="evening:0.4,night:0.2,late_night:0.1,dawn:0.3"
["retail_hours"]="open:0.9,peak:1.0,closing:0.7,after_hours:0.2"
["healthcare_24"]="day_shift:0.7,evening_shift:0.5,night_shift:0.3,emergency:0.8"
)
# Seuils d'optimisation énergétique
declare -A ENERGY_THRESHOLDS=(
["battery_critical"]="20:0.2" # Sous 20% batterie : 20% luminosité
["battery_low"]="30:0.4" # Sous 30% batterie : 40% luminosité
["battery_medium"]="50:0.6" # Sous 50% batterie : 60% luminosité
["battery_high"]="80:0.8" # Au-dessus 80% batterie : 80% luminosité
["ac_power"]="100:0.9" # Sur alimentation secteur : 90% luminosité
)
# Fonction de journalisation
log_action() {
local message="$1"
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
echo "[$timestamp] $message" | tee -a "$LOG_FILE"
}
# Contrôle de luminosité amélioré avec validation
set_brightness_enhanced() {
local brightness_level="$1"
local reason="${2:-Ajustement manuel}"
local user="${3:-$(whoami)}"
log_action "Définition luminosité à $brightness_level pour utilisateur $user - Raison : $reason"
# Valider le niveau de luminosité
if ! [[ "$brightness_level" =~ ^[0-9]*\.?[0-9]+$ ]] ||
(( $(echo "$brightness_level > 1.0" | bc -l) )) ||
(( $(echo "$brightness_level < 0.0" | bc -l) )); then
log_action "ERREUR : Niveau de luminosité invalide : $brightness_level"
return 1
fi
# Stocker la luminosité précédente pour capacité de retour en arrière
local previous_brightness=$(get_current_brightness_value)
# Appliquer le changement de luminosité
local brightness_cmd=""
if command -v brightness >/dev/null 2>&1; then
brightness_cmd="brightness"
elif [[ -x "/opt/homebrew/bin/brightness" ]]; then
brightness_cmd="/opt/homebrew/bin/brightness"
elif [[ -x "/usr/local/bin/brightness" ]]; then
brightness_cmd="/usr/local/bin/brightness"
elif [[ -x "/usr/local/Cellar/brightness/1.2/bin/brightness" ]]; then
brightness_cmd="/usr/local/Cellar/brightness/1.2/bin/brightness"
else
log_action "ERREUR : Commande de contrôle de luminosité non trouvée"
return 1
fi
if $brightness_cmd "$brightness_level" 2>/dev/null; then
local percentage=$(echo "$brightness_level * 100" | bc)
log_action "SUCCÈS : Luminosité définie à $brightness_level (${percentage}%)"
# Enregistrer le changement dans l'historique
echo "$(date '+%Y-%m-%d %H:%M:%S'),$user,$previous_brightness,$brightness_level,$reason" >> "$CONFIG_DIR/brightness_history.csv"
return 0
else
log_action "ERREUR : Échec de définition de luminosité à $brightness_level"
return 1
fi
}
# Obtenir la luminosité actuelle comme valeur numérique
get_current_brightness_value() {
local current_brightness=""
if command -v brightness >/dev/null 2>&1; then
current_brightness=$(brightness -l 2>/dev/null | grep -o '[0-9]*\.[0-9]*' | head -1)
fi
if [[ -n "$current_brightness" ]]; then
echo "$current_brightness"
else
echo "0.5" # Valeur par défaut de repli
fi
}
# Appliquer un profil de luminosité
apply_brightness_profile() {
local profile_name="$1"
local override_time="${2:-}"
log_action "Application du profil de luminosité : $profile_name"
if [[ -z "${BRIGHTNESS_PROFILES[$profile_name]}" ]]; then
log_action "ERREUR : Profil de luminosité inconnu : $profile_name"
echo "Profils disponibles : ${!BRIGHTNESS_PROFILES[*]}"
return 1
fi
local profile_settings="${BRIGHTNESS_PROFILES[$profile_name]}"
local current_time="${override_time:-$(date +%H:%M)}"
local current_hour=$(echo "$current_time" | cut -d: -f1)
echo "=== Application du Profil de Luminosité : $profile_name ==="
echo "Heure actuelle : $current_time"
echo "Paramètres de profil : $profile_settings"
# Analyser les paramètres de profil et trouver la luminosité appropriée
local target_brightness="0.5" # Par défaut
local matched_period="default"
IFS=',' read -ra SETTINGS <<< "$profile_settings"
for setting in "${SETTINGS[@]}"; do
IFS=':' read -ra TIME_BRIGHTNESS <<< "$setting"
local time_period="${TIME_BRIGHTNESS[0]}"
local brightness_value="${TIME_BRIGHTNESS[1]}"
case "$time_period" in
"morning")
if [[ $current_hour -ge 6 && $current_hour -lt 9 ]]; then
target_brightness="$brightness_value"
matched_period="morning"
fi
;;
"work_start"|"work")
if [[ $current_hour -ge 9 && $current_hour -lt 12 ]]; then
target_brightness="$brightness_value"
matched_period="work_start"
fi
;;
"lunch"|"midday")
if [[ $current_hour -ge 12 && $current_hour -lt 14 ]]; then
target_brightness="$brightness_value"
matched_period="lunch"
fi
;;
"afternoon")
if [[ $current_hour -ge 14 && $current_hour -lt 17 ]]; then
target_brightness="$brightness_value"
matched_period="afternoon"
fi
;;
"work_end"|"evening")
if [[ $current_hour -ge 17 && $current_hour -lt 20 ]]; then
target_brightness="$brightness_value"
matched_period="evening"
fi
;;
"night")
if [[ $current_hour -ge 20 && $current_hour -lt 23 ]]; then
target_brightness="$brightness_value"
matched_period="night"
fi
;;
"late_night")
if [[ $current_hour -ge 23 || $current_hour -lt 6 ]]; then
target_brightness="$brightness_value"
matched_period="late_night"
fi
;;
"all_day"|"constant_high")
target_brightness="$brightness_value"
matched_period="all_day"
;;
esac
done
echo "Période correspondante : $matched_period"
echo "Luminosité cible : $target_brightness"
# Appliquer la luminosité
set_brightness_enhanced "$target_brightness" "Profil : $profile_name ($matched_period)"
}
# Gestion de luminosité consciente de l'énergie
energy_aware_brightness() {
local policy="${1:-balanced}"
log_action "Démarrage gestion luminosité consciente énergie avec politique : $policy"
echo "=== Gestion de Luminosité Consciente de l'Énergie ==="
echo "Politique : $policy"
echo ""
# Obtenir le statut d'alimentation
local battery_info=$(pmset -g batt)
local battery_percentage=$(echo "$battery_info" | grep -o '[0-9]*%' | head -1 | tr -d '%')
local power_source=$(echo "$battery_info" | grep -o "AC Power\|Battery Power" | head -1)
local charging_status=$(echo "$battery_info" | grep -o "charging\|charged\|discharging" | head -1)
echo "--- Statut d'Alimentation ---"
echo "Source d'Alimentation : $power_source"
echo "Niveau de Batterie : ${battery_percentage}%"
echo "Statut de Charge : $charging_status"
# Déterminer la luminosité basée sur la politique énergétique
local target_brightness=""
local energy_reason=""
case "$policy" in
"aggressive")
if [[ "$power_source" == "AC Power" ]]; then
target_brightness="0.8"
energy_reason="Alimentation secteur - luminosité normale"
else
if [[ $battery_percentage -lt 20 ]]; then
target_brightness="0.15"
energy_reason="Batterie critique - luminosité minimale"
elif [[ $battery_percentage -lt 40 ]]; then
target_brightness="0.25"
energy_reason="Batterie faible - luminosité très faible"
else
target_brightness="0.4"
energy_reason="Alimentation batterie - luminosité faible"
fi
fi
;;
"balanced")
if [[ "$power_source" == "AC Power" ]]; then
target_brightness="0.8"
energy_reason="Alimentation secteur - luminosité normale"
else
if [[ $battery_percentage -lt 20 ]]; then
target_brightness="0.2"
energy_reason="Batterie faible - luminosité réduite"
elif [[ $battery_percentage -lt 50 ]]; then
target_brightness="0.4"
energy_reason="Batterie moyenne - luminosité modérée"
else
target_brightness="0.6"
energy_reason="Bonne batterie - luminosité normale"
fi
fi
;;
"performance")
if [[ "$power_source" == "AC Power" ]]; then
target_brightness="0.9"
energy_reason="Alimentation secteur - luminosité élevée"
else
if [[ $battery_percentage -lt 15 ]]; then
target_brightness="0.3"
energy_reason="Batterie critique - économie d'énergie"
else
target_brightness="0.7"
energy_reason="Alimentation batterie - maintenir visibilité"
fi
fi
;;
esac
echo ""
echo "--- Décision Énergétique ---"
echo "Politique : $policy"
echo "Décision : $energy_reason"
echo "Luminosité Cible : $target_brightness"
# Appliquer le changement de luminosité
set_brightness_enhanced "$target_brightness" "$energy_reason"
# Journaliser l'estimation d'économie d'énergie
local current_brightness=$(get_current_brightness_value)
local energy_savings=$(echo "($current_brightness - $target_brightness) * 20" | bc) # Estimation approximative
if (( $(echo "$energy_savings > 0" | bc -l) )); then
echo "Économies d'énergie estimées : ${energy_savings}% réduction puissance affichage"
log_action "Économies d'énergie estimées : ${energy_savings}% réduction puissance affichage"
fi
}
# Gestion de luminosité de flotte
manage_fleet_brightness() {
local operation="$1"
local target_brightness="$2"
local fleet_scope="${3:-local}"
log_action "Gestion luminosité flotte : $operation (portée : $fleet_scope)"
echo "=== Gestion de Luminosité de Flotte ==="
echo "Opération : $operation"
echo "Luminosité Cible : $target_brightness"
echo "Portée Flotte : $fleet_scope"
echo ""
case "$operation" in
"set_all")
echo "Définition luminosité à $target_brightness sur toute la flotte..."
set_brightness_enhanced "$target_brightness" "Ajustement à l'échelle de la flotte"
;;
"energy_optimize")
echo "Optimisation de la luminosité pour l'efficacité énergétique..."
energy_aware_brightness "balanced"
;;
"sync_profiles")
echo "Synchronisation des profils de luminosité sur la flotte..."
apply_brightness_profile "work_day"
;;
"emergency_dim")
echo "Application atténuation d'urgence pour conservation énergie..."
set_brightness_enhanced "0.1" "Conservation d'énergie d'urgence"
;;
"restore_normal")
echo "Restauration des niveaux de luminosité normaux..."
apply_brightness_profile "work_day"
;;
*)
log_action "ERREUR : Opération de flotte inconnue : $operation"
return 1
;;
esac
# Générer le rapport de statut de flotte
generate_brightness_status_report
}
# Générer un rapport de statut de luminosité
generate_brightness_status_report() {
local report_file="$REPORT_DIR/brightness_status_$(date +%Y%m%d_%H%M%S).json"
local current_brightness=$(get_current_brightness_value)
local battery_info=$(pmset -g batt)
local battery_percentage=$(echo "$battery_info" | grep -o '[0-9]*%' | head -1 | tr -d '%')
local power_source=$(echo "$battery_info" | grep -o "AC Power\|Battery Power" | head -1)
cat > "$report_file" << EOF
{
"brightness_status_report": {
"timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
"hostname": "$(hostname)",
"script_version": "$SCRIPT_VERSION",
"display_status": {
"current_brightness": $current_brightness,
"brightness_percentage": $(echo "$current_brightness * 100" | bc),
"power_source": "$power_source",
"battery_level": $battery_percentage
},
"system_info": {
"os_version": "$(sw_vers -productVersion)",
"hardware_model": "$(system_profiler SPHardwareDataType | grep 'Model Identifier' | awk '{print $3}')",
"display_count": $(system_profiler SPDisplaysDataType | grep "Display Type" | wc -l | tr -d ' ')
}
}
}
EOF
echo "Rapport de statut de luminosité généré : $report_file"
log_action "Rapport de statut généré : $report_file"
}
# Fonction d'exécution principale
main() {
local action="${1:-help}"
local param1="${2:-}"
local param2="${3:-}"
local param3="${4:-}"
local param4="${5:-}"
log_action "=== Gestion de Luminosité d'Affichage MacFleet Démarrée ==="
log_action "Action : $action"
case "$action" in
"set")
if [[ -z "$param1" ]]; then
echo "Usage : $0 set <niveau_luminosité> [raison]"
echo "Niveau de luminosité : 0.0-1.0 (0-100%)"
exit 1
fi
set_brightness_enhanced "$param1" "${param2:-Définition manuelle}"
;;
"get")
echo "Luminosité actuelle : $(get_current_brightness_value)"
;;
"profile")
if [[ -z "$param1" ]]; then
echo "Profils disponibles : ${!BRIGHTNESS_PROFILES[*]}"
exit 1
fi
apply_brightness_profile "$param1" "$param2"
;;
"energy")
energy_aware_brightness "${param1:-balanced}"
;;
"fleet")
if [[ -z "$param1" ]]; then
echo "Usage : $0 fleet <opération> [luminosité] [portée]"
echo "Opérations : set_all, energy_optimize, sync_profiles, emergency_dim, restore_normal"
exit 1
fi
manage_fleet_brightness "$param1" "$param2" "$param3"
;;
"adaptive")
adaptive_brightness_control "${param1:-auto}"
;;
"install")
install_brightness_tools
;;
"help")
echo "Usage : $0 [action] [options...]"
echo "Actions :"
echo " set <niveau> [raison] - Définir niveau luminosité (0.0-1.0)"
echo " get - Obtenir niveau luminosité actuel"
echo " profile <nom> [heure] - Appliquer profil luminosité"
echo " energy [politique] - Gestion luminosité consciente énergie"
echo " fleet <opération> [params] - Gestion luminosité flotte"
echo " adaptive [mode] - Contrôle luminosité adaptatif"
echo " install - Installer outils contrôle luminosité"
echo " help - Afficher cette aide"
echo ""
echo "Profils : ${!BRIGHTNESS_PROFILES[*]}"
echo "Politiques : ${!DISPLAY_POLICIES[*]}"
;;
*)
log_action "ERREUR : Action inconnue : $action"
echo "Utilisez '$0 help' pour les informations d'utilisation"
exit 1
;;
esac
log_action "=== Gestion de luminosité d'affichage terminée ==="
}
# Exécuter la fonction principale
main "$@"
Notes Importantes
- Homebrew Requis - L'outil de contrôle de luminosité nécessite l'installation de Homebrew
- Support Mac Intel - Certaines commandes de luminosité fonctionnent uniquement sur les Mac basés Intel
- Conscience Batterie - La luminosité doit être ajustée selon la source d'alimentation et le niveau de batterie
- Expérience Utilisateur - Les changements soudains de luminosité peuvent être dérangeants ; implémenter des transitions graduelles
- Politiques d'Entreprise - Différents environnements de travail nécessitent différentes stratégies de luminosité
- Conservation d'Énergie - Une luminosité plus faible prolonge significativement la durée de vie de la batterie
- Considérations Santé - Une luminosité appropriée réduit la fatigue et la tension oculaires