Andy@Arch Per default ist es unter SDDM und Plasma so das es einen Button für Suspend und einen für Hibernation gibt. Nun hätte ich gerne nur einen Button mit Suspend-Then-Hibernation.
Das "Aussehen" von SDDM und/oder Plasma wirst du wohl nicht ändern können ohne zumindest den UI-Code der "Programme" zu verändern - also quasi "umprogrammieren". Was du ansonsten IMHO maximal erreichen kannst ist, daß beide "Klicks" die selbe Aktion ausführen.
Alternativ/einfacher dürfte ggf. sein, z.B. eine eigene "Tastendruck-Kombination" für eben den expliziten Modus zu verwenden.
Andy@Arch Nur wo ansetzten in der /etc/sleep.conf
Ich denke, daß dein gewünschter Modus (SuspendThenHibernate) schwierig zu bewerkstelligen ist. Im englischen Wiki ist ja ein Beispiel angeführt um sowohl bei Suspend als auch Hibernate immer den Modus hybrid-sleep auszuführen.
Punkt 2.2.1 bei https://wiki.archlinux.org/title/Power_management#Power_management
An das hast du ja sicher auch deinen Versuch angelegt.
Nur: dieser Modus wäre wohl "einfach", da es wohl darauf hinausläuft in der Config zu sagen: Bei Suspend nimm als SuspendState eben "disk" statt "mem", es ist ein Modus der in einem "Rutsch" ausgeführt wird. (Wenn es so noch funktioniert wie im Wiki beschrieben, bei dir fällt der Modus hybrid-sleep ja flach zum Testen, da er nicht richtig funktioniert lt. altem Thread).
Bei SuspendThenHibernate gibt es ja nicht den "einen" Rutsch, sondern es sind zwei zeitlich (und vom User unabhängige) Vorgänge, die der Rechner "alleine, selbständig" bewerkstelligen muß.
a) Er muß einen Suspend machen
b) Nach einer gewissen Zeitspanne muß er einen Hibernate machen, bevor dem vorangehenden Suspend der "Saft" ausgeht.
Das bedingt (und hier gehts ans "Eingemachte) aber:
- Der Suspend-Modus+State darf NICHT verändert werden durch Konfiguration und
- Der Hibernate-Modus+State darf NICHT verändert werden durch Konfiguration.
Deshalb greifen deine Tests mit dem Ansatz aus dem Wiki nicht um zum gewünschten Ergebniss zu kommen.
@"man systemd-sleep.conf" schreibt:
a) zu Einstellungen für den Modus
"systemd-suspend-then-hibernate.service(8) uses the value of SuspendMode= when suspending and the value of HibernateMode= when hibernating."
Der Modus müßte für beide Aktionen also bleiben wie er per Default ist, weil ja (kombiniert, aber getrennt) beide Modi nacheinander ausgeführt werden.
b) zu Einstellungen für den State
"systemd-suspend-then-hibernate.service(8) uses the value of SuspendState= when suspending and the value of HibernateState= when hibernating."
Auch hier verbieten sich IMHO Änderungen am jeweiligen State, da ja der Suspend als Suspend und das Hibernate als Hibernate ausgeführt werden müssen.
Nur um meine Annahmen nochmal klar zu machen: Das "Umkonfigurieren" zu hybrid-sleep wäre wohl recht "einfach", da dort andere Werte für Modus+State die gewünschte Wirkung hätten. Bei SuspendThenHibernate hingegen entscheidet alleine das Service-File
(man systemd-suspend-then-hibernate.service) daß eben Suspend=Suspend UND Hibernate=Hibernate kombiniert werden.
Der einzige Ansatz um SuspendThenHibernate ggf. zum "Default" machen zu können, egal welcher Modus durch "Buttons" oder "Aktionen" vom User gewählt würden, wäre IMHO die anderen Modi zu verbieten.
Ich würde es wohl so versuchen:
a) Mache deine obigen Änderungen an der sleep.conf wieder rückgängig.
b) Verbiete die nicht gewollten Energiespar-Modi.
@man systemd-sleep.conf schreibt dazu:
"If AllowHibernation=no or AllowSuspend=no is used, this implies AllowSuspendThenHibernate=no and AllowHybridSleep=no, since those methods use both suspend and hibernation internally.
AllowSuspendThenHibernate=yes and AllowHybridSleep=yes can be used to override and enable
those specific modes."
Also solltest du deine sleep.conf so ändern:
[Sleep]
AllowSuspend=no
AllowHibernation=no
AllowSuspendThenHibernate=yes
AllowHybridSleep=no
#SuspendMode=
#SuspendState=mem standby freeze
#HibernateMode=platform shutdown
#HibernateState=disk
#HybridSleepMode=suspend platform shutdown
#HybridSleepState=disk
#HibernateDelaySec=
#SuspendEstimationSec=60min
Das erscheint mir (ohne es testen zu können/wollen) als die einzige Möglichkeit, da hoffentlich egal welche Energiespar-Option vom User nun "gewählt" wird von systemd als einzig mögliche Variante eben SuspendThenHibernate erfolgreich ausgeführt werden würde.
Das wäre IMHO das "Grundgerüst" um immer/nur diese eine Option auszuführen. Und es Bedarf austesten.
Weiterhin notwendig wären dann Dinge wie: Was passiert bei Lid-Close, Suspend/Hibernate-Sondertasten am Laptop, diese "Aktionen" müßten dann umkonfiguriert werden das diese eben "systemctl suspend-then-hibernate" aufrufen - aber das wird ja in anderen Konfigs (siehe Wikis) gemacht.
Meine 2,54368 Cent ;-)