{
// ── violet-chaton Waybar — island floating 3 pills ──────────────────────
// LEFT : launcher | cpu + temp | gpu | ram | disk | network
// CENTER : cava | clock | date | mpris
// RIGHT : wireplumber | backlight | bluetooth | idle_inhibitor |
// battery | power-profile | keyboard-state |
// systemd-failed | uptime | tray
// ────────────────────────────────────────────────────────────────────────
"layer": "top",
"position": "top",
"height": 60,
"margin-top": 0,
"margin-left": 16,
"margin-right": 16,
"spacing": 0,
"exclusive": true,
"modules-left": [
"custom/launcher",
"custom/sep",
"cpu",
"temperature",
"custom/gpu",
"memory",
"disk",
"custom/sep",
"custom/network"
],
"modules-center": [
"custom/cava",
"clock",
"custom/date",
"mpris"
],
"modules-right": [
"wireplumber",
"backlight",
"bluetooth",
"custom/sep",
"idle_inhibitor",
"custom/sep",
"battery",
"custom/power-profile",
"custom/sep",
"custom/uptime",
"tray",
"custom/power"
],
// ── Launcher ────────────────────────────────────────────────────────────
"custom/launcher": {
"format": "",
"tooltip": false,
"on-click": "~/.config/waybar/scripts/rofi-launcher.sh"
},
// ── Séparateur ──────────────────────────────────────────────────────────
"custom/sep": {
"format": "|",
"tooltip": false
},
// ── CPU ─────────────────────────────────────────────────────────────────
"cpu": {
"format": " {usage}%",
"tooltip-format": "Intel i5-12450H\n {usage}% @ {avg_frequency} GHz\n\nT00 {usage0}% T01 {usage1}% T02 {usage2}% T03 {usage3}%\nT04 {usage4}% T05 {usage5}% T06 {usage6}% T07 {usage7}%\nT08 {usage8}% T09 {usage9}% T10 {usage10}% T11 {usage11}%",
"states": {
"warning": 70,
"critical": 90
},
"interval": 2
},
// ── Température ─────────────────────────────────────────────────────────
"temperature": {
"thermal-zone": 9,
"format": " {temperatureC}°",
"format-critical": " {temperatureC}°",
"critical-threshold": 80,
"tooltip": false,
"interval": 2
},
// ── GPU ─────────────────────────────────────────────────────────────────
"custom/gpu": {
"exec": "~/.config/waybar/scripts/gpu.sh",
"return-type": "json",
"interval": 2,
"format": "{}"
},
// ── RAM ─────────────────────────────────────────────────────────────────
"memory": {
"format": " {used:0.1f}G",
"tooltip-format": " RAM\n{used:0.1f} GiB / {total:0.1f} GiB\n{percentage}% utilisé",
"states": {
"warning": 75,
"critical": 90
},
"interval": 2
},
// ── Disque ──────────────────────────────────────────────────────────────
"disk": {
"format": " {used}",
"tooltip-format": " Disque /\n{used} / {total}\n{percentage_used}% utilisé",
"interval": 30
},
// ── Réseau ──────────────────────────────────────────────────────────────
"custom/network": {
"exec": "~/.config/waybar/scripts/network.sh",
"return-type": "json",
"interval": 2,
"format": "{}"
},
// ── CAVA ────────────────────────────────────────────────────────────────
"custom/cava": {
"exec": "~/.config/waybar/scripts/cava-read.sh",
"return-type": "json",
"interval": 1,
"format": "{}",
"tooltip": false
},
// ── Horloge ─────────────────────────────────────────────────────────────
"clock": {
"format": " {:%H:%M}",
"format-alt": " {:%H:%M:%S}",
"tooltip-format": "{:%B %Y}\n{calendar}",
"calendar": {
"mode": "month",
"on-scroll": 1,
"format": {
"months": "{}",
"days": "{}",
"weeks": "W{}",
"weekdays": "{}",
"today": "{}"
}
},
"interval": 1
},
// ── Date ────────────────────────────────────────────────────────────────
"custom/date": {
"exec": "LC_ALL=fr_FR.UTF-8 date '+%a %d %b' | awk '{print toupper(substr($0,1,1)) substr($0,2)}'",
"interval": 60,
"tooltip": false
},
// ── MPRIS ───────────────────────────────────────────────────────────────
"mpris": {
"format": "{player_icon} {dynamic}",
"format-paused": "{player_icon} {dynamic}",
"player-icons": {
"default": "",
"spotify": "",
"firefox": "",
"chromium": "",
"vlc": ""
},
"status-icons": {
"paused": "",
"playing": "",
"stopped": ""
},
"dynamic-len": 30,
"ignored-players": ["firefox"],
"tooltip-format": "{player} — {title}\n{artist}\n{album}"
},
// ── Volume (wireplumber) ─────────────────────────────────────────────────
"wireplumber": {
"format": "{icon} {volume}%",
"format-muted": " {volume}%",
"format-icons": ["", "", ""],
"on-click": "python3 ~/.config/waybar/scripts/vc-media-popup.py",
"on-click-right": "~/.config/waybar/scripts/wob-volume.sh mute",
"on-scroll-up": "~/.config/waybar/scripts/wob-volume.sh up",
"on-scroll-down": "~/.config/waybar/scripts/wob-volume.sh down",
"tooltip-format": " Volume : {volume}%\n{node_name}"
},
// ── Luminosité ──────────────────────────────────────────────────────────
"backlight": {
"format": "{icon} {percent}%",
"format-icons": ["", "", ""],
"tooltip": false,
"on-click": "python3 ~/.config/waybar/scripts/vc-media-popup.py",
"on-scroll-up": "~/.config/waybar/scripts/wob-brightness.sh up",
"on-scroll-down": "~/.config/waybar/scripts/wob-brightness.sh down"
},
// ── Bluetooth ───────────────────────────────────────────────────────────
"bluetooth": {
"format": "",
"format-disabled": "",
"format-connected": " {device_alias}",
"tooltip-format": "{controller_alias} — {controller_address}\n{num_connections} connecté(s)",
"tooltip-format-connected": "{controller_alias}\n{device_enumerate}",
"tooltip-format-enumerate-connected": " {device_alias} ({device_address})"
},
// ── Idle inhibitor ──────────────────────────────────────────────────────
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
},
"tooltip-format-activated": "Veille désactivée",
"tooltip-format-deactivated": "Veille active"
},
// ── Batterie ────────────────────────────────────────────────────────────
"battery": {
"bat": "BAT1",
"states": {
"full": 95,
"good": 80,
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-full": " {capacity}%",
"format-icons": ["", "", "", "", "", "", "", "", "", ""],
"tooltip-format": "Batterie : {capacity}%\n{timeTo}\nCycles estimés",
"interval": 30
},
// ── Profil énergie ──────────────────────────────────────────────────────
"custom/power-profile": {
"exec": "~/.config/waybar/scripts/power-profile.sh",
"return-type": "json",
"interval": 5,
"signal": 8,
"on-click": "~/.config/waybar/scripts/power-profile.sh --toggle"
},
// ── Clavier ─────────────────────────────────────────────────────────────
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": {
"numlock": "{icon}",
"capslock": "{icon}"
},
"format-icons": {
"locked": "",
"unlocked": ""
}
},
// ── Systemd failed ──────────────────────────────────────────────────────
"systemd-failed-units": {
"format": " {nr_failed}",
"format-ok": "",
"hide-on-ok": true,
"system": true,
"user": true
},
// ── Uptime ──────────────────────────────────────────────────────────────
"custom/uptime": {
"exec": "awk '{s=$1; d=int(s/86400); h=int((s%86400)/3600); m=int((s%3600)/60); if(d>0) printf \" %dj %dh\",d,h; else if(h>0) printf \" %dh %dm\",h,m; else printf \" %dm\",m}' /proc/uptime",
"interval": 60,
"tooltip": false
},
// ── Tray ────────────────────────────────────────────────────────────────
"tray": {
"spacing": 8,
"icon-size": 16
},
// ── Bouton power ────────────────────────────────────────────────────────
"custom/power": {
"format": "",
"tooltip": false,
"on-click": "~/.config/waybar/scripts/power-menu.sh"
}
}