1. Identifier le clavier Apple
Ouvrez un terminal et vérifiez qu’il est détecté :
lsusb
Vous devriez voir une ligne contenant Apple, Inc.
2. Installer les outils utiles
sudo apt update
sudo apt install numlockx xcape xbindkeys xdotool pavucontrol
3. Transformer la touche Commande (⌘) en touche Super
Sous Linux, la touche ⌘ Command devient généralement la touche Super.
Vérifiez dans :
Menu → Paramètres → Clavier → Disposition
ou
setxkbmap -option
4. Inverser Commande et Alt (recommandé)
Pour retrouver les raccourcis macOS :
| macOS | Linux |
|---|---|
| ⌘ C | Ctrl C |
| ⌘ V | Ctrl V |
| ⌘ X | Ctrl X |
Deux possibilités existent.
Solution simple
Dans
Paramètres → Clavier → Disposition → Options
Chercher :
Alt/Win behavior
Puis choisir
Swap Left Alt with Left Win
Ainsi :
- ⌘ devient Alt
- Option devient Super
On retrouve une disposition beaucoup plus naturelle.
Solution avancée
Avec :
xmodmap
ou
hid_apple
on peut obtenir un comportement quasiment identique à macOS.
5. Charger le module Apple
Créer le fichier :
sudo nano /etc/modprobe.d/hid_apple.conf
Ajouter :
options hid_apple fnmode=2
Puis :
sudo update-initramfs -u
sudo reboot
Signification
| Valeur | Comportement |
|---|---|
| fnmode=0 | Les touches F1 à F12 sont prioritaires |
| fnmode=1 | Les touches multimédia sont prioritaires |
| fnmode=2 | Le comportement peut être inversé avec Fn (proche de macOS) |
La valeur 2 est généralement la plus agréable.
6. Touches multimédia
Les touches :
- Volume
- Luminosité
- Lecture
- Pause
- Suivant
- Précédent
fonctionnent souvent immédiatement.
Si certaines ne fonctionnent pas :
Paramètres
→ Clavier
→ Raccourcis d'application
Vous pouvez leur attribuer :
Volume +
amixer set Master 5%+
Volume –
amixer set Master 5%-
Muet
amixer set Master toggle
7. Recréer les raccourcis macOS
Dans
Paramètres
→ Clavier
→ Raccourcis
vous pouvez définir :
| Action | Raccourci |
|---|---|
| Copier | ⌘ C |
| Coller | ⌘ V |
| Couper | ⌘ X |
| Annuler | ⌘ Z |
| Tout sélectionner | ⌘ A |
| Rechercher | ⌘ F |
| Fermer | ⌘ W |
| Nouvelle fenêtre | ⌘ N |
| Quitter | ⌘ Q |
8. Défilement « Naturel »
Comme sur macOS :
Paramètres
→ Souris et pavé tactile
Activer
Défilement naturel
9. Clic secondaire
Toujours dans
Souris
Choisir
Clic droit à deux doigts
ou
Coin inférieur droit
10. Installer un Dock
Le plus proche de macOS :
sudo apt install plank
Puis :
plank
Pour le lancer automatiquement :
Paramètres
→ Session et démarrage
→ Démarrage automatique
Ajouter
plank
11. Installer le thème macOS
Très apprécié :
sudo apt install gnome-themes-extra papirus-icon-theme
ou installer :
- WhiteSur Theme
- WhiteSur Icons
- McMojave
Le résultat est très proche de macOS Sonoma ou Sequoia.
12. Installer les polices Apple
Si vous possédez une licence macOS, vous pouvez copier les polices depuis votre Mac dans :
~/.local/share/fonts
Cela améliore la fidélité de l’interface et le rendu des documents.
13. Installer les gestes (si vous utilisez un Magic Trackpad)
sudo apt install touchegg
Puis :
sudo systemctl enable touchegg
sudo systemctl start touchegg
Installez ensuite Touché, une interface graphique permettant de configurer les gestes (balayage à trois doigts, changement de bureau, etc.).
14. Réglages supplémentaires pour un iMac
Je recommande également :
sudo apt install tlp tlp-rdw
sudo systemctl enable tlp
Même si un iMac est un ordinateur de bureau, TLP optimise certains paramètres d’alimentation et peut réduire la chauffe.
Pour aller encore plus loin : transformer Linux Mint en « macOS »
Il est possible d’obtenir une expérience très proche de celle d’un Mac en combinant plusieurs outils :
- Dock Plank centré avec effet de grossissement.
- WhiteSur GTK Theme et WhiteSur Icons.
- LightDM WebKit Greeter avec un écran de connexion inspiré de macOS.
- Albert ou Ulauncher pour remplacer Spotlight (recherche d’applications avec un raccourci clavier).
- TopIcons ou des greffons XFCE pour rapprocher la barre supérieure de celle de macOS.
- Touché/Touchegg pour les gestes multitouch.
- Raccourcis clavier adaptés pour utiliser la touche ⌘ comme touche principale.
Avec ces ajustements, un iMac de 2011 sous Linux Mint XFCE offre une expérience visuelle et ergonomique très proche de macOS, tout en restant nettement plus léger et réactif.
Installer configure-imac-mint-xfce.sh
#!/usr/bin/env bash
# Configuration « habitudes macOS » pour Linux Mint XFCE sur iMac/clavier Apple.
# Le script est idempotent : il peut être relancé sans dupliquer les réglages.
#
# Usage normal :
# chmod +x configure-imac-mint-xfce.sh
# ./configure-imac-mint-xfce.sh
#
# Options :
# --without-theme Ne pas installer WhiteSur.
# --without-gestures Ne pas installer Touchégg/Touché.
# --without-ulauncher Utiliser le lanceur XFCE au lieu d'Ulauncher.
# --without-keyd Ne pas activer les raccourcis basés sur Commande (⌘).
# --restore-keyboard Restaurer la configuration clavier créée par ce script.
# --help Afficher l'aide.
set -Eeuo pipefail
IFS=$'\n\t'
readonly SCRIPT_NAME="$(basename "$0")"
readonly BACKUP_DIR="/var/backups/apple-mint-xfce"
readonly KEYD_CONFIG="/etc/keyd/default.conf"
readonly HID_APPLE_CONFIG="/etc/modprobe.d/hid_apple.conf"
INSTALL_THEME=1
INSTALL_GESTURES=1
INSTALL_ULAUNCHER=1
INSTALL_KEYD=1
RESTORE_KEYBOARD=0
log() { printf '\n\033[1;34m[%s]\033[0m %s\n' "$SCRIPT_NAME" "$*"; }
warn() { printf '\n\033[1;33m[%s]\033[0m %s\n' "$SCRIPT_NAME" "$*" >&2; }
die() { printf '\n\033[1;31m[%s]\033[0m %s\n' "$SCRIPT_NAME" "$*" >&2; exit 1; }
usage() {
sed -n '2,17p' "$0" | sed 's/^# \{0,1\}//'
}
for arg in "$@"; do
case "$arg" in
--without-theme) INSTALL_THEME=0 ;;
--without-gestures) INSTALL_GESTURES=0 ;;
--without-ulauncher) INSTALL_ULAUNCHER=0 ;;
--without-keyd) INSTALL_KEYD=0 ;;
--restore-keyboard) RESTORE_KEYBOARD=1 ;;
--help|-h) usage; exit 0 ;;
*) die "Option inconnue : $arg" ;;
esac
done
# Le script doit être lancé par l'utilisateur connecté, pas directement avec sudo.
if (( EUID == 0 )); then
die "Lancez ce script sans sudo : ./$SCRIPT_NAME"
fi
command -v sudo >/dev/null 2>&1 || die "La commande sudo est requise."
[[ -r /etc/os-release ]] || die "Impossible d'identifier la distribution."
# shellcheck disable=SC1091
source /etc/os-release
case "${ID:-}:${ID_LIKE:-}" in
linuxmint:*|ubuntu:*|*:ubuntu*|debian:*|*:debian*) ;;
*) die "Ce script cible Linux Mint, Ubuntu ou une distribution dérivée de Debian." ;;
esac
TARGET_USER="$USER"
TARGET_HOME="$HOME"
USER_CONFIG="$TARGET_HOME/.config"
USER_LOCAL_BIN="$TARGET_HOME/.local/bin"
AUTOSTART_DIR="$USER_CONFIG/autostart"
WORK_DIR="$(mktemp -d -t apple-mint-xfce.XXXXXX)"
trap 'rm -rf "$WORK_DIR"' EXIT
sudo -v
sudo install -d -m 0755 "$BACKUP_DIR"
backup_root_file() {
local file="$1"
local name
name="$(basename "$file")"
if [[ -e "$file" && ! -e "$BACKUP_DIR/$name.original" ]]; then
sudo cp -a "$file" "$BACKUP_DIR/$name.original"
fi
}
restore_keyboard() {
log "Restauration de la configuration clavier"
if systemctl list-unit-files 2>/dev/null | grep -q '^keyd\.service'; then
sudo systemctl disable --now keyd.service 2>/dev/null || true
fi
if [[ -e "$BACKUP_DIR/$(basename "$KEYD_CONFIG").original" ]]; then
sudo install -D -m 0644 \
"$BACKUP_DIR/$(basename "$KEYD_CONFIG").original" "$KEYD_CONFIG"
else
sudo rm -f "$KEYD_CONFIG"
fi
if [[ -e "$BACKUP_DIR/$(basename "$HID_APPLE_CONFIG").original" ]]; then
sudo install -D -m 0644 \
"$BACKUP_DIR/$(basename "$HID_APPLE_CONFIG").original" "$HID_APPLE_CONFIG"
else
sudo rm -f "$HID_APPLE_CONFIG"
fi
sudo update-initramfs -u
log "Configuration restaurée. Redémarrez Linux pour terminer."
}
if (( RESTORE_KEYBOARD )); then
restore_keyboard
exit 0
fi
apt_install() {
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends "$@"
}
add_ppa_once() {
local ppa="$1"
local marker="${ppa#ppa:}"
marker="${marker%%/*}"
if ! grep -Rqs "${marker}" /etc/apt/sources.list /etc/apt/sources.list.d 2>/dev/null; then
sudo add-apt-repository -y "$ppa"
fi
}
log "Mise à jour des dépôts et installation des outils de base"
sudo apt-get update
apt_install \
ca-certificates curl git software-properties-common flatpak \
xinput x11-utils libinput-tools numlockx xbindkeys xdotool \
pavucontrol pulseaudio-utils playerctl brightnessctl \
plank papirus-icon-theme gnome-themes-extra \
xfce4-screenshooter fonts-noto fonts-noto-color-emoji \
fontconfig sassc libglib2.0-dev-bin libxml2-utils
# -----------------------------------------------------------------------------
# Clavier Apple : rangée supérieure macOS et raccourcis Commande (⌘)
# -----------------------------------------------------------------------------
log "Configuration du pilote hid_apple"
backup_root_file "$HID_APPLE_CONFIG"
# fnmode=1 : luminosité, volume et médias directement ; Fn donne F1…F12.
# Les touches Option et Commande restent à leur emplacement Apple d'origine.
sudo tee "$HID_APPLE_CONFIG" >/dev/null <<'EOF'
# Généré par configure-imac-mint-xfce.sh
options hid_apple fnmode=1 swap_opt_cmd=0 swap_ctrl_cmd=0
EOF
sudo update-initramfs -u
# Applique immédiatement fnmode lorsque le module est déjà chargé.
if [[ -w /sys/module/hid_apple/parameters/fnmode ]]; then
printf '1' | sudo tee /sys/module/hid_apple/parameters/fnmode >/dev/null || true
fi
if (( INSTALL_KEYD )); then
log "Installation et configuration de keyd"
if ! apt-cache show keyd >/dev/null 2>&1; then
add_ppa_once ppa:keyd-team/ppa
sudo apt-get update
fi
apt_install keyd
backup_root_file "$KEYD_CONFIG"
sudo install -d -m 0755 /etc/keyd
# Commande agit comme le modificateur principal de macOS uniquement pour les
# combinaisons usuelles. Ctrl et Option gardent leur rôle Linux normal.
sudo tee "$KEYD_CONFIG" >/dev/null <<'EOF'
# Généré par configure-imac-mint-xfce.sh
# Arrêt d'urgence de keyd : maintenir Backspace + Échap + Entrée.
[ids]
*
[main]
leftmeta = layer(mac)
rightmeta = layer(mac)
[mac]
a = C-a
c = C-c
v = C-v
x = C-x
z = C-z
s = C-s
o = C-o
p = C-p
f = C-f
r = C-r
n = C-n
t = C-t
l = C-l
w = C-w
q = A-f4
h = A-f9
m = A-f9
tab = A-tab
space = C-space
left = home
right = end
up = C-home
down = C-end
minus = C-minus
equal = C-equal
0 = C-0
comma = C-comma
leftbrace = C-leftbrace
rightbrace = C-rightbrace
EOF
# Permet à libinput de reconnaître correctement le clavier virtuel de keyd.
sudo tee /etc/libinput/local-overrides.quirks >/dev/null <<'EOF'
[Serial Keyboards]
MatchUdevType=keyboard
MatchName=keyd*keyboard
AttrKeyboardIntegration=internal
EOF
sudo systemctl enable --now keyd.service
sudo keyd reload
fi
# -----------------------------------------------------------------------------
# Touches spéciales XFCE
# -----------------------------------------------------------------------------
xfce_shortcut() {
local shortcut="$1"
local command="$2"
local property="/commands/custom/$shortcut"
# xfconf-query nécessite une session graphique XFCE active.
if command -v xfconf-query >/dev/null 2>&1 && [[ -n "${DISPLAY:-}" ]]; then
xfconf-query -c xfce4-keyboard-shortcuts -p "$property" -n -t string -s "$command" \
2>/dev/null || \
xfconf-query -c xfce4-keyboard-shortcuts -p "$property" -s "$command" \
2>/dev/null || true
fi
}
log "Association des touches multimédias et des captures d'écran"
xfce_shortcut 'XF86AudioRaiseVolume' 'pactl set-sink-volume @DEFAULT_SINK@ +5%'
xfce_shortcut 'XF86AudioLowerVolume' 'pactl set-sink-volume @DEFAULT_SINK@ -5%'
xfce_shortcut 'XF86AudioMute' 'pactl set-sink-mute @DEFAULT_SINK@ toggle'
xfce_shortcut 'XF86AudioMicMute' 'pactl set-source-mute @DEFAULT_SOURCE@ toggle'
xfce_shortcut 'XF86AudioPlay' 'playerctl play-pause'
xfce_shortcut 'XF86AudioPause' 'playerctl play-pause'
xfce_shortcut 'XF86AudioNext' 'playerctl next'
xfce_shortcut 'XF86AudioPrev' 'playerctl previous'
xfce_shortcut 'XF86MonBrightnessUp' 'brightnessctl set +5%'
xfce_shortcut 'XF86MonBrightnessDown' 'brightnessctl set 5%-'
xfce_shortcut '<Primary><Shift>3' 'xfce4-screenshooter --fullscreen'
xfce_shortcut '<Primary><Shift>4' 'xfce4-screenshooter --region'
# -----------------------------------------------------------------------------
# Défilement naturel, clic/toucher et pavé tactile
# -----------------------------------------------------------------------------
log "Création du réglage automatique des périphériques de pointage"
install -d -m 0755 "$USER_LOCAL_BIN" "$AUTOSTART_DIR"
cat > "$USER_LOCAL_BIN/apple-input-setup" <<'EOF'
#!/usr/bin/env bash
# Active les comportements proches de macOS sur les périphériques libinput.
set -u
command -v xinput >/dev/null 2>&1 || exit 0
while read -r id; do
[[ -n "$id" ]] || continue
props="$(xinput list-props "$id" 2>/dev/null || true)"
if grep -q 'libinput Natural Scrolling Enabled (' <<<"$props"; then
xinput set-prop "$id" 'libinput Natural Scrolling Enabled' 1 2>/dev/null || true
fi
if grep -q 'libinput Tapping Enabled (' <<<"$props"; then
xinput set-prop "$id" 'libinput Tapping Enabled' 1 2>/dev/null || true
fi
if grep -q 'libinput Tapping Drag Enabled (' <<<"$props"; then
xinput set-prop "$id" 'libinput Tapping Drag Enabled' 1 2>/dev/null || true
fi
done < <(xinput list --short | sed -n 's/.*id=\([0-9][0-9]*\).*/\1/p')
EOF
chmod 0755 "$USER_LOCAL_BIN/apple-input-setup"
cat > "$AUTOSTART_DIR/apple-input-setup.desktop" <<EOF
[Desktop Entry]
Type=Application
Name=Réglages Apple des périphériques de pointage
Exec=$USER_LOCAL_BIN/apple-input-setup
OnlyShowIn=XFCE;
X-GNOME-Autostart-enabled=true
Terminal=false
EOF
"$USER_LOCAL_BIN/apple-input-setup" || true
# -----------------------------------------------------------------------------
# Dock Plank
# -----------------------------------------------------------------------------
log "Activation du dock Plank au démarrage"
cat > "$AUTOSTART_DIR/plank.desktop" <<'EOF'
[Desktop Entry]
Type=Application
Name=Plank
Exec=plank
OnlyShowIn=XFCE;
X-GNOME-Autostart-enabled=true
Terminal=false
EOF
# -----------------------------------------------------------------------------
# Ulauncher / Spotlight
# -----------------------------------------------------------------------------
if (( INSTALL_ULAUNCHER )); then
log "Installation d'Ulauncher"
add_ppa_once ppa:agornostal/ulauncher
sudo apt-get update
if apt_install ulauncher; then
cat > "$AUTOSTART_DIR/ulauncher.desktop" <<'EOF'
[Desktop Entry]
Type=Application
Name=Ulauncher
Exec=ulauncher --hide-window
OnlyShowIn=XFCE;
X-GNOME-Autostart-enabled=true
Terminal=false
EOF
if command -v ulauncher-toggle >/dev/null 2>&1; then
xfce_shortcut '<Primary>space' 'ulauncher-toggle'
else
xfce_shortcut '<Primary>space' 'ulauncher --toggle-window'
fi
else
warn "Ulauncher n'a pas pu être installé ; utilisation du lanceur XFCE."
xfce_shortcut '<Primary>space' 'xfce4-appfinder --collapsed'
fi
else
xfce_shortcut '<Primary>space' 'xfce4-appfinder --collapsed'
fi
# -----------------------------------------------------------------------------
# Gestes Touchégg et interface Touché
# -----------------------------------------------------------------------------
if (( INSTALL_GESTURES )); then
log "Installation de Touchégg et Touché"
if ! dpkg-query -W -f='${Status}' touchegg 2>/dev/null | grep -q 'install ok installed'; then
add_ppa_once ppa:touchegg/stable
sudo apt-get update
apt_install touchegg
fi
if systemctl list-unit-files 2>/dev/null | grep -q '^touchegg\.service'; then
sudo systemctl enable --now touchegg.service
fi
install -d -m 0755 "$USER_CONFIG/touchegg"
if [[ -r /usr/share/touchegg/touchegg.conf ]]; then
cp -n /usr/share/touchegg/touchegg.conf "$USER_CONFIG/touchegg/touchegg.conf"
fi
flatpak remote-add --user --if-not-exists flathub \
https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y flathub com.github.joseexposito.touche || \
warn "Touché n'a pas pu être installé depuis Flathub."
fi
# -----------------------------------------------------------------------------
# Apparence WhiteSur
# -----------------------------------------------------------------------------
if (( INSTALL_THEME )); then
log "Installation du thème et des icônes WhiteSur"
GTK_REPO="$WORK_DIR/WhiteSur-gtk-theme"
ICON_REPO="$WORK_DIR/WhiteSur-icon-theme"
git clone --depth=1 https://github.com/vinceliuice/WhiteSur-gtk-theme.git "$GTK_REPO"
git clone --depth=1 https://github.com/vinceliuice/WhiteSur-icon-theme.git "$ICON_REPO"
# L'échec du thème GTK ne doit pas empêcher le reste de la configuration.
(
cd "$GTK_REPO"
./install.sh -c light -o normal --silent-mode
) || warn "Installation du thème GTK WhiteSur incomplète ; Papirus reste disponible."
(
cd "$ICON_REPO"
./install.sh
) || warn "Installation des icônes WhiteSur incomplète."
# Sélection du thème dans la session XFCE active.
if command -v xfconf-query >/dev/null 2>&1 && [[ -n "${DISPLAY:-}" ]]; then
if [[ -d "$TARGET_HOME/.themes/WhiteSur-Light" ]]; then
xfconf-query -c xsettings -p /Net/ThemeName -s 'WhiteSur-Light' 2>/dev/null || true
elif [[ -d "$TARGET_HOME/.themes/WhiteSur" ]]; then
xfconf-query -c xsettings -p /Net/ThemeName -s 'WhiteSur' 2>/dev/null || true
fi
if [[ -d "$TARGET_HOME/.local/share/icons/WhiteSur" ]]; then
xfconf-query -c xsettings -p /Net/IconThemeName -s 'WhiteSur' 2>/dev/null || true
else
xfconf-query -c xsettings -p /Net/IconThemeName -s 'Papirus' 2>/dev/null || true
fi
# Utilise WhiteSur pour les bordures de fenêtres seulement si xfwm4 existe.
if [[ -d "$TARGET_HOME/.themes/WhiteSur-Light/xfwm4" ]]; then
xfconf-query -c xfwm4 -p /general/theme -s 'WhiteSur-Light' 2>/dev/null || true
elif [[ -d "$TARGET_HOME/.themes/WhiteSur/xfwm4" ]]; then
xfconf-query -c xfwm4 -p /general/theme -s 'WhiteSur' 2>/dev/null || true
fi
fi
fi
# Dossier prévu pour les polices légalement copiées depuis le Mac de l'utilisateur.
install -d -m 0755 "$TARGET_HOME/.local/share/fonts"
fc-cache -f "$TARGET_HOME/.local/share/fonts" >/dev/null 2>&1 || true
log "Nettoyage des dépendances devenues inutiles"
sudo apt-get autoremove -y
cat <<'EOF'
Configuration terminée.
Raccourcis principaux :
⌘ C / V / X / Z Copier / coller / couper / annuler
⌘ Tab Changer d'application
⌘ Espace Ouvrir Ulauncher ou le lanceur XFCE
⌘ W Fermer l'onglet ou le document
⌘ Q Fermer la fenêtre active
⌘ Maj 3 Capture de l'écran entier
⌘ Maj 4 Capture d'une zone
Pour terminer l'application des réglages du clavier Apple : redémarrez Linux.
Pour annuler les réglages clavier :
./configure-imac-mint-xfce.sh --restore-keyboard
Arrêt d'urgence de keyd : maintenir Backspace + Échap + Entrée.
EOF