Autostart Skript Gnome

  • Hallo,

    ich will nach dem LOGIN bei GDM das beim Start des Gnomedesktop ein "Begrüßungssound" abgespielt wird.

    Ich habe mir dazu eine Sound.desktop Datei erstellt und diese in den Ordner /home/USER/.config/autostart gepackt.
    In den Gnome Optimierungen habe ich das Skript bzw. die Sound.desktop als Starprogramm eingetragen.
    Komischerweise klappt es mal, z.B. wenn ich mich vom Desktop an und ab melde. Bei einem Neustart klappt es in der Regel aber nicht.
    Es hat beim Neustart aber auch schon mal geklappt, der Sound wurde abgespielt.

    Jetzt frage ich mich was mache ich falsch? Oder sind Startprogramme nicht ausgereift bei Gnome?

    So sieht meine sound.desktop Datei aus:

    Code
    [Desktop Entry]
    Name=Sound
    GenericName=Sound-Script
    Exec=/home/USER/Skripte/sound.sh
    Terminal=false
    Type=Application
    X-GNOME-Autostart-enabled=true

    Die sound.sh sieht so aus:

    Bash
    #!/bin/bash
    
    paplay /home/User/Sounds/startup.ogg

    Wie geschrieben, mal klappt es, aber oft nicht.

    Arch Linux | Gnome | HP ProDesk 600 G5 Mini | Raspberry Pi Zero W | OPNSense | OpenWrt | OpenPli | FOSS | Depressiv

  • Kann es sein, daß bei einem Neustart, zu dem Zeitpunkt an dem die Datei abgespielt werden soll, Pulse Audio noch nicht geladen ist?

    Mainboard: MSI Z170-A Pro

    Prozessor: Intel i7 6700K

    Grafikkarte: AMD RX 7800 XT

    OS: EndeavourOS

  • bubba Ich würde das über systemd machen - sofern du eine SystemD Distirbution nutzt.

    Das ganze ist ungetestet müsste aber so funktionieren.

    Als erstes legen wir einen neuen SystemD Service an und nennen ihn "gdm-welcome-sound.service" (du kannst ihn nennen wie du willst :D)

    Daher am besten im Terminal mit dem Dateieditor "nano" die Datei erstellen:

    Code
    sudo nano /etc/systemd/system/gdm-welcome-sound.service

    In die Datei folgenden Inhalt schreiben:

    Code
    [Unit]
    Description=Spielt einen Willkommenssound nach dem Login ab
    Wants=sound.target
    After=sound.target
    
    [Service]
    Type=oneshot
    ExecStart=/usr/bin/paplay /home/User/Sounds/startup.ogg
    User=<dein_nutzername>

    Spannend sind ist hier der Punkt "Wants", mit "Wants" definiert man Service die zwingend geladen sein müssen bevor dein Service aktiviert wird, mit "sound.target" sagen wir, dein Script soll erst gestartet werden wenn alles Komponenten für die Audioausgabe geladen sind. Damit umgehen wir die Problematik die Bulvai aufgegriffen hat.

    Danach wird der Service bzw dein Befehl definiert. Mit "Type=oneshot" definieren wir das der Befehl nur einmal (pro Bootvorgang) ausgeführt werden soll. Mit ExecStart den Befehl der Befehl den du auch schon hattest.

    Bei User solltest du noch deinen Benutzernamen hinzufügen (so wird der Startsound nur für deinen Nutzer und nicht für alle Nutzer auf dem Rechner abgespielt).

    Nach dem du die Datei gespeichert hast, müssen wir systemd noch mitteilen, dass das Script bei Computerstart ausgeführt werden soll:

    Code
    sudo systemctl enable gdm-welcome-sound.service


    Dann sollte nach einem Neustart und Anmeldung der Sound kommen.

    --
    Ciao!

    Linux Nutzer seit über 20 Jahren. I ❤️ Freedom!

    Offizieller Proton-Botschafter aus der Schweiz 🇨🇭 😅

    Meine Haupt-Distribution ist Ubuntu.

    Mein Blog: https://rueegger.me

    Wer meinen sinnlosen Gedanken folgen möchte, kann dies gerne auf Mastodon tun: https://swiss.social/@srueegger

  • @all

    Vielen Dank für die Tipps :)

    Ich werde das so wie kim88 schreibt am WE umsetzen. Ich denke auch wie Bulvai schreibt das der Soundtreiber noch nicht geladen ist, der Desktop ist nämlich ziemlich fix nach dem GDM-Login da.

    Eine Frage noch kim88
    Der systemd-Dienst wäre dann systemweit, richtig? In meinem Fall spielt das keine Rolle weil ich der einzige Nutzer bin.
    Als User Units anzulegen wäre aber auch nicht falsch, oder? --> https://wiki.ubuntuusers.de/systemd/User_Units/

    Thanks :)

    Arch Linux | Gnome | HP ProDesk 600 G5 Mini | Raspberry Pi Zero W | OPNSense | OpenWrt | OpenPli | FOSS | Depressiv

  • User unity kannst du anlegen - wenn du eh der einzige Nutzer bist ist es aber eher ein Ausprobier-Aufgabe als was nützliches 😅

    --
    Ciao!

    Linux Nutzer seit über 20 Jahren. I ❤️ Freedom!

    Offizieller Proton-Botschafter aus der Schweiz 🇨🇭 😅

    Meine Haupt-Distribution ist Ubuntu.

    Mein Blog: https://rueegger.me

    Wer meinen sinnlosen Gedanken folgen möchte, kann dies gerne auf Mastodon tun: https://swiss.social/@srueegger

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!