Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Script nach dem Aufwachen aus Suspend to RAM ausführen
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2540
Location: Konradsreuth (Germany)

PostPosted: Wed May 31, 2023 10:11 am    Post subject: Script nach dem Aufwachen aus Suspend to RAM ausführen Reply with quote

Hallo allerseits!

Ich habe einen Logitech-Trackman-Trackball, den ich via folgendem Script auf linkshändige Bedienung einstelle und die Parameter festlege (wird über KDE-Autostart, also eine .desktop-Datei in ./.config/autostart/ beim Login ausgeführt):
Code:
#!/bin/bash

lsusb | grep 'Logitech, Inc. Marble Mouse' &>/dev/null || exit 0

xinput set-button-map "Logitech USB Trackball" 3 2 1 4 5 6 7 8 9
xinput set-prop "Logitech USB Trackball" "libinput Accel Speed" 1.0
xinput set-prop "Logitech USB Trackball" "libinput Scroll Method Enabled" 0 0 1
xinput set-prop "Logitech USB Trackball" "libinput Button Scrolling Button" 9
xinput set-prop "Logitech USB Trackball" "libinput Scrolling Pixel Distance" 40
xinput set-prop "Logitech USB Trackball" "libinput Horizontal Scroll Enabled" 0


Seit Neuestem(TM) geht die Einstellung für die Zeigergeschwindigkeit ("libinput Accel Speed") nach dem Aufwachen aus Suspend to RAM verloren, und der Zeiger ist zu lahm (bemerkenswerterweise bleiben die anderen Einstellungen bestehen, also die umgeordneten Knöpfe etc.).

Wenn ich das Script einfach neu ausführe, dann passt's wieder.

Gibt es eine Möglichkeit, das automatisch zu tun? Oder auch das Problem zu beheben, dass überhaupt erst die Einstellung verloren geht?
Back to top
View user's profile Send private message
Max Steel
Advocate
Advocate


Joined: 12 Feb 2007
Posts: 2229
Location: My own world! I and Gentoo!

PostPosted: Wed May 31, 2023 11:21 am    Post subject: Reply with quote

mit openrc/elogind ist es einfach über Shellskripte in /lib64/elogind/system-sleep lösbar.
Für systemd-logind müsste das äqulivalent unter /lib64/systemd/logind/systemd-sleep oder so sein... (nochmal verifizieren, hab ich gerade nicht verfügbar)
Die Skripte werden mit Parametern ausgeführt. Und für hibernation wird es einmal "pre hibernate" und einmal "post hibernate" ausgeführt.
Anschließend kann man das ganze so in etwa verwenden:
Code:
#! /bin/bash
case $1/$2 in
  pre/hibernate)
    grub-set-default 1
    sync
    umount /boot/efi /boot
    ;;
  post/hibernate)
    mount /boot
    mount /boot/efi
    grub-set-default 0
    ;;
esac


Recht simple Mechanik. Funktioniert aber auch erstaunlich einfach.


WEnn du nicht elogind oder systemd verwendest... musst du wohl oder übel ein Skript bauen und die Einstellung für den Hibernate Knopf auf dein Skript zeigen lassen...

Welche Aktionen alle hier bedacht sind kann man hier nachlesen: https://wiki.gentoo.org/wiki/Elogind#Suspend.2FHibernate_Resume.2FThaw_hook_scripts
_________________
mfg
Steel
___________________

Heim-PC: AMD Ryzen 5950X, 64GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-1145G7, 16GB RAM, Intel Iris Xe Graphic (leider WSL2)
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1668

PostPosted: Wed May 31, 2023 1:10 pm    Post subject: Reply with quote

Max Steel wrote:
Für systemd-logind müsste das äqulivalent unter /lib64/systemd/logind/systemd-sleep oder so sein... (nochmal verifizieren, hab ich gerade nicht verfügbar)


Code:
/lib/systemd/system-sleep/

ist es bei mir mit systemd
Back to top
View user's profile Send private message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2540
Location: Konradsreuth (Germany)

PostPosted: Wed May 31, 2023 6:38 pm    Post subject: Reply with quote

Alles klar. Ich hab OpenRC im Einsatz hier. Werd ich mal testen. Vielen Dank für den Tip!
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5165

PostPosted: Wed May 31, 2023 7:13 pm    Post subject: Reply with quote

l3u wrote:
Alles klar. Ich hab OpenRC im Einsatz hier. Werd ich mal testen. Vielen Dank für den Tip!

Nur zur sicherheit.
Das was Max Steel vorgeschlagen hat funktioniert nur wenn du elogind installiert hast und verwendest.
Das hat nix direkt mit openrc zu tun
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2540
Location: Konradsreuth (Germany)

PostPosted: Sat Jun 03, 2023 10:50 am    Post subject: Reply with quote

Installiert ist das, als Abhängigkeit von irgendwas. Das zieht doch KDE/SDDM eh, wenn man es nicht irgendwie manuell verhindert, oder?
Back to top
View user's profile Send private message
Max Steel
Advocate
Advocate


Joined: 12 Feb 2007
Posts: 2229
Location: My own world! I and Gentoo!

PostPosted: Sat Jun 03, 2023 3:38 pm    Post subject: Reply with quote

Jo, kde/sddm zieht das mit rein und ist zwar optional es auszubaue aber auch sozusagen "untested behaviour" von den Plasma Leuten, weswegen es default im desktop Profil aktiviert ist... so wie ich das verstehe.

Also viel Erfolg.
_________________
mfg
Steel
___________________

Heim-PC: AMD Ryzen 5950X, 64GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-1145G7, 16GB RAM, Intel Iris Xe Graphic (leider WSL2)
Back to top
View user's profile Send private message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2540
Location: Konradsreuth (Germany)

PostPosted: Sun Jun 04, 2023 6:18 am    Post subject: Reply with quote

So, okay. Jetzt hab ich's endlich mal gestestet ;-)

Funktioniert so weit, wenn ich einfach ein entsprechendes Script in /lib64/elogind/system-sleep speichere. Aber das Problem ist, dass dieses Script von root ausgeführt wird.

Gibt es eine Möglichkeit, das pro angemeldetem User zu machen? Also ohne jetzt z. B. eine who-Liste durchzugehen, und dann via su als der entsprechende User zu agieren?
Back to top
View user's profile Send private message
Max Steel
Advocate
Advocate


Joined: 12 Feb 2007
Posts: 2229
Location: My own world! I and Gentoo!

PostPosted: Tue Jun 06, 2023 9:21 am    Post subject: Reply with quote

Hmmmm.... Ich glaube da wirst du kaum Glück haben...
Du könntest versuchen ob du ein "user-suid" Skript ablegst das mit loginctl abcheckt ob dein User eine X-Session betreibt um dann bei diesem die entsprechenden Settings zu setzen... Aber viel besseres fällt mir gerade nicht ein. Ich hab leider keine User-xdg-sleep Einstellung auf die Schnelle gefunden.

elogind wurde ja als systemd-logind aus systemd rausgeschnitten... Also möglich dass es das nicht gibt (als teil von systemd weg geflogen)... aber auch möglich dass eine entsprechende User-Schnittstelle angefügt wurde. Aber ich habe dazu nichts gefunden.

Ich finds schade dass Plasma beispielsweise keine User-Skripte nach elogind hibernate/sleep ausführen lassen können... So wie ich das sehe.
_________________
mfg
Steel
___________________

Heim-PC: AMD Ryzen 5950X, 64GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-1145G7, 16GB RAM, Intel Iris Xe Graphic (leider WSL2)
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5165

PostPosted: Tue Jun 06, 2023 4:27 pm    Post subject: Reply with quote

Auch wenn es l3u vermutlich nicht helfen wird. Nur als allgemeine Info:
Mit systemd selbst scheint es möglich zu sein. Da kann man user "services" starten beim suspend oder resume.
https://wiki.archlinux.org/title/Power_management#Sleep_hooks
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5165

PostPosted: Tue Jun 06, 2023 4:35 pm    Post subject: Reply with quote

Für kde plasma gäbe folgende alternative.

Man könnte ein script ausführen lassen beim "screen saver" "Screen unlocked"
Zu finden in den system settings -> Notifications

Application-specific settings: Configure... > System Services > Screen Saver > Configure Events

Hätte nur den nachteil das es dann immer laufen würde wenn auch so ein screen unlock passiert
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5165

PostPosted: Tue Jun 06, 2023 4:40 pm    Post subject: Reply with quote

l3u wrote:
So, okay. Jetzt hab ich's endlich mal gestestet ;-)

Funktioniert so weit, wenn ich einfach ein entsprechendes Script in /lib64/elogind/system-sleep speichere. Aber das Problem ist, dass dieses Script von root ausgeführt wird.

Gibt es eine Möglichkeit, das pro angemeldetem User zu machen? Also ohne jetzt z. B. eine who-Liste durchzugehen, und dann via su als der entsprechende User zu agieren?


Mit /lib64/elogind/system-sleep kann man auch mit sudo/su scripte als einen bestimmten nutzer starten lassen. Nur dadurch funktioniert keinerlei kommunikation mit einer aktiven X11-Session.

Wenn es nur ein fixer nutzer ist und im falle eines resumes immer nur eine X11 Session läuft könnte man da was hardcoden
https://unix.stackexchange.com/questions/697311/running-an-script-as-user-after-resuming-from-suspend/697426#697426
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2540
Location: Konradsreuth (Germany)

PostPosted: Sun Jun 11, 2023 7:22 pm    Post subject: Reply with quote

So ein Sch… mich würde ja vor allem interessieren, warum das jetzt auf einmal so ist, nachdem ich jahrelang glücklich suspendet und resumet habe, und der sch… Trackball seine Einstellungen eben NICHT vergessen hat …
Back to top
View user's profile Send private message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2540
Location: Konradsreuth (Germany)

PostPosted: Mon Jun 19, 2023 11:17 am    Post subject: Reply with quote

Ich hab grad festgestellt, dass es gar nicht Suspend und Wakeup ist, was das Problem verursacht.

Es reicht schon, wenn der Rechner läuft, und der Bildschirm geht aus (resp. der Bildschirmschoner an). Hinterher geht die Einstellung zur Mauszeigergeschwindigkeit (xinput set-prop "Logitech USB Trackball" "libinput Accel Speed" 1.0) verloren und muss neu gesetzt werden.

Wo kommt denn das her?! Das war früher nicht so (TM)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum