114 lines
3.0 KiB
Plaintext
114 lines
3.0 KiB
Plaintext
;; Définition de la fenêtre principale
|
||
(defwindow control_center
|
||
:monitor 0
|
||
:geometry (geometry :x "8px"
|
||
:y "42px"
|
||
:width "280px"
|
||
:height "400px"
|
||
:anchor "top right")
|
||
:stacking "fg"
|
||
:exclusive false
|
||
(control_center_widget))
|
||
|
||
;; Widget principal qui organise tous nos contrôles
|
||
(defwidget control_center_widget []
|
||
(box :class "control-center"
|
||
:orientation "v"
|
||
:space-evenly false
|
||
|
||
;; En-tête avec le titre
|
||
(box :class "header"
|
||
:orientation "h"
|
||
:space-evenly false
|
||
(label :text "Control Center")
|
||
(button :onclick "eww close control_center"
|
||
:class "close-button"
|
||
"×"))
|
||
|
||
;; Section des curseurs
|
||
(box :class "section sliders-box"
|
||
:orientation "v"
|
||
:spacing 10
|
||
(volume-slider)
|
||
(brightness-slider))
|
||
|
||
;; Section d'information système
|
||
(box :class "section system-info"
|
||
:orientation "v"
|
||
:spacing 5
|
||
(cpu-info)
|
||
(memory-info)
|
||
(battery-info))))
|
||
|
||
;; Widgets individuels pour chaque contrôle
|
||
(defwidget volume-slider []
|
||
(box :class "slider"
|
||
:orientation "h"
|
||
:space-evenly false
|
||
(button :onclick "pactl set-sink-mute @DEFAULT_SINK@ toggle"
|
||
:class "icon ${volume-muted ? 'muted' : ''}"
|
||
{volume-muted ? "" : ""})
|
||
(scale :min 0
|
||
:max 101
|
||
:value volume
|
||
:onchange "pactl set-sink-volume @DEFAULT_SINK@ {}%")))
|
||
|
||
(defwidget brightness-slider []
|
||
(box :class "slider"
|
||
:orientation "h"
|
||
:space-evenly false
|
||
(label :class "icon" :text "")
|
||
(scale :min 0
|
||
:max 101
|
||
:value brightness
|
||
:onchange "brightnessctl set {}%")))
|
||
|
||
(defwidget cpu-info []
|
||
(box :class "system-info-item"
|
||
:orientation "h"
|
||
:space-evenly false
|
||
(label :class "icon" :text "")
|
||
(label :text "CPU: ${cpu}%")
|
||
(progress :value cpu
|
||
:class "progress-bar")))
|
||
|
||
(defwidget memory-info []
|
||
(box :class "system-info-item"
|
||
:orientation "h"
|
||
:space-evenly false
|
||
(label :class "icon" :text "")
|
||
(label :text "RAM: ${memory}%")
|
||
(progress :value memory
|
||
:class "progress-bar")))
|
||
|
||
(defwidget battery-info []
|
||
(box :class "system-info-item"
|
||
:orientation "h"
|
||
:space-evenly false
|
||
(label :class "icon" :text {battery-icon})
|
||
(label :text "Battery: ${battery}%")
|
||
(progress :value battery
|
||
:class "progress-bar")))
|
||
|
||
;; Variables pour les écouteurs d'événements
|
||
(deflisten volume :initial "0"
|
||
"scripts/get-volume.sh")
|
||
|
||
(deflisten volume-muted :initial "false"
|
||
"scripts/get-mute-state.sh")
|
||
|
||
(deflisten brightness :initial "0"
|
||
"scripts/get-brightness.sh")
|
||
|
||
(deflisten cpu :initial "0"
|
||
"scripts/get-cpu.sh")
|
||
|
||
(deflisten memory :initial "0"
|
||
"scripts/get-memory.sh")
|
||
|
||
(deflisten battery :initial "0"
|
||
"scripts/get-battery.sh")
|
||
|
||
(deflisten battery-icon :initial ""
|
||
"scripts/get-battery-icon.sh")"
|